单服务台排队系统离散事件系统仿真实验课案Word文档格式.docx
- 文档编号:17549546
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:13
- 大小:346.04KB
单服务台排队系统离散事件系统仿真实验课案Word文档格式.docx
《单服务台排队系统离散事件系统仿真实验课案Word文档格式.docx》由会员分享,可在线阅读,更多相关《单服务台排队系统离散事件系统仿真实验课案Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
离散事件系统中最基本的概念是事件,事件发生引起系统状态的变化,用事件的观点来分析真实系统。
通过定义事件或每个事件发生系统状态的变化,按时间顺序确定并执行每个事件发生时有关逻辑关系。
(2)活动扫描法:
系统有成分组成,而成分又包含活动。
活动的发生必须满足某些条件,且每一个主动成分均有一个相应的活动例程。
仿真过程中,活动的发生时间也作为条件之一,而且较之其他条件具有更高的优先权。
(3)进程交互法:
将模型中的主动成分历经系统所发生的事件及活动,按时间发生的顺序进行组合,从而形成进程表。
系统仿真钟的推进采用两张进程表,一是当前事件表,二是将来事件表。
3.本实验采用的单服务台模型
顾客源是无限的,顾客单个到达,相互独立,一定时间的到达数服从指数分布。
(2)排队规则:
单队,且对队列长度没有限制,先到先服务的FIFO规则。
(3)服务机构:
单服务台,各顾客的服务时间相互独立,服从相同的指数分布。
(4)到达时间间隔和服务时间是相互独立的。
4.事件调度法的仿真策略
事件调度法的基本思想是:
用事件的观点来分析真实系统,通过定义事件及每个事件发生对于系统状态的变化,按时间顺序确定并执行每个事件发生时有关的逻辑关系。
按这种策略建立模型时,所有事件均放在事件表中。
模型中设有一个时间控制成分,该成分从事件表中选择具有最早发生时间的事件,并将仿真钟修改到该事件发生的时间,再调用与该事件相应的事件处理模块,该事件处理完后返回时间控制成分。
这样,事件的选择与处理不断地进行,直到仿真终止的条件或程序事件产生为止。
5.离散事件结果分析
仿真运行方式可分为两大类:
(1)终止型仿真:
仿真的运行长度是事先确定的
由于仿真运行时间长度有限,系统的性能与运行长度有关,系统的初始状态对系统性能的影响是不能忽略的。
为了消除由于初始状态对系统性能估计造成的影响,需要多次独立运行仿真模型。
(2)稳态型仿真:
这类仿真研究仅运行一次,但运行长度却是足够长,仿真的目的是估计系统的稳态性能。
三、理论分析
根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。
1、顾客到达模式
实体(临时实体)到达模式:
顾客。
实体到达模式是顾客到达模式,设到达时间间隔A1服从均值
=5min的指数分布
(A≥0)
2、服务模式
设服务员为每个顾客服务的时间为Si,它也服从指数分布,均值为
=4min
(S≥0)
3、服务规则
由于是单服务台系统,考虑系统顾客按单队排列,并按FIFO方式服务
4、理论分析结果
在该系统中,设
,则稳态时的平均等待队长为
,顾客的平均等待时间为
。
5、系统模型
三、设计算法
1、算法模型
2、仿真设计算法(主要函数)
利用指数分布间的关系,产生符合过程的顾客流,产生符合指数分布的随机变量作为每个顾客的服务时间:
Interval_Arrive=-log(rand(1,SimTotal))/Lambda;
%到达时间间隔,结果与调用exprnd(1/Lambda,m)函数产生的结果相同
Interval_Serve=-log(rand(1,SimTotal))/Mu;
%服务时间间隔
t_Arrive
(1)=Interval_Arrive
(1);
%顾客到达时间时间计算
t_Wait=t_Leave-t_Arrive;
%各顾客在系统中的等待时间
t_Queue=t_Wait-Interval_Serve;
%各顾客在系统中的排队时间
由事件来触发仿真时钟的不断推进。
每发生一次事件,记录下两次事件间隔的时间以及在该时间段内排队的人数:
Timepoint=[t_Arrive,t_Leave];
%系统中顾客数变化
CusNum=zeros(size(Timepoint));
CusNum_avg=sum(CusNum_fromStart.*[Time_interval0])/Timepoint(end);
%系统中平均顾客数计算
QueLength_avg=sum([0QueLength].*[Time_interval0])/Timepoint(end);
%系统平均等待队长
3、仿真程序(MatLab语言)
clear;
clc;
%M/M/1排队系统仿真
SimTotal=input('
请输入仿真顾客总数SimTotal='
);
%仿真顾客总数;
Lambda=0.2;
Mu=0.25;
t_Arrive=zeros(1,SimTotal);
t_Leave=zeros(1,SimTotal);
ArriveNum=zeros(1,SimTotal);
LeaveNum=zeros(1,SimTotal);
%到达时间间隔
%服务时间
%顾客到达时间
ArriveNum
(1)=1;
fori=2:
SimTotal
t_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);
ArriveNum(i)=i;
end
t_Leave
(1)=t_Arrive
(1)+Interval_Serve
(1);
%顾客离开时间
LeaveNum
(1)=1;
ift_Leave(i-1)<
t_Arrive(i)
t_Leave(i)=t_Arrive(i)+Interval_Serve(i);
else
t_Leave(i)=t_Leave(i-1)+Interval_Serve(i);
end
LeaveNum(i)=i;
t_Wait_avg=mean(t_Wait);
%各顾客在系统中的排队时间
t_Queue_avg=mean(t_Queue);
%系统中顾客数随时间的变化
Timepoint=sort(Timepoint);
ArriveFlag=zeros(size(Timepoint));
%到达时间标志
temp=2;
CusNum
(1)=1;
length(Timepoint)
if(temp<
=length(t_Arrive))&
&
(Timepoint(i)==t_Arrive(temp))
CusNum(i)=CusNum(i-1)+1;
temp=temp+1;
ArriveFlag(i)=1;
CusNum(i)=CusNum(i-1)-1;
%系统中平均顾客数计算
Time_interval=zeros(size(Timepoint));
Time_interval
(1)=t_Arrive
(1);
Time_interval(i)=Timepoint(i)-Timepoint(i-1);
CusNum_fromStart=[0CusNum];
QueLength=zeros(size(CusNum));
fori=1:
length(CusNum)
ifCusNum(i)>
=2
QueLength(i)=CusNum(i)-1;
QueLength(i)=0;
%系统平均等待队长
%仿真图
figure
(1);
set(1,'
position'
[0,0,1000,700]);
subplot(2,2,1);
title('
各顾客到达时间和离去时间'
stairs([0ArriveNum],[0t_Arrive],'
b'
holdon;
stairs([0LeaveNum],[0t_Leave],'
y'
legend('
到达时间'
'
离去时间'
holdoff;
subplot(2,2,2);
stairs(Timepoint,CusNum,'
)
系统等待队长分布'
xlabel('
时间'
ylabel('
队长'
subplot(2,2,3);
各顾客在系统中的排队时间和等待时间'
stairs([0ArriveNum],[0t_Queue],'
stairs([0LeaveNum],[0t_Wait],'
排队时间'
等待时间'
%仿真值与理论值比较
disp(['
理论平均等待时间t_Wait_avg='
num2str(1/(Mu-Lambda))]);
理论平均排队时间t_Wait_avg='
num2str(Lambda/(Mu*(Mu-Lambda)))]);
理论系统中平均顾客数='
num2str(Lambda/(Mu-Lambda))]);
理论系统中平均等待队长='
num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);
仿真平均等待时间t_Wait_avg='
num2str(t_Wait_avg)])
仿真平均排队时间t_Queue_avg='
num2str(t_Queue_avg)])
仿真系统中平均顾客数='
num2str(CusNum_avg)]);
仿真系统中平均等待队长='
num2str(QueLength_avg)])
四、仿真结果分析
顾客的平均等待时间与顾客的平均等待队长如下:
从上表对比中可以看出,通过这种模型和方法仿真的结果和理论值十分接近,当增加仿真顾客数时,可以得到更理想的结果。
证明使此静态仿真的思想对排队系统进行仿真是切实可行的。
实验结果截图如下(SimTotal分别为1000、2000、3000、5000):
五、实验心得
通过本次实验我对系统仿真与建模的过程有了更深的认识,同时对MatLab编程语言更加熟悉,并了解到仿真在生活实际中的重要作用,此次实验我受益匪浅。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 服务台 排队 系统 离散 事件 仿真 实验