实验2-单服务台单队列排队系统仿真

合集下载

MATLAB模拟银行单服务台排队模型

MATLAB模拟银行单服务台排队模型

MATLAB模拟银行单服务台排队模型银行单服务台排队模型是一种常见的排队模型,主要用于描述在银行等排队服务场所中,只有一个服务员的情况下,客户如何排队等待服务的情况。

1.模型假设在进行银行单服务台排队模型的建模过程中,我们需要进行一些假设,以简化问题的复杂性。

这些假设包括:-客户到达时间服从泊松分布:客户到达时间间隔服从泊松分布,即客户到达服从一个固定的时间间隔。

-服务时间服从指数分布:每个客户的服务时间是独立同分布的,服从指数分布。

-服务台只有一个:我们假设只有一个服务台,客户按照到达的顺序排队等待服务。

-客户不能提前离开:我们不考虑客户在等待期间可能会放弃等待而提前离开的情况。

2.模型参数在建立银行单服务台排队模型时,我们需要定义一些模型参数。

这些参数包括:-平均到达率λ:客户的平均到达率,表示单位时间内到达的客户数量的期望值。

-平均服务率μ:服务员的平均服务率,表示单位时间内服务的客户数量的期望值。

-服务台利用率ρ:服务台的利用率,表示服务台的平均使用率。

-平均等待时间W:客户平均等待服务的时间。

-平均队列长度L:客户平均排队等待的队列长度。

3.模拟过程为了模拟银行单服务台排队模型,我们使用MATLAB编程进行模拟。

以下是一个简单的模拟过程:-生成客户到达时间间隔:使用泊松分布生成客户到达时间间隔。

-生成客户服务时间:使用指数分布生成客户的服务时间。

-计算客户到达时间和服务完成时间:根据客户的到达时间间隔和服务时间,计算客户的到达时间和服务完成时间。

-计算客户的等待时间:根据客户的到达时间和服务完成时间,计算客户的等待时间。

-统计模拟结果:统计客户的等待时间、队列长度等模拟结果。

4.结果分析通过对模拟结果的分析,我们可以得到一些关键的结果,包括:-平均等待时间:通过计算客户的平均等待时间,可以评估服务台的效率和客户的等待体验。

-平均队列长度:通过计算客户的平均排队等待的队列长度,可以评估服务台的负载情况。

排队系统仿真

排队系统仿真

排队系统仿真学院:___浙江科技学院____专业班级:_______工业工程____姓名:____廖汉杰__________学号:____________________指导老师:___________________年月日目录一、实验名称 (3)二、实验目的 (3)三、实验内容 (3)四、仪器设备 (3)五、实验步骤 (4)1.添加控件 (4)2.设置发生器的参数 (4)3、设置处理器的参数 (4)4、模拟仿真模型 (5)5、统计数据 (5)六、方案改进 (6)一、实验名称排队系统仿真实验二、实验目的学习Flexsim仿真软件的基本用法并建立一个简单的排队模型;学习如何使用拉式逻辑,根据临时实体类型来定义临时实体的流程路径;学习统计数据的收集、分析与比较。

三、实验内容有两种类型的顾客,分别为类型1和类型2。

顾客到达的时间间隔服从指数分布exponential(0,10,1)。

两种类型的顾客随机的均匀到达。

有2个服务台为类型1的顾客提供服务,有3个服务台为类型2的顾客提供服务,顾客将首先到空闲可用的服务台接受服务。

类型1的顾客接受服务的时间服从(40,8)的正态分布,类型2的顾客接受服务的时间服从(60,12)的正态分布。

顾客接受完服务后离开系统。

以上时间单位皆为分钟。

对上述系统进行建模,仿真系统一天12小时的运行状况,收集各服务台的利用率、顾客的平均等待时间等数据,提出服务设施的改进建议,使得顾客的平均等待时间不超过30分钟。

四、仪器设备计算机、Flexsim仿真软件五、实验步骤1.添加控件首先flexsim仿真软件,软件,1个发生器,1个暂存区,5个处理器,1个吸收器,并连接各个实体控件。

