arena中文教程第9章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第9章建模问题与技术的进一步探讨通过第四章到第八章一系列逐步复杂的实例,我们引导读者较为全面地了解了如何模拟各种不同类型的系统。我们选择这些实例有几个目的,包括展示应用系统的实用性和重要性、各种不同问题的建模方法,以及指导读者如何简单快速地运用适当的方式在Arena中表示各种事物。掌握了这些技能后,读者就能正确而有效地建造各种仿真模型了。尽管人们有些时候会考虑在一个模型中同时使用多种手段,但毕竟不可能在一个实例里面够包括所有的模型特征,而且一个模型中所包含的建模特征远远少于Arena所提供的数量。在这一章里,我们准备探讨其它一些较为重要的建模问题与技术,以及如何利用Arena去实现。本章中我们将建造更多的实例,这些实例更加关注一些细节方面的技术和Arena特性。在9.1节我们将改进第八章中开发的输送设备模型;在9.2节讨论对第八章运送设备建模的改进;在服务系统中,特别是那些含有排队现象的系统中,可能经常要考虑顾客的中途退出(reneging)问题(也就是说,在某一时刻顾客从队列中离开),我们将在9.3节考虑这种情况,以及受阻离开(balking)的概念;在9.4节,将探讨在某一时刻把实体组合成一批、而且过后还可以再拆分的方法;9.5节讨论如何表示紧密耦合(tightlycoupled)系统,在这种系统中,实体只有在当前位置就被分配好了后续处理所需的资源时才能继续前进,从实体的角度看,这叫做重叠资源(overlappingresources);最后,在9.6节简要介绍一些其它专题,包括导引运送设备、并行队列、复杂的决策逻辑和循环等。本章在结构上与以前的章节有所不同,因为本章不必按顺序阅读,本章的目的就是提供一个建模技术和Arena特征的集萃,它们在各种不同的应用项目中被证明非常有用。9.1使用“高等运送”面板模拟输送设备这一节我们对第八章建立的基本输送设备模型提出一些改进。9.1.1模型9-1:站点的有限容量缓冲区在第八章我们介绍了Arena的输送设备,在8.4.1节我们使用了不可聚集式输送设备作为运送零件的方法,建立了小型生产系统的模型8-4。在那个模型中,我们假设每个加工单元前有无限容量的缓冲区用于存储等待加工的零件。这个假设使得我们能够在Enter模块和Leave模块里使用输送设备的功能,不过我们需要从“高等运送”面板里添加Conveyor和Segment数据模块来定义相应的输送设备。现在我们将修改这个假设,也即假设Cell1和Cell2只有有限容量的缓冲区用于存储尚未加工的零件,事实上,我们假设每个单元只能存储一个未加工的零件。对于这类模型,我们需要定义零件到达Cell1或2时,已经有一个零件占据了有限的缓冲区的情况。假如我们能使用Enter模块来限制缓冲区的话(这是不可行的),那就可以很容易地让到达的零件等待,直到缓冲区内的零件进入加工单元中的机器。当然,这将会在这些加工单元处造成明显的堵塞现象,不仅到本单元加工的零件进不去,而且要前往其它加工单元的零件也会排在它们后面等待,从而引发了另外的问题。我们知道,完成加工的零件在被输送到下一个目的站点之前,需要先占据输送设备上一定的可用空间,而这些空间此时却被正在等待进入这个单元的其它零件所占用,这就形成了所谓的“死锁”(deadlock或gridlock)。因此,对于到达Cell1或2的零件,我们采用下面的策略。如果单元的缓冲区内目前没有等待的零件,则允许到达的零件进入缓冲区;否则,零件就沿环形输送设施继续前进,并被再次运送到这个位置试第二次(第三次、第四次等)。要做到这一点,就需要改变模型,以便我们能更好地控制零件什么时候退出输送设施。“高等运送”面板为输送设施提供了五个新的模块,分别是“进入”(Access)、“输送”(Convey)、“退出”(Exit)、启动(Start)和“停止”(Stop),这些模块可以帮助我们更加细致地模拟输送设施的活动。Exit模块使实体退出输送设备,释放其所占用的输送单元。这个功能与在Enter模块的TransferIn部分选择ExitConveyor选项本质上是一样的。Access模块使实体在某一位置(通常是当前它所在站点的位置)请求或占用输送设备的可用空间。一旦实体成功地占用了输送设备的一定空间,Convey模块就将实体输送到它的目的地。在Leave模块的TransferOut部分选择AccessConveyor选项,实质上与Access和Convey的组合具有一样的功能。Start模块和Stop模块的作用分别是启动和停止输送设备运行。这两个模块可用于建立用户自己的故障逻辑,或者控制输送设备什么时候运转或停下来。在开发新的模型时,可以以模型8-4为基础,在Cell1中用新模块取代原来的Enter和Leave模块,如图9-1所示。原书P357图9-1Cell1新的模型逻辑被我们替换掉的Enter模块所完成的功能包括:定义了名为Cell1的站点,实体退出输送设施。站的定义很关键,因为Arena必须知道把需要输送到Cell1的实体送到哪个具体位置。因此,我们需要用“高等运送”面板中的Station模块来定义Cell1的进入点。我们也可以用Enter模块来实现,但我们希望在此为读者展示一下Station模块的使用。Station模块仅仅定义了运送至该站点的实体的逻辑入口。本例在对话框中唯一需要提供的就是站点名称,如输入界面9-1所示。原书P357输入界面9-1Station模块当一个实体或零件到达Cell1时,需要先检查等待队列的状态。我们可通过Decide模块来实现这个功能,利用Decide模块查看队列Cell1Process.Queue中的实体数量是否等于0,如输入界面9-2所示。队列名称和模型8-4中的一样,是在Process模块里定义的。如果队列当前被另外一个实体占据,则到达的实体将前往模块的False分支。原书P357输入界面9-2Decide模块在这种情况下,我们不让零件离开输送设备,而是把零件留在环形输送设备上继续向前移动,直到再次回到同一站点。如输入界面9-3所示,我们把实体送到“输送”(Convey)模块,并将它输送回Cell1。原书P358输入界面9-3Convey模块此时,读者也可能会想到“可是实体已经在Cell1处了!”实际上,此时Arena假定读者就是要输送实体,因而会将实体放到它的输送路径上。当然,Arena还假定它能够把实体输送到指定的目的地。因此,Convey模块将用指定的输送设备将实体送到指定的目的地。不过,如果实体当前没有处于该输送设备上,Arena将显示错误信息并终止运行。如果Cell1的队列中没有别的实体,则所到达的实体按“条件成立”的分支被送到其后的Delay模块,如输入界面9-4所示。此时实体将在该模块中延时以完成卸载过程,然后实体被送到Exit模块,在那里从输送设备上移除实体,并释放实体所占用的输送单元,如输入界面9-5所示。实体离开Exit模块后被送到Process模块,它表示的是实际的机器加工过程,如图9-1所示。一旦零件完成了加工操作,就离开Process模块,并被送到随后的Access模块以获取输送设备上的可用空间,如输入界面9-6所示。Access模块的作用是为实体分配输送设备上的可用单元,以便实体能够被输送到它的下一个目的地。需要注意的是,Access模块本身并不输送实体,因此当实体获得输送单元后,如果不能立即输送该实体,则整个输送设备将停下来,直到开始输送这个实体为止。原书P358输入界面9-4卸载延时模块原书P359输入界面9-5Exit模块如果此时输送设备上没有足够的可用单元来容纳实体,则实体将停留在队列AccessConveyoratCell1.Queue中,直到有足够可用单元为止。这一过程将会在动画中显示出来。如果有足够的可用单元容纳实体,则首先产生由装载活动带来的延时,然后再将其送入Convey模块,根据指定的序列将实体输送到它的下一站。到此就完成了对模型8-4中Cell1部分的修改工作。对Cell2需要进行相同的操作,读者可以简单地重复以上步骤,或先拷贝这些模块再各自进行编辑修改。我们只替换Cell2的Enter模块,而保留Leave模块,如图9-2所示。我们认为到目前为止读者已经熟悉了进行相应改动的操作。原书P359输入界面9-6Access模块原书P360图9-2Cell2的新模型逻辑当删除Enter模块和Leave模块的时候,读者会发现部分动画也被删除了,这是因为读者接受了Leave模块“自带的”的动画队列。当读者按这种方式编辑或修改模型时,可使用Animate工具栏里的一些动画构件来补充新的动画特征。所以在建立模型时,我们删除了新模块所带的动画元素,然后自己动手添加新的动画元素。在这个模型中,我们删除了Cell1的队列和暂存处,然后添加了新的Access队列(等待获取输送单元)。当我们运行新模型时,能够看到在大约275分钟时零件受到阻滞而不能进入Cell1。9.1.2模型9-2:零件在加工过程中停留在输送设备上读者已经掌握了新的输送设备模块,现在让我们研究另一个问题。我们先从可聚集式输送设备模型(8.4.2节提出的模型8-5)着手,尝试一种新的布局,即在Cell2进行加工的时候,零件仍然停留在输送设备上。也就是说,零件被输送到Cell2后并不离开输送设备,而是在输送设备上完成加工操作,然后再被输送到下一个目的地。由于输送设备是可聚集类型的,所以其上的零件将继续向前移动,直到被Cell2处正在加工的零件阻滞为止。我们可以用一组与模型9-1相似的模块取代Cell2当前的Enter模块和Leave模块来实现这一改动。不过,由于到达Cell2的实体不离开输送设备,所以可以采用一种更为简单的解决方案,即只需在Enter模块的TransferIn部分选择None选项即可,此时实体将不离开输送设备。这样,当在Process模块中执行操作时,实体将仍然停留在输送设备上。但是,如果我们只在这里做了修改,那么在实体试图离开Cell2的时候将会发生错误。因为在Leave模块的Transferout部分,我们以前曾选择了AccessConvey选项,这个选项使实体要求分配输送设备上的可用空间,而此时实体已经在输送设备上了,因此Arena会产生困惑,系统将因错误而终止运行。这可通过在Leave模块的Transferout部分也选择None选项就能解决了。通过观察动画,读者可以检验一下新的模型逻辑是否正确。我们建议读者在观察动画之前先用“快进”方式将仿真推进到第700分钟左右,这时能看到十分明显的改动效果。9.2关于运送设备的更多知识在第8章,我们介绍了使用“基本操作”面板中的高层模块来模拟Arena输送设备和运送设备。9.1节中,我们使用“高等运送”面板中的模块进一步拓展了输送设备的功能,从而对第8章提出的模型进行了改进。运送设备中也存在同样问题,尽管我们不准备用这些模块建立一个完整的模型,但还是准备简要概括一下这些模块的功能,并通过模拟几种不同的情况来展示一些模块组合。这对于读者在模型中成功地使用这些建模构件来说应该已经足够了。另外,别忘了可随时查看在线帮助。让我们从8.3节介绍的基本功能开始。在Enter和Leave模块中的TransferIn和TransferOut部分,基本的运送设备选项仍然是可用的。接下来考虑请求运送以及随后把运送设备和实体运到下一站点的过程,“高等运送”面板中的Request模块和Transport模块也能够提供这一功能。Request模块实现的是Leave模块中TransferOut域的第一部分的功能。在Request模块里能够指定与默认值不同的速度,但不能指定装载时间,不过可以通过后接一个Delay模块来定义装载时间。Request模块实际上完成两种活动:为实体分配运送设备,并将空的运送设备移到实体当前位置(如果运送设备没在实体当前位置的话)。Transport模块执行TransferOut域的下一部分功能,即把运送设备和零件运至它的下一个站

1 / 38
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功