您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > arena中文教程第2章
第2章仿真基本概念在正式接触Arena软件之前,本章先介绍仿真中的一些重要概念、方法和相关问题。这些基本概念对任何仿真软件都是一样的,对于理解Arena对模型的仿真过程起着关键作用。本书将通过2.1节中的一个简单的示例来阐述这些概念,2.2节介绍了处理示例模型的几种方案;2.3节描述了仿真模型的各组成元素;而2.4节则用手工方式完成了示例的仿真过程,并描述了仿真过程的组织和活动。2.5节比较了两种不同的仿真建模方法;2.6节介绍了仿真输入与输出中的随机性问题;最后,2.7节介绍了如何实施一个仿真项目,有关内容将在第13章有更全面的阐述。阅读本章后,读者将能了解仿真的基本逻辑、结构、组成要素、以及对仿真建模项目的管理。所有这些构成了Arena的基础,以及学习后续章节建立更完善模型的前提。2.1引例本节给出了一个示例系统,并指出我们要从中了解系统的哪些行为和性能。2.1.1示例系统由于大量仿真模型中都会包含等待线或队列(queue),故本书将从这样一个非常简单的模型出发。该模型表示了制造设施的一部分:零件“毛坯”到达钻孔加工中心,在仅有的单台钻床上加工,然后离开,如图2-1所示。如果零件到达时钻床是空闲的,则立刻开始加工;否则,将进入一个“先进先出”(FIFO)的队列等待。此即模型的逻辑(logical)结构。原书P19钻孔加工中心钻床到达的零件毛坯加工完的零件离开队列正在加工的零件图2-1简单加工系统还要对模型给定一些数值(numerical)成分,包括仿真是如何开始和结束的。首先,要确定最为基础的基准时间单位:本书将全部用分钟来计量时间。采用什么样的时间单位在逻辑上是无关紧要的,所以可针对待研究的系统特点选取最合适、熟悉和方便的时间单位1。虽然可根据需要或方便使用不同的单位表示模型的输入时间量,如用分钟表示平均服务时间,用小时表示机器平均无故障时间,但在计算时,所有的时间都要转换为基准单位。Arena允许用不同的单位表示输入时间,但必须声明基准时间单位,在仿真过程中各种时间单位会被转换为基准单位,而在输出报告中,仍显示各自的时间单位。系统在第0分钟时开始运行,开始时系统中没有零件,而且钻床是空闲的。如果每天早上系统都重新开始的话,这种“空且闲”(empty-and-idle)假设是符合实际的;但对有初始状态且不断运行的系统来说,可能就不是那么合适了。仿真中所用的各种时间量列在表2-1中。第一列是零件编号(顺序号),第二列是零件到达时间,第三列给出了前后两个零件到达时间之间间隔的时间,称为到达间隔(interarrivaltime),服务时间(仅指在钻床上的加工时间,不包括花在队列中的等待时间)位于最后一列。所有时间均为分钟。读者可能很想知道这些数值从何而来,不过现在先别管这些,就当作是从钻孔加工中心观察到的或干脆是随意拼凑的。表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..1选择基准时间单位时,不仅要注意时间本身(例如,对于一个要仿真20年的问题,就别用秒作为基准单位;而对于一个仿真两分钟的问题,就不能用天来度量时间),而且要注意避免在同一模型中出现极大和极小的时间值,因为即便使用Arena的双精度计算,计算机在处理舍入误差时也还是可能出现问题的。........仿真恰好在第20分钟时结束。如果届时在系统中仍有零件(正在加工或在队列中等待),那它们也只能完不成加工了。2.1.2研究目标给出以上逻辑/数值模型后,接下来就要确定收集系统的哪些输出性能指标。以下就是本例所要计算的指标:在20分钟加工过程中的的总产量(totalproduction;在钻床完成服务并离开的零件数)。其值应越大越好。仿真过程中开始在钻床接受服务的零件的平均排队等待时间(averagewaitingtimeinqueue)。这个时间记录的仅仅是零件在队列中的等待时间,而不包括任何在钻床上的加工时间。如果WQi表示第i个零件在队列中的等待时间,且在20分钟的仿真运行中有N个零件离开队列,则其均值为原书21页公式1(注意,由于零件1在0时刻到达,此时钻床空闲,一定有WQ1=0且N1,故不必担心可能会被0除。)一般称这种形式的指标为离散时间(或离散参数)统计量,因为它所针对的数据(本例为等待时间WQ1,WQ2,…)具有自然的观察顺序,如第一个观测值、第二个观测值等。在Arena中,这类统计量被称为计数型(tally)统计量,这是因为它们每被观测到一次就累计记录一次(利用了Arena的基础仿真语言SIMAN中Tally模块的特征)。从系统性能的角度来说,平均排队等待时间越小越好。仿真过程中开始在钻床接受服务的零件的最大排队等待时间(maximumwaitingtimeinqueue)。这是用来度量最坏情况的,对于确定对顾客的服务水平保证应该会有所帮助。这个量越小越好。排队等待的零件数对时间的平均值(time-averagenumberofpartswaitinginthequeue;注意,正在钻床上加工的零件不记入在内),也即平均队长。“对时间平均”的含义是对各种可能队长值(0,1,2,…)加权平均,其中权重为队长在该值上持续的时间占仿真运行时间的比例。令Q(t)为在任意时刻t队列中的零件数,平均队长就是Q(t)曲线下的面积除以仿真时间长度20。可用积分符号即为原书21页公式2这种随时间离散变化(time-persistent)的统计量在仿真中很常见。这一个表示的是队列在平均水平下有多长,在分配作业地空间时会有作用。最大排队等待零件数(maximumnumberofpartsthatwereeverwaitinginthequeue),也即最大队长。事实上,如果希望自始至终在作业地都能保持合理空间的话,用这一指标来确定作业地空间比用平均队长更好。这是另一个度量最坏情况的指标,其值越小越好。在钻床上完成加工并离开的零件的平均与最大系统逗留时间(averageandmaximumtotaltimeinthesystem),也称为流程时间(cycletime)。这是零件从到达到离开系统的时间间隔,所以是排队等待时间和服务时间之和。这是一类周转时间,所以越小越好。钻床的利用率(utilization),即钻床处于忙态的时间占仿真总时间的比例。这是另一个随时间离散变化的统计量,其随时间变化的函数为如下“忙态”函数时刻闲如果钻床在时刻忙如果钻床在t0t1)(tB利用率即为曲线B(t)下的面积除以仿真运行周期:20)(200dttB资源利用率是很多仿真都会关注的一个指标,但很难说“希望”它高(接近1)还是低(接近0)。利用率高固然很好,因为这意味着很少的能力过剩;但也可能会很糟,因为可能会造成拥堵,形成很长的队列,并减慢吞吐速度。通常有许多可能的输出性能指标,在仿真中尽量多观测一些东西是一个好主意,因为你可能会忽略已经观察到的事物,但永远也看不到没有观察过的事物,而且,有时还会发现意外惊喜。这样做唯一的弊病在于,大量收集那些关系不太密切的数据会减慢仿真运行速度。2.2分析方法有了模型、定义了输入与输出以后,接下来就要确定如何根据模型逻辑从输入得到输出。本节将简要介绍几种处理方法。2.2.1根据经验猜测虽然我们并不热衷于猜测,但有时草草地粗算一下至少也能得到一点对系统的定量认识(不过有时也得不到)。当然,结果怎样将完全取决于具体的问题状况(以及你的猜测能力)。对于引例,第一招可以是考察一下平均流入率和处理率。从表2-1可以看出,10个到达间隔的平均值为4.08分钟,而10个服务时间的平均值则为3.46分钟。这看起来还是很有希望的,因为服务比零件到得要快(至少在平均意义下),这意味着系统有机会在长时期内以稳定的方式运行而不会“爆炸”。如果这些平均值准确出现在每一个零件身上没有任何变化那就肯定不会形成队列,即所有的等待时间都是0,这真是一个令人兴奋的结果。可惜,不管这个结果多让人高兴,毕竟还是不太正确,因为很明显,每个零件的到达间隔和服务时间都是不一样的,因此有时会形成队列。例如,正好在处理需要较长服务时间的零件时,又有零件以较小的间隔到达。假如换一种情况,表2-1中输入数据的平均值关系正好相反,即平均到达间隔比平均服务时间要小。如果这种情况持续下去,在平均意义下零件到的速度比完成服务的速度要快,这意味着会出现严重的拥堵(至少过一段时间后会出现,也许这段时间比我们计划的20分钟运行时间要长)。在这种情况下,长时间运行后系统真的会爆炸这可不是个好结果。跟很多其它情况一样,实际结果会界于所猜测的极端情况之间。显然,猜测是有很大局限性的。2.2.2排队论方法既然涉及到队列,何不用排队论来解决呢?这一理论已经几乎有一个世纪的历史了,是一大批充满高度智慧的人通过辛勤工作所创建发展起来的。在一些情况下,应用这一理论能够得出简单的解析式,并能从中得到对问题的许多认识。排队论研究的最简单和最多的也许就是M/M/1排队模型了。第一个“M”说明到达过程是马尔可夫过程(Markovian),即到达间隔独立、且服从相同的指数概率分布(附录C与D给出了对概率和分布知识的简要复习)。第二个“M”代表服务时间分布,此处也是指数分布。“1”表示只有一个服务台。至少在表面上这个模型很适合引例问题。更好的是,大多数输出性能指标可用简单的解析式表达。例如,平均排队等待时间(长时间运行下的期望值)即可表示为原书23页公式其中A是到达间隔分布的期望值,S是服务时间分布的期望值(假定AS,这样队列才不至于爆炸)。于是马上就会想到,可以用观测数据来估计A和S,然后将估计值代入以上解析式,应用本例数据可得3.462/(4.08-3.46)=19.31分钟。这种方法有时可以给出合理数量级上的近似结果,可以帮助进行粗略比较。但也存在一些问题(见练习2-6):估计值A和S是不精确的,因此结果中也会有误差;只有假设到达间隔和服务时间服从指数分布时才能得出上面的公式,但引例数据可能并不满足这一假设。这就带来了公式可用性的问题。尽管对更一般的排队模型也能得到一些更复杂的结果,但总是需要有一些相关假设而在实际中可能得不到满足。以上公式描述的是长期运行的性能,而不是我们所要的20分钟的情况。这是大多数(尽管不是全部)排队论模型的典型问题。以上公式没有提供任何有关系统可变性的信息。这不仅是分析的难点,而且有其固有的吸引力,例如产出量会在多大范围变动(尽管有时也能找到其它公式来度量可变性)。很多人感觉,排队论在对问题进行粗略近似以获得一个大致了解、以及指导下一步应采用什么样的仿真比较合适等方面很有价值。读者应牢记以上问题,并能对具体情况做出相应的分析解释。2.2.3机械仿真让我们再回到仿真。“机械”的含义是各项操作(到达、在钻床上接受服务等)的发生情况与实际发生情况完全一样。仿真模型中,事物的运动和变化在正确的时间、以正确的顺序发生,对彼此产生正确的影响,并对统计累加器变量产生正确的作用效果。按照这种方式,仿真就是直接、“强制”地对模型加以处理。仿真如何工作没有任何神秘可言只有一些基本思想,以及由软件(如Arena)完成的大量细节和数据记录。2.3仿真模型的组成元素本节将以引例为背景,讨论仿真模型的各组成部分。2.3.1实体绝大多数仿真都包含被称为实体(entity)的“参与者”,它们在系统中移动、改变形态、影响其它实体及系统状态同时被其所影响,并影响着输出性能测度。实体在仿真中属于动态物体通常它们首先被创建出来,然后在系统中活动一段时间,当离开系统时被清除。但也有的实体从不离开系统,一直在系统中流动。不过,所有实体都必须通过创建过程才能出现,不论是用
本文标题:arena中文教程第2章
链接地址:https://www.777doc.com/doc-2901739 .html