APP下载

基于遗传算法的电梯控制模拟系统设计与实现

2018-08-29桑国珍

计算机与数字工程 2018年8期
关键词:楼层百分比队列

桑国珍

(1.渭南师范学院网络安全与信息化学院 渭南 714099)(2.网络安全与信息化工程技术中心 渭南 714099)

1 引言

随着高层楼宇不断增加,电梯越来越多走进人们的生活,人们希望电梯能够高效,舒适,智能,能够为人们提供更加优质的服务,电梯的智能控制技术应运而生,电梯智能控制是近几十年来发展的一项新技术[1]。

随着人们对电梯服务系统的服务质量和运输效率要求越来越高,电梯的控制也由单部电梯独立控制发展到多部电梯协调智能化控制。电梯控制就是在一栋高楼中有多部电梯,将各层的按梯信号采集,集中交给电梯控制系统处理,而控制系统经过对电梯运行情况、乘客情况和系统能耗等一系列因素进行综合考虑,从而给出一种最佳派梯方案,调度电梯运行,电梯控制系统改变了电梯互不相干、彼此独立运行的局面,可以提高电梯系统的运行效率、较少乘客的拥挤度和系统能耗等问题,给乘客提供更加高效、舒适、安全的电梯服务,同时还节约了能源[2]。

本文所研究的电梯控制模拟系统,就是基于遗传算法,将遗传算法合理应用到电梯调度过程中[3],从而给出最佳的运行方案,给乘客提供更加高效、舒适、快捷、安全的电梯服务。

2 概要设计

2.1 系统总体结构

电梯控制模拟系统共分为六大模块,分别是登录模块、客流预估模块、描述电梯状态模块、遗传算法应用模块、调度策略模块、仿真界面模块。具体如图1所示。

图1 系统总体结构

2.2 登录模块

主程序的登录界面用于登录电梯控制模拟系统,QT中使用QPushButton,QlineEdit,QLabel等控件,使用字符串匹配和字符加密等方法,只有当用户名和密码正确时,才会进入电梯控制系统。

2.3 客流预估模块

建立客流数学模型,根据乘客到达率,上行客流百分比,下行客流百分比,层间客流百分比等一些参数,生成一张乘客表,记录乘客的序号,产生时间,呼叫楼层和目的楼层。

2.4 记录电梯状态模块

记录电梯状态模块是记录电梯当前的情况,包括轿厢的状态、电梯内的召唤、层间的召唤。轿厢的状态信息包括四部电梯在某一时刻,所在的楼层、乘客数、上行(下行)还是静止;电梯内的召唤包括四部电梯各自的召唤情况,几层有召唤,是上行还是下行;层间的召唤包括四部电梯外每部电梯各自的召唤信息,几层有召唤,是上行还是下行。

2.5 遗传算法应用模块

遗传算法应用模块是将遗传算法应用到电梯控制系统中[4]。

2.6 调度策略模块

电梯控制系统基本原则:

1)外优于外呼,內呼必须响应;

2)电梯内如果满员,则此电梯暂时不响应外呼;

3)创建两个队列,将层间向上呼叫和向下呼叫分别放入两个队列中,队列的特点是先进先出,例上升队列中有2,5,7,8,10,可从队列中读到层间第二层、第五层、第七层、第八层、第十层有向上的呼叫请求,当到达第二层时,将2弹出,假设又有4层向上呼叫时,使用排序就将4插入5之前,不断操作两个队列,合理调度,产生最佳派梯方案。

2.7 仿真界面模块

使用QT界面开发技术模拟仿真电梯控制系统运行过程,其中包括用户登录、电梯控制系统运行基本参数设置和系统运行状态仿真[5]。

3 系统详细设计

3.1 客流预估模块

研究表明,电梯交通系统中乘客到达过程为平稳的泊松过程,即

式(1)中:λ为乘客到达率(单位时间内平均到达的乘客数);T为时间长度。

则乘客到达的间隔时间τ服从参数λ的负指数分布,即

用以下递推公式得到乘客1,2,…的到达时间

式(3)中:tp(i)为第i个乘客的到达时间;r为(0,1)上服从均匀分布的随机数。

为了确定乘客的起点、终点楼层,构造乘客起点密度向量O和起点-终点矩阵OD。以Oi表示以i楼层为起点的乘客占总人数的百分比。以Oij表示第i楼层到j楼层的乘客占以第i层为起点乘客的百分比。若Ai表示第i楼层的总人数,N为楼层数,则 Oi和,j=L,2,…,N)由下面公式得到:

式(5)中,σ1为以门厅为起点向上运行的乘客占乘客总人数的百分比;

式(6)中,σ2为以门厅为终点的乘客占乘客总人数的百分比;

式(7)中,σ3为起点、终点都不是门厅的乘客占乘客总人数的百分比。

最后得到起点密度向量和起点-终点矩阵分别为

根据O和OD,进行两次蒙特卡洛抽样试验便可得到一个乘客的起点楼层和终点楼层[6-8]。

3.2 记录电梯状态模块

记录电梯状态模块是记录电梯内外的状况,包括电梯当前状态、轿厢内呼叫信息、层间呼叫信号,分别如下所示。

轿厢的状态用一个二维数组(矩阵):int E[4][3];

电梯内的召唤用一个二维数组: int C[4][16];

层间的召唤用一个二维数组: int H[4][16]。

3.3 遗传算法应用模块

电梯控制系统中应用的主要算法,包括编码、初始种群产生、适应度函数、选择、交叉、变异、终止。将遗传算法应用到电梯控制中,个体(派梯方案)生成初始种群(种群大小100),计算各个体的适应值,选择、交叉、变异,种群更替50代,作为终止条件,从而得到最佳派梯方案[9~12]。部分核心代码如下[13]:

3.4 调度策略模块

调度策略模块是电梯控制与遗传算法的紧密联系,调度策略是适应度函数设计的重要环节,对电梯状态模块中采集的信息,客流预估模块生成的乘客表综合考虑而合理调度的一种策略,将层间呼叫信号,采用冒泡排序,从小到大分别放入上行队列和下行队列,便于候梯时间的计算。

1)冒泡排序核心代码如下[14]:

2)上行队列、下行队列核心代码如下[15]:

3.5 界面仿真

QT界面开发,基于C++、控件、控件布局、信号/槽机制,实现对电梯控制系统的模拟。部分核心代码如下:

4 结语

本文所研究的电梯控制系统,综合考虑了乘客候梯时间、乘客乘梯时间、系统能耗等多个目标,使用遗传算法,以QT为载体,对4部电梯的智能控制,合理调度,给出最佳派梯方案。

猜你喜欢

楼层百分比队列
奶奶做的“楼层儿”
楼层
队列队形体育教案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
电梯的升与降
在队列里
趋势攻略之趋势线:百分比线
环保车型最多的美国城市
公共艺术与百分比艺术建设