matlab仿真设计多服务台排队系统建模与动画仿真.docx
- 文档编号:3064895
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:22
- 大小:475.28KB
matlab仿真设计多服务台排队系统建模与动画仿真.docx
《matlab仿真设计多服务台排队系统建模与动画仿真.docx》由会员分享,可在线阅读,更多相关《matlab仿真设计多服务台排队系统建模与动画仿真.docx(22页珍藏版)》请在冰豆网上搜索。
matlab仿真设计多服务台排队系统建模与动画仿真
matlab仿真设计-多服务台排队系统建模与动画仿真
《系统仿真与matlab》综合试题
题目:
M/M/N排队系统(多服务员排队系统)的仿真
编号:
17
难度系数:
*****
姓名***
班级自动化****
学号******
联系方式*******
成绩
摘要
排队是在日常生活中经常遇到的现象,如顾客到商店购买物品,病人到医院看病常常要排队。
由于服务机构容量的限制,到达的顾客往往不能立即得到服务,而出现了排队现象。
排队论(又称随机服务系统理论)就是通过对排队系统进行研究从而建立数学模型的一种理论。
本系统主要基于排队论中多服务系统模型,利用matlab7.0实现模型的建立于仿真,并且通过动画的形式使使用者对整个仿真模型拥有一个直观的认识。
关键词:
多服务员排队系统排队论MATLAB仿真GUI
1.要求分析
仿真系统以运筹学中排队论为数学基础,根据其中的多服务台负指数分布排队系统建立仿真模型。
对于排队服务系统,顾客往往注重排队顾客是否太多、等待时间是否太长,而服务员则关心她的空闲时间。
因此队长、等待时间以及服务利用率等指标可以衡量系统性能。
多服务排队系统(M/M/N模型)中,按照顾客到达的时间概率分布为泊松分布,顾客服务时间的长短服从负指数分布的情况,对排队系统进行仿真。
其过程如下图:
2.问题分析
根据系统要求,设计过程中主要需要解决一下问题
1.利用MATLAB所提供的GUI工具,设计系统界面。
2.根据输入参数,建立服务模型,使顾客到达率符合泊松分布,顾客服务时间符合负指数分布,并由数学关系得到平均等待时间、平均队长、服务利用率。
3.通过输入参数,利用MATLAB图形功能实现系统动画仿真。
4.对整体系统进行调整,检验系统稳定性与正确性,完善系统功能。
5.对整个设计过程进行评估。
3.模型假设
根据系统设计要求与实际情况,服务系统基于以下假设:
1.顾客源是无穷的;
2.排队长度没有限制;
3.到达系统的顾客按先到先服务原则依次进入服务;
4.服务员在仿真过程中没有休假;
5.顾客到达时排成一队,当有服务台空闲时进入服务状态;
6.单位时间内到达的顾客数量服从泊松分布;
7.顾客所需的服务时间服从负指数分布;
8.各服务台服务无相互影响且平均服务时间相同。
4.模型分析
4.1排队系统构成
系统设计过程中,将排队过程分为到达过程,排队过程,服务过程三部分。
4.1.1到达过程
到达过程主要针对顾客到达情况,对于不同的模型背景,顾客到达情况有不同的限制,此次系统设计过程中顾客到达基于以下假设:
1.顾客源是无限的。
2.顾客单个到来,且相互独立。
3.顾客到达的时间服从泊松分布,且到达过程是平稳的。
4.1.2排队过程
排队过程规定顾客在排队过程中的排队规则,即规定顾客在排队系统中按怎样的规则、次序接收服务的,本次系统设计采用以下排队规则:
1.顾客到达时若所有服务台均被占用,则顾客均选择排队等候。
2.顾客的服务次序采取先到先服务。
3.队列数目为单列,顾客不会在排队过程中中途退出。
4.1.3服务过程
服务过程规定顾客在接收服务过程中的服务规则,本次系统设计采用一下服务规则:
1.服务机构为多服务台并联型(包括单服务台的特殊情况),各服务台独立为不同顾客提供服务。
2.服务采用先到先服务的原则,未设置服务优先级。
4.1.4系统性能
根据设计要求,系统性能参数主要包括以下部分
1.平均队长:
服务过程中顾客数的数学期望。
2.服务利用率:
服务台使用频率的数学期望。
3.平均等待时间:
指一个顾客在排队系统中排队等待时间的数学期望。
4.2参数分布与建模依据
系统中参数分布主要利用泊松分布和非负指数分布,其涉及的主要变量符号如下表所示:
符号
说明
单位
顾客到达时间参数
人数/分
顾客服务时间参数
人数/分
出现某种状态的概率
\
服务利用率
\
平均排队长
人
平均队长
人
平均逗留时间
分钟
平均等待时间
分钟
4.2.1非负指数分布
指数分布是单参数
的非对称分布,记作
,概率密度函数为:
它的数学期望为
,方差为
。
指数分布是唯一具有无记忆性的连续型随机变量,即有
,在排队论、可靠性分析中有广泛应用。
本文将用负指数分布来产生顾客的服务时间。
4.2.2泊松分布
泊松分布与指数分布有密切的关系。
当顾客平均到达率为常数
的到达间隔服从指数分布时,单位时间内到达的顾客数K服从泊松分布,即单位时间内到达k位顾客的概率为
记作Poisson(λ)。
泊松分布在排队服务、产品检验、生物与医学统计、天文、物理等领域都有广泛应用。
本文将用泊松分布来产生单位时间内到达的顾客数目。
5.M/M/N多服务台模型
5.1多服务台模型
根据模型分析中对系统的假设,系统具有N个独立服务台,且服务时间均服从参数为
的负指数分布。
顾客到达时间服从参数为
的负指数分布并且到达过程是平稳的。
记
为系统达到平稳状态后的队长N的概率分布,根据排队论有关方法可以得到:
和
记服务强度
,
,则当
时,可以得到
故
其中
为系统空闲的概率。
5.2服务利用率
由公式(8),可以得到服务利用率:
5.3平均队长
由公式(7)(8),可以得到平均队长:
其中
为平均等待人数且:
5.4平均等待时间
系统的平均等待时间可以有Little公式求得:
6.程序设计
6.1运算流程图
Y
6.2动画流程图
7.系统仿真结果
7.1程序界面介绍
程序运行时界面如下:
通过选择仿真类型可以在单服务台系统和多服务台系统之间切换,在输入框中输入有关参数,并按下“计算”按键,系统将计算有关参数,并显示出来。
下面以平均到达率0.9,平均服务率0.4,服务台数3为例,仿真结果如下:
计算结束后,单击“动画”按钮,可以观看仿真动画:
从动画界面可以看到,实时服务台数,空闲服务台数,实时队列长度,顾客总数统计均可通过右侧显示框实时显示,服务动画通过圆点显示顾客运动状态。
在动画状态下,可以通过按下“STOP”停止动画显示。
若输入参数不符合系统运行条件,按下“计算”后系统将会显示“错误警告”,如图所示:
8.系统评估与难点分析
8.1系统评估
1.经实际运行测试,系统可以准确实现对多服务台问题(包括单服务台问题)的分析处理,参数计算均符合理论结果。
2.系统仿真动画可以定性的对多服务问题进行动画模拟,为使用者提供直观印象。
3.系统仿真动画侧重于考虑对模型性能的反映,在界面上为进行进一步处理,美观程度略显不足。
4.整个系统基于理想化的M/M/N模型,与实际情况存在一定的差异,仿真结果无法很好的满足实际需求。
8.2难点评估
系统设计过程中难点主要在于两方面:
一是对于问题的建模与数学计算,由于MATLAB提供了丰富的数学函数,在很大程度上简化了建模的难度。
二是动画的实现,其主要难度在于动画的运行需基于一个特定的时间轴,满足一个指定的时间分布。
为了解决排队队列和服务台队列中时间点的更新,在设计中才用了了数据结构队列的思想,使动画能够按照要求进行。
9.参考文献
[1]王小平齐欢.系统建模与仿真.清华大学出版社[M],2004.7
[2]运筹学教材编写组.运筹学(第三版).清华大学出版社[M],2005.6
[3]陈垚光.精通MATLABGUI设计.电子工业出版社[M].2011
[4]罗华飞.MATLABGUI设计学习笔记.北京航空航天大学出版社[M].2011
10.附录
10.1模型数据计算程序
%-------------------------------------------------------------------------
%参数计算函数
%-------------------------------------------------------------------------
%---Executesonbuttonpressinjs.
functionjs_Callback(hObject,eventdata,handles)
%hObjecthandletojs(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
globalmode%仿真类型选择
globaldaoda1%顾客到达率
globalfuwu1%单个服务台服务率
globaltai1%服务台数
%axes(handles.myaxes);
%读取到达率,转换为数字
daoda=str2num(get(handles.ddl,'string'));
%读取服务率,转换为数字
fuwu=str2num(get(handles.fwl,'string'));
%tai=str2num(get(handles.fwts,'string'));
%switchmode
%case'd'
%tai=1;
%case's'
%tai=str2num(get(handles.fwts,'string'));
%end
%判断仿真类型
switchmode
case'd'%单服务台模式
liyong=daoda/fuwu;%获得服务强度
%----以下为仿真模型参数计算
if(liyong>0)&&(liyong<1)&&(daoda>0)&&(fuwu>0)
AP=zhuangtai(fuwu,daoda,1,liyong);
Lq=(liyong)*liyong*AP/((1-liyong)^2);
Ls=Lq+daoda/fuwu;
Wq=Lq/daoda;
Ps=1-AP;
daoda1=daoda;
fuwu1=fuwu;
tai1=1;
else
errordlg('输入错误,请重新输入','错误');
end
case's'%多服务模式
tai=str2num(get(handles.fwts,'string'));
liyong=daoda/(fuwu*tai)
if(liyong>0)&&(liyong<1)&&(daoda>0)&&(fuwu>0)&&(tai>0)
AP=zhuangtai(fuwu,daoda,tai,liyong);
Lq=((tai*liyong)^tai)*liyong*AP/(factorial(tai)*(1-liyong)^2);
Ls=Lq+daoda/fuwu;
Wq=Lq/daoda;
Ps=1-AP;
daoda1=daoda;
fuwu1=fuwu;
tai1=tai;
else
er
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 仿真 设计 服务台 排队 系统 建模 动画