1. 快速入门
BHTC Simulation内置了大量的描述工业生产流程、供应链运作流程的仿真模型元素,如生产线上的加工中心,传送设备、缓冲存贮装置、物流设施、车辆以及逻辑控制元素,如流程的倒班机制,事件发生的时间序列,统计分布等,用户可方便的使用这些建模元素建立其所规划或运营管理的生产流程系统的计算机仿真模型。通过其内置的仿真引擎,可快速的进行其流程系统的仿真模拟,展示流程的运行规律,计算系统的各项绩效指标。
使用BHTC Simulation建立工业系统流程的仿真应用,基本上由以下三大步骤与内容构成:
- 设施布局:分析流程,根据仿真目标合理选择建模对象,规划布局。
✤ 元素布局
✤ 可视化设计
- 流程定义:
✤ 设备运作参数定义
✤ 输入输出规则定义
✤ 生产调度规则设计
- 仿真运行:
✤ 仿真运行
✤ 统计分析
✤ 循环优化

以下,将结合具体的工业生产流程仿真建模的案例,介绍BHTC Simulation软件的使用。
【案例1】零件加工过程建模
- 流程描述
某机加工位只有1个设备进行零件加工。当毛坯零件到达工位时,先进入待加工库存位,等待加工。如果设备空闲,则立即从库存位置取一个毛坯进行机加工。加工过程工艺参数描述如下:
- 假设毛坯到达时间间隔服从均值为10小时的负指数分布。
- 设备为每个毛坯加工时间服从[6,14]小时的均匀分布。
- 建模要求
建立上述零件加工过程的仿真模型,运行100天=2400小时,分析:
- 加工设备利用率;
- 毛坯最大等待队列的最大长度;
- 已完成加工零件的数量
- 建模分析
在本案例的流程中需要进行设施布局的生产对象有三个,一是加工的对象,即零件;二是加工设备,即机器;三是待加工库存位。这实际上也是离散制造行业、服务行业中,最为常见的三类对象。流程建模工作的第一步,就是将BHTC Simulation软件中描述这三个对象的仿真元素找出来,拖拽到屏幕上“模型布局区域”,并适当调整他们在屏幕上的位置,从而完成案例流程的设施布局工作。
- 建模步骤
- 打开BHTC Simulation软件,下面通过“设计模版”来快速创建模型元素。点击“设计模版”区域中的“零件”图标
,并将鼠标指针移动到模型布局区域,这时鼠标指针变成建模元素“零件”的可视化表示图标的形状
,将其布置在模型布局区域合适的位置后,点击鼠标左键,完成该模型元素在模型布局区域的显示定位。 - 依次类推,点击“设计模版”区域中的“库存”图标
、设备图标
, 并分别将它们布置在模型布局区域合适的位置,从而完成本案例流程的设施布局工作。

模型结构树是仿真模型的信息的完全表达,即流程建模的所有信息都在模型结构树上呈现出来,“模型布局区域”所显示的可视化信息,只是模型的可视化表达部分,然而并不是所有的模型节点都需要可视化呈现。如果某些模型节点的功能只是为了完成模型运作逻辑的表达,那这些模型节点,是不需要定义它们的可视化内容的。
在本例中,我们使用设计元素模版,来创建所需要的模型元素节点,在这种方法中,系统事先定义好了每一种仿真元素的可视化内容,这样建模过程简便快捷。比如本例中,每一个模型元素的可视化内容有:元素名称、元素图标。还可以使用自定义的方法来创建模型元素,在那里,用户可以自行为自己所创建的模型元素添加、勾画需要的可视化内容,如文字、图形、图标等等。
- 双击模型结构树上的“Part1”节点(或者双击模型布局区域中的part1图标)打开“Part1”节点的属性对话框,

将鼠标在“到达时间间隔”下面的文本框中,退格键清除掉系统的缺省值“1”,鼠标点击模型结构区域中的“System”节点展开系统内置函数模组,进一步展开直至双击其“Math”模组下的“negexp”函数节点,此时negexp函数名全称自动拷贝到零件属性对话框的“到达时间间隔”文本框中,在文本框中,退格键去掉系统自带的lamda参数,录入本案例毛坯零件到达间隔均值10, 然后单击“确定”按钮,完成对案例中对毛坯零件在仿真运行时到达规律的参数定义(即本案例流程描述1的内容)。如下图所示:

- 双击模型结构树上的“Machine1”节点(或者双击模型布局区域中的机器图标)打开“Machine”节点的属性对话框,如下图所示。将鼠标在“加工时间”右侧的文本框中,退格键清除掉系统的缺省值“0”,鼠标点击模型结构区域中的“System”节点展开系统内置函数模组,进一步展开直至双击其“Math”模组下的“uniform”函数节点,此时uniform函数名全称自动拷贝到零件属性对话框的“到达时间间隔”文本框中,在文本框中,退格键去掉系统自带的minA,maxA参数,分别录入6,14,即本案例中设备为每个毛坯零件加工的时间服从6到14小时的均匀分布, 然后单击“确定”按钮,完成对案例中对机器设备在仿真运行时加工循环的参数定义(即本案例流程描述2的内容)。

