电梯群控系统仿真平台优化设计
2016-05-14刘小朋李付龙王立鹏
刘小朋 李付龙 王立鹏
摘要:针对国内现有电梯群控系统仿真平台信号输入方式单一,不能产生稳定、持续的交通流;模拟电梯运行僵硬,轿厢不能连续移动等问题,基于Visual C++6.0面向对象编程技术,以DB2数据库作为后台,设计出一种优化电梯群控系统仿真平台。该平台既能手动输入呼梯信号,也能自动生成符合泊松分布的输入信号。仿真运行输出候梯时间和乘梯时间,结果表明,该优化平台轿厢能够连续平滑运动,运行速度和方向一目了然,能更真实地模拟电梯的实际运行情况。求出平均候梯时间、平均乘梯时间和平均停靠次数,对电梯最小长候梯时间算法进行了验证。
关键词关键词:电梯;群控系统;Visual C++6.0;泊松分布;多线程
DOIDOI:10.11907/rjdk.161340
中图分类号:TP319文献标识码:A文章编号文章编号:16727800(2016)007011003
0引言
随着高层建筑的日益增多,电梯成为人们日常生活的重要交通工具。多部电梯配置在一起构成电梯群,由电梯群控系统操作。算法是整个群控系统的核心,优越的算法能减少乘客候梯时间、乘梯时间以及能耗等。因此,电梯群控算法仿真平台的研究意义重大。
国外电梯仿真软件主要有Elevate,而且代码不公开。国内电梯设计较为简陋,电梯动作较为僵硬,不便于观察,不能较好还原现实情况,而且不能产生连续稳定的交通流,仿真平台不能长时间稳定运行。
Visual C++ 6.0是一个功能强大的可视化软件开发工具,能够制作交互式用户图形界面。DB2数据库主要应用于大型系统,具有较好的可伸缩性,支持从大型机到单用户环境。数据具可利用性、完整性、安全性、可恢复性及平台无关性,以及小规模到大规模应用程序的执行能力。DB2数据库可使用微软的开放数据库连接(ODBC)接口,任何应用程序都可访问。
本设计以Visual C++6.0 为开发平台,采用DB2作为电梯仿真平台数据库,利用多线程技术, 根据电梯配置和电梯群控算法进行仿真,得到电梯的运行质量参数并保存到DB2 数据库中。 本设计稳定性高,能连续随机地产生各种电梯交通流,是高性能电梯群控系统仿真平台。
1仿真平台介绍
该平台用Visual C++6.0软件编写,有交互式呼梯信号输入按钮,可由用户自行输入,或由系统自发产生连续的交通流信号。由于仿真平台采用的是基于目的层的呼梯方法(即内呼按钮与外呼按钮都在电梯外部),所以各乘客的起始层和目的层总是同时确定的。这种呼梯方法消除了由于乘客目的层的不确定性而带来的困扰,使电梯控制更加快速、准确,同时也大大简化了群控算法研究的难度。仿真平台有4种交通模式:上行模式、下行模式、空闲模式和层间随机模式,可根据需要选择其中一种模式来运行。运行过程中能即时显示各个乘客的序号、呼叫层、目的层以及为其服务的电梯编号等,较为人性化。
2仿真平台构成
电梯模型由4部分组成:交通流产生模块、信号综合处理模块、电梯群控算法模块和电梯运行模块,如图1所示,输入信号和运行状态都存入DB2数据库。
利用C++语言面向对象的编程技术,用类的封装编写了整个群控电梯系统,构造了电梯类(ElevatorA,ElevatorB和ElevatorC)、输入信号类(Signal)以及轿厢类(Car)。其中电梯类是由VC++软件中的滚动条控件制作而成。电梯轿厢由滚动条中的滑块来代替,通过设置滑块的位置来使“轿厢”运动起来。本设计中的电梯可连续平滑运动,便于观察研究。运用多线程技术构造了4个线程:交通流产生线程、电梯A运动线程、电梯B运动线程和电梯C运动线程。它们能够同时、迅速地响应用户的多个请求,使整个程序协调运行,程序流程如图2所示。
交通流参数模块用于随机产生各种交通流数据,数据库作为后台,存取更加稳定,从而有效提高系统的稳定性。乘客到达过程可由泊松分布模拟[5]。群控服务区域是指前来乘坐电梯的乘客(包括上行和下行)的候梯区域。
在时间t内乘客到达服务区人数为n的概率为Pn(t)=(λt)nn!e-λt,n=0,1,2…(1)则在时间t内,没有任何乘客到达的概率为P0,所以时间t内所有乘客到达的概率为1-P0(t)=1-e-λt(2)假设两个相邻乘客到达的时间间隔为T,则P{T≤t}=1-e-λtt≥0
0t<0(3)时间间隔T服从参数为λ的指数分布。假设乘客平均到达率为λ,第i个乘客到达的时间为X(i),第i+1个乘客到达时间为X(i+1),ti为相应到达间隔时间的最大值,Pd为第i个乘客到达率,则Pd=P{ti=t}=1-e-λtt≥0
0t<0(4)所以当t>0时,最大时间间隔为ti=-In(1-Pd)λ(5)于是得到第i个乘客到达时间的递推公式为X(i+1)=X(i)-ln(1-Pd)λ(6)在这里,由于Pd是0~1之间的任一常数,所以可以用0~1上的均匀分布来产生N个数作为Pd的值,从而产生N个到达时间模拟值。
MATLAB具有强大的数据处理能力,可完成数据流的计算。由此模拟出符合泊松分布的乘客流,以30分钟内200个乘客的到达过程为例,如图3所示,横坐标代表各个乘客的到达时间,纵坐标代表当前乘客到达量。其中直线之间的距离间隔代表两乘客到达的时间间隔。间隔越小,说明人流密度越小;间隔越大,说明人流密度越大。
最终模拟出符合泊松分布的乘客到达时间,将乘客到达时间以及各相邻乘客之间的时间间隔存入DB2数据库,以供VC++调用。
将时间间隔存入数据库后,VC++仿真平台从数据库逐个读取乘客到达时间,并延时相邻乘客到达时间的间隔。延时结束后,通过蒙特卡洛法产生呼梯信号,然后继续读取下一个数据,如此连续不断执行,产生离散的符合泊松分布的乘客流,直到读完DB2数据库中的交通流数据为止。
2.2算法模块
算法是电梯群控系统核心,一个算法的优劣直接决定着电梯的运行效率。本设计的目的就是对群控算法的优劣进行验证和调试,最终证明某算法的实用性。常用的算法有最小候梯时间算法、最小乘梯时间算法、模糊控制算法以及神经网络算法等。本系统采用C++面向对象语言,用类来封装各种控制算法,当系统需要用到某种算法时,只需要调用相应的算法即可。
2.3信号综合处理模块
信号处理模块需要进行复杂的计算,它结合新加入的呼梯信号、已登记的呼梯信号以及电梯当前的运行状态这3个因素,利用当前的群控算法,计算出各个电梯对新加入信号的符合程度。如图2所示,信号处理模块在接受新增加的呼梯信号后,经信号处理模块计算,选择符合度最大的电梯,并将派梯结果发送至电梯运行模块。
2.4电梯运行模块
电梯运行模块用于实现电梯的模拟运行,它由电梯A、B和C组成。电梯运行特征分为7个状态,分别是:空闲状态、开门状态、关门状态、上行状态、下行状态、进客状态和下客状态。当电梯为空闲状态时,电梯等待外呼信号,直到有外呼信号为止。当电梯向上运行时(下行情况一样),必定先加速,而后匀速运行。 如果未到达指定层,电梯继续向上匀速,每经过一层,楼层数自动加一。将要到站时,电梯开始减速,然后停车开门。上下客完毕后,关门重新启动。如此往复,不断运行。每个状态所持续的时间基本上是固定不变的,因此本设计假设电梯的上下行状态都是匀速的。将变速运动引起的时间差归于匀速运行阶段,同时将开关门时间和上下乘客时间都归于电梯停站时间中。本设计实际上只考虑3种状态:上行状态、下行状态和等待状态。虽然简化了平台设计,却更加有利于电梯群控算法的研究。
采用多线程的软件实现方法,设计电梯A、B和C三个电梯线程 ,使得3部模拟电梯同时独立运行,系统的稳定性高。如图2所示,在接收到配梯信号后,经过算法计算,新增信号会登记到3部电梯中的一部。该部电梯会综合新增信号和已有信号决定电梯的运行状态。
3仿真结果
基于最小长候梯时间算法对仿真平台进行测试。仿真参数设置为:仿真时间30min,楼层为15层,楼层高2.5m,电梯3部,电梯经过每层时间2.4s,停站时间10s,仿真人数200人。采用层间随机交通模式,系统自动生成泊松输入流。仿真结果用MATLAB绘制。其中单次仿真结果如图4和 实验结果表明,乘客的平均候梯时间仅为25.6 s,体现了最小长候梯算法在减少乘客候梯时间方面的显著作用。但平均乘梯时间为35.8秒,平均停靠次数178次,能耗较大,说明经典的群控算法—最小长候梯算法存在一些不足。
(s)平均乘梯时间
(s)平均停靠次数
(次)最小长候梯时间算法25.635.81784结语
基于Visual C++6.0面向对象的编程方法,设计了一种优化群控电梯仿真平台。实验结果验证了仿真平台的有效性。与以往仿真平台相比,本仿真平台既能接受用户的手动输入信号,也能自发产生泊松分布乘客流,并逐个处理各种输入信号,输出乘客候梯时间和乘梯时间。电梯轿厢能够连续平滑运动,轿厢运动速度和方向一目了然,便于观察研究,较为真实地模拟了实际情况,简化了电梯群控算法。
本设计采用MATLAB产生泊松分布交通流,以DB2数据库为枢纽,给仿真平台提供连续稳定的输入信号,使得仿真平台能够长时间稳定运行,具有一定的实际意义。
参考文献:
毕晓亮,张亚刚,朱昌明,等.电梯群控研究及仿真实验台开发[J].系统仿真学报,2003,15(9):12451246.
阎光伟,彭文,徐琳茜.基于案例的Visual C++程序设计教程.北京:清华大学出版社,2012:154158.
刘宇明.基于DB2的大型数据库性能优化方法研究[J].科学技术与工程,2007,7(1):7071.
潘志锋,罗飞,许玉格.高性能的电梯群控系统仿真平台的设计[J].计算机工程与应用,2006,35(3):181183.
曹雷,饶真珍.面向对象的电梯系统计算机仿真[J].计算机应用,2007,24(9):289191.