实验2排队系统仿真一、学习目的1.了解仿真的特点2.学习如何建构模型3.熟悉eM-Plant基本的对象和操作4.掌握排队系统的特点与仿真的实现方法二、问题描述该银行服务窗口为每个到达的顾客服务的时间是随机的,表2.4是顾客服务时间纪录的统计结果表2.4每个顾客服务时间的概率分布服务时间(min)概率密度累计概率10.10.120.20.330.30.640.250.8550.10.9560.051.0对于上述这样一个单服务待排队系统,仿真分析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.1eM-plant界面与主要控件介绍1.实体:eM-Plant中包括3类实体:entity,container,transporter。Entity,属于被动体,本身在系统中不能移动,需和主动资源配合才能移动,常用于生产线上的半成品、仓库中的货物等;container,属于被动体,本身在系统中不能移动,需要和主动资源配合才能42135移动。做容器使用,在container中可以存储entity,如集装箱、托盘、纸箱等;transporter属于主动体,在系统中无论主动资源还是被动资源,均可以移动。常用于带动力的实体,如车辆、AGV小车、人等。实体在仿真系统中必不可少,任何系统具有1个或者1个以上的实体。2.toolboxstoolboxs是在仿真过程中需要使用的各重控件包括:materialFlow,Resources,InformationFlow,UserInterface,Tools等5个面板。本课程重点学习:materialFlow,InformationFlow,UserInterface三个面板。下面分别介绍如下:connection,连接线,表示实体的移动(或者资源之间的关系),如顾客到达后取号,则顾客到达资源则与取号机资源。实体从顾客到达资源进入取号机资源则二者之间去有connection连接。EventController,仿真钟,仿真系统钟必备资源,有且只能有一个,表示仿真过程钟的时间轴。source,drain,开始和结束资源,仿真系统钟必备资源,可以有多个,表示仿真系统的开始点和结束点。一般来说一个资源对应一个活动,对应实体在其上的一个时间段。一个活动或者一个资源有两个事件,开始事件和结束事件。但是source和drain是一种特殊的资源,只有一个事件,它表示一个时间点,而不是时间段。singleProc,ParallelProc,单工作台和并行工作台资源。可以表示任意的加工活动,如顾客接收银行业务员服务活动,取号机取号活动等。如果只有一个柜台提供服务,则使用singleproc,如果有多个柜台且服务时间和服务方式相同,则使用ParallelProc。如果有多个柜台且服务时间和服务方式不同,则使用多个singleProc。placebuffer,buffer,等候区。不同之处在于placebuffer进来的顺序和出来的顺序没有关系,而buffer则保证最先进来最先出去(FIFO,FirstInFirstOut),凡是需要排队等候的地方剧需要用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-PlantProfessional开始程序TecnomatixeM-Plant7.0eM-PlantProfessional打开后如图所示:2.创建新的模型,点选菜单栏FileNewModel出现下图:3.新增文件夹点选Model,按鼠标右键,出现object的功能表,选择NewFolder然后选中新建文件夹并右击出现快捷菜单,选择Rename进行重新名,名为“QueueSystem”。4.创建新的Frame,命名为“QueueFrame”选中QueueSystem文件夹,右击,选择NewFrame,然后右击Frame重命名5.创建主要控件(根据个人喜好,可将Frame最大化)选中tools工具栏中的source按钮,然后在Frame中单击创建source控件。用同样的方法创建buffer、singleproc、drain、eventcontroller等控件,同时用connection将其连接起来。6.创建一个实体选中MUs目录下的Entity,然后按住Ctrl,并拖到QueueSystem目录下,就复制过来了,右击改名为person。7.设置各控件属性双击source,打开其属性对话框,修改Attributes选项卡里面的MU值,单击后面的按钮,打开selectobject对话框,选择前面新建的person,单击OK。双击buffer按钮,先设置Attributes选项卡中的Capacity属性值,将其改为-1,表示无限量,单击Apply,然后选择times选项卡,将processingtime改为0,单击OK。双击Drain,将times选项卡中的processingtime值改为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选项卡中的DataType都改为integer,单击OK。10.修改person属性在左边根目录下双击Person,弹出对话框,选择CustomAttributes选项卡。单击new按钮,新建一个属性变量,Name为arrivaltime,DataType为time。单击OK,返回前面对话框,再新建两个类型为time的serverTime和waitTime的属性变量。11.编辑表格属性设置QueueTab第1列的DataType为integer,第2列的datatype为integer,第3列的DataType为real,第4列的DataType为integer,第5列的DataType为integer。设置CustomsTab第1列的DataType为integer,第2列的DataType为integer,第3列的DataType为time,第4列的DataType为time,第5列的DataType为real。设置customs20Tab的第1列的DataType为integer,第2列的DataType为time,第3列的DataType为time,第4列的DataType为time,第5列的DataType为time。操作:双击queuetab表,出现表格窗口。单击表格菜单栏中的formatinheritformat将其前面的勾去点。选中第一列,单击formatformat,出现listform