论文部分内容阅读
[摘要]电梯应用已相当普及,其研发和控制也是一个较为突出的问题,电梯的安全性和实用性是电梯最核心的关注点,本文利用UML的面向对象分析和设计技术,来分析电梯控制的算法,这样设计者可以通过这个算法提升工作和研发的效率。
[关键词]面向对象方法;电梯控制;系统模型
中图分类号:TG333.2 文献标识码:A 文章编号:1009-914X(2013)05-0250-01
如何更安全、更快捷地到达目的楼层,是电梯最为根本的要求,所以开发和研制电梯控制算法具有十分重要的意义。我国目前使用的电梯按其操纵方式分类有信号控制电梯、程序控制电梯,智能群梯等多种。本文将从算法角度加以分析。
1.UML建模
(1)系统描述
电梯系统的实际与“真实”的系统相比省去了很多技术上的细节。本文的电梯系统有所有电梯系统都有的基本功能,如上升和下降、开门和关门当然还有载客。电梯假设被用在一栋大楼的第一层到最高层,第一层是大厅。
(2)用例模型
角色识别:根据前面系统的描述,我们可以确定与该系统交互的两个角色:电梯管理员(manager)和乘客(passenger);用例识别:在角色的基础上,我们可以确定系统的用例,做法是针对每一个角色考察它要求系统提供的功能。如:处理电梯呼叫、处理楼层呼叫、电梯的动/停、标识运行方向、标识电梯位置、开/关门等。
(3)类模型
根据分析,可以得到下面这些类:对象架构类模型,包括、电梯控制器、电梯门,电梯、按钮、指示器、安全装备、电梯日志等。
2.基本电梯选择算法
(1)分析计算:分别计算每一部电梯的优先数,选择优先数最小的电梯调度。每部电梯分为空闲、上行(运行或停止)、下行(运行或停止)三种状态。
如果电梯处于空闲状态,则该电梯的优先数=距离权重3|需求楼层-所在楼层|+载重量所占权重|载重;如过电梯处于上行状态并且申请楼层大于等于电梯所在楼层,则该电梯的优先数=距离权重3(需求楼层-所在楼层)+载重量所占权重|载重;如过电梯处于下行状态并且申请楼层小于等于电梯所在楼层,则该电梯的优先数=距离权重3(所在楼层-需求楼层)+载重量所占权重|载重。
(2)计时候梯时间:统计表明,乘客的心理烦躁程度与侯梯时间的平方成正比。当侯梯时间超过60S。为了解决这一问题,系统添加了候梯时间记录。当某一申请超过一定时间而仍没有分配到合适的电梯调度时,系统会删除此请求,提示乘客重新选择或放弃选择,以减少不必要的等候。
(3)定时处理楼层请求队列:系统会定时地分发楼层请求的队列申请,将成功分发到每一部电梯的申请删除,为成功分发地做好标记增加年龄后重新放回队列,对于年龄大于一定值的仍没有分发出去的请求则删除。
3.单方向运行优先算法
本系统采用单方向运行优先来说明电梯的运行方式,也就是说电梯处于上行状态时就一直上行直到不再有上行任务,电梯处于下行状态就一直下行直到不再有下行任务。
本系统用两个队列来实现电梯的调度,电梯根据两个队列发送的来的楼层号作为目的地进行运行。在上行队列中保存了所有的上行请求楼层号。队列排列规则是:高于或等于电梯当前所在楼层的上行请求的樓层号从小到大排在队列的前部分,低于楼层当前所在楼层的上行请求的楼层好从小到大排在队列的后部分。如果新请求的楼层号被插到队列头同时讲这个楼层号发送给电梯作为它的目的地。在下行队列中保存了所有的下行请求的楼层号。队列排列规则是:低于或等于电梯当前楼层的下行请求的楼层号从大到小排列在队列的前部分,高于电梯当前所在楼层的下行请求的楼层号从大到小排在队列的侯部分。(女口图1)
本文对电梯上行进行分析,如果上行队列的队列头改变时,系统将同时将这个新的队列头发送给电梯作为它新的目的地。有两种原因会引起队列头的改变:
(1)新的请求插入到上行队列头;
(2)电梯到达某各楼层将这个楼层的请求从上行队列的队头删除,后继的更高楼层的号将成为队头。
在电梯上行过程中,当上行队列中没有比电梯当前的楼层更高的楼层号时,发送电梯目的地的开始从下行队列中取得。同样,在电梯下行队列中,当下行队列中没有比电梯当前所在楼层更低的楼层号时,发送电梯的目的地开始从上行队列中取得。如此反复,当两个队列种都没有数据时,电梯暂停。
4.重量控制算法
为实现真实电梯的模拟功能,添加这个算法在进一人按键处,这个算法主要分为两个部分:
(1)通过人数控制,当人数到达16人时,自动报警:在进一人Button处添加计数器函数MConutNumber(),通过单击触发,达到16次,自动弹出警报,推出一人后,正常使用。
(2)通过重量控制,当总重量达到1000(KG)时,自动报警:在进一人Button处,设置,每点击一次,产生一个30-120(KG)的随机数,第一次点击时,随机数设为底数,并保存在一个数组中,以后每次点击产生数与底数相加,得到和与1000KG比较,如果大于1000则弹出警告,自动弹出最后一个进入数组的随机数。
通过研究实际系统运行中的问题,并结合电梯乘客的实际需求分析,本系统在传统算法的基础上进行了优化处理,很大程度上提高了电梯系统的运行效率。这种方法目的在于找到电梯能耗和乘客候梯时间的最有解,以最大的减少电梯能耗同时让乘客减少无为的候梯时间。其中的选择最优电梯算法,则是从乘客的角度更快、更准确地选择乘坐电梯的方法,而后面阐述的单方向运行优先算法是从楼层调度电梯箱体的角度考虑电梯的最有运行方案。两者结合起来可实现电梯的高效运行和乘客的舒适乘坐。
作者简介
陶磊,1984.10.13出生,现供职于中国电子科技集团公司第三十八所。
[关键词]面向对象方法;电梯控制;系统模型
中图分类号:TG333.2 文献标识码:A 文章编号:1009-914X(2013)05-0250-01
如何更安全、更快捷地到达目的楼层,是电梯最为根本的要求,所以开发和研制电梯控制算法具有十分重要的意义。我国目前使用的电梯按其操纵方式分类有信号控制电梯、程序控制电梯,智能群梯等多种。本文将从算法角度加以分析。
1.UML建模
(1)系统描述
电梯系统的实际与“真实”的系统相比省去了很多技术上的细节。本文的电梯系统有所有电梯系统都有的基本功能,如上升和下降、开门和关门当然还有载客。电梯假设被用在一栋大楼的第一层到最高层,第一层是大厅。
(2)用例模型
角色识别:根据前面系统的描述,我们可以确定与该系统交互的两个角色:电梯管理员(manager)和乘客(passenger);用例识别:在角色的基础上,我们可以确定系统的用例,做法是针对每一个角色考察它要求系统提供的功能。如:处理电梯呼叫、处理楼层呼叫、电梯的动/停、标识运行方向、标识电梯位置、开/关门等。
(3)类模型
根据分析,可以得到下面这些类:对象架构类模型,包括、电梯控制器、电梯门,电梯、按钮、指示器、安全装备、电梯日志等。
2.基本电梯选择算法
(1)分析计算:分别计算每一部电梯的优先数,选择优先数最小的电梯调度。每部电梯分为空闲、上行(运行或停止)、下行(运行或停止)三种状态。
如果电梯处于空闲状态,则该电梯的优先数=距离权重3|需求楼层-所在楼层|+载重量所占权重|载重;如过电梯处于上行状态并且申请楼层大于等于电梯所在楼层,则该电梯的优先数=距离权重3(需求楼层-所在楼层)+载重量所占权重|载重;如过电梯处于下行状态并且申请楼层小于等于电梯所在楼层,则该电梯的优先数=距离权重3(所在楼层-需求楼层)+载重量所占权重|载重。
(2)计时候梯时间:统计表明,乘客的心理烦躁程度与侯梯时间的平方成正比。当侯梯时间超过60S。为了解决这一问题,系统添加了候梯时间记录。当某一申请超过一定时间而仍没有分配到合适的电梯调度时,系统会删除此请求,提示乘客重新选择或放弃选择,以减少不必要的等候。
(3)定时处理楼层请求队列:系统会定时地分发楼层请求的队列申请,将成功分发到每一部电梯的申请删除,为成功分发地做好标记增加年龄后重新放回队列,对于年龄大于一定值的仍没有分发出去的请求则删除。
3.单方向运行优先算法
本系统采用单方向运行优先来说明电梯的运行方式,也就是说电梯处于上行状态时就一直上行直到不再有上行任务,电梯处于下行状态就一直下行直到不再有下行任务。
本系统用两个队列来实现电梯的调度,电梯根据两个队列发送的来的楼层号作为目的地进行运行。在上行队列中保存了所有的上行请求楼层号。队列排列规则是:高于或等于电梯当前所在楼层的上行请求的樓层号从小到大排在队列的前部分,低于楼层当前所在楼层的上行请求的楼层好从小到大排在队列的后部分。如果新请求的楼层号被插到队列头同时讲这个楼层号发送给电梯作为它的目的地。在下行队列中保存了所有的下行请求的楼层号。队列排列规则是:低于或等于电梯当前楼层的下行请求的楼层号从大到小排列在队列的前部分,高于电梯当前所在楼层的下行请求的楼层号从大到小排在队列的侯部分。(女口图1)
本文对电梯上行进行分析,如果上行队列的队列头改变时,系统将同时将这个新的队列头发送给电梯作为它新的目的地。有两种原因会引起队列头的改变:
(1)新的请求插入到上行队列头;
(2)电梯到达某各楼层将这个楼层的请求从上行队列的队头删除,后继的更高楼层的号将成为队头。
在电梯上行过程中,当上行队列中没有比电梯当前的楼层更高的楼层号时,发送电梯目的地的开始从下行队列中取得。同样,在电梯下行队列中,当下行队列中没有比电梯当前所在楼层更低的楼层号时,发送电梯的目的地开始从上行队列中取得。如此反复,当两个队列种都没有数据时,电梯暂停。
4.重量控制算法
为实现真实电梯的模拟功能,添加这个算法在进一人按键处,这个算法主要分为两个部分:
(1)通过人数控制,当人数到达16人时,自动报警:在进一人Button处添加计数器函数MConutNumber(),通过单击触发,达到16次,自动弹出警报,推出一人后,正常使用。
(2)通过重量控制,当总重量达到1000(KG)时,自动报警:在进一人Button处,设置,每点击一次,产生一个30-120(KG)的随机数,第一次点击时,随机数设为底数,并保存在一个数组中,以后每次点击产生数与底数相加,得到和与1000KG比较,如果大于1000则弹出警告,自动弹出最后一个进入数组的随机数。
通过研究实际系统运行中的问题,并结合电梯乘客的实际需求分析,本系统在传统算法的基础上进行了优化处理,很大程度上提高了电梯系统的运行效率。这种方法目的在于找到电梯能耗和乘客候梯时间的最有解,以最大的减少电梯能耗同时让乘客减少无为的候梯时间。其中的选择最优电梯算法,则是从乘客的角度更快、更准确地选择乘坐电梯的方法,而后面阐述的单方向运行优先算法是从楼层调度电梯箱体的角度考虑电梯的最有运行方案。两者结合起来可实现电梯的高效运行和乘客的舒适乘坐。
作者简介
陶磊,1984.10.13出生,现供职于中国电子科技集团公司第三十八所。