arena详细教学.ppt
《arena详细教学.ppt》由会员分享,可在线阅读,更多相关《arena详细教学.ppt(148页珍藏版)》请在冰点文库上搜索。
Arena教程,内容,仿真概述仿真的定义、特点和用途仿真的基本类型仿真的基本问题和内容仿真的基本步骤仿真原理Arena的安装过程Arena建模的基本概念Arena的使用VBA简介,仿真的定义,仿真是以系统理论、形式化理论随机过程理论、统计理论以及优化理论为基础,借助计算机和仿真软件对实际系统行为进行动态实验研究的方法通俗而言,仿真是基于一定的知识或假设,对实际系统进行模拟,从而更加深入地了解整个系统,并且对系统做出科学的调整、改善和优化,为辅助决策提供依据。
仿真的特点,它可以将研制过程、运行过程和实施过程放在实验室中进行,具有良好的可控制性、无破坏性、可复现性和经济性等特点。
系统仿真在理论上体现了实验思考的方法论,用它可以探索高技术领域和复杂系统深层次的运动机理和规律性,给出人们直观逻辑推理不能预见的系统动态特征,具有科学的先验性。
系统仿真建模具有面向过程的特点,仿真模型与所研究系统的运行过程在形式上和逻辑上存在对应性,避免了建立抽象数学模型的困难,显著简化了建模过程,具有很好的直观性。
仿真的用途,仿真的实际用途体现在两大方面:
事前分析认证和事后分析改善,最终目的是要辅助决策,降低成本,提高效益。
目前它主要应用于:
国防军事生产制造供应链管理社会服务,培训内容,仿真概述仿真的定义、特点和用途仿真的基本类型仿真的基本问题和内容仿真的基本步骤仿真原理Arena的安装过程Arena建模的基本概念Arena的使用VBA简介,仿真的基本类型,离散系统仿真。
连续系统仿真。
混合系统仿真。
离散系统仿真,连续系统仿真,混合系统仿真,培训内容,仿真概述仿真的定义、特点和用途仿真的基本类型仿真的基本问题和内容仿真的基本步骤仿真原理Arena的安装过程Arena建模的基本概念Arena的使用VBA简介,仿真的基本问题和内容,数据是怎么来的?
仿真数据的采集与分析。
生成的数据是否正确?
数据能真实反映我们的实际情况吗?
随机数与随机变量的生成,系统输入分析。
如何根据输出数据分析实际系统的性能?
仿真输出分析。
仿真的理论基础是什么?
为什么有效?
仿真的基本问题和内容(续),模型能真实描述我们这里的实际运作吗?
运行结果能说明实际问题吗?
仿真模型的验证、认证和确认(VV&A)。
验证(Verification):
确定仿真模型本身是否存在语法和逻辑错误;认证(Validation):
确定仿真模型是否精确代表理论模型;确认(Accreditation):
确定仿真模型是否真实反映实际系统,能否被实际需要和特定目的所接受。
下图为仿真的VV&A图。
培训内容,仿真概述仿真的定义、特点和用途仿真的基本类型仿真的基本问题和内容仿真的基本步骤仿真原理Arena的安装过程Arena建模的基本概念Arena的使用VBA简介,仿真的基本步骤,培训内容,仿真概述仿真的定义、特点和用途仿真的基本类型仿真的基本问题和内容仿真的基本步骤仿真原理Arena的安装过程Arena建模的基本概念Arena的使用VBA简介,随机抽样,随机抽样(统计实验分析)方法的基本思想:
当实验次数充分多时,某一事件出现的频率近似于该事件发生的概率。
由于随机因素的存在,任意两次仿真的结果很可能是不一样的。
因此,一次仿真的结果没有什么实际意义,是不能作为决策依据的。
但可以用多次仿真实验的结果进行统计分析,来推断系统的性能。
仿真术语,仿真术语:
以一定的置信度推断系统的性能位于某个置信区间。
置信度:
可靠性程度;置信区间:
可靠性区间;精度:
精确性程度,如置信区间半长;样本量与精度的平方成反比,与置信度下有关分布的临界值的平方成正比。
终态仿真与稳态仿真,终态仿真:
在有限时段内的仿真,仿真结果与系统初始状态有关。
用相同的初始条件与终止事件做n次独立重复仿真运行,每次使用不同的随机数流。
为消除自相关影响,可对每次运行的结果进行平均处理。
稳态仿真:
仿真时间趋于无穷的仿真,仿真结果在理论上与系统初始状态无关。
与终态仿真相比,除需要消除自相关因素外,还有一个重要的方面就是要消除初始状态的影响(解决初始瞬态问题)。
仿真时钟的推进方式,面向事件的仿真时钟推进面向时间间隔的仿真时钟推进。
常用分布,均匀分布三角分布泊松分布正态分布指数分布离散概率分布,均匀分布,三角分布,泊松分布,正态分布,指数分布,离散概率分布,培训内容,仿真概述Arena的安装过程Arena建模的基本概念Arena的使用VBA简介,内容,仿真概述Arena的安装过程Arena建模的基本概念Arena的集成开发环境基本建模过程基本术语Arena的使用VBA简介,Arena的集成开发环境,Arena基本建模过程,基本术语,实体:
仿真模型中的动态对象,通常要被创建、移动、改变状态和释放,如零件。
属性:
实体的特征,使一个实体区别于其它实体,如优先级、颜色、零件号、到达时间等。
属性相当于实体的tag或label。
变量:
系统的某些变动因素,包括系统变量和用户自定义变量。
大多数变量都是公共的,任何实体都可以访问。
资源:
用于对实体进行处理,如人员、机器设备等。
资源一般要被获取和释放。
队列:
用于缓存实体。
事件:
代表系统的某些特定时刻,如零件到达、零件离开、仿真开始、仿真结束等等。
仿真时钟:
tNow,代表仿真的当前时刻。
模板:
模块的集合。
模块:
封装好的仿真逻辑。
培训内容,仿真概述Arena的安装过程Arena建模的基本概念Arena的使用Basicprocess模板Advancedprocess模板Advancedtransfer模板Reports输入分析器输出分析器过程分析器optQuest调试工具ExpressionBuilderVBA简介,Basicprocess模板
(一),基本概念实体及属性资源能力约束队列基础模块Create模块Process模块Dispose模块Entity模块Resource模块,什么是实体,实体(Entity)Arena是一个实体驱动的建模工具。
实体在Arena中可以表现为人,对象,事件等等,不管是真实存在的还是想象虚构的实体,他们经过系统,并且导致了系统状态的变化。
例如:
顾客来到一个旅馆,或者零配件进入一个工厂。
逻辑实体:
故障控制,系统控制,人员离开等等。
什么是属性,在一个系统里,也许存在很多的实体,每一个实体特有的性质,就是属性。
属性是用户定义的值,它与唯一的实体相联系,例如客户的类型,产品的大小,作业进入系统的事件,等等。
所有的实体都有具有不同值的相同的属性集(例如优先级,到达时间等)。
对一个实体的属性赋值,只对这个实体起作用。
属性举例,下列属性,是Arena自动赋值的,当你构建模型时你可以访问或者对其重新赋值:
Entity.Type-当实体被创建时赋予其的一个整型值。
用来区分其它类型的实体。
他们自动被Create模块赋值。
Entity.Picture-图片主要用来表现仿真动画。
实体的Picture属性在Create模块中自动被赋予一个值。
(默认的图片是Picture.Report)。
Entity.CreateTime-实体的创建时间。
用来收集周期信息。
Entity.Station-实体的当前站点或者实体将要移动到的站点。
这个在模型运行时是自动更新Entity.Sequence-实体的访问序列号。
是不同的实体访问同一站点集时的唯一的顺序。
Entity.JobStep实体在队列中的位置或索引。
资源能力约束,资源(Resource)通常用来模拟一个有约束的区域。
约束的产生可能是由于有限的工人去执行一个任务,有限的存储空间,设备的能力,等等。
资源能力(resourcecapacity)是指一定数量的同一资源与一个特殊的资源有相同的作用。
实体获得(seize)一个资源是指得到一个或多个资源的控制权。
实体不再需要资源时,就将其释放(release)。
使用资源,当实体获得一个资源,必须在模拟期间的一个时间将其释放掉,如果一个实体获得了一个资源而不释放掉,所有请求同一个资源的实体都将等待在队列中,直到这个资源变为可用。
队列,队列(Queue)是当实体等待获得一个资源是或者等待批处理时所处的位置。
SeizeDelayandRelease,事实上,在每一个仿真模型里,对资源的竞争都需要模拟出来。
资源可以是任何东西,可以是一个机器或者一个操作员,也可以是一个存储空间或者一个十字路口等等。
这种类型的约束都必须用资源来模拟。
当在Arena中使用资源时,你需要知道三个主要的命令Seize、Delay和Release,这三个命令是与每一个资源的使用都息息相关的。
Seize命令,当你需要实体获得一个资源时,请使用Seize命令。
当发出请求时如果这个资源是空闲的,那么,这个请求将减少被请求资源的资源能力值。
如果被请求的资源是不可用的,则实体将在队列中等待,直到资源被释放。
Delay命令,当一个资源被实体获取,在被释放之前通常会发生某些类型的操作或者加工。
这些通常是一些不同的延迟(delay),不管是明确定义的延迟还是隐式的一些其他的操作。
明确定义的延迟可能有一个Delay模块组成,它为不同的操作或者加工定义了一个延迟。
延迟的值可以使一个常量,一个已经定义好的数值型分布(如指数分布等)的随机量,或者是一个数学表达式。
延迟甚至可以是一个实体所具有的在到达Delay模块之前被赋予的属性值。
隐式定义的延迟是由模型中的其他操作或者条件所导致的。
这些延迟包括等待获取其他的资源,等待操作员或者传送带运输(或正在运输),或者是等待一个预定义好的条件在模型的某处发生。
Release命令,延迟过后,实体需要释放(release)掉它所占有的资源,以便于资源对于其他模型中的实体来说,重新变为可用状态。
这个操作可以通过使用Release模块实现。
当一个实体释放了一个资源,Arena允许下一个等待这个特殊资源实体去获取它。
Basicprocess模板
(一),基本概念实体及属性资源能力约束队列基础模块Create模块Process模块Dispose模块Entity模块Resource模块,Create模块,Create模块仿真模型中实体的起始点。
实体是按照一个时间表或者基于到达时间间隔被创建的。
实体离开Create模块进入到系统中被加工。
Create的参数窗口,Process模块,Process模块仿真中重要的处理步骤。
Process可以被指定为Valueadded(增值服务)或者non-valueadded(非增值服务),以便于可以累加它处理实体的各种成本或时间等。
一个Process模块能够被定义为以下四个选项:
DelaySeizeDelaySeizeDelayReleaseDelayRelease使用Process模块的时候,推荐使用基础的函数Delay或者Seize-Delay-Release,其它细节稍后讨论。
Process的参数窗口,Dispose模块,Dispose模块在仿真模型中,Dispose模块主要用于作为实体的中止点。
实体的统计信息将在实体离开模型前记录下来。
参数视图,Entity模块,Entity模块在仿真中用来定义各种实体类型和他们的初始化图片,初始成本信息以及储备成本信息也可以在这里定义。
NOTE:
数据模块可以使用对话框编辑也可以使用数据表格接口编辑。
要使用对话框编辑,将鼠标移动到你要编辑的小项上,单击鼠标右键,在弹出的菜单选择“EditviaDialog”即可。
Entity的参数窗口,对话框参数编辑窗口数据表格参数编辑窗口,Resource模块,Resource模块在仿真过程中定义资源,包括成本信息和资源的可用性。
资源可以有固定的能力,在整个仿真运行过程中不需要变化或者也可以通过一个基于时间的表格来操作。
Resource的参数视图,对话框编辑模式数据表格编辑模式,Model1,建立一个简单的Arena模型。
首先从模板面板拖出三个模块:
Create,Process和Dispose。
点击图标连接他们。
Model1(续),为Process添加资源:
双击process打开其参数窗口在Action下拉框中选择SeizeDelayRelease点击Add按钮打开Resources窗口在Resourcename下拉框中将resource1改为rWorker,ok在上一步中,系统自动添加了一个名为rWorker的资源其他参数设置如下图:
Process设置完毕,Model1(续),Resource模块中出现一个自动添加的rWorker资源:
我们保持其的默认设置Create模板设置如右图:
Type选择ExpressionExpression项选择随机函数UNIFUnits选择Minutes将Entity值改为eReport当我们添加Create模块时,系统自动在Entity模块中添加一个名为eReport的Entity项:
Model1(续),我们看到,在为Process添加了资源之后,Process模块上出现了一个T型图案,这代表了一个队列,在运行过程中排队等待的实体动画效果将通过它来表现。
运行我们的模型。
图形即为动画所演示的队列。
Basicprocess模板
(二),基本概念创建并且使用用户自定义变量和系统内部变量动画的概念及术语基础模块Variable模块Decision模块Assign模块动画工具条(变量),变量(Variable),将变量定义为一组全局变量,这样我们就可以在模型的任何部分改变或者查询它。
变量的初始值可以被变量模块改变,或者从外部源读入数据。
如果变量的初始值没有设置,则默认为0。
Arena有两种类型的变量:
用户自定义变量和系统变量。
用户自定义变量系统变量,变量的分类,用户自定义变量:
用户自定义变量是由模型的建立者定义的,在仿真运行期间可以改变。
例如:
到达速度当前库存病人注册数量系统变量:
系统变量是有模型组件属性预定义的,这些属性提供了组件的状态。
例如:
队列中实体的数量:
NQ(queuename)计数器的当前值:
NC(countername),动画的概念和术语,图片图片通常用来模拟实体的动画效果。
例如一个实体在模型中被加工,赋予他一个新的图片的名字就可以改变它的图片。
资源资源图片的改变可以表现这个资源的状态的变化。
有四个默认的状态(idle,busy,inactive,andfailed)可以被用户定义的状态扩充。
队列队列可以被一条直线或者一系列表示实体位置的点来模拟其动画效果。
变量(记录板)变量和表达式的当前值能够使用记录版来表现。
记录板中的值是根据变量或者表达式的值的改变而改变的。
Basicprocess模板
(二),基本概念创建并且使用用户自定义变量和系统内部变量动画的概念及术语基础模块Variable模块Decide模块Assign模块动画工具条(变量),Variable模块,Variable模块此模块用来定义在仿真模型中使用的全局变量。
变量可以使单一的元素,一维数组,或者二维数组。
可以设置变量的初始值,其默认的初始值是0或一个0的集合。
NOTE:
引用二维数组的格式是:
VariableName(Rows,Columns)。
我们将在以后详细讨论。
Variable的参数窗口,对话框参数编辑模式数据表格参数编辑模式,Assign模块,Assign模块这个模块用来创建一个变量或对变量,实体属性,实体类型,实体的图片或者其他的系统变量重新赋值。
到目前为止我们只是使用其自增或者自减一个变量,稍后我们将用它来改变其他数量或者属性的值,Assign模块的参数视图,Decide模块,Decide模块这个模块允许在系统中进行决策操作。
它可选择是基于条件还是基于概率的决策。
决策有下四种:
2-waybyChance:
实体有一定的概率到达两个可能的站点中的一个。
2-waybyCondition:
实体根据一定的条件到达两个可能站点中的一个。
这些条件包括队列中等待的实体的数量,全局变量的值,一个属性的值,等等。
N-waybyChance:
实体有一定概率到达N个可能站点中的一个。
N-waybyCondition:
实体能够根据一定的条件到达N个可能站点中的一个。
Decide模块的参数视图,动画工具条,动画工具条为Arena的动画对象提供了唯一的接口。
(他们在Arena的其他的任何菜单中都是不可用的)。
这有三种常用的动画对象:
Queues:
表现实体等待一个事件的发生(例如等待占有资源)。
Resources:
资源可以被一个与它状态相联系的图片来表现:
空闲,繁忙,离开,失败或者其他任何用户自定义的状态。
在运行期间,表现资源状态的图片的改变是根据资源状态的改变而改变的。
状态表示:
Clock,Date,Variable,Level,Histogram,Plot,Variable动画对象,Variable动画对象参数视图,Model2,我们在Modele1的基础上建立Model2,如图:
首先从模块面板中拖出一个Decide模块,一个Variable模块,两个Assign模块,按照上图进行连接,其中Assign2是与Dispose1直接相连的。
设置Assign1双击打开其参数窗口,Model2(续),点击Add按钮,弹出Assignments窗口,将variable中的variable1改为aCount,将NewValue改为aCount+1,ok,如图:
需注意的是,当我们经过上述步骤时,系统将在Variable模块中自动添加一个名为aCount的变量,我们保持其默认值即可。
与Assign1设置类似,我们将Assign2设置成如图所示:
aCount-1,Model2(续),设置Decide模块双击打开Decide模块的参数窗口我们可以将Percent改为1-100的任意值,它表示一定比率的为真,这里我们将其改为75,即75%的为真OK设置完毕Assign的动画效果稍后介绍。
运行模型,Model3动画效果,前面我们的例子中,只有一个队列是有动画效果的,下面我们来介绍资源的动画效果以及Variable的动画效果,这个模型是建立在Model2的基础上的。
资源的动画效果首先点击动画工具条中的按钮,我们进入了如图所示的窗口:
在Identifier下拉框中选择rWorker点击左侧Idel,再点击右侧的任意一幅能表达含义的图片,然后点击按钮,重复这个操作,将Busy等状态添加好相应图片,点击ok,Model3动画效果(续),出现图片来确定摆放的位置,点击鼠标左键即可我们将图片调整到合适的位置和大小资源的动画就制作完成了Variable动画效果点击按钮在弹出的Variable窗口中,将Expression下拉框选择为我们在Assign中定义的变量aCount根据习惯,将Alignment选择为Right同样需要我们确定位置及大小设置完毕,如图:
Model3动画效果(续),运行效果如图:
Basicprocess模板(三),基础模块Separate模块Batch模块Record模块,Separate模块,Separate模块这个模块通常用来将一个到达的实体复制成多个或者分裂一个先前打过包的实体。
给复制品或分裂后的实体指定成本和时间的规则,PercentCosttoDuplicate即为复制品占原产品成本的百分比。
参数视图,Batch模块,Batch模块Batch是一个分组的机械。
分好的组可以使永久的或者临时的,临时的组稍后必须使用Separate模块分割。
参数窗口,Record模块,Record模块这个模块在仿真模型中通常用来收集用户指定的统计信息。
参数视图,Model4,我们继续扩充Model3的功能,如图:
首先从模块面板中拖出一个Separate,一个Bat-ch,一个Record模块,按照上图摆放并连接好。
设置Separate1双击打开Separate1的参数窗口将PercentCostto的值改为50,表示复制一个的成本是原零件成本的50%其他的参数保持默认值,Model4(续),设置Batch双击打开Batch的参数视图这里使用默认值即可设置Record双击打开Record的参数窗口因为我们想知道一共复制的多少个,所以将Countername改为DuplicateNum,以便于识别,而其他参数使用默认值。
运行效果图:
培训内容,仿真概述Arena的安装过程Arena建模的基本概念Arena的使用Basicprocess模板Advancedprocess模板Advancedtransfer模板Reports输入分析器输出分析器过程分析器optQuest调试工具ExpressionBuilderVBA简介,Advancedprocess模板,基本概念队列的排序资源意外故障创建用户指定的统计数据基本模块Seize模块Delay模块Release模块Queue模块Failures模块Statistic模块,队列的排序,先进先出的方式不能满足所有的作业。
Arena允许你模拟这种情况,为此Arena为实体在队列中的排序提供了多种不同规则。
FirstIn,FirstOut:
实体进入队列试图占有一个资源将按照他们进入队列的时间进行排序。
先进入队列的实体现占用资源,不允许实体“插队”,这是Arena默认的规则。
LastIn,FirstOut:
实体进入队列试图占有一个资源将按照他们进入队列的时间进行排序。
最后进入队列的实体将占用资源。
LowestAttributeValueFirst:
实体进入队列试图占有一个资源将按照用户定义的属性来排序,拥有最低属性值的实体优先级最高。
HighestAttributeValueFirst实体进入队列试图占有一个资源将按照用户定义的属性来排序,拥有最高属性值的实体优先级最高。
意外故障,默认情况下,在仿真中资源可以达到100%的使用。
而在实际中,资源通常会被由于种种原因而变的不可用,如机器的部件的损坏,工人的短暂离开,能源故障,或其他的一些原因。
这些不可预测的资源损失可以通过使用故障(Failer)来模拟。
一个故障可以根据时间或计算来移除一个资源。
一个状态为busy的资源的故障选项Preempt,Wait和Ignore,其工作原理类似于Schedule表格中的这些选项。
故障反映在故障统计上。
你可以为一个资源定义多个故障。
统计,统计数据模块通常用来定义额外的统计数据,这些统计数据可以是仿真期间收集的,也可以指定输出数据文件。
在Arena中,很多的数据是在模型中自动收集的。
然而,你也许想要收集额外的数据,例如资源状态的频率,或者更复杂的时间持久性统计。
在Statistic模块中,统计的类型可以被定义,基于数量的输出和基于频率的等等。
统计也能够被存储为一个输出文件。
统计数据写入输出文件中,在每一个输出文件中都有一个专用的观测报告。
输出可以稍后用于数据分析。
这些统计显示在报表的频率段的一部分。
使用Advancedprocess模板,基本概念队列的排序资源意外故障创建用户指定的统计数据基本模块Seize模块Delay模块Release模块Queue模块Failures模块Statistic模块,Seize模块,Seize模块参数视图,Delay模块,Delay模块参数视图,Release模块,Release模块参数视图,Queue模块,Queue模块对话框参数编辑模式数据表格参数编辑模式,Failure模块,Failure模块对话框模式的参数视图数据表格模式的参数视图,Statistic模块,Statistic模块对话框模式参数编辑视图数据表格模式参数编辑视图,Model5,现在我们将使用讲到的AdvanceProcess模板中的模块搭建一个模型,如图:
Model5(续),模型描述这是玩具加工过程中喷漆环节的一个仿真模型,这个模型有两个Create模块,按照不同的指数分布函数产生两种不同的玩具,玩具首先会占用一个工人进行预处理,然后到达喷漆棚,喷完漆以后还需要进行检查,90%的玩具能够通过质检。
喷漆棚在完成100个玩具