电梯的模拟算法与优化调度方案(4)

2019-09-01 23:41

t?r???h?r??t1?t2??a?t1?t2?2vm??vm .

针对之前给出的大楼的参数,代入上面的表达式,我们可以求得电梯运行距离和运行时间的关系:

t?r??ama?h?rvm?vmam?1.42?2.6r2?21.4?2.12857?1.3r

由上式可以看出,电梯从启动到停止的运行时间t(r)与所运行的楼层数r存在这一种线性关系,并且含有常数项2.12857.该常数项说明,在电梯上行过程中每次停靠时,由于电梯加速和减速而额外花费的时间大约是2.12857秒钟。

2.3 电梯系统的模拟算法

以下是A First Course in Mathematical Modeling . Third Edition 171页电梯模拟系统改进后的算法:

输入 beti和floori。这里beti和floori都是随机的整数,基于前面的分析,我

们给出求beti和floori的matlab程序,如下:

x=fix(30*rand(22)) y=fix(2+17*rand(22))

beti=reshape(x,1,484) floori=reshape(y,1,484)

输出 DELTIME,ELEVTIME,MAXDEL,MAXELEV,QUELEN,QUETIME,MAXQUE,stopj,

以及每部电梯使用时间的百分比。

1) 开始时将以下参数置为零:DELTIME,ELEVTIME,MAXDEL,MAXELEV,

QUELEN,QUETIME,MAXQUE,quetotal,remain

i?1 deliveryi?15

2) 对于第一位乘客,生成到达时间间隔、目的楼层,并初始化运送时间: 3) 初始化时钟及电梯的可乘用时间、停止次数、运送时间。初始化所有乘

客的等待时间。

TIME?beti

对于k?1到4: returnk?TIME, stopk?operatek?0

16

对于k?1到484: waitk?0

若TIME?5100,执行5到32步。

4) 选择第一部可乘用电梯:

若TIME?return1,则j?1,否则 若TIME?return2,则j?2,否则

若TIME?return3,则j?3,否则

若TIME?return4,则j?4,

否则(当前无电梯可乘用)转第19步。

5) 置入第一位占用已标记电梯的乘客的编号,初始化电梯占用及楼层选择

向量:

firstj?i, Oj?0

6) 对于k=1到19: Sj?k??Fj?k??0

7) 置入楼层选择向量,电梯j承运乘客,并增加占用电梯的乘客数:

Sj?floori??1

Fj?floori??Fj?floori??1

Oj?Oj?1

8) 产生下一位乘客并调整时钟:

i?i?1

TIME?TIME?beti

deliveryi?15

9) 将全部可乘用电梯设定为当前时钟: 对于k=1到4:

若TIME?returnk,则returnk?TIME 否则returnk不变。

10) 若beti?15且Oj?13,则对每位在标记电梯j上的乘客增加运送时间: 对于k?firstj到i?1:

deliveryk=deliveryk+beti

并将第7步承运电梯上的当前乘客,且产生下一位乘客。 否则(标记电梯已经离开): 置limit=i?1且转第11步。

第11步至18步实现标记电梯j上全部乘客的运送: 11) 对于k?firstj到limit,执行第12到16步。 12) 计算乘客k呆在电梯里的时间:

N?floork?1 (一个指标)

17

elevatork=楼层间的运送时间+前面电梯停靠的额外时间(约两秒)+前面

乘客的转移时间+当前乘客的转移时间+前面楼层的开/关门时间+当前楼层的开门时间

?2N?2?Sj?m??3?FJ?m??3?5?Sj?m??5

m?1m?1m?1NNN

13) 计算乘客k的运送时间:

deliveryk=deliveryk+elevatork

14) 对总运送时间求和以得到平均运送时间:

DELTIME=DELTIME+deliveryk

15) 若deliveryk﹥MAXDEL,则MAXDEL=deliveryk

否则MAXDEL不变。 否则MAXELEV不变。

16) 若elevatork﹥MAXELEV,则MAXELEV=elevatork,

17) 计算电梯j的总停止次数、在运行中的时间及返回1楼大厅的时间:

stopj?stopj??Sj?m?

m?119

Max=Sj中最大一个非零分量的指标(即要去的最高楼层) eldelj=运送时间+乘客转移时间+开/关们时间

?2?Max?1??3?Fj?m??5?Sj?m?m?1m?11919

returnj?TIME?eldelj operatej?operatej?eldelj

18) 转第5步。

第19步至32步用于当前无电梯可乘用且已经形成等待排队的情形: 19) 初始化排队:

quecust?i (队中第一位乘客的编号)

startque?TIME (排队开始的时间) queue?1

arrivei?TIME

20) 产生下一位乘客并调整时钟:

i?i?1

18

生成beti和floori

TIME?TIME?beti

arrivei?TIME

queue?queue?1

21) 检验电梯的可乘用:

若TIME?return1,则j?1且转第22步,否则 若TIME?return2,则j?2且转第22步,否则

若TIME?return3,则j?3且转第22步,否则

若TIME?return4,则j?4且转第22步,

否则(仍无电梯可乘用)转第20步。

22) 电梯j可乘用。初始化楼层选择向量并确定排队长度: 对于k?1到19:

Sj?k??Fj?k??0

remain?queue?13

23) 若remain?0,则R?i且Oj?queue。

否则 R?quecust?12且Oj?13。

24) 电梯j承运乘客:

对于k?quecust到R:

Sj?Fk??1且Fj?Fk??Fj?Fk??1

25) 若queue?QUELEN,则QUELEN?queue

否则QUELEN不变。

26) 调整排队乘客总数:

quetotal?quetotal?Oj

QUETIME?QUETIME? 27) 若

m?quecust??TIME?arrive?

mR?TIME?startque??MAXQUE,则MAXQUE?TIME?startque

否则MAXQUE不变。

28) 以占用标记电梯上第一位乘客的编号设置标号:

firstj?quecust

29) 计算标记电梯上每一位乘客的运送和等待时间: 对于k?firstj到R:

deliveryk?15??TIME?arrivek?

waitk?TIME?arrivek

19

30) 若remain?0,则令queue?0且转第8步产生下一位乘客

否则令limit=R且对于k?firstj到limit执行第12到17步。结束后

转第31步。

31) 调整排队乘客总数检验电梯的可乘用: queue?remain quecust?R?1 startque=arriveR?1 32) 转第20步。

第33步至36步计算早高峰电梯模拟的输出值: 33) 输出以下数值:

N?i?queue,所服务的乘客总数 DELTIME?DELTIMEN,平均运送时间 MAXDEL,一位乘客的最长运送时间 34) 输出一位乘客呆在电梯里的平均时间和最长时间:

ELEVTIME??

35) 输出在最长的队中等待的乘客数,等待的乘客呆在队中的平均

时间和最长时间:

QUELEN QUETIME?MAXQUE

limit?m?和 MAXELEV elevatorlimitm?1QUETIME

quetotal36) 输出每一部电梯停止的总次数和每部电梯运行时间的百分比:

operatek 对于k=1到4:显示stopk和5100

停止

注:按照A First Course in Mathematical Modeling书中电梯模拟系统的算法15次独立模拟的结果,得到了一张代表3周的早高峰时间表,见附录表1。

20


电梯的模拟算法与优化调度方案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:汽车营销策划书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: