基于FSM的电梯控制算法设计与仿真

2020-03-08 06:06范有机
武夷学院学报 2020年12期
关键词:停站数组流程图

范有机

(武夷学院 机电工程学院,福建 武夷山 354300)

随着电梯数量增多,面向电子信息专业招聘电梯技术员的岗位增加,教学内容未涉及电梯控制方面的知识,实验室也没有教学电梯模型,观察实体电梯运行过程不便且可能影响其正常运行带来危险,学生自学电梯控制算法难度大,需电梯控制算法的引导,以锻炼学生的逻辑思维和扩大就业渠道。电梯控制系统是典型的复杂信息控制系统,电梯在呼叫信息的驱动下动作,类似游戏机按键控制人物等对象进程,适合用有限状态机(FSM)思想建模。有限状态机(Finite-state machine,FSM),又称有限状态自动机,简称状态机[1],在确定事件或指令触发下,从一个状态转移至另一状态,并执行相应状态下的动作[2-3],本文基于FSM思想进行电梯控制算法建模,并利用力控组态软件设计仿真模型进行了验证。

1 基于FSM的电梯控制算法设计

电梯控制算法有先来先服务算法、扫描算法、最短寻找楼层时间优先算法、LOOK算法、SATF算法等算法[4],其中扫描算法(SCAN)为方向优先控制方式[5-6],在运行过程中优先响应与电梯运行方向相同的呼叫,与电梯运行方向相同的呼叫在一次上行或下行的过程中完成,较好的解决了电梯频繁移动问题,效率较高,适合楼层不高单个电梯的控制方式[7]。本文以4层电梯为例,采用FSM为方向优先控制方式的扫描算法建模。

根据电梯工作情况,把电梯状态分为待机状态、运行状态、开门状态和关门状态4个状态,运行状态指向上或向下的运行状态,其状态转换过程如图1所示;图中最远端呼叫层,是指运行方向上最远的呼叫层,例如图2,时间秩序为t1~t13,图中[t4,t10]表示第2层在t4时刻和t10时刻开门,i5-Δt表i5时刻前,设电梯在1层待机,t1时刻2层按下向上呼叫,电梯i1时刻向上运行至i4时刻到达2层,期间t2时刻,2层按下向下的呼叫,t2时刻最远端呼叫层为第2层,t3时刻,4层按下向下呼叫,t3时刻第4层就为向上最远端的呼叫层,到达2层后开门并清除本层向上呼叫标志,用户入梯按下至3层按钮,t5时刻关门向上运行,至第3层开门清除3层呼叫标志,关门后至4层,第4层进来的人呼叫到第1层,清除向下的呼叫信号电梯反向向下运行,3层无呼叫,3层不停站,t10至2层,开门后清除t2第2层向下的呼叫标志,电梯关门至1层,开关门并清除呼叫标志,运行过程中只为同向呼叫层或最远端呼叫层停站并开门和关门。

图1 电梯工作状态图Fig.1 Elevator working state diagram

图2 电梯工作过程示例图Fig.2 Example diagram of elevator working process

状态触发条件(Trigger condition,Tr)及执行动作(Perform actions,Pe)如表1所示。其中“—”表无条件或无动作,不符合停站条件指:未平层,或不是内呼叫层,或该层无呼叫,或非同向外呼,或非最远端呼叫层;停站条件指:平层,该层有同向外部呼叫,或该层为内呼叫层,或为最远端呼叫层。

表1 状态触发条件及执行动作表Tab.1 State trigger condition and execution action table

2 基于力控组态软件的仿真模型设计

力控组态软件提供了大量的图形对象、控件及位图,以及易于上手的控制脚本[8],其最大的特点是能以灵活多样的“组态方式”进行系统集成,并提供良好的用户开发界面和简洁的工程实践方法[9-10]。为验证并形象展示算法,利用力控组态软件设计仿真模型进行验证。

2.1 界面设计

利用力控组态软件中的各种图像和动画逼真展现电梯工作过程,选择图形模拟内外呼叫按钮、电梯厢门、各层层门,定义数据变量模拟电梯各种参数的变化,并将这些变量与对应图形连接,当控制程序运行时就可以形象展示和验证算法,4层电梯仿真界面如图3所示。

图3 电梯仿真界面Fig.3 Elevator simulation interface

2.2 电梯控制程序流程图

2.2.1 数组保存、处理呼叫信息

用数组保存、处理呼叫信息,数组有序与楼层有序对应,用4个数组保存外呼上、外呼下、楼层内呼、综合(内外)呼叫,层号对应数组下标号的个位,按下呼叫,对应数组位为1,否则为0,其中1层没有外呼下,为了统一处理,其对应元素置常数0,4层外呼上置0,综合呼叫为外呼上、外呼下、楼层内呼三者进行逻辑“或运算”,详见表2;其他参数用变量模拟。

表2 呼叫与对应数组元素映射表Tab.2 Call and corresponding array element mapping table

设所在楼层整形变量为flr,取值范围1~4,综合呼叫数组4个元素为zh[41]~zh[44],求两个方向上最远端呼叫层,向下为minf,向上为maxf的函数如下:

利用数组可以方便提取呼叫信息,进而方便控制电梯运行。

2.2.2 主流程图、待机状态及运行状态流程图

FSM算法采用switch语句现实,switch开关语句专门处理多路分支(对应多个状态)的情形,能使使程序变得简洁,主流程图如图4所示,Pe表执行动作(Perform actions);待机状态流程图如图5所示,主要等待呼叫信息及确定运行方向;运行状态流程图如图6所示,主要执行上升与下降操作,并在平层时判断是否满足停站条件,满足转开门状态,停站条件:该层有同向外部呼叫或该层为内呼叫层或为最远端呼叫层。

图4 四层电梯控制主流程Fig.4 Four floor elevator control main flow

图5 待机状态流程图Fig.5 Flow chart of standby state

图6 运行状态流程图Fig.6 Flow chart of running state

2.2.3 开门状态及关门状态流程图

开门状态流程图如图7所示,主要重先定向及打开厢门和对应层门,开门前重先定向,为了提示乘客登梯,比如内呼有人请求到3层,电梯从2层到3层运行途中,3层有人按外呼向下请求,其它层没有呼叫,电梯到3层时停站,开门前重先定向,原来上升就改为向下,以提示乘客登梯;关门状态流程图如图8所示,主要响应开门和关门请求,若没有开门和关门请求电梯延时一段时间自动关门,关门后若有同向它层呼叫,直接转运行状态,关门后若没有同向它层呼叫,延时一段时间,等待用户按下内呼请求,把用户送至欲往楼层,若延时时间到,没有同向它层呼叫,转待机状态。开门和关门为互斥关系,不能同时有效。

图8 关门状态流程图Fig.8 Flow chart of closing state

3 总结

用有限状态机(FSM)思想设计了一种四层电梯控制算法模型,并利用力控组态软件对所设计的模型进行了仿真验证;并给出了详细的模型和流程图,特别是开门和关门控制过程。本文的研究工作,对于改善以往学生设计电梯控制算法时,往往无处参考开门和关门控制流程的不足,具有一定的实际应用价值。

猜你喜欢
停站数组流程图
云的识别指南
JAVA稀疏矩阵算法
考虑高铁与其它运输方式竞争的停站方案优化
基于扣除系数的快慢车模式下线路通过能力计算
买长乘短
JAVA玩转数学之二维数组排序
地铁列车制动控制研究
一种程序源代码的标准化流程图转化方法∗
更高效用好 Excel的数组公式
寻找勾股数组的历程