arena仿真教程第2章介绍
- 格式:pdf
- 大小:314.71 KB
- 文档页数:28
第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
钻孔加工中心 钻床
到达的零件毛坯 加工完的零件离开
队列 正在加工的零件 Arena中国www.arena-china.com
图2-1 简单加工系统
还要对模型给定一些数值(numerical)成分,包括仿真是如何开始和结束的。首先,要
确定最为基础的基准时间单位:本书将全部用分钟来计量时间。采用什么样的时间单位在逻
辑上是无关紧要的,所以可针对待研究的系统特点选取最合适、熟悉和方便的时间单位1。
虽然可根据需要或方便使用不同的单位表示模型的输入时间量,如用分钟表示平均服务时
间,用小时表示机器平均无故障时间,但在计算时,所有的时间都要转换为基准单位。Arena
允许用不同的单位表示输入时间,但必须声明基准时间单位,在仿真过程中各种时间单位会
被转换为基准单位,而在输出报告中,仍显示各自的时间单位。
系统在第0分钟时开始运行,开始时系统中没有零件,而且钻床是空闲的。如果每天早
上系统都重新开始的话,这种“空且闲”(empty-and-idle)假设是符合实际的;但对有初始
状态且不断运行的系统来说,可能就不是那么合适了。
仿真中所用的各种时间量列在表2-1中。第一列是零件编号(顺序号),第二列是零件到
达时间,第三列给出了前后两个零件到达时间之间间隔的时间,称为到达间隔(interarrival
time),服务时间(仅指在钻床上的加工时间,不包括花在队列中的等待时间)位于最后一
列。所有时间均为分钟。读者可能很想知道这些数值从何而来,不过现在先别管这些,就当
作是从钻孔加工中心观察到的或干脆是随意拼凑的。
表2-1 零件的到达、间隔和服务时间(单位:分钟)
零件编号 到达时间 到达间隔 服务时间 1 0.00 1.73 2.90 2 1.73 1.35 1.76 3 3.08 0.71 3.39 4 3.79 0.62 4.52 5 4.41 14.28 4.46 6 18.69 0.70 4.36 7 19.39 15.52 2.07 8 34.91 3.15 3.36 9 38.06 1.76 2.37 10 39.82 1.00 5.38 11 40.82 . . 1 选择基准时间单位时,不仅要注意时间本身(例如,对于一个要仿真20年的问题,就别用秒作为基准单位;而对于一个仿真两分钟的问题,就不能用天来度量时间),而且要注意避免在同一模型中出现极大和极小的时间值,因为即便使用Arena的双精度计算,计算机在处理舍入误差时也还是可能出现问题的。 Arena中国www.arena-china.com. . . . . . . .
仿真恰好在第20分钟时结束。如果届时在系统中仍有零件(正在加工或在队列中等待),
那它们也只能完不成加工了。
2.1.2 研究目标
给出以上逻辑/数值模型后,接下来就要确定收集系统的哪些输出性能指标。以下就是本
例所要计算的指标:
在20分钟加工过程中的的总产量(total production;在钻床完成服务并离开的零件数)。
其值应越大越好。
仿真过程中开始在钻床接受服务的零件的平均排队等待时间(average waiting time in
queue)。这个时间记录的仅仅是零件在队列中的等待时间,而不包括任何在钻床上的
加工时间。如果WQi表示第i个零件在队列中的等待时间,且在20分钟的仿真运行中
有N个零件离开队列,则其均值为
原书21页公式1
(注意,由于零件1在0时刻到达,此时钻床空闲,一定有WQ1=0且N 1,故不必
担心可能会被0除。)一般称这种形式的指标为离散时间(或离散参数)统计量,因
为它所针对的数据(本例为等待时间WQ1,WQ2,…)具有自然的观察顺序,如第一
个观测值、第二个观测值等。在Arena中,这类统计量被称为计数型(tally)统计量,
这是因为它们每被观测到一次就累计记录一次(利用了Arena的基础仿真语言SIMAN
中Tally模块的特征)。从系统性能的角度来说,平均排队等待时间越小越好。
仿真过程中开始在钻床接受服务的零件的最大排队等待时间(maximum waiting time
in queue)。这是用来度量最坏情况的,对于确定对顾客的服务水平保证应该会有所帮
助。这个量越小越好。
排队等待的零件数对时间的平均值(time-average number of parts waiting in the queue;
注意,正在钻床上加工的零件不记入在内),也即平均队长。“对时间平均”的含义是Arena中国www.arena-china.com对各种可能队长值(0,1,2,…)加权平均,其中权重为队长在该值上持续的时间
占仿真运行时间的比例。令Q(t)为在任意时刻t队列中的零件数,平均队长就是Q(t)
曲线下的面积除以仿真时间长度20。可用积分符号即为
原书21页公式2
这种随时间离散变化(time-persistent)的统计量在仿真中很常见。这一个表示的是队
列在平均水平下有多长,在分配作业地空间时会有作用。
最大排队等待零件数(maximum number of parts that were ever waiting in the queue),
也即最大队长。事实上,如果希望自始至终在作业地都能保持合理空间的话,用这一
指标来确定作业地空间比用平均队长更好。这是另一个度量最坏情况的指标,其值越
小越好。
在钻床上完成加工并离开的零件的平均与最大系统逗留时间(average and maximum
total time in the system),也称为流程时间(cycle time)。这是零件从到达到离开系统的
时间间隔,所以是排队等待时间和服务时间之和。这是一类周转时间,所以越小越好。
钻床的利用率(utilization),即钻床处于忙态的时间占仿真总时间的比例。这是另一
个随时间离散变化的统计量,其随时间变化的函数为如下“忙态”函数
时刻闲如果钻床在时刻忙如果钻床在t0t1)(tB
利用率即为曲线B(t)下的面积除以仿真运行周期:
20)(20
0dttB
资源利用率是很多仿真都会关注的一个指标,但很难说“希望”它高(接近1)还是
低(接近0)。利用率高固然很好,因为这意味着很少的能力过剩;但也可能会很糟,
因为可能会造成拥堵,形成很长的队列,并减慢吞吐速度。
通常有许多可能的输出性能指标,在仿真中尽量多观测一些东西是一个好主意,因为你
可能会忽略已经观察到的事物,但永远也看不到没有观察过的事物,而且,有时还会发现意
外惊喜。这样做唯一的弊病在于,大量收集那些关系不太密切的数据会减慢仿真运行速度。 Arena中国www.arena-china.com2.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”代表服务时间分布,此处也是指数分Arena中国www.arena-china.com