- 接下来,对本案列所描述的系统对象之间的运作流程进行定义,从而完成案例的建模工作。在本案例中,进行动态运作的对象有两个,一是按照特定规律不断到达系统的毛坯零件,一是按照自己工作节拍进行重复加工操作的机器设备。首先定义“零件”的流程,双击模型结构树上的“Part1”节点,打开它的属性对话框,点击上面的“Push to”按钮,打开流程定义程序代码对话框,如下图所示:

将鼠标放置代码文本框内,并单击鼠标右键,弹出代码编辑菜单,点击“插入规则”-> “Push to”按钮后,系统自动将流程规则代码:插入到代码文本框内。如下图所示:

将鼠标置于array右侧的括号中间,然后双击模型结构树上的“Buffer1”节点,Buffer1元素的全称出现在代码中,如下图所示,然后单击“确定”按钮,完成对Part1节点的流程定义。

代码: push_to = array(“MM_Model_Buffer1”)的含义就是,在仿真运行时,一旦某个毛坯零件,按照其到达系统的规律被产生出来,就立即把它推送到模型元素Buffer1所代表的待加工库存位中去。
- 接下来,进行加工设备的流程定义,双击模型结构树上的“Machine1”节点,打开Machine元素的属性对话框,如下图所示:

在工业生产流程中,加工设备本质上就是对来料零件进行加工,加工完成后,把物料推送到下一个目的地,因此对加工设备的工作流程定义,就是定义待加工的物料来自哪里,加工完成后又输送到哪里,这两项内容,分别由点击“Pull from”按钮和“Push to”按钮实现。首先点击上图中的“Pull from”按钮,弹出流程代码对话框,将鼠标放置代码文本框内,并单击鼠标右键,弹出代码编辑菜单,点击“插入规则”-> “Pull from”按钮后,系统自动将流程规则代码:插入到代码文本框内。如下图所示:

将鼠标置于array右侧的括号中间,然后双击模型结构树上的“Buffer1”节点,Buffer1元素的全称出现在代码中,如下图所示,然后单击“确定”按钮,完成对Machine1节点的零件输入流程的定义。

代码: push_from = array(“MM_Model_Buffer1”)的含义就是,在仿真运行时,一旦加工设备空闲,它就立刻从Buffer1元素代表的库存位中搜索,看看有无零件可供加工,如有,就立即从其中取1个零件到加工设备的工作台上开始零件的加工操作。
点击“Push to”按钮,弹出流程代码对话框,将鼠标放置代码文本框内,并单击鼠标右键,弹出代码编辑菜单,点击“插入规则”-> “Push to Ship”按钮后,系统自动将流程规则代码:插入到代码文本框内。如下图所示:


代码: push_to = array(“ship”)的含义就是,在仿真运行时,当加工设备完成零件的加工,就立刻把它推送到外部世界,清空设备开始进行下一次加工。这里的“ship”是BHTC Simulation软件的系统保留字,专门用来指代使用其所建立的工业流程模型的外部世界,或者说此时当前这个零件已经完成它在模型中的使命,而离开模型。
- 仿真运行
至此,已完成在本案例流程的建模工作,接下来启动仿真引擎,进行模型的仿真运行,案例要求运行100天以观察系统的运行效果。在软件的控制面板区域,找到“仿真时长”输入框,先对仿真时长进行单位换算,将100天的仿真时长,换算成按小时计的仿真时长2400,输入到“仿真时长”输入框中,点击“运行模型”按钮,系统开始运行该模型的仿真运行,观察随着仿真钟时间的变化,在模型布局区域中,软件以动画方式,展示出案例模型的运行过程:零件不停的到达系统,进入到Buffer1元素中,然后进入加工设备Machine元素上加工,符合案例题目中的流程描述。到仿真钟到达2400后,模型完成仿真停止运行。
- 统计报表
仿真建模工作的目的在于通过仿真模型的运行,帮助用户发现系统的运行规律,仿真计算生产系统的各项绩效指标,据此评估所规划的系统或方案的性能,从而为进一步的系统优化提供条件。BHTC Simulation内置了大量的统计报表工具,帮助用户获得系统各项可观察的绩效指标。
- 勾选模型结构树上元素Part1、Buffer1、Machine1图标左侧的复选框,首先点击报表工具栏上的“零件报表”按钮,系统在模型布局区域显示出零件统计报表,如下图所示

此时,Part统计信息显示:当前时刻系统共计产生出235个零件(Part Entered),共计有230个零件离开系统(Part Shiped)。
- 点击报表工具栏上的“库存报表”按钮,系统在模型布局区域显示出库存统计报表,如下图所示:

此时,Buffer统计信息显示:在整个仿真周期内共计有235个零件进入库存(Total in),总计有231个零件离开库存(Total out),在库存中排队等待加工零件的最大队长是11(Max_Length),当前库存中还有1种零件(Part Type)待在库存中,数量为4。
- 点击报表工具栏上的“机器报表”按钮,系统在模型布局区域显示出机器元素的统计报表,如下图所示:

此时,机器状态统计信息显示:在整个仿真周期内,加工设备共计加工了230个零件(已完成加工次数),加工设备的加工时间占比,即设备的忙率是95.17%,等待零件时间占比4.83%,其中数值230即是本案例所描述生产系统的产能。
至此,完成了本案例的仿真建模工作,并且通过流程模型的仿真运行,回答了本案列的3个建模要求:
✤ 加工设备利用率:95.17%
✤ 毛坯最大等待队列的最大长度:11
✤ 已完成加工零件的数量:230
