《管理系统模拟实例分析》由会员分享,可在线阅读,更多相关《管理系统模拟实例分析(38页珍藏版)》请在金锄头文库上搜索。
1、管理系统模拟实例分析1 引言2 工厂加工实例3 Arena与Visual Basic并行模拟实例1 引言n模拟模型是对所研究运行过程的一种抽象描述并能反映系统的本质属性。n模型类型n离散系统模型n连续系统模型n混合系统模型1 引言n建模方式n面向问题n面向运行过程n建模实例n工厂加工实例 nArena与Visual Basic并行模拟实例2 工厂加工实例 n一、问题描述某加工车间的单位工件到达的间隔时间为均值等于0.5h的指数分布随机变量。到达车间的工件中,1类工件占40,2类工件占60,第一个工件在模拟开始后5min到达。该车间分为两个加工小组,A组和B组。A组具有两台可以平行加工工件的机器
2、,称之为1号机器和2号机器。1类工件的单件加工时间为0.5h至1.4h区间内的均匀分布随机变量,2类工件的单件加工时间为最小值、众数、最大值分别等于50min、60min、80min的三角分布随机变量。在A组安排加工顺序的原则是最短加工时间优先。 2 工厂加工实例 A组的工作地面积有限,仅能容纳存放4个工件(包括正在加工的工件,每台机器每次只能加工一件)。当这两台机器同时空闲时,工件(无论1类或2类)送往1号机器加工的概率为0.35,送往2号机器加工的概率为0.65。 当工件到达时,如果A组工作地已经放满工件,那么就将工件转往B组,B组仅有一台3号机器加工工件,存放面积不受限制,1类工件和2类
3、工件的单件加工时间均为3h至5h区间内的均匀分布随机变量,安排加工顺序的原则是先到的先加工。2 工厂加工实例要求对这个系统进行240h的模拟,然后分析与评价下列指标:(1) 各台机器的负荷率;(2) 各类工件在系统内的停留时间;另外,变更加工顺序原则。A组改为最长加工时间优先,B组改为后到的先加工,再次进行模拟,并将两次模拟所得到的结果进行分析与比较。2 工厂加工实例n二、建模分析n(1) 由于A组机器加工两类工件的时间服从不同的随机分布,用两个Create模块分别产生1类工件和2类工件,这样可以解决加工时间不同的问题,但模型中又要求工件的到达时间服从均值等于0.5h的指数分布,而分离的Cre
4、ate模块是很难满足联合概率服从某一分布的,权衡两方面选择用一个Create模块来产生两类工件更合适。2 工厂加工实例n(2) 将由Create模块产生的工件按照1类工件占40,2类工件占60的比率分成两类,并为每类工件赋予一定属性,以记录该类工件的加工时间信息,以便后面的A组机器可以根据该属性来加工。n(3) A组工作地面积有限,仅能容纳存放4个工件,而B组工作地面积没有限制。所以产生加工实体后,在确定由那台机器加工时,需要首先决定是到那个组。决定是到那个组要通过一个Decide模块来实现。具体的判断规则与A组的两台机器的状态和在A组排队的数量来决定。2 工厂加工实例n(4) 由于A组工作地
5、面积有限,仅能容纳存放4个工件,且A组安排加工顺序的原则是最短加工时间优先,同时当A组两台机器同时空闲时,工件(无论1类或2类)送往1号机器加工的概率为0.35,送往2号机器加工的概率为0.65。所以我们可以首先用一个Hold模块对即将进入A组的工件进行排序,再用一个Decide模块来判断两台机器都是Busy还是只有一台处于Idle,对两台都处于Busy状态的情况,直接按照概率进入不同的机器加工,对只有一台处于Idle状态的情况可以再利用一个Decide模块来判断到底是哪种机器处于Idle状态,从而决定工件应该进入哪种机器加工。2 工厂加工实例n三、逻辑流程图与数据描述 n1. 产生工件进入系
6、统逻辑过程产生工件实体,并对不同工件进行标签。产生工件进入系统逻辑流图如下图所示。2 工厂加工实例n2. 进入B组机器加工的逻辑过程当两类工件产生后,由于A组的工作地面积有限,仅能容纳存放4个工件(包括正在加工的工件),如果A组工作地已经放满工件,那么就将工件转往B组。进入B组机器加工的逻辑流图如下图所示。2 工厂加工实例n3. 进入A组机器加工的逻辑过程两类工件到达“Machine_group?”模块后,当A组中两台机器正在加工的工件数和队列中等待的工件数之和小于4时,工件将进入A组加工。在A组工件首先需要进行等待,只有当机器1和机器2至少有一个空闲时才进行加工。进入A组机器加工的逻辑流图如
7、下图所示。2 工厂加工实例n4. 工件离开系统逻辑过程当工件在A组和B组机器中加工结束后就进入Dispose 模块,同时统计各台机器处理的工件数,工件离开系统逻辑流图如下图所示。2 工厂加工实例n四、模型运行参数设置点击菜单“Run”选择“Run Setup”弹出对话框,在Replication Parameters选项卡中的“Replication Length”文本框中输入240,对系统进行240h模拟。如右图所示。2 工厂加工实例n五、模拟结果及分析n 两种工件的加工数据统计(1)(2)从下图(1),(2),(3)可以看出,job1类工件和job2类工件的平均等待时间分别为4.7015和
8、9.1273,平均加工总时间分别为5.8115h和10.6477h。到达加工车间的job1类工件有197个,加工处理完了的也有179个。到达加工车间的job2类工件有313个,加工处理完的有279个,总共产生的工件为510个,加工处理完的为458个。2 工厂加工实例(3)2 工厂加工实例n 3台机器的负荷率数据统计从下图可以看出,机器1的负荷率为81.51%,机器2的负荷率为84.19%,机器3的负荷率为95.97%。2 工厂加工实例n 3. 队队列中工件的等待时间时间 和数量数据统计统计 从下图可以看出,可以看出,机器1和机器2的平均等待时间和数量为0,Hold_in队列中的平均等待时间为0
9、.5723,平均等待的工件数量为0.6605个,机器3的平均等待时间为56.7473,平均等待的工件数量为27.4212个。2 工厂加工实例变更加工顺序原则以后,即A组改为最长加工时间优先,B组改为后到的先加工,重新模拟运行多次,将上面运行的结果和重新模拟运行的结果进行比较,如下表所示。 方案1比方案2加工出来的工件数多,机器利用率高,在队列中的平均等待时间要短(ProcessB除外),平均等待的工件数目要少,所以总的来说方案1优于方案2。3 Arena与Visual Basic并行模拟实例n一、基于Arena的并行模拟实现概述n并行的两层含义n同时性n并发性 n并行模拟实现方法n(1) 在串
10、行模拟语言中加入并行处理n(2) 开发并行库和API接口n(3) 是在并行语言中加入模拟功能混合系统模型3 Arena与Visual Basic并行模拟实例nArena的特点n高级模拟器易用性n专用模拟语言柔性建模实例n还可以与通用面向过程的编程语言,如Visual Basic,FORTRAN和C/C+等编写的程序连接运行 3 Arena与Visual Basic并行模拟实例 n二、Arena的实时执行模式实例n1. 问题描述有两台不同的机器1和2。加工两种不同型号的零件:I和II型,机器和零件组成一个加工系统。每类零件的个数不限,但每个零件都须经过两台机器的加工才算完成加工过程,且I类零件先
11、在机器1加工后在机器2上加工,而II类零件的机器加工次序与之相反。首个I或II类零件均在时间t0时刻到达系统,而后续零件的到达间隔时间服从均值为4的指数分布或者通过外部程序和Arena的VBA事件之间的端口消息通信来控制。3 Arena与Visual Basic并行模拟实例 n零件到达机器后会一直处于加工状态,直到端口消息通信对正在机器上加工的零件发出完成的指令,零件才离开机器,被运送至另一台机器或离开系统。机器每次只能进行一个零件的加工,其他到达机器的零件需要排队等待。零件从到达系统到进入机器1或2、在两个机器间以及完成所有加工后离开系统均需花费5s的运送时间。零件到达系统、到达机器、完成加
12、工和离开系统等事件均通过消息通知外部程序。 3 Arena与Visual Basic并行模拟实例 n2. Arena流程图模型 n(1) 零件到达系统过程模型3 Arena与Visual Basic并行模拟实例 n(2) 机器加工零件过程模型 3 Arena与Visual Basic并行模拟实例 n(3) 零件离开系统过程模型n3. VBA事件及窗体 n具体内容见教材3 Arena与Visual Basic并行模拟实例 n4. 动画界面制作 n(1) 添加时钟项详见教材3 Arena与Visual Basic并行模拟实例 n(2) 添加变量项 点击Variable按钮,设置显示的变量为机器1上
13、正在加工的实体编号,即“Machine 1 Entity Number”,其数据格式为两位整数,并将变量项显示区域设置为白色,其他均为默认设置。同理添加变量 “Machine 2 Entity Number ”。添加两个变量项后,建模窗口视图如下图所示 。3 Arena与Visual Basic并行模拟实例 n(3))添加资源项 点击Resource 按钮 ,设置资源项的Identifier为Machine 1,并点击Open打开图片库“Machines.plb”,设置好的资源项对话框如左下图所示。同理,添加机器2的 资源项。将其Identifier 设置为Machine 2,则添加两个资源项
14、后,建模 窗口视图如下图所示。3 Arena与Visual Basic并行模拟实例 n(4) 添加队列项 点击Queue按钮 ,将队列项的Identifier设为Machine 1.Queue,其他均为默认设置如左下图所示。同理,添加另一个队列 。将其Identifier设置为 Machine 2.Queue ,则添加两个队列项后,建模窗口视 图如下图所示。3 Arena与Visual Basic并行模拟实例 n(5) 添加站台项 在传送动画工具栏中,点击站台按钮 ,将站台项的Identifier设为Arrival System,其他按默认设置。如左下图所示。同理,增加Identifier为
15、Machine 1 Station、Machine 2 Station和Depart System的站台项,增加四个站台项后如下图所示 。3 Arena与Visual Basic并行模拟实例 n(6) 添加路径项 点击传送动画工具栏中的路径按扭 ,绘制站台间的路径。设置图及动画图如下图所示。3 Arena与Visual Basic并行模拟实例 n(7) 再添加变量项 按(2)的方法,分别再添加两个变量项,将其变量表达式分另设为 NC(Part Type 1 Completed)和NC(Part Type 2 Completed),分别表 示已经完成加工的零件1和零件2的件数,其数据格式都设为五
16、位整数,显示区域设为白色。再添加两个变量项后的建模窗口如下图所示。3 Arena与Visual Basic并行模拟实例 n(8) 添加文本项 在绘图工具栏中,点击文本按钮,在对话框的文本框中输入 Machine 1,点击ok,移动鼠标,可置于任何位置。其他项可以同样添加文字说明项。设置图及动画图如下图所示。3 Arena与Visual Basic并行模拟实例 n(9) 设置实体图片 点击Arena菜单中的EditEntity Pictures项,点击Open打开 图片库“Objects.plb”,添加两图片,分别将其值设为Pic1和Pic2 ,分别表示I类零件和II类零件。点击OK,即完成实体图片的设置 ,如下图所示。3 Arena与Visual Basic并行模拟实例 n5. VB客户端开发与Arena发生消息通信,控制Arena中实体产生与VB客户端处理 是一个VB程序,其在VB6.0编程环境中的主窗体如下图所示。3 Aren