Simulation with Arena( 中文)第2章.doc

上传人:cl****1 文档编号:543587645 上传时间:2022-12-15 格式:DOC 页数:29 大小:1.96MB
返回 下载 相关 举报
Simulation with Arena( 中文)第2章.doc_第1页
第1页 / 共29页
Simulation with Arena( 中文)第2章.doc_第2页
第2页 / 共29页
Simulation with Arena( 中文)第2章.doc_第3页
第3页 / 共29页
Simulation with Arena( 中文)第2章.doc_第4页
第4页 / 共29页
Simulation with Arena( 中文)第2章.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Simulation with Arena( 中文)第2章.doc》由会员分享,可在线阅读,更多相关《Simulation with Arena( 中文)第2章.doc(29页珍藏版)》请在金锄头文库上搜索。

1、第2章 仿真基本概念在正式接触Arena软件之前,本章先介绍仿真中的一些重要概念、方法和相关问题。这些基本概念对任何仿真软件都是一样的,对于理解Arena对模型的仿真过程起着关键作用。本书将通过2.1节中的一个简单的示例来阐述这些概念,2.2节介绍了处理示例模型的几种方案;2.3节描述了仿真模型的各组成元素;而2.4节则用手工方式完成了示例的仿真过程,并描述了仿真过程的组织和活动。2.5节比较了两种不同的仿真建模方法;2.6节介绍了仿真输入与输出中的随机性问题;最后,2.7节介绍了如何实施一个仿真项目,有关内容将在第13章有更全面的阐述。阅读本章后,读者将能了解仿真的基本逻辑、结构、组成要素、

2、以及对仿真建模项目的管理。所有这些构成了Arena的基础,以及学习后续章节建立更完善模型的前提。2.1 引例本节给出了一个示例系统,并指出我们要从中了解系统的哪些行为和性能。2.1.1 示例系统由于大量仿真模型中都会包含等待线或队列(queue),故本书将从这样一个非常简单的模型出发。该模型表示了制造设施的一部分:零件“毛坯”到达钻孔加工中心,在仅有的单台钻床上加工,然后离开,如图2-1所示。如果零件到达时钻床是空闲的,则立刻开始加工;否则,将进入一个“先进先出”(FIFO)的队列等待。此即模型的逻辑(logical)结构。还要对模型给定一些数值(numerical)成分,包括仿真是如何开始和

3、结束的。首先,要确定最为基础的基准时间单位:本书将全部用分钟来计量时间。采用什么样的时间单位在逻辑上是无关紧要的,所以可针对待研究的系统特点选取最合适、熟悉和方便的时间单位1 选择基准时间单位时,不仅要注意时间本身(例如,对于一个要仿真20年的问题,就别用秒作为基准单位;而对于一个仿真两分钟的问题,就不能用天来度量时间),而且要注意避免在同一模型中出现极大和极小的时间值,因为即便使用Arena的双精度计算,计算机在处理舍入误差时也还是可能出现问题的。虽然可根据需要或方便使用不同的单位表示模型的输入时间量,如用分钟表示平均服务时间,用小时表示机器平均无故障时间,但在计算时,所有的时间都要转换为基

