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