实验二产品测试工艺仿真与分析1.实验目的:通过建立一个产品测试工艺仿真系统,学习flexsim系统的建模,检测流程的效率,进一步学习模型调整与系统优化。2.实验数据:产品到达速率:产品到达间隔时间服从均值为20秒、方差为2的正态分布暂存区最大容量:25检测机时间参数:准备时间是10秒,加工时间服从均值为30秒的指数分布传送带参数:传送速度是1米/秒,传送带上同时最多传送10个产品3.系统建模:4.建立flexsim模型:双击桌面上的Flexsim图标打开软件,你可以看到Flexsim菜单、工具条、实体库,和正投影模型视窗。检测机器1检测机器2检测机器3传送带传送带传送带货架1货架2货架3产品1产品2产品3图7-2Flexsim软件界面第1步:模型实体设计模型元素系统元素备注Flowitem原料不同实体类型代表不同类型的原料,分别标为1、2、3Processor机器进行不同的参数定义以表征不同机器组中的机器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-7Source参数窗口所有的Flexsim实体都有一些分页或标签页,提供一些变量和信息,建模人员可根据模型的需求来进行修改。在这个模型中我们需要改变到达时间间隔和实体类型来产生3种实体。根据模型描述,我们要设定到达时间间隔为normal(10,2)。现在,按下到达时间间隔下拉菜单中的箭头,选择“StatisticalDistribution”选项(如图7-8)该选项将出现在视窗里。如果要改变分布的参数,则选择模板按钮,之后可以改变模板中任何蓝色的值。选择模板按钮,将看到这一视窗(如图7-9):图7-9模版编辑窗口可以使用模板改变数值来调整分布,甚至可以插入一个表达式。在本模型中改变1为20。按确定键返回到参数视窗。下面我们需要为临时实体指定一个实体类型,使进入系统临时实体的类型服从以1到3之间的均匀分布。最好的做法是在Source的“OnExittrigger”中改变实体类型,下步骤将介绍。第6步:设定临时实体类型和颜色选择SourceTriggers分页。在“OnExit”下拉菜单框中,选择“Setcolorbyvalue(设定临时实体类型)”(如图7-10)以改变临时实体类型和颜色。在选定改变临时实体类型的选项后,按模板键,可以看到下列信息:图7-11模版编辑窗口离散均匀分布与均匀分布相似,但返回的不是给定的参数之间的任意实数值,而是离散整数值。点击本视窗和Source参数视窗的ok键。下一步是详细设定queue的参数。由于queue是在临时实体被processor处理前存放临时实体的场所,因此需要做两件事。首先,需要设定queue最多可容纳25个临时实体的容量。其次,设定临时实体流选项,将类型1的实体发送到processor1,类型2的实体发送到processor2,依此类推。第7步:设定queue容量左键双击queue打开queue参数视窗(如图7-12)图7-12Queue的参数窗口改变最大的容量为25。选择按钮。第8步:为queue指定临时实体流选项在参数视窗选择临时实体流分页来为queue指定流程在“SendToPort”下拉菜单中选择“MatchingItemtype(direct)(按实体类型(直接))”(如图7-13)。图7-13选择按实体类型传送由于我们已经分配实体类型号为1、2、3,我们就可以用实体类型号来指定临时实体通过的端口号。processor1应连接到端口1,processor2应连接到端口2,依此类推。选定了“MatchingItemtypes”之后,点击ok按钮关闭queue的参数视窗。下一步是设定processor的时间参数。第9步:为processor指定操作时间双击processor1,打开processor1的参数视窗(如图7-14):图7-14Processor1参数窗口在“ProcessTime”下拉菜单中,选“StatisticalDistribution”的侧菜单中的“Exponential(指数分布)”。其默认的时间是10秒,我们需要30秒。因此,这里我们选择模板按钮(如图7-15).图7-15模版编辑窗口将形状参数(scalevalue)改为30。这里指数分布的形状参数恰好是均值。按ok按钮关闭此视窗。这仅仅是这一次对processor所做的改变,今后的课程中还要考察一些其它的操作。按ok按钮关闭processor参数视窗。对其它的processor重复上述过程。第10步:向模型中添加一个dispatcher和两个operatordispatcher用来为一组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-18dispatcher输出端口连接到operator输入端口第12步:编辑queue临时实体流设置使用operator下一步是修改queue临时实体流属性来使用operator完成搬运任务。可以左键双击queue打开参数视窗完成上述修改。视窗打开后,选择Flow栏。然后选中UseTransport复选框(如图7-21)。图7-21选中使用操作员当选择了“usetransporter”后将激活一个“RequestTransportFrom”的新下拉菜单。这个下拉菜单将根据端口号来选择transporter或operator去搬运临时实体。在本例中,它被连接到dispatcher,由dispatcher将任务分配给operator。选择“ok”按钮关闭视窗。第13步:为processor的预置时刻配置operator为了使processor在预置时使用operator,必须连接每个processor的中间端口和dispatcher的中间端口。操作是:按住键盘“S”键点击dispatcher拖到processor释放。完成后,端口将如图7-22所示。图7-22dispatcher与每个processor中间端口的连接现在我们需要为processor定义预置时间。双击第一个processor打开其参数视窗(如图7-23)。图7-23Processor3的参数窗口在“SetupTime”下拉菜单中选择“uniform”选项,然后按键来打开代码模板视窗,将时间改为10(如图7-24)。图7-24模版窗口点击“ok”按钮关闭代码模板视窗。点击主页中的“Apply”保存此改变。然后打开“Operators”分页。选择UseOperator(s)forSetup旁的复选框。选择后,将会看到NumberofOperators编辑区和PickOperator下拉菜单可用。预置所需的operator数量为1,PickOperator的被选内容应设置为中间端口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-28queue的UseTransport复选框选择Flow分页并选中UseTransport复选框,如图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.打开全局建模工具视窗后,按GlobalTable全局表旁边的按钮。全局表的下拉菜单中将会出现默认的表名称。3.在全局表参数视窗中,将表的名称改为“rout”4.设定此表有3行1列,然后点击apply按钮。图7-29修改Rows:3,Columns:15.将3行分别命名为item1、item2和item3,然后填入相应的临时实体要被送到的输出端口号(rack号)