如图1-1所示图1-12. 设置发生器的参数<1>到达时间间隔设置<2>发生触发器离开出发设置3、设置处理器的参数<1>定义发生器Processor1、Processor2为类型1的顾客提供服务,并设置其参数处理时间设置临时实体流设置<2>定义发生器Processor3、Processor4、Processor5为类型2的顾客提供服务,并设置其参数临时实体流设置4、模拟仿真模型先打开实验控制器按钮,设置系统仿真时间720分钟,再编译,然后运行,如图所示图5-15、统计数据P1P3P2P4P5六、方案改进1、分别增加一个类型1,类型2的处理器,连接控件,如图5-1所示图5-12、设置Processor6的设置如类型1的参数,设置Processor7的设置如类型2的参数3、运行模型,统计其数据P6P1P2P3P4P5P7。

simio软件排队问题的实验流程

simio软件排队问题的实验流程

四川大学系统仿真实验报告课程名称:系统仿真实验指导教师:刘柱胜学生姓名:宋晓民学号:2013141083013学院:商学院专业:工程管理一实验目的系统仿真是利用电脑软件来模拟实际生活中难以用传统的数学模型来解决的问题。

排队系统中,客户到达时间是随机的,服务时间也是随机的。

顾客的到达与离开事件改变系统的状态,这使排队系统具有典型的离散事件动态系统的特性。

而simio软件在这种复杂的离散事件动态系统建模中具有巨大的优势。

故采用Simio仿真软件对某服务系统的排队模型进行了建模和仿真分析,为各领域排队模型的建模仿真提供参考。

二实际案例问题假定售票处有三个窗口,顾客到达时间及各窗口服务时间服从一定的分布,分顾客自行随机选择队列和引入排号机使顾客等待叫号并到空闲窗口接收服务两种情况,通过对一些指标的分析来选取更加优化的方案。

三模型建立及重要参数的设置过程Model 1多队方案1首先画出source图标并将其改为arrive,3个server分别为server1、server2、server3,1个sink图标,并将其改为depart,再用path将他们之间按流程连接起来,要将path改为connector;最后添加1个modelentity,并在arrive,server1、2、3,depart,上添加status label,以增加计数功能,方便分析结果。

效果如下图2修改参数1)顾客的到达率为 6 人/分钟,间隔时间服从指数分布。

因此选中arrive,将其interarrivetime改为random.exponential(10),units改为seconds。

2)三个窗口的服务时间分别是:均值为0.5 分钟指数分布、(0.4 分钟,0.8 分钟,1 分钟)三角分布,(0.3 分钟,0.9 分钟)均匀分布。

选中server1,将其processtime改为random.exponential(0.5)单位为分钟。

作业一实验报告

作业一实验报告

单服务台排队系统仿真报告C语言程序一.排队系统组成1)到达模式:临时实体按怎样的规律到达,一般用到达时间间隔来描述。

平均到达时间间隔:Ta=T/a平均到达速率:单位时间内到达的临时实体1/Ta到达时间的分布函数A0(t):到达时间间隔大于t的概率2)服务机构:指同一时刻有多少服务台可以接纳临时实体,他们的服务要多长时间;3)排队规则:先到先服务、后到先服务、随机服务、优先权服务。