4、准单位。Arena允许用不同的单位表示输入时间,但必须声明基准时间单位,在仿真过程中各种时间单位会被转换为基准单位,而在输出报告中,仍显示各自的时间单位。系统在第0分钟时开始运行,开始时系统中没有零件,而且钻床是空闲的。如果每天早上系统都重新开始的话,这种“空且闲”(empty-and-idle)假设是符合实际的;但对有初始状态且不断运行的系统来说,可能就不是那么合适了。仿真中所用的各种时间量列在表2-1中。第一列是零件编号(顺序号),第二列是零件到达时间,第三列给出了前后两个零件到达时间之间间隔的时间,称为到达间隔(interarrival time),服务时间(仅指在钻床上的加工时间,不包

5、括花在队列中的等待时间)位于最后一列。所有时间均为分钟。读者可能很想知道这些数值从何而来,不过现在先别管这些,就当作是从钻孔加工中心观察到的或干脆是随意拼凑的。表2-1 零件的到达、间隔和服务时间(单位:分钟)零件编号到达时间到达间隔服务时间10.001.732.9021.731.351.7633.080.713.3943.790.624.5254.4114.284.46618.690.704.36719.3915.522.07834.913.153.36938.061.762.371039.821.005.381140.82.仿真恰好在第20分钟时结束。如果届时在系统中仍有零件(正在加工或在

6、队列中等待),那它们也只能完不成加工了。2.1.2 研究目标给出以上逻辑/数值模型后,接下来就要确定收集系统的哪些输出性能指标。以下就是本例所要计算的指标: 在20分钟加工过程中的的总产量(total production;在钻床完成服务并离开的零件数)。其值应越大越好。 仿真过程中开始在钻床接受服务的零件的平均排队等待时间(average waiting time in queue)。这个时间记录的仅仅是零件在队列中的等待时间,而不包括任何在钻床上的加工时间。如果WQi表示第i个零件在队列中的等待时间,且在20分钟的仿真运行中有N个零件离开队列,则其均值为:(注意,由于零件1在0时刻到达,此

7、时钻床空闲,一定有WQ10且N 1,故不必担心可能会被0除。)一般称这种形式的指标为离散时间(或离散参数)统计量,因为它所针对的数据(本例为等待时间WQ1,WQ2,)具有自然的观察顺序,如第一个观测值、第二个观测值等。在Arena中,这类统计量被称为计数型(tally)统计量,这是因为它们每被观测到一次就累计记录一次(利用了Arena的基础仿真语言SIMAN中Tally模块的特征)。从系统性能的角度来说,平均排队等待时间越小越好。 仿真过程中开始在钻床接受服务的零件的最大排队等待时间(maximum waiting time in queue)。这是用来度量最坏情况的,对于确定对顾客的服务水平

8、保证应该会有所帮助。这个量越小越好。 排队等待的零件数对时间的平均值(time-average number of parts waiting in the queue;注意,正在钻床上加工的零件不记入在内),也即平均队长。“对时间平均”的含义是对各种可能队长值(0,1,2,)加权平均,其中权重为队长在该值上持续的时间占仿真运行时间的比例。令Q(t)为在任意时刻t队列中的零件数,平均队长就是Q(t)曲线下的面积除以仿真时间长度20。可用积分符号即为:这种随时间离散变化(time-persistent)的统计量在仿真中很常见。这一个表示的是队列在平均水平下有多长,在分配作业地空间时会有作用。 最

9、大排队等待零件数(maximum number of parts that were ever waiting in the queue),也即最大队长。事实上,如果希望自始至终在作业地都能保持合理空间的话,用这一指标来确定作业地空间比用平均队长更好。这是另一个度量最坏情况的指标,其值越小越好。 在钻床上完成加工并离开的零件的平均与最大系统逗留时间(average and maximum total time in the system),也称为流程时间(cycle time)。这是零件从到达到离开系统的时间间隔,所以是排队等待时间和服务时间之和。这是一类周转时间,所以越小越好。 钻床的利用率

10、(utilization),即钻床处于忙态的时间占仿真总时间的比例。这是另一个随时间离散变化的统计量,其随时间变化的函数为如下“忙态”函数利用率即为曲线B(t)下的面积除以仿真运行周期:资源利用率是很多仿真都会关注的一个指标,但很难说“希望”它高(接近1)还是低(接近0)。利用率高固然很好,因为这意味着很少的能力过剩;但也可能会很糟,因为可能会造成拥堵,形成很长的队列,并减慢吞吐速度。通常有许多可能的输出性能指标,在仿真中尽量多观测一些东西是一个好主意,因为你可能会忽略已经观察到的事物,但永远也看不到没有观察过的事物,而且,有时还会发现意外惊喜。这样做唯一的弊病在于,大量收集那些关系不太密切的

