案例2:流水生产线建模仿真
2.1 流程描述
- 案例描述
某生产车间“流水线”式生产线,由四道工序组成:称重、清洗、加工、检测。每道作业工序每次只能加工一个零件,零件长度为1米,工序之间零件依靠输送链运输,每段传送带长度10米,运行速度为1米/分钟,上面可最多允许放置5个零件,往输送链上放置零件时,与前一个零件至少保持0.5米以上的距离。如果输送链因输出阻塞发生零件堆积,零件之间堆积间距0.1米,每道工序的作业时间服从负指数分布,分布均值如下表:
| 工序名称 | 分布均值(分钟) |
| 称重 | 5 |
| 清洗 | 4.5 |
| 加工 | 4 |
| 检测 | 6.0 |
- 仿真目标
建立上述流水线作业工序的仿真模型,运行1天= 24*60 = 1440分钟,分析:
- 加工设备利用率;
- 零件在输送链上的堆积情况。
- 建模分析
在这里,一道作业工序就是一个“Machine”元素,作业工序每次只加工一个零件,即“Machine”元素输入数量为“1”,输出也为“1”,因此可选择“Production”类型的“Machine”元素来对作业工序进行建模表达。
流程描述中未提供零件是如何到达的,这样就选择“Passive”类型的“Part”元素代表零件,这种类型的“Part”元素实例,在仿真过程中是依据后面设备对它的需要,随时被产生出来,因此流程中第一道“称重”工序的物料输入规则,就直接使用“Pull from”这个“Part”元素,并且,这个“Part”元素实例一旦被产生出来,就初始化它的长度。“称重工序”完成工作后,把物料“Push to”到后面的输送链上,后道工序直接从输送链上“Pull from”物料。
因为流程中允许零件在输送链上堆积,因此选用BHTC Simulation系统的“Queing”类型的“Conveyor”元素描述流水线上的输送链。
- 建模步骤
- 启动BHTC Simulation仿真系统,点击控制面板上的“新建模型”按钮,开始模型构建过程。
- 点击设计模版中的“零件”图标定义一个新的”Part1″元素代表流程中的零件,接着在屏幕布局区域内移动鼠标,将它布置在布局区域适合位置后,双击该零件图标,打开它的属性对话框,点击“选择零件类型”下拉箭头,从下拉列表中选择“Passive”类型,然后点击“Action on Create”按钮,打开Action逻辑代码框,在代码框中点击鼠标,使之获得输入光标焦点,然后在模型结构树上找到“System”节点下的系统用来设置零件属性的内部函数“set_Attr”节点,双击该节点,在代码框中自动录入该内部函数代码,如下图所示:

然后鼠标双击“attName”字符串,单击鼠标右键,系统弹出当前模型中可进行设置的“属性名称”列表,从列表单击选择“Length”,并用退格键清除掉代码中的“Value”字符串,输入零件长度“1”,最后单击“确认”按钮,完成“Part1”零件元素的设计。
- 点击设计模版中的“机器”图标定义一个新的”Machine1″元素代表流程中第一道“称重”工序设备,接着在屏幕布局区域内移动鼠标,将它布置在布局区域适合位置,然后,在屏幕图形区点击选中该设备图标,单击鼠标右键弹出模型编辑快捷菜单,选中“图形编辑”按钮,参考案例1的操作,给“Machine1”元素在设备图标库中重新选择一个新的图标代表它。接下来,鼠标右键单击模型结构树上的“Machine1”节点,弹出系统模型编辑下拉菜单,从中选择“重命名”按钮,系统弹出“重命名”对话框,输入汉字“称重”,如下图所示:

单击“确定”按钮关闭提示框,这样在图形显示区“Machine1”设备图标上方就会显示对应的中文名称。
- 重复步骤3的操作,新建并在屏幕上布置好代表其他三道工序的“Machine”元素,如下图所示:

- 点击设计模版中的“传送带”图标定义流程中连接“称重”与“清洗”工序的输送链,操作如下:将鼠标移至“称重”设备图标的右下角区域位置,点击鼠标左键,接着鼠标滑向“清洗”工序图标,这时,屏幕上出现输送链路径(为使传输路径呈水平状态,可在滑动鼠标的过程中,同时按下键盘上“shift”按键)。调整输送链路径终点在“清洗”工序图标的左下角合适位置后,单击鼠标“右键”结束输送链的绘制。重复上述操作,为流程创建其他两段输送链后,模型布局如下图所示:

- 接下来定义工序设备的属性参数,以第一道“称重”工序为例:鼠标双击模型结构树上的“称重”工序设备节点,打开它的属性对话框,鼠标单击“加工时间”输入框,使之获得输入光标焦点,然后从模型结构树上找到“System”–>“Math”下面的负指数分布函数“negexp”节点,双击该节点,该函数名全称自动录入到工序设备的“加工时间”输入框中,接着使用退格键清除括号内的“lamda”字符串,输入这道工序的负指数分布均值“5”。如下图所示:

然后单击“Pull from”按钮,打开输入流程代码编辑窗口,在窗口中单击鼠标右键,从下拉列表中选择“pull_from”按钮,在代码框中自动录入“Pull from”流程规则代码语句,如下图所示:

