1.实验目的:
通过建立一个产品测试工艺仿真系统,学习flexsim系统的建模,检测流程的效率,进一步学习模型调整与系统优化。 2. 实验数据:
产品到达速率:产品到达间隔时间服从均值为20秒、方差为2的正态分布 暂存区最大容量:25
检测机时间参数:准备时间是10秒,加工时间服从均值为30秒的指数分布 传送带参数:传送速度是1米/秒,传送带上同时最多传送10个产品
3.系统建模:
产品1 检测机器1 传送带 货架1 产品2 检测机器2 传送带 货架2 产品3 检测机器3 传送带 货架3
4. 建立flexsim模型:
双击桌面上的Flexsim图标打开软件,你可以看到Flexsim菜单、工具条、实体库,和正投影模型视窗。
图7-2 Flexsim软件界面
第1步:模型实体设计
模型元素 Flowitem 系统元素 原料 备注 不同实体类型代表不同类型的原料,分别标为1、2、3 进行不同的参数定义以表征不同机器组中的机器 可以进行搬运或加工等操作的人 给操作员进行任务分配的控制器 进行搬运操作的小车 Processor Conveyor Rack Operator Dispatcher Transporter Queue 机器 传送带 货架 操作员 调度器 叉车 机器组暂存区 Source Sink 原材料库 成品库 原材料的始发处 原料加工后的最终去处
第2步:按住鼠标左键,从库里拖出一个Source放到正投影视图中,如图7-3所示:
图
7-3 拖出一个Source
第3步:把其余的实体拖到正投影视图中,如图7-4所示:
图7-4 生成所有实体
第4步:连接端口
根据临时实体的路径连接端口。连接过程是:按住“A” 键(本步骤的连接均需要按住“A”),然后用鼠标左键点击Source1并拖曳到queue2,再释放鼠标键。拖曳时你将看到一条黄线,释放时变为黑线如图7-5所示:
图7-5 连接端口
连接queue到每个processor,连接每个processor到conveyor,连接每个conveyor到queue,连接queue到每个rack,这样就完成了连接过程。完成连接后,所得到的模型布局应如图7-6所示。
图7-6 连接所有实体端口
第5步:指定到达速率
鼠标左键双击
Source键打开其参数视窗(如图7-7所示)。
图7-7 Source参数窗口
所有的Flexsim实体都有一些分页或标签页,提供一些变量和信息,建模人员可根据模型的需求来进行修改。在这个模型中我们需要改变到达时间间隔和实体类型来产生3种实体。
根据模型描述,我们要设定到达时间间隔为normal(10,2)。现在,按下到达时间间隔下拉菜单中的箭头,选择“Statistical Distribution”选项(如图7-8)
该选项将出现在视窗里。如果要改变分布的参数,则选择模板 按钮,之后可以改变模板中任何蓝色的值。
选择模板
按钮,将看到这一视窗(如图7-9):
图7-9 模版编辑窗口
可以使用模板改变数值来调整分布,甚至可以插入一个表达式。在本模型中改变1为20。按确定键返回到参数视窗。
下面我们需要为临时实体指定一个实体类型,使进入系统临时实体的类型服从以1到3之间的均匀分布。最好的做法是在Source的“OnExit trigger”中改变实体类型,下步骤将介绍 。
第6步:设定临时实体类型和颜色
选择SourceTriggers分页。在“OnExit”下拉菜单框中,选择“Set color
by value(设定临时实体类型) ” (如图7-10)以改变临时实体类型和颜色。
在选定改变临时实体类型的选项后,按模板键
,可以看到下列信息:
图7-11 模版编辑窗口
离散均匀分布与均匀分布相似,但返回的不是给定的参数之间的任意实数值,而是离散整数值。
点击本视窗和Source参数视窗的ok键。
下一步是详细设定queue的参数。由于queue是在临时实体被processor处理前存放临时实体的场所,因此需要做两件事。首先,需要设定queue最多可容纳25个临时实体的容量。其次,设定临时实体流选项,将类型 1的实体发送到processor1,类型2的实体发送到processor2,依此类推。
第7步:设定queue容量
左键双击queue打开queue参数视窗(如图7-12)
图7-12 Queue的参数窗口
改变最大的容量为25。选择 按钮。
第8步:为queue指定临时实体流选项
在参数视窗选择临时实体流分页来为queue指定流程
在“Send To Port”下拉菜单中选择“Matching Itemtype (direct)(按实
体类型(直接))”(如图7-13)。
图7-13 选择按实体类型传送
由于我们已经分配实体类型号为1、2、3,我们就可以用实体类型号来指定临时实体通过的端口号。processor1应连接到端口1,processor2应连接到端口2,依此类推。
选定了“Matching Itemtypes ”之后,点击ok按钮关闭queue的参数视窗。 下一步是设定processor的时间参数。
第9步:为processor指定操作时间
双击processor1,打开processor1的参数视窗(如图7-14):
图7-14 Processor1参数窗口
在“Process Time”下拉菜单中,选“Statistical Distribution”的侧菜单中的“Exponential(指数分布)”。其默认的时间是10秒,我们需要30秒。因此,这里我们选择模板按钮
(如图7-15).
图7-15 模
版编辑窗口
将形状参数(scale value)改为30。这里指数分布的形状参数恰好是均值。按ok按钮关闭此视窗。这仅仅是这一次对processor所做的改变,今后的课程中还要考察一些其它的操作。按ok按钮关闭processor参数视窗。
对其它的processor重复上述过程。
第10步:向模型中添加一个dispatcher和两个operator
dispatcher用来为一组operator或transporter进行任务序列排队。在该例中,它将与两个operator同时使用,这两个operator负责将临时实体从queue
搬运到processor。
从库中点击相应图标并拖放到模型中,即可添加dispatcher和两个operator,如图7-16所示。
图7-16 添加dispatcher和operator
第11步:连接中间和输入/输出端口
queue将要求一个operator来拣取临时实体并送至某个processor。临时实体的流动逻辑已经在第1课中的queue设置好了,无需改变。只需请求一个operator来完成该任务。由于我们使用两个operator,我们将采用一个dispatcher来对请求进行排队,然后选择一个空闲的operator来进行这项工作。如果我们只有一个operator,就不需要dispatcher了,可以直接将operator和queue连接在一起。
为了使用dispatcher指挥一组operator进行工作,必须将dispatcher连接需要operator的实体的中间端口上。若要将dispatcher的中间端口连接到
queue,则按住键盘上的“S”键然后点击dispatcher拖动到queue。释放鼠标,就建立了一个从dispatcher中间端口到queue中间端口的连接(如图7-17)
图7-17 中间端口连接
中间端口位于实体底部中间位置。很明显它并非输入或输出端口。 为了让dispatcher将任务发送给operator,须将dispatcher的输出端口与operator的输入端口连接。实现方法是,按住键盘“A”键并点击dispatcher拖动到operator,如图所示。必须对每个operator进行此操作。连接如图7-18所示。
注:operator可能太小,不好连接,我们可以通过鼠标滚轮把图形放大后连接。
图7-18 dispatcher输出端口连接到operator输入端口
第12步:编辑queue临时实体流设置使用operator
下一步是修改queue临时实体流属性来使用operator完成搬运任务。可以左键双击queue打开参数视窗完成上述修改。视窗打开后,选择Flow栏。然后选中\"Use Transport\"复选框(如图7-21)。
图7-21 选中使用操作员
当选择了“use transporter”后将激活一个“Request Transport From”的新下拉菜单。这个下拉菜单将根据端口号来选择transporter或operator去搬运临时实体。在本例中,它被连接到dispatcher,由dispatcher将任务分配给operator。选择“ok”按钮关闭视窗。
第13步:为processor的预置时刻配置operator
为了使processor在预置时使用operator,必须连接每个processor的中间端口和dispatcher的中间端口。操作是:按住键盘“S”键点击dispatcher拖到processor释放。完成后,端口将如图7-22所示。
图7-22 dispatcher与每个processor中间端口的连接
现在我们需要为processor定义预置时间。双击第一个processor打开其参数视窗(如图7-23)。
图7-23
Processor3的参数窗口
在“Setup Time” 下拉菜单中选择“uniform” 选项,然后按 开代码模板视窗,将时间改为10(如图7-24)。
键来打
图7-24 模版窗口
点击“ok”按钮关闭代码模板视窗。点击主页中的 “Apply” 保存此改变。然后打开“Operators”分页。
选择\"Use Operator(s) for Setup\"旁的复选框。选择后,将会看到\"Number of Operators\"编辑区 和\"Pick Operator\"下拉菜单可用。预置所需的operator数量为1,\"Pick Operator\"的被选内容应设置为中间端口1,如图7-25所示。
图7-25 使用操作员进行预处理
点击“ok”按钮保存此改变并关闭视窗。对模型中的每个processor重复此步骤。然后编译、重置,并运行模型以确认在预置时间期间确实使用了operator。
第14步:添加transporter
在模型中添加叉车,来将临时实体从传送带末端的queue搬运到货架,这和添加operator来完成输入queue到processor之间的临时实体搬运是一样的。由于此模型中只有一辆叉车,所以不需要使用dispatcher。直接将叉车连接到暂存器的一个中间端口。
从库中拖出一个叉车放置到模型视窗中(如图7-26)。
图7-26 拖出一个叉车
添加叉车后,将queue的中间端口连接到此叉车。按住键盘“S”键点击queue拖动到叉车。
完成后,模型应如图7-27所示。
图7-27 完成叉车连接
第15步:调整queue的临时实体流参数来使用叉车
下一步是调整queue的临时实体流参数来使用此叉车。左键双击queue打开其参数视窗。
图7-28 queue的\"Use Transport\"复选框
选择Flow分页并选中\"Use Transport\"复选框,如图7-28所示。queue的中间端口1已经被连接上,因此无须其它调整。点击\"OK\"按钮关闭视窗.
第16步:设定用来安排临时实体从queue到rack的路径的全局表
下一步是设定一个全局表,用来查找每个临时实体将被送到哪个rack(或者,更确切的表述为,临时实体将从conveyor 后头的queue的哪个输出端口发
送出去)。这里假设条件是,输出端口1连接到rack1,输出端口2连接到rack2,输出端口3连接到rack3。本模型将把所有实体类型为1的临时实体送到rack2,所有实体类型为2的临时实体送到rack3,所有实体类型为3的临时实体送到rack1。下面是设定一个全局表的步骤:
1.在工具栏中选择
按钮。
按钮。
2.打开全局建模工具视窗后,按Global Table全局表旁边的全局表的下拉菜单中将会出现默认的表名称。
3.在全局表参数视窗中,将表的名称改为“rout” 4.设定此表有3行1列,然后点击apply按钮。
图7-29 修改Rows:3,Columns:1
5.将3行分别命名为item1、item2和item3,然后填入相应的临时实体要
被送到的输出端口号(rack号),如下:
6.选择全局建模工具视窗底部的close按钮。
现在,已定义了全局表,可以调整queue上的“\"Send To Port”选项。
第17步:调整conveyor后头的queue的“Send To Port”选项
注:因为conveyor的默认速度已经设为每时间单位为1,所以这次不需要修改conveyor的速度.
在conveyor后面那个queue上左键双击打开其产生视窗。选择临时Flow分页。在“Send To Port”下拉菜单中,选择“By Lookup Table(通过查表)”选项。选择了查表选项后,选择代码模板按钮。编辑模板来使用叫做“rout” 的表(如图7-30)。
图7-30 编辑代码模板来使用名为“rout”的表
选择确认按钮关闭模板视窗,然后再选择确认按钮来关闭参数视窗。
第18步:重新配置conveyor1和3的布局
使用conveyor1和3的参数视窗中的布局分页,使用
按钮增加直线和曲线传送带,同时改变其布局,使conveyor在末端有一个弧段,将临时实体输送到离conveyor后头的queue更近的位置去(如图7-31,7-32)。至少需要添加一个附加的弧段来实现此目的。注意,第2个分段的“type”的值是2,表示它是一个弧形分段。对于type1的分段,可以使用长度、上升高度和支柱数目等参数。对于type 2的分段,可以使用上升高度、弯曲角度、半径和支柱数目等参数。假如有兴趣在此布局分页中实验创建一些复杂的弯曲和倾斜上升的布局,将很有意思!
图7-31 添加分段来重新配置conveyor1和3
图7-32 配置好conveyor后安排布局
第19步:编译
图7-38 主视窗上的运行控制按钮
按主视窗的 按钮。完成编译过程后就可以运行模型了。
第20步:重置模型
为了在运行模型前设置系统和模型参数的初始状态,总是要先点击主视窗底部的
键。
第21步:运行模型
按 按钮使模型运行起来。
可以看到临时实体进入queue,并且移动到processor。从processor出来,实体将移动到conveyor,然后进入吸收器。你可以通过主视窗的速度滑动条改变模型运行的速度。
第22步:模型导航
当前,我们是从正投影视图视窗中观察模型的。让我们从透视视图中来观察它。选择正投影视图视窗视窗右上角的X来关闭它。选择工具条上的 钮打开透视视图(如图7-39)。
按
图7-39 透视试图
第23步: 数据显示与分析
因篇幅问题不能全部显示,请点此查看更多更全内容