二.系统主要性能指标三.作业流程分析系统模型系统工作流程四.作业输出参数的计算1.作业要求的输出参数如下2.为输出1中分析结果而自定义的变量如下3修改部分程序分析以上是两个参数的初始化,其中,arrive_time_earliest变量是为了统计任一顾客在店内的逗留时间,将其与离开时间做差,得到逗留时间stay_time.进而可以得到total_stay_time,与仿真人数作比即得到顾客在店内平均逗留时间.Total_idl_time用来统计总的空闲时间,其实现方法如下图顾客服务万完后离开,此时,若队列为空,则服务台空闲,当前顾客离开时间和下一个顾客到来时间做差即得到空闲时间,每次叠加,即得到服务台总的空闲时间,与仿真总时间作比,即得到服务台的空闲率.同时,上图中也说明了顾客在店内逗留时间大于十五分钟的计算方法,只要把stay_time与15做比交,若大于,则stay_15min_count增加1.等待顾客数的统计如下图所示顾客的平均等待服务时间即为在队列中的延时时间,因此用同样积分的方法即可得等待服务的顾客平均数,此处不能简单地用num_in_q代替.顾客平均等待服务时间计算如下因为程序中已经给出每个顾客的等待时间,所以只需将其累加,再与总人数作比即得到结果.店内有三个顾客的概率计算如下当队列为2的时候,必有一个顾客在接受服务,所以此时店内有3顾客.所以,只需将从店内有3顾客这一事件开始时刻与当前仿真时间的差累加即可得到有3顾客的总时间.至少有一个顾客的概率即为服务台忙的概率,在此不做赘述.店内平均顾客数用总顾客数与仿真时间作比即得到.五.某次仿真的输出结果(stream为29)。

数学建模:排队系统仿真

数学建模:排队系统仿真
平均等待时间数据,横坐标为统计时 间段,纵坐标为平均等待时间,即统 计时间内到达的所有顾客等待时间之 和除以统计时间长度内到达的顾客总 数。
多服务台问题(每个服务台 的服务时间一样)
服务台服务时间为3
顾客到达间隔时间为1
2个服务台
输出排队长的动态 变化情况(用连续 图的形式显示输出)
多服务台问题(每个服务台 的服务时间可以分别设置)
“Stair”形式,即阶梯形式
“Stem”形式,即条状形式
单击“Signal Scope”窗口的“Axes”下拉菜单下的“AutoScale” 子菜单可以改变”Signal Scope”中的坐标
单击“Signal Scope”窗口的“Style”下拉菜单可以改变”Signal Scope”中的输出结果的线性表示形式。
双击“Times-Based Entity Generator”(基于 时间的实体产生器)模块,打开模块设置对 话框,进行模块属性设置。
Generate entities upons(实体产生): 选择”Intergeneration time from port dialog”时,在“Distribution”下拉菜单中 指定如下三种服务时间分布。
5、顾客属性分路形式:根据顾客的属 性,分不同的出口。
路径模块
顾客复制分路模块
顾客复制分路模块
双击顾客复制分路模块
1、顾客复制形式:所有的出口都畅通时,即进行 顾客复制。
2、顾客复制形式:只要有任何一个出口畅通,即 进行顾客复制。
顾客复制分路模块
双击随机数产生器中的 Distribution下来菜单选 择指定随机数。
打开“Single Server”对话框
双击“Single Server”模块

完整版MM1排队系统仿真matlab实验报告

完整版MM1排队系统仿真matlab实验报告

M/M/1排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度 法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值, 以与理论分析结果进行对比。

二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模 式、服务模式、服务员数量以及服务规则等因素决定的。

1、 顾客到达模式设到达过程是一个参数为的Poisson 过程,则长度为t 的时间内到达k 个呼常数,表示了平均到达率或Poisson 呼叫流的强度。