11、数据会减慢仿真运行速度。2.2 分析方法有了模型、定义了输入与输出以后,接下来就要确定如何根据模型逻辑从输入得到输出。本节将简要介绍几种处理方法。2.2.1根据经验猜测虽然我们并不热衷于猜测,但有时草草地粗算一下至少也能得到一点对系统的定量认识(不过有时也得不到)。当然,结果怎样将完全取决于具体的问题状况(以及你的猜测能力)。对于引例,第一招可以是考察一下平均流入率和处理率。从表2-1可以看出,10个到达间隔的平均值为4.08分钟,而10个服务时间的平均值则为3.46分钟。这看起来还是很有希望的,因为服务比零件到得要快(至少在平均意义下),这意味着系统有机会在长时期内以稳定的方式运行而不会“爆

12、炸”。如果这些平均值准确出现在每一个零件身上 没有任何变化 那就肯定不会形成队列,即所有的等待时间都是0,这真是一个令人兴奋的结果。可惜,不管这个结果多让人高兴,毕竟还是不太正确,因为很明显,每个零件的到达间隔和服务时间都是不一样的,因此有时会形成队列。例如,正好在处理需要较长服务时间的零件时,又有零件以较小的间隔到达。假如换一种情况,表2-1中输入数据的平均值关系正好相反,即平均到达间隔比平均服务时间要小。如果这种情况持续下去,在平均意义下零件到的速度比完成服务的速度要快,这意味着会出现严重的拥堵(至少过一段时间后会出现,也许这段时间比我们计划的20分钟运行时间要长)。在这种情况下,长时间运

13、行后系统真的会爆炸 这可不是个好结果。跟很多其它情况一样,实际结果会界于所猜测的极端情况之间。显然,猜测是有很大局限性的。2.2.2 排队论方法既然涉及到队列,何不用排队论来解决呢?这一理论已经几乎有一个世纪的历史了,是一大批充满高度智慧的人通过辛勤工作所创建发展起来的。在一些情况下,应用这一理论能够得出简单的解析式,并能从中得到对问题的许多认识。排队论研究的最简单和最多的也许就是M/M/1排队模型了。第一个“M”说明到达过程是马尔可夫过程(Markovian),即到达间隔独立、且服从相同的指数概率分布(附录C与D给出了对概率和分布知识的简要复习)。第二个“M”代表服务时间分布,此处也是指数分

14、布。“1”表示只有一个服务台。至少在表面上这个模型很适合引例问题。更好的是,大多数输出性能指标可用简单的解析式表达。例如,平均排队等待时间(长时间运行下的期望值)即可表示为:其中mA是到达间隔分布的期望值,mS是服务时间分布的期望值(假定mA mS ,这样队列才不至于爆炸)。于是马上就会想到,可以用观测数据来估计mA和mS ,然后将估计值代入以上解析式,应用本例数据可得3.462 / (4.08-3.46) = 19.31分钟。这种方法有时可以给出合理数量级上的近似结果,可以帮助进行粗略比较。但也存在一些问题(见练习2-6): 估计值mA和mS是不精确的,因此结果中也会有误差; 只有假设到达间

15、隔和服务时间服从指数分布时才能得出上面的公式,但引例数据可能并不满足这一假设。这就带来了公式可用性的问题。尽管对更一般的排队模型也能得到一些更复杂的结果,但总是需要有一些相关假设而在实际中可能得不到满足。 以上公式描述的是长期运行的性能,而不是我们所要的20分钟的情况。这是大多数(尽管不是全部)排队论模型的典型问题。 以上公式没有提供任何有关系统可变性的信息。这不仅是分析的难点,而且有其固有的吸引力,例如产出量会在多大范围变动(尽管有时也能找到其它公式来度量可变性)。很多人感觉,排队论在对问题进行粗略近似以获得一个大致了解、以及指导下一步应采用什么样的仿真比较合适等方面很有价值。读者应牢记以上问题,并能对具体情况做出相应的分析解释。2.2.3 机械仿真让我们再回到仿真。“机械”的含义是各项操作(到达、在钻床上接受服务等)的发生情况与实际发生情况完全一样。仿真模型中,事物的运动和变化在正确的时间、以正确的顺序发生,对彼此产生正确的影响,并对统计累加器变量产生正确的作用效果。按照这种方式,仿真就是直接、“强制”地对模型加以处理。仿真如何工作没有任何神秘可言 只有一些基本思想,以及由软件(如Arena)完成的大量细节和数据记录。2.3 仿真模型的组成元素本节将

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号