1、第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 1第四章 单机器多产品作业过程建模与仿真1. 系统描述一生产企业中需要两类部件分别加工两种不同的产品,一类是标准型(standard),一类是豪华型(deluxe)。这两种部件都是主动进入系统的,两类部件到达间隔都服从均值为 10 的负指数分布,进入系统后存放在缓冲区store 中。有一台机器(machine1)从缓冲区中获取零件,根据获取零件种类的不同,需要的加工时间也不相同:如果获取到的是标准型零件,加工时间为9 分钟,如果获取的是豪华型零件,加工时间为 11 分钟。使用 WITN
2、ESS 中的属性元素可以达到以最简便的形式对该过程进行建模。通过 WITNESS 建立该作业流程的仿真模型,运行仿真 1000 个时间单位,收集如下数据:(1)两种产品的总的进入量;(2)两种产品被加工的数量;(3)设备忙率;2. 系统分析该模型的加工所需的零部件分别用 part 型元素 standard 和 deluxe 表示,加工机器用 machine 型元素 machine1 表示,缓冲区用 store 表示,另外还需要有一个属性 attribute 元素,用 process_time 表示,用来对两种不同类型的零件的加工时间进行区分,具体元素如表 1。表 1 元素说明元素名称 元素类型
3、 元素数量 元素作用Standard Part 1 模拟标准件Deluxe Part 1 模拟豪华件Process_timeAttribute1 规定零部件加工时间Machine1 Machine 1 模拟加工机器store buffer 1 模拟缓冲库存具体建成的模型界面如图 1 所示,参看“chap04 单机器多产品.mod”。第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 2图 1 单工序多产品作业过程仿真模型界面3. 模型建立3.1 定义元素单击工具栏中的图标 ,将弹出元素定义窗口,通过元素定义窗口定义下列元素: part:
4、standard、deluxe buffer:Store,数量为 1 machine:machine1,数量为 1 Attribute:process_time,数量为 1,种类为整数(integer)。3.2 元素可视化设计3.2.1 Part 元素可视化设计在元素最左边的 Element Selector 中的 Simulation 列表下,鼠标依次右击 standard、deluxe,选择 display 菜单项分别对这两个元素进行设计。下面以元素 standard 的可视化设计过程为例,进行介绍。 右击 standard,点击 display 进入 standard 元素的可视化设计对
5、话框,选择可视化对话框中的 draw 模式,选择属性对话框中的 name 项,点击图标更改字体颜色和字号,在这里我们选用默认值,单击 draw 按钮,在设计窗口中合适位置单击鼠标完成 name 属性的绘制。窗口此时出现了 standard元素的名称。第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 3 选择属性对话框中的 icon 选项,点击图标 ,选择 icon 图案,在这里我们选择红色的圆圈(在 picture gallery 中第 24 号图标),点击 draw 按钮,在设计窗口合适位置单击鼠标完成 standard 元素图标的
6、绘制。Deluxe 元素的可视化设计与 standard 的相同,只是在选择 icon 图案上选择绿色圆圈(在 picture gallery 中第 25 号图标)即可。如图 2 所示。图 2 deluxe 元素 icon 属性设计3.2.2 buffer 元素的可视化设计在该模型中设定 buffer 元素 store 的 name、icon、rectangle、text 以及expression 的可视化设定。Name 和 icon 元素的设定与 part 元素相同,在此不做详细介绍,下面对 rectangle、text 以及 expression 的可视化设定过程进行说明。(1)recta
7、ngle 矩形框可视化设计右击 store,点击 display 菜单项进入可视化设计对话框,选择 draw 模式,再选择 rectangle 属性,出现图 3 所示对话框,选择 图标下的 模式绘制空心矩形框,选择 图标修改矩形框的颜色,点击 draw 按钮在绘图区绘制矩形框。第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 4图 3 缓冲区 store 的 rectangle 可视化设计(2)expression 动态表达式可视化设计根据模型要求,无论是标准件还是豪华件都放在同一个缓冲区里,即都放在 store 中,但是在模型中需要
8、动态显示缓冲区中究竟存有多少标准件和多少豪华件,这就需要用 expression 来实现该功能。在此需要实时显示标准件和豪华件的存储数量,所以需要为 store 元素建立两个 expression 可视化项目。建立第一个 expression,用于动态显示 store 中的标准件数量的过程如下: 右击 store,点击 display 菜单项进入可视化设计对话框,选择 draw 模式,再选择 expression 属性项目,点击 图标进入属性可视化设计对话框,出现图 4 所示对话框。图 4 缓冲区 store 的 expression 可视化设计第四章 WITNESS 单机器多产品作业过程建模
9、与仿真北京惠特尼斯科技发展有限公司 www.witness- 5 在图 4 界面的 label 栏中输入该可视化属性的标识 standard,在expression 栏中输入“nparts2(store,standard,0)”,其中 nparts2 为Witness 系统函数,返回 store 中存有的 standard 部件的数量。 在 type 栏中选择 integer,表示返回数为整数,update 栏中选择 1,表示数据每隔 1 个时间单位就更新一次。 然后点击 draw 按钮,在设计窗口中单击鼠标,出现“0”字样,表示当前store 存放的 standard 零件数量为 0,至此完
10、成 standard。按照上述过程监理另一个名称为 deluxe 的 expression 可视化属性,用于动态显示 store 中 deluxe 零件的数量,其设计过程和 standard 的 expression过程相同,只是在 label 栏中输入“deluxe”,在 expression 栏中输入“nparts2(store,deluxe,0)”。单击 draw 按钮在设计窗口绘制,出现又一个“0“字样,表示此时 store 中存放的 deluxe 零件数量为 0。Expression 属性设置完成后,设计窗口中出现了 2 个“0”字样,表示在设计时刻 store 中两类零件 stan
11、dard 和 deluxe 存量均为 0。但是仅仅有两个数字列在 store 附近,其所指的零件存量含义并不明显,初看模型界面上这两个数值时,不能确切知道他们分别代表的含义,因此需要在每个数字前写上文本进行标识,即需要设计 store 元素的 text 可视化项目。(3)text 文本标识可视化设计可视化设计窗口中,选择 text 属性,点击 图标进入 text 可视化设计对话框,出现如图 5 所示对话框。图 5 text 属性设计在 label 栏中输入“standard text”,在 text 栏中输入“number of standard items”,点击 draw 按钮,在刚刚已经
12、建立的 standard 的expression 的“0”字样前单击鼠标,则“number of standard items”字样显示在界面中,提示后面的数字为 standard 零件在 store 中的存量。第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 6同样,重新建立一个 text 属性,在 text 栏中输入“number of deluxe items”,点击 draw 按钮,在刚刚已经建立的 deluxe 的 expression 的“0”字样前单击鼠标,则“number of deluxe items”字样显示在界面
13、中,提示后面的数字为 deluxe 零件在 store 中的存量。3.2.3 Machine 元素的可视化设计Machine 元素需要对 name、icon 以及 part queue 属性进行设置。Name、icon 设置方法与 part 元素相同,只需要选择合适的机器图案即可。Part queue 属性中,将默认的 count 改为 queue,并且选择 down 的零件排列方向,如图 6 所示。图 6 机器元素 Machine1 的 part queue 可视化设计注:机器的 Part Queue 可视化属性项:机器的 Part Queue 属性页中 Queue Type(排队类型)有两
14、种,含义分别介绍如下:(1)Count 计数型,如果设定了机器的排队类型为 Count,则机器上加工处理的零件按照数字的方式显示;(2)Queue 队列型,如果设定了机器的排队类型为 Queue,则机器上加工处理的零件按照零件的可视化图标显示出来;NPARTS2(element_name, part_name, mode):该函数返回一个整数,这个整数是在指定的元素 element_name 中包含的特定的零部件 part_name 的数量,mode 表示包含该元素的范围:第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 7 mode
15、=0 时,表示返回的零部件数量为指定的元素本身所存放的、以及该元素的输入、输出的专有缓冲里存放的零件数量; mode=1 时,表示返回的数量仅为指定的元素本身所存放的零件数量; mode=2 时,表示返回的数量仅为指定的元素输入专有缓冲区所存放的零件数量; mode=3 时,代表返回的数量仅为指定的元素输出专有缓冲区所存放的零件数量;其中输入、输出专有缓冲区仅可能出现在 Machine 类型的元素中,而在使用Nparts2 函数返回 Buffer 类型元素中指定零部件数量时,mode 取值一般均为0。示例:NUMBER_OF_PARTS = NPARTS2(PACK, ALL, 0)在该表达式
16、中,NPARTS2 函数返回机器 PACK 上所有类型零件的数量,包括机器专有输入、输出缓冲区以及机器正在作业的零件数量,然后将结果赋给变量 NUMBER_OF_PARTS。NUMBER_OF_PARTS = NPARTS2(PACK, BOX, 2)在该表达式中,NPARTS2 函数返回机器 PACK 的专有输入缓冲区中的零件数量,然后将结果赋给变量 NUMBER_OF_PARTS。4 元素详细设计4.1 Part 元素详细设计在模型中要实现两类零部件以不同的可视化方式显示出来,并各自按照独立的随机规则到达 store,同时要求两类部件的处理时间属性 process_time 各不相同,因此
17、,进行两类部件的详细设计如下。4.1.1 standard 元素详细设计双击 standard 元素,进入详细设计对话框,根据模型要求,对其设置如图7 所示。第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 8图 7 standard 元素详细设计 在 type 栏中选择 active 选项,表示零件是主动进入系统; 在 inter arrival 栏中输入 negexp(10,1),表示零件进入系统间隔时间服从均值为 10 个时间单位的负指数分布; 在 Lot size 栏中输入 1,表示每次进入系统批量为 1。 点击 To按钮,输
18、入“push to store”,表明零件进入系统后存放在store 缓冲区中; 点击 actions on create 按钮,输入“icon=24 process_time=9”,表明该零件在系统运行时动态图标为 picture gallery 中的第 24 号图标,与静态图标保持相同,并且加工时间属性元素赋值为 9 个时间单位。 点击确定按钮,完成设计。 4.1.2 deluxe 元素详细设计双击 deluxe 元素,进入详细设计对话框,根据模型要求,对其设置如图 8所示。第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 9图
19、8 deluxe 元素详细设计 在 type 栏中选择 active 选项,表示零件是主动进入系统的; 在 inter arrival 栏中输入 negexp(10,2),表示零件进入系统间隔时间服从均值为 10 个时间单位的负指数分布; 在 Lot size 栏中输入 1,表示每次进入系统批量为 1。 点击 To按钮,输入“push to store”,表明零件进入系统后存放在store 缓冲区中; 点击 actions on create 按钮,输入“icon=25 process_time=11”,表明该零件在系统运行时动态图标为 picture gallery 中的第 25 号图标,与
20、静态图标保持相同,并且加工时间为 11 个时间单位。 点击确定按钮,完成设计。 4.2 Machine 元素详细设计双击 machine 元素,进入机器详细设计对话框,按照模型要求,对其设置如图 9 所示。第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 10图 9 machine1 元素详细设计 点击 from按钮,输入“pull from store”,说明机器是从 store 里获取零件的; 点击 to按钮,输入“push to ship”,说明被加工完的产品送出系统之外; 在 cycle time 中输入 process_ti
21、me,说明加工时间根据当前被加工零件的 process_time 这一属性值来确定,在对 part 元素进行详细设计的时候,已经对标准件和豪华件分别进行了 process_time 的设置。模型在运行时,机器从 store 中按顺序获取零件,如果该零件为标准件,机器加工时间按照标准件的 process_time,即 9 分钟进行加工;如果获取的零件是豪华件,其加工时间为 11 分钟。 5. 元素逻辑规则设计元素逻辑规则已经在元素详细设计中的 to按钮中和 from按钮中设定了,所以在此不作介绍。6. 仿真实验及结果分析运行模型至仿真时间 1000,从图 10 中可以看出 machine1 的运
22、行效率为100%。但是 machine1 并不是非常高效的,因为许多的部件在缓冲区中排队等待了很长的一段时间(在仿真钟为 1000 时,machine1 处理了 100 个部件,但是还有 107 个仍然在缓冲区里,所有部件在缓冲区中的平均等待时间为 247.7 分钟)。模型运行的时间越长,情况越差:在仿真钟为 10000 时,部件在缓冲区的平均等待时间达到 2578 分钟。第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 11图 10 运行结果思考练习题1 有个 Buffer 元素 store 中存有零部件 A 和 B,其中 A 的数
23、量为 13,B 的数量为 20,则表达式 nparts(store,ALL,0)的值是多少?2 在模型中有一属性元素 process_time,表示不同的零件在某一机器上所需要的加工时间,那么,在机器详细设计中,对机器的加工时间 cycle time 栏中应输入的是如下哪项。A process_time B process_time() C match D cycle time3 在模型中有一个缓冲区元素 buf1,其数量 quantity 为 1,该缓存区可能存放两种类型部件 X 和 Y。希望模型在运行过程中能够动态显示当前 buf1 中的 Y部件数量,则需要通过设置 buf1 的如下哪一项
24、可视化属性项目来实现。A part queue B notes C expression D value第四章 WITNESS 单机器多产品作业过程建模与仿真北京惠特尼斯科技发展有限公司 www.witness- 124 在模型中有一个机器元素 mach,其数量 quantity 为 1,如果希望运行过程中动态显示当前处于机器 mach 上面等待加工或正在加工的零件总数量,可以通过如下哪些方式实现。A 设置 mach 的可视化属性 part queue,将 queue type 设置为 count;B 设置 mach 的可视化属性 part queue,将 queue type 设置为 que
25、ue;C 设置 mach 的可视化属性 expression,并将其 expression 表达式设为nparts(mach);D 设置 mach 的可视化属性 text,并将其 expression 表达式设为 nparts(mach,0);5 模型中有一台机器 mach 设置 pull p out of world 实现当其空闲时自动提取一个零件 p 进行加工,如果希望零件 p 在模型中的可视化图标为图库 picture gallery 中的 30 号图标,则可以通过如下哪些途径实现。A 在 p 的细节设置对话框中的 Actions on leave 中设定 :Picture=30B 在
26、p 的细节设置对话框中的 Actions on create 中设定:Picture=30C 在 mach 的细节设置对话框中的 Actions on input 中设定:Icon=30D 在 p 的细节设置对话框中的 Actions on create 中设定 :Icon=306 模型中有一个缓冲区 buf1 的 quantity 为 2,及其有两个库区 buf1(1)和 buf1(2),如果在系统运行中,零件 A 将进入 buf1(1),零件 B 将进入 buf1(2),可以通过如下哪个表达式获得 buf1 中的零件总数量。A nparts(buf1(1)B nparts(buf1(1)+buf1(2)C nparts(buf1)D nparts2(buf1(1)+nparts2(buf1(2)模型下载链接:http:/ www.witness-