当前位置:
文档之家› 写字楼电梯系统的模拟系统——终结版
写字楼电梯系统的模拟系统——终结版
写字楼电梯运载问题及模拟系统
摘要:
本文依据乘客流为泊松流,乘客到达大楼的时间间隔服从负指数分布,所到的楼层服从均匀分布,确定写字楼早上上楼高峰时间,电梯的运营指标排队模型。此模型的建立是以系统达到平稳状态,以乘客到达一楼大厅的到达强度1.0
λ
=
的负指数分布为前提,求解出此电梯处于平稳状态时的各项运营指标。
然后设计电梯系统(系统中包括排队的乘客)模拟算法,再利用MATLAB为工具,通过编程实现电梯运营的整个过程(见附录),从而得到该电梯系统的运营情况。而且通过调整参数还可以得到电梯处于各种情况下运营状态,该模型具有一定现实意义。
关键词:指数分布、模拟系统、
1.问题重述
城市繁华地区有一座12层的写字楼,在高峰时间7:50-9:10,人们进入一楼大厅并乘电梯到所在的楼层,有4部电梯为大楼服务,乘客到达大楼的时间间隔在0-30秒内随机变化,达到后每个乘客可乘电梯1-4号,当某人进入电梯并选择达到楼层后,电梯在关门前等待15秒,如果另一个人在15秒内到达,这种等待将重新开始,如果15秒内无人到达,电梯就把全体乘客送上去。假定中途没有其他乘客要上电梯。送完最后一个乘客后,电梯回到大厅,途中也不上客人。一部电梯的最大容量为12人,当一位乘客来到大厅,没有电梯可乘,就开始大厅排队等待。对该写字楼电梯系统做理论分析,用计算机模拟电梯系统,回答下列问题:
1)在一个典型的早上高峰时间,电梯实际上为多少乘客提供服务?
2)如果一个人的等待时间是他在队伍中的时间,即从到达大厅到进入一部
可乘电梯的时间,问一个人在队中等待的平均时间和最长时间是多少?
3)最长的队长是多少?
4)如果运送时间是一位乘客从到达大厅到他或她到达要去的楼层的时间,
包括等电梯的时间平均运送时间和最长的运送时间是多少?
5)一位乘客实际上呆在电梯中的平均时间和最长时间是多少?
6)每部电梯停多少次?早高峰时间每部电梯实际上使用时间的百分比是多
少?
2.问题分析
写字楼电梯系统问题,可看作为的排队论问题。已知写字楼一楼大厅设有4部电梯,即该系统有4个服务窗口。又知,当没有可搭乘的电梯时,乘客即在大厅排队等待,不会离去。故该问题应建立:服务窗口个数为4的多服务窗等待制排队模型。
须解决如下问题:
1.确定乘客到达大楼时间间隔,及所到楼层的分布情况;
2.建立相应概率排队模型并对相应问题进行求解;
3.用计算机模拟电梯系统;
4.模拟系统运行,得出数据并进行统计。
3.模型假设
1.电梯每2秒上升(下降)1层;
2.到达某一楼层时,若有需要下电梯的乘客,则电梯在此楼层停留15秒;若
没有需要下电梯的乘客,电梯在此层不做停留,乘客进出电梯的时间也算在这15秒内;
3. 每层需要下电梯的乘客在15秒内可以全部走出电梯;
4. 写字楼内4台电梯运载情况相互独立,互不影响。
5. 若没有可搭乘的电梯,在大厅排队等待的乘客,不会离开,也不会放弃乘坐
电梯,即系统为等待制。
4. 符号说明
1) ()t N 在时间区间[)t ,0,()0>t 内到达的乘客数(人)
2) ),(21t t P 在时间区间[)21,t t ,)(12t t >内有n(≥0)位乘客到达的概
率,即{}n t N t N p t t P n =-=)()(),(1221,)(0,12≥>n t t
3) λ 乘客按泊松流到达一楼大厅的到达强度
4) T 两个相继乘客到达一楼大厅的时间间隔(秒) 5) τ 电梯搭载一位乘客所需的平均时间(秒)
6) μ 单位时间内电梯送完的乘客的均值(即电梯的平均服务率) 7) q W 乘客排队等候电梯的时间的均值(秒)
8) s W 乘客在系统内逗留时间(在大厅等待及搭载电梯的总时间)
的均值(秒)
9) W T 电梯的往返运行时间(秒) 10) H 平均最高到达的楼层
11) S 电梯离开大厅后停止的次数 12) v t 电梯的平均速度(层/秒)
13) s t 电梯在一楼以上楼层的每次停靠时间(秒) 14) M T 电梯相继到达一楼大厅的时间间隔(秒) 15) P 电梯每次搭载的人数(人) 16) 'λ 各个楼层的到达率 17) p 在某一层电梯停留的概率
18) q 在某一层电梯不停留的概率,即p q -=1
5. 模型建立与求解
5.1. 乘客到达大楼时间间隔,及乘客所到楼层分布情况的确定
由于乘客到达大楼的时间间隔在0-30秒内随机变化,且),(21t t P 满足: 1) 对充分小的t ?,在时间区间内有1个乘客到达的概率与t 无关,而与区间长度t ?成正比,即
)(),(1t t t t t P ?O +?=?+λ
其中)(t ?O ,当0→?t 时,是关于t ?的高阶无穷小;
2) t ?时间内到达的乘客数与起始时刻以前发生的事件相互独立; 3) 对于充分小的t ?,在时间区间[)t t t ?+,充分小的时间间隔内,内有2个或2个以上乘客到达的概率极小,可以忽略,即在充分小的时间间隔内,最多到达一个乘客:
∑∞
=?O =?+2
)(),(n n
t t t t P
实际情况与泊松分布的3个性质(平稳性、无后效性、普遍性)非常吻合,故认为乘客的到达形成泊松流,即:
,...
2,1,00!
)()(=>=-n t e
n t t P t
n
n λλ
当乘客流为柏松流时,两个相继乘客到达大楼时间间隔的分布函数为:
)(1)(1)()(0t P t T P t T P t F -=>-=≤=
由于t e t P λ-=)(0,故有
t
e
t F λ--=1)(
相应的分布密度为:
)0(0
00
)(>≤>??
?=-λλλt t e t f t
该函数为负指数分布的密度函数,故乘客到达大楼的时间间隔T 服从负指数分布。
易知:
λ1
=
ET 2
1
λ
=
DT
电梯搭载一位乘客所需的平均时间τ的分布函数与分布密度为:
t
e
t F μτ--=1)( t e t f μτμ-=)(
μ
ττ1
=
=E
又知,乘客所到楼层的分布情况,即乘客在电梯内搭乘电梯所用时间的分布情况。乘客在电梯内搭乘电梯所用时间,也就是相继离开系统的两顾客的间隔时间。同理可得,乘客所到楼层服从负指数分布,分布函数和密度分别是
t
e
t F μγ--=1)(,t e t f μγμ-=)(
本题题目要求乘客到达大楼的时间间隔,在0—30秒内随机变化。但现实生活中,乘客到达的间隔时间服从负指数分布,而且利用均匀分布在计算上没有可操作性。因而,采取在95%的概率下属于0—30秒内的负指数分布。从而求得该负指数的分布参数λ,1.0=λ。
下面是在该参数下产生的1000个点的分布情况:
由上图可看出,该分布所产生的点大多在[]30,0区间,这样的数据可以近似认为是符合要求的。 5.2. 建立排队模型
已知:一楼大厅设有4部电梯,且各部电梯的工作相互独立。又知:乘客按泊松流到达,到达强度为λ;各个电梯所到的楼层为指数分布,平均服务率为
μ,整个系统的平均服务率应为μ4。本题需求解当系统处于平稳状态时,电梯
的各项运营指标。系统的排队模型如图5.2.1。
离
去
图5.2.1. 多服务窗等待制排队模型框图
电梯运行一次时间求解
由平均最高到达的楼层()H ,电梯离开大厅后停止的次数S ,电梯的平均速度(v t 层/秒),及电梯的停靠时间s t ,可知电梯的往返运行时间:
()()s v W t S t H T 112++-=+
t p
+λ
又知,乘客到达时间间隔T 服从负指数分布,且其概率密度为:
)0(0
00
)(>≤>??
?=-λλλt t e t f t
于是单位时间到到达的人数()N 的期望为:
()()
λ==
T E N E 1
电梯相继到达一楼大厅的时间间隔为:
4
W M T T =
电梯每次搭载的人数为:
()t
t N E P λ==,121≤≤t λ
设:12
112
1>?
?=t t P λλ。又知,各个楼层的到达率为n
λ
λ=',则有:
(){}(),...2,1,0,!
''==
=-k e
k t k t N P t
k
λλ
当0=k 时,有t e q 'λ-=,于是:
t
e
p '1λ--=
{}(
)()∑
∑-=----=
==
n
i n
i t
i
n t
e
e
i i H iP H 1
1
''1λλ
(
)t
e
n p n S '1λ--?=?=
(
)()()()??
?
??
?
++
+-+??? ??--=----=∑s s
t
t
i
n t
N I t p
t e
n t e e
i t λλλλ111124'''1
由上式可求出,t=30.12s 即电梯运行一次需要时间W T =120.72 ,往返一次所载人数P=3.012 ,运行一次停车次数的期望为S=2.63 ,最高返回楼层期望
H=7.98 。
乘客人数为电梯运送平均人数乘以电梯运行的平均次数,等于480人;每部电梯所停的平均次数为104.3次。每部电梯使用的百分比=(运行一次平均时间-大厅等待时间-停车时间)/运行平均时间*100%=54.9%。 乘客在系统内逗留时间
由于乘客是均匀随机到达的,所以在一时间段内服务的乘客的平均等候时间为t/2,在下一个时间间隔得到服务的平均等待时间会略大于1.5t.所以乘客到达大厅后排队等待的时间为:
W q =P 0t
+1.5P 1t
式中
P 0——在一定时间间隔内的乘客数目小于电梯容量的概率; P 1——在一定时间间隔内的乘客数目大于电梯容量的概率。 可以求得
P 0=P N <12 =
(λt )i
i !
12?1
i=0
e ?λt
P 1=P N ≥12 =1?P 0
解得:W q =17
假设上楼高峰目的楼层均匀分布,即到达门厅的乘客去往各楼层的概率是相等的。于是有平均乘梯时间W r 等于平均最长乘梯时间W lr 和平均最短乘梯时间
W sr的均值,即:
W r=(W l+W s)/2
W lr是t的一部分,即t从中减去最高往返回楼层运行到大厅的时间、电梯的第一次停靠时间和部分乘客的转移时间,所以:
W lr=Ht v+St s
W sr包括部分乘客的转移时间一次停靠时间和电梯运行至最低停靠楼层的时间为:
W sr=ht v+t s
由于乘客在那层下服从均匀分布,所以h取(11-H)。
解得:W lr=70.48 W sr=36.04 W r=53.26
系统平均逗留时间有:
W s=W q+W r
所以,W s=70.26
5.3. 电梯系统(系统中包括排队的乘客)的计算机模拟
图5.4.1电梯系统的计算机模拟框图
1. 电梯状态的判定
该模型以乘客到达时间间隔累积和作为电梯外时间轴,电梯的工作时间与等待时间之和作为电梯内时间轴,以梯外时间与梯内时间的差值来判断电梯是否为
等待状态。若15
≤p则表明电梯处于等待状态,此时到达的乘客可以乘坐电
0≤
梯,若0
p或0
>
<则表明电梯正在运行,乘客需排队等候电梯。
2. 时间轴的改变
梯外时间等于乘客间隔时间累积和,即()
∑t x。每增加一人,梯外时间相应增加一个时间间隔。
梯内时间改变有以下几种情况:
1)乘客上梯:梯内时间等于梯外时间+上梯时间
2)电梯运行:梯内时间等于原有梯内时间+电梯运行时间
运行时间:等于电梯速度(秒每层)?最高目的层数?2+ 停梯数?平均下梯时间
3)同步时间:当电梯未参与运行,梯内时间等于梯外时间
3. 电梯的选择
若时间间隔满足第d部电梯乘坐条件,则乘客选择该电梯,同时判断电梯是
否超载,若超载则电梯直接启动,否则电梯继续等待。若不满足条件且15
p则
>
表面电梯已经出发,梯内时间等于原有梯内时间加15,运行电梯。
若4部电梯都不满足条件,则排队人数增加一人。
4. 电梯的选择
若时间间隔满足第d部电梯乘坐条件,则乘客选择该电梯,同时判断电梯是
否超载,若超载则电梯直接启动,否则电梯继续等待。若不满足条件且15
>
p则
表面电梯已经出发,梯内时间等于原有梯内时间加15,运行电梯。
若4部电梯都不满足条件,则排队人数增加一人。
5. 乘客的运送
先判断电梯是否空载。若空载表明电梯在一楼等候15秒未来乘客,电梯时间增加15秒;若电梯内有人,读取乘客目的楼层,计算停梯次数、总停梯次数,总运输人数、最高楼层、电梯运行时间等数据。
运送结束后判断等待人数是大于12,若大于则排队人数减12电梯再运行一
次。若排队人数小于12则电梯人数等于等待人数,等待人数清零。
6. 问题的求解
1)实际服务乘客数的计算:实际服务乘客数等于每部电梯运载人数之和
2)等待时间的计算:当乘客判断无电梯乘坐时,记录乘客到达大楼的时间,同时寻找p值大于零且最小的电梯,此电梯即为乘客将要乘坐的电梯,等待时间等
于该电梯到达时间减去乘客到达时间。
3)平均等待时间等于等待总时间除以等待总人数
4)最长队长的计算:若最长队长小于队长则将队长值赋予最长队长
5)乘梯时间的计算:乘梯时间等于电梯到目标楼层的运行时间加上电梯中途停梯消耗的时间,由于模型所限,运行中途消耗的时间无法准确模拟,可以通过二项分布估计中途停梯次数,计算平均乘梯时间,但最长运行时间可以精确模拟。
6)运送时间的计算:平均运送时间等于平均等待时间加上平均乘梯时间。
7)最长运送时间的计算:由于最长等待时间很大(大于一百秒),所以计算最长服务时间只考虑有等待的乘客。若乘客有等待则计算乘客的等待时间+(乘客的目标楼层*平均运行时间),以此计算的最长运送时间近似实际最长运送时间。(较实际少前方楼层停梯时间)
8)停梯次数的计算:在运输函数中加入计数器计算电梯停止次数
9)电梯使用百分比的计算:通过运输函数中的计数器计算电梯实际工作时间,电梯使用百分比等于电梯实际工作时间除以4800秒(高峰时间段7:50-9:10)。
综上,利用MATLAB软件,模拟电梯系统(系统中包括排队的乘客),具体流程,见图5.4.1。
面平均等待时间超过1分钟,而这对于写字楼这样繁忙的商业环境而言,这样的等待时间是一种浪费。再看大厅里面排队的人数,在高峰时段,最长排队人数达到了13,那么4部电梯排队的人数加起来就达到了50人之多,对于一个12层楼的写字楼来说确实显得过于拥挤。
如果电梯管理员想要改变这种状态的话,建议将电梯关门前的是15秒的等待时间调小,这样就能一定程度上提高电梯的使用率。或者再加一部电梯也能缓解这样的状况。
1)模型评价与推广
写字楼早上上楼高峰时间的电梯运载问题,是一个典型的排队问题。生活中,诸如此类的排队问题非常普遍。只要对本文所建立排队模型的参数作适当的调整,所得出的结论也可以广泛应用到其他排队问题情况的分析。如超市购物,图书馆借阅书刊、资料,汽车到加油站加油的排队问题等。而通过概率论得出的数据由于将很多细节理想化,数据不具有弹性,因而没有可操作性。
当生成随机数列严格符合0—30区间,每层楼运行时间为5秒时得到如下数据:
分符合实际情况,因而这个模拟系统是成功的。
参考文献:
[1]陆传赉,排队论,北京:北京邮电学院出版社,1994
[2]刘会灯,朱飞,MATLAB编程基础与典型应用,北京:人民邮电出版社,
2008
附录:
1.主程序main
format; %初始化
people; %生成时间序列与目标楼层序列
for t=1:n; %开始循环
for d=1:4; %开始选择电梯
g=0; %标记变量归零
p(d)=sum1(t+1)-Time(d); %计算时间差值
if p(d)>=0&p(d)<=15 %若时间间隔满足乘梯条件g=d; %标记所选电梯
break %跳出选梯循环else %若时间间隔超过等待时间if p(d)>0&N(d)==0 %若电梯内无人
g=d; %标记所选电梯
break %跳出选梯循环
else %若电梯内有人
e=d; %标记所排除的电梯
switch e %启动不符合条件的电梯
case 1
if p(d)>0
Time(1)=Time(1)+15;
transfor1
else
end
case 2
if p(d)>0
Time(2)=Time(2)+15;
transfor2
else
end
case 3
if p(d)>0
Time(3)=Time(3)+15;
transfor3
else
end
case 4
if p(d)>0
Time(4)=Time(4)+15;
transfor4
else
end
otherwise
e=0;
end
end
end
end
switch g %将乘客分配给所选的电梯case 1
lift1
case 2
lift2
case 3
lift3
case 4
lift4
otherwise
g=0;
end
if g==0 %若无满足条件的电梯则乘客排队W=W+1; %增加一人排队
AW=AW+1; %记录等待总人数
if Wmaxelse
end
WaitStart=sum1(t+1); %记录乘客开始等待时间
k=0;
for d=1:4; %寻找最快到达的电梯if p(d)>0
fast=p(d);
if fast>=p(d)
fast=p(d);
k=d;
else
end
else
end
end
if k==0;
Wait=0;
else
Wait=p(d); %计算实际等待时间
totalwait=totalwait+p(d); %计算等待总时间
servetime=Wait+15*goal(t); %估算运送时间
if MaxstMaxst=servetime; %记录最长服务时间else
end
if WaitingMaxWaitingMax=Wait; %记录最大等待时间else
end
end
else
end
end
2.初始化程序
time=[0;0;0;0];
i=0;
n=0;
sum1=[0];
x=0;
N=[0;0;0;0];
W=0;
p=[0;0;0;0];
t=0;
number=0;
Wmax=0;
num=[0;0;0;0];
totalnum=[0;0;0;0];
g=0;
Time=[0;0;0;0];
v=[0;0;0;0];
work=[0;0;0;0];
Waiting=0;
WaitStart=0;
AW=0;
fast=0;
WaitingMax=0;
Wait=0;
timemax=0;
totalwait=0;
Maxst=0;
k=0;
3.到达一楼大厅的人数生成
for i=1:inf; %寻找乘梯人数
x(i)=ceil(30*rand(1)); %来人时间间隔(0,30)
sum1(i+1)=sum1(i)+x(i); %计算总计时间
n=n+1; %计算全部人数
if sum1(i+1)>=4800; %超过时间结束循环
break
else
end
end
for i=1:n
goal(i)=ceil(11*rand(1));
end
4.乘客进入电梯的模拟程序
Time(1)=sum1(t+1);
N(1)=N(1)+1; %电梯一人数增加一人if N(1)>11 %若电梯满载
transfor1 %电梯上行
else %若不满载
end
Time(2)=sum1(t+1);
N(2)=N(2)+1; %电梯二人数增加一人if N(2)>11 %若电梯满载
transfor2 %电梯上行
else %若不满载
end
Time(3)=sum1(t+1);
N(3)=N(3)+1; %电梯三人数增加一人if N(3)>11 %若电梯满载
transfor3 %电梯上行
else %若不满载
end
Time(4)=sum1(t+1);
N(4)=N(4)+1; %电梯四人数增加一人if N(4)>11 %若电梯满载
transfor4 %电梯上行
else %若不满载
end
5.电梯运载程序
%电梯一
if N(1)~=0 %判断电梯内是否有人v(1)=v(1)+1; %计算电梯运行次数总和select1=[goal(t-N(1):t)]; %读取楼层选择
num(1)=length(unique(select1)); %计算需要停梯数目totalnum(1)=totalnum(1)+num(1); %计算总共停梯数number=number+N(1); %计算总共运输人数top=max(select1'); %计算最高楼层
time(1)=4*top+num(1)*15; %计算单次运输时间
if timemax