2、 服务模式设每个呼叫的持续时间为「,服从参数为的负指数分布,即其分布函数为P{X t} 1 e t ,t 03、 服务规则 先进先服务的规则(FIFO4、理论分析结果Q -在该M/M/1系统中,设,则稳态时的平均等待队长为1,顾客T --------的平均等待时间为 。

三、 实验内容M/M/ 1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按 FIFO (先入先出队列)方式服务。

四、 采用的语言MatLab 语言源代码:clear; clc;叫的概率 服从Poisson 分布,即Pk ⑴(t)k t k! e k 0,1,2,,其中 >0为一%M/M/1排队系统仿真SimTotal=input(' 请输入仿真顾客总数SimTotal='); % 仿真顾客总数;Lambda=0.4; % 到达率Lambda;Mu=0.9; % 服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;% 到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;% 服务时间t_Arrive(1)=Interval_Arrive(1);% 顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);% 顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; % 各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;% 各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];% 系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));% 到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp))CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;elseCusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum) if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);% 长系统平均等待队%仿真图figure(1); set(1,'position',[0,0,1000,700]);subplot(2,2,1);title(' 各顾客到达时间和离去时间'); stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y'); legend(' 到达时间',' 离去时间'); hold off;subplot(2,2,2); stairs(Timepoint,CusNum,'b') title(' 系统等待队长分布');xlabel(' 时间');ylabel(' 队长');subplot(2,2,3);title(' 各顾客在系统中的排队时间和等待时间'); stairs([0 ArriveNum],[0 t_Queue],'b');hold on;stairs([0 LeaveNum],[0 t_Wait],'y');hold off; legend(' 排队时间',' 等待时间');%仿真值与理论值比较disp([' 理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp([' 理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]); disp([' 理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp([' 理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp([' 仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp([' 仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)]) disp([' 仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp([' 仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1. 仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda; %到达时间间隔,结果与调用exprnd(1/Lambda, m)函数产生的结果相同In terval_Serve=-log(ra nd(1,SimTotal))/Mu; %服务时间间隔t_Arrive(1)=Interval_Arrive(1); %顾客到达时间时间计算t_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。

排队论系统仿真


于零,即
dPn (t ) 0, 对一切n 。 dt 因为稳态和时间无关,所以将符号简化,用 Pn 代替 Pn(t),于是
Pn n 1 n 2 0 P0 n n 1 1

i 0 n i 1
——平均服务率,即单位时间内接受服务的顾客数;
C——并列服务台的个数;

——服务强度。
通常,排队论研究的相关问题可大体分成统计问题和最优化问题两大类。 统计问题是排队系统建模中的一个组成部分,它主要研究对现实数据的处理 问题, 在输入数据的基础上, 首先要研究顾客相继到达的间隔时间是否独立同分
布,如果是独立同分布,还要研究分布类型以及有关参数的确定问题.类似地, 对服务时间也要进行相应的研究。 排队系统的优化问题涉及到系统的设计、控制以及有效性评价等方面的内 容。 排队论本身不是一种最优化方法,它是一种分析工具。常见的系统最优设计 问题是在系统设置之前, 根据已有的顾客输入与服务过程等资料对系统的前景进 行估计或预测,依此确定系统的参数。 系统最优控制问题是根据顾客输入的变化而对现有服务系统进行的适度调 整,即根据系统的实际情形,制定一个合理的控制策略,并据此确定系统运行的 最佳参数。作为一种分析工具,处理排队问题的过程可以概括为以下四步: (1)确定排队问题的各个变量,建立它们之间的相互关系; (2)根据已知的统计数据, 运用适当的统计检验方法以确定相关的概率分布; (3)根据所得到的概率分布,确定整个系统的运行特征; (4)根据服务系统的运行特征,按照一定的目的,改进系统的功能。
P0 (t ) e t
T 小于等于 t 的概率 P(T≤t)表示为 F(t) (累积分布函数) ,有
F (t ) 1 et

单服务员的排队模型

单服务员的排队模型:在某商店有一个售货员,顾客陆续来到,售货员逐个地接待顾客.当到来的顾客较多时,一部分顾客便须排队等待,被接待后的顾客便离开商店.设:1.顾客到来间隔时间服从参数为0.1的指数分布.2.对顾客的服务时间服从[4,15]上的均匀分布.3.排队按先到先服务规则,队长无限制.(1)模拟100个工作日,求出平均每日完成服务的个数及每日顾客的平均等待时间.MATLAB程序:clearsm=0;%总工作时间,初始为0m=0;%服务总个数for j=1:100jw(j)=0;i=2;x(i)=exprnd(10);c(i)=x(i);b(i)=x(i);while b(i)<=480y(i)=unifrnd(4,15);e(i)=b(i)+y(i);w(j)=w(j)+b(i)-c(i);i=i+1;x(i)=exprnd(10);c(i)=c(i-1)+x(i);b(i)=max(c(i),e(i-1));endi=i-2;t=w(j)/i %每j日顾客的平均等待时间m=m+i;sm=sm+w(j);%总的等待时间endm ; %100日服务总个数am=m/100 %输出平均每日完成服务的个数at= sm/m %输出平均每日顾客平均等待时间运行结果:j =1t =7.6488j =2t =21.5629j =3t =48.0306j =4t =15.3583j =5t =29.0681 j =6t =43.9925 j =7t =9.1838 j =8t =29.3542 j =9t =37.3775j =10t =36.6198 j =11t =15.1372 j =12t =11.9697 j =13t =46.2765 j =14t =5.0990 j =15t =12.4896 j =16t =19.3674 j =17t =27.7045 j =18t =13.7486 j =19t =24.3442 j =20t =10.8663 j =21t =8.0429 j =22t =10.372323t =11.8501 j =24t =14.3409 j =25t =46.0177 j =26t =8.8139 j =27t =5.3630 j =28t =12.8179 j =29t =7.2817 j =30t =11.1612 j =31t =9.3863j =32t =62.4873 j =33t =13.0453 j =34t =21.7910 j =35t =16.5294 j =36t =12.2347 j =37t =24.9796 j =38t =78.2435 j =39t =24.3057 j =40t =15.2035 j =41t =46.8024 j =42t =56.4635 j =43t =37.1819 j =44t =18.293145t =55.0295 j =46t =35.6992 j =47t =24.6073 j =48t =12.9206 j =49t =15.4886 j =50t =17.0108 j =51t =20.9452 j =52t =21.8094 j =53t =75.8497j =54t =25.1111 j =55t =34.9260 j =56t =32.5712 j =57t =27.9767 j =58t =29.5067 j =59t =29.4701 j =60t =19.2476 j =61t =16.3576 j =62t =8.8686 j =63t =29.0910 j =64t =14.7117 j =65t =36.7096 j =66t =46.951267t =7.7582 j =68t =11.8390 j =69t =43.2197 j =70t =97.6024 j =71t =70.4187 j =72t =8.5048 j =73t =4.1632 j =74t =18.7508 j =75t =41.1622j =76t =28.1712 j =77t =56.6012 j =78t =45.1566 j =79t =12.9582 j =80t =6.6022 j =81t =19.3046 j =82t =26.1914 j =83t =8.4448 j =84t =18.3721 j =85t =18.1843 j =86t =41.0727 j =87t =7.7466 j =88t =54.313889t =22.9150 j =90t =68.9592 j =91t =11.5373 j =92t =14.4600 j =93t =27.6556 j =94t =41.1297 j =95t =24.8645 j =96t =36.2404 j =97t =5.2884j =98t =7.2035 j =99t =25.1523 j =100t =24.6979 am =44.1400 at =27.1289。

计算机仿真排队系统实验报告(附代码)

计算机仿真实验报告第一题1. 作业内容应用排队系统流程图,用C语言编制仿真程序,求解以下问题。

修理店只有一个修理工,来修理的顾客到达次数服从泊松分布,平均4人/h;修理时间服从指数分布,平均需6min。

试求(随机数发生器采用float lcgrand(int stream) ,种子stream 为自己学号的最后两位。

):①修理店空闲的概率;②店内有三个顾客的概率;③店内至少有一个顾客的概率;④在店内顾客的平均数;⑤顾客在店内的平均逗留时间;⑥顾客必须在店内消耗15分钟以上的概率。

统计量实现算法:①修理店空闲的概率;p1=1-area_server_status/sim_timearea_server_status:总服务时间(即修理工在这段仿真时间里非空闲时间)sim_time:总仿真时间用1减去非空闲概率,即为空闲概率。

②店内有三个顾客的概率;p2=Three_people_time/sim_time增加变量Three_people_time,即有三个顾客在店内的时间。

三个顾客在店里,也就是说一个顾客在理发,两个人在排队,此时,无论是来一个新的客人或者离开一个客人,都会破坏这种三个人的状态,所以我们每次要统计的,就是这种三个人的状态持续的时间。

因此,用到的是time_since_last_event这个变量,该变量用于统计两种状态(事件,包括离开和到来)之间的事件。

因此,在每次计算完time_since_last_event之后,考察队伍中的人数是否为2,若为2,则把该段time_since_last_event加到Three_people_time中。

仿真结束时,用Three_people_time/总仿真时间,即为店内有三个顾客的概率。

③店内至少有一个顾客的概率;p3=p3=1-idle_time/sim_time增加变量idle_time,即店里空闲的概率(没有顾客),用1减去一个顾客都没有的概率,就是至少有一个顾客的概率。

MATLAB模拟银行单服务台排队模型

计算机仿真报告指导教师:潘劲松学生班级:计科1001 学生姓名:刘雄学号: 201003647 班内序号: 22MATLAB 模拟银行单服务台排队模型模型假设1。

在银行只有一个服务窗口,客户陆续来到,服务窗口逐个地接待客户.当到来的客户较多时,一部分客户便须排队等待,被接待后的客户便离开银行。

2。

客户到达的间隔时间服从指数分布(均值为10分钟);每个客户的服务时间服从均匀分布U[10,15]。

3。

客户到达时刻、客户服务完毕并离去时刻等均视为随机事件(瞬间完成)。

4。

排队按先到先服务规则。

符号说明arrive (i ):第i 个客户到达的时刻; wait(i) :第i 个客户的排队等待时间; servetime(i) :第i 个客户接受服务的时间; meantime(i) :客户的平均等待时间 n :客户数目模型的建立与求解在任意时刻t ,系统的状态可以用排队等候的客户数目和服务员是否在工作来描述。

排队等候的客户数目称为队长,记作L(t),为非负整数。

服务员的状态用S (t )表示,当服务员工作时,令S(t)=1;服务员空闲时,令S(t)=0。

系统的性能指标通常用排队长度、等待时间和服务利用率等来衡量。

由于它们随时间改变,一般用一段时间内的平均值作为数量指标。

有以下三个指标:1)平均队长 指队长L(t)在[0,T]内的平均值,计算公式为⎰=Tdt t L T L 0)(12)客户的平均等待时间 指每个客户平均等待的时间长度,记作W .3) 服务利用率 指服务员工作时间在T 中的比例,⎰=Tdt t S T U 0)(1为了简化问题,假设在上述模型下,系统的性能指标只有一个,即客户的平均等待时间.考虑用模拟方法来求W ,若系统能模拟出每位客户的等待时间序列},,,{21n D D D ,则∑==ni i D n W 11具体模拟步骤如下:第1步 调查并收集和处理数据,记录客户到达时刻、等待时间和服务时间.假定客户到达的间隔时间服从指数分布(均值为10分钟);每个客户的服务时间服从均匀分布U[10,15]。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2排队系统仿真一、学习目的1.了解仿真的特点2.学习如何建构模型3.熟悉eM-Plant基本的对象和操作4.掌握排队系统的特点与仿真的实现方法二、问题描述该银行服务窗口为每个到达的顾客服务的时间是随机的,表2.4是顾客服务时间纪录的统计结果表2.4 每个顾客服务时间的概率分布对于上述这样一个单服务待排队系统,仿真分析30天,分析该系统中顾客的到达、等待和被服务情况,以及银行工作人员的服务和空闲情况。

三、系统建模3.1 仿真目标通过对银行排队系统的仿真,研究银行系统的服务水平和改善银行服务水平的方法,为银行提高顾客满意度,优化顾客服务流程服务。

3.2.系统建模3.2.1 系统调研1. 系统结构: 银行服务大厅的布局, 涉及的服务设备2. 系统的工艺参数: 到达-取号-等待-服务-离开3. 系统的动态参数: 顾客的到达时间间隔, 工作人员的服务时间4. 逻辑参数: 排队规则, 先到先服务5. 系统的状态参数: 排队队列是否为空, 如果不为空队长是多少, 服务台是否为空6. 系统的输入输出变量:输入变量确定其分布和特征值,顾客的到达时间间隔的概率分布表和每个顾客被服务时间的概率分布. 输出变量根据仿真目标设定. 包括队列的平均队长、最大队长、仿真结束时队长、总服务人员、每个顾客的平均服务时间、顾客平均排队等待服务时间、业务员利用率等。

3.2.2系统假设1.取号机前无排队,取号时间为02.顾客排队符合先进先出的排队规则3.一个服务台一次只能对一个顾客服务4.所有顾客只有一种单一服务5.仿真时间为1个工作日(8小时)6.等候区的长度为无限长3.2.3系统建模系统模型:3.2.4 仿真模型1.实体:银行系统中的实体是人(主动体)2.属性:到达时间间隔、接受服务的时间、接受服务类型3.事件:顾客到达、开始取号、取号结束、进入队列、出队列、接受服务、服务完成、离开银行。

4.活动:到达、取号、排队、服务、离开5.资源:取号机、排队的座椅、服务柜台4 系统仿真4.1 eM-plant 界面与主要控件介绍1. 实体:eM-Plant 中包括3类实体:entity ,container ,transporter 。

Entity ,属于被动体,本身在系统中不能移动,需和主动资源配合才能移动,常用于生产线上的半成品、仓库中的货物等;container ,属于被动体,本身在系统中不能移动,需要和主动资源配合才能移动。

做容器使用,在container 中可以存储entity ,如集装箱、托盘、纸箱等;42 13 5transporter属于主动体,在系统中无论主动资源还是被动资源,均可以移动。

常用于带动力的实体,如车辆、AGV小车、人等。

实体在仿真系统中必不可少,任何系统具有1个或者1个以上的实体。

2.toolboxstoolboxs是在仿真过程中需要使用的各重控件包括:material Flow, Resources, Information Flow, User Interface, Tools等5个面板。

本课程重点学习:material Flow, Information Flow, User Interface三个面板。

下面分别介绍如下:connection,连接线,表示实体的移动(或者资源之间的关系),如顾客到达后取号,则顾客到达资源则与取号机资源。

实体从顾客到达资源进入取号机资源则二者之间去有connection连接。

EventController,仿真钟,仿真系统钟必备资源,有且只能有一个,表示仿真过程钟的时间轴。

source,drain,开始和结束资源,仿真系统钟必备资源,可以有多个,表示仿真系统的开始点和结束点。

一般来说一个资源对应一个活动,对应实体在其上的一个时间段。

一个活动或者一个资源有两个事件,开始事件和结束事件。

但是source和drain是一种特殊的资源,只有一个事件,它表示一个时间点,而不是时间段。

singleProc,ParallelProc,单工作台和并行工作台资源。

可以表示任意的加工活动,如顾客接收银行业务员服务活动,取号机取号活动等。

如果只有一个柜台提供服务,则使用singleproc,如果有多个柜台且服务时间和服务方式相同,则使用ParallelProc。

如果有多个柜台且服务时间和服务方式不同,则使用多个singleProc。

placebuffer,buffer,等候区。

不同之处在于placebuffer进来的顺序和出来的顺序没有关系,而buffer则保证最先进来最先出去(FIFO,First In First Out),凡是需要排队等候的地方剧需要用buffer或者placebuffer,一般来说buffer 更长用一些,实际的许多排队系统一般都是FIFO的排队规则。

lines,传送带资源。

entity,container,transporter均可以在其上被传送。

常用于运输皮带、链式输送机、辊子输送机等。

track,道路。

上述资源中唯一不带动力的资源,只有主动体才可以在其上运动,entity和container则无法使用track资源。

常用于道路、轨道。

flowcontrol,流控。

实体在加工过程中根据不同的情况会有不同的流向。

method。

前面已提及,除了source和drain,其他的资源可以表示一个活动(时间段),具有开始事件和结束事件。

eM-Plant软件中有很多类和对象,可以简化构建仿真系统的过程,因此如果没有特殊的要求,一般系统会自动执行。

但是,根据实际问题的需要,需要编制自己的开始事件和结束事件。

如本实验中,在对顾客进行服务前(开始服务事件),需要考虑顾客的服务时间是多少,系统无法自动完成,则必须使用method创建一个开始服务事件,插入服务台资源中,通过编程实现任意顾客的服务时间。

Method是编程工具,而编程则是对事件的编程。

Variable。

全局变量,在C语言中,存在全局变量和局部变量,eM-Plant 中与其相似,在method中定义的变量属于局部变量,但是,某些时候,某个变量需要在不同的mothod中使用,此时则用到全局变量。

table。

表,用于储存数据。

chart,制作各种图表3. FrameFrame 是仿真系统的工作界面,在Frame中建模并运行仿真系统。

银行系统中,顾客取号后排队等着叫号,根据不同的排队号类别被分成了多个排队队列,取号后分成多个队列则有flowcontrol控制。

在Frame中如图所示:顾客到达(source)后取号(singleproc)根据不同的顾客类型分类(flowcontrol),分为个人客户和企业客户,分别进入个人客户队列和企业客户队列进行排队。

在系统中有3个个人客户服务台(singleproc),如果任何一个个人客户服务台为空,则查找个人客户队列如果不为空,则选择最早进入的客户进行服务。

系统中有n个企业客户服务台,则使用一个多服务台资源(prallelproc)表示,任意一个服务台完成对顾客的服务后,顾客离开(drain),它们之间的关系用连接线表示(connection)。

针对本实验的单服务台系统则可以简单表示为:4.资源管理器资源管理器的功能是对资源进行管理;包括MaterialFlow、Resources、InformationFlow、UseInterFace、MUs、Tools、其功能与tools中的功能相同。

用户可以自己创建新的文件夹,创建新的Frame来实现仿真系统的构建。

5.consoleconsole,控制台,呈现编译和调式过程中的各种信息,包括出错信息、警告信息、输出信息等。

4.2 完成排队仿真系统1. 启动eM-Plant Professional开始>程序>Tecnomatix>eM-Plant 7.0 >eM-Plant Professional打开后如图所示:2. 创建新的模型,点选菜单栏File>New Model出现下图:3. 新增文件夹点选Model,按鼠标右键,出现object的功能表,选择New > Folder然后选中新建文件夹并右击出现快捷菜单,选择Rename进行重新名,名为“QueueSystem”。

4.创建新的Frame ,命名为“QueueFrame ”选中QueueSystem 文件夹,右击,选择New > Frame ,然后右击Frame 重命名5. 创建主要控件(根据个人喜好,可将Frame最大化)件。

用同样的方法创建buffer、singleproc、drain、eventcontroller等控件,同时用connection将其连接起来。

6. 创建一个实体选中MUs目录下的Entity,然后按住Ctrl,并拖到QueueSystem目录下,就复制过来了,右击改名为person。

7.设置各控件属性双击source,打开其属性对话框,修改Attributes选项卡里面的MU值,单击后面的按钮,打开select object对话框,选择前面新建的person,单击OK。

双击buffer按钮,先设置Attributes选项卡中的Capacity属性值,将其改为-1,表示无限量,单击Apply,然后选择times选项卡,将processing time改为0,单击OK。

双击Drain,将times选项卡中的processing time值改为0,单击OK。

双击Eventcontroller,选择settings选项卡,根据要求,设置Data为开始时间,End为结束时,单击OK。

8. 创建Method以及Tablefile在tools工具栏中选择Method按钮和Tablefile按钮,然后在Frame中创建相应的Method和Tablefile,右击弹出快捷菜单,选择Rename进行改名,分别创建6个Method和3个Tablefile。

Method:reset、init、endsim、arrivalintervaltime、customsevertime、computequeuelength;Tablefile:queueTab、customsTab、customs20Tab。

9.创建两个全局变量在tools工具栏里面选择Variable按钮,创建两个全局变量:SimulationTimes、QueueNumberCount,将两个全局变量中Value选项卡中的Data Type都改为integer,单击OK。

10.修改person属性在左边根目录下双击Person,弹出对话框,选择Custom Attributes选项卡。

单击new按钮,新建一个属性变量,Name为arrivaltime,Data Type为time。

相关文档
最新文档