这时鼠标点击字符串“array”旁边的括号内,使得括号内的位置获得当前输入光标焦点,然后找到模型结构树上的“Part1”元素节点,并双击该节点,“Part1”元素的全称自动录入“array”旁边的括号内,如下图所示:

然后单击“确认”按钮,关闭代码框,完成“Pull from”输入流程代码的录入工作。
类似的操作,单击“Push to”按钮,完成“Push to”输出流程代码的录入,录入的“Push to”流程规则代码语句代码如下:
push_to = array(“MM_Model_Con1”),括号内的字符串,即为第一条输送链元素的全称。
- 重复步骤6的操作,定义其余三道工序设备的流程代码“Pull from”、“Push to”以及加工时间。各项输入内容如下表:
| 工序名称 | Pull from 逻辑 | Push to 逻辑 | 加工时间(分钟) |
| 清洗 | pull_from = array(“MM_Model_Con1”) | push_to = array(“MM_Model_Con2”) | MM_System_Math_negexp(4.5) |
| 加工 | pull_from = array(“MM_Model_Con2”) | push_to = array(“MM_Model_Con3”) | MM_System_Math_negexp(4) |
| 检测 | pull_from = array(“MM_Model_Con3”) | push_to = array(“ship”) | MM_System_Math_negexp(6) |
- 接下来定义输送链设备的属性参数,以第一段输送链为例:鼠标双击模型结构树上的“Con1”输送链设备节点,打开它的属性对话框如下图所示:

选择“传送链类型”为“Queing”,并按流程要求,输入“传送带长度”、“分布距离”、“排队间距”等参数,如上图所示。
重复上述操作,输入其余两段输送链的属性参数。
- 仿真运行
在控制面板的“仿真时长”输入框内输入“1440”,点击“运行模型”按钮,系统开始运行该模型的仿真运行至“1440”分钟单位后结束仿真。然后勾选模型结构树上工序设备元素、输送链元素图标左侧的复选框,点击报表工具栏上的相应元素的统计报表按钮,得到这些工序设备元素、输送链元素的统计信息如下:
| 工序名称 | 等待零件时间占比 | 加工零件时间占比 | 输出阻塞时间占比 | 等待人工时间占比 | 复位时间占比 | 故障时间占比 | 已完成加工次数 |
| 称重 | 0 | 92.136 | 7.86 | 0 | 0 | 0 | 240 |
| 清洗 | 14.556 | 74.477 | 10.965 | 0 | 0 | 0 | 234 |
| 加工 | 20.9 | 60.763 | 18.336 | 0 | 0 | 0 | 231 |
| 检测 | 11.648 | 88.351 | 0 | 0 | 0 | 0 | 226 |
| 输送链名称 | Moving时间占比 | 输出Block时间占比 | 故障时间占比 | Total On | Now On |
| MM_Model_Con1 | 27.673 | 72.326 | 0 | 240 | 4 |
| MM_Model_Con2 | 37.913 | 62.086 | 0 | 234 | 2 |
| MM_Model_Con3 | 23.435 | 76.564 | 0 | 231 | 4 |
由“检测”工序设备统计信息可知,在1天中总计流水线生产完成了226个零件的加工,从三段输送链元素的统计信息可以看出它们的输出阻塞比较严重,达到了60%以上的水平。
在本案例模型的仿真过程中,每道工序的作业时间采用的是均值为5左右的负指数分布采样值,负指数分布采样的特点是大部分采样值在5分钟附近,较少部分会出现均值5倍左右的值,这样工序设备之间的作业节拍差别较大,导致产线作业不平衡,发生阻塞。比如某个时刻后道工序作业节拍长,而前道工序作业节拍短,就会造成它们之间的输送链发生阻塞;另外,如果输送链的规划不合理,上面允许进入零件数量较多,就会因为零件堆积过多,而容易发生阻塞的情况。
总之,在流水线模型建好后,就可方便地通过改变产线的运作参数,再次运行仿真实验,得到在新的产线配置参数下的产线的绩效KPI数值,快速地找到产能较高,且产线均衡的设计方案。
2.2 案列小结
在本案例流程描述中,使用了随机分布采样来表示流程中的工艺参数(工序的作业时间)。一旦模型中出现随机分布的参数,由于它们在每次仿真时的分布的采样取值,需呈现出符合其随机分布特征的随机性,每一次采样值都有可能不同,因此在分析仿真结果之前,就需要进行多次仿真,以取得系统绩效KPI的统计平均值。在工程应用时,同样的配置方案的模型,至少进行10次以上的仿真,取得统计平均,或者进行30次以上的仿真,取得KPI指标在某些置信度条件下的统计均值。
由于每台电脑的随机数发生器的初始化设置有可能不同,本案例模型在不同电脑上仿真结果的统计信息也有可能有差别,上述结果供参考,而由于作业节拍不同而产生的零件堆积现象是相同的。
为了能够清晰地观察到输送链上零件的堆积效果,可左、右滑动控制面板上的“仿真时长”旁边的滑动按钮,以控制仿真进程的快、慢,以及左、右滑动“显示速度”旁边的滑动按钮,进一步微调仿真动画的刷新频率,以获得清晰的流程动画视觉效果。
