arena仿真详细教程.docx
《arena仿真详细教程.docx》由会员分享,可在线阅读,更多相关《arena仿真详细教程.docx(98页珍藏版)》请在冰豆网上搜索。
arena仿真详细教程
arena仿真详细教程
Arena仿真中文教程
第一章:
基础知识
本节介绍安装到硬盘上以后如何创建Arena的工作环境。
的安装和调试
的安装同一般的软件类似,打开disk1文件夹,双击应用文件运行安装程序,设置好安装路径后开始安装,安装结束后点击Finish完成安装。
如果是在Windows98操作系统下安装需要在安装前预装VisualBasic,否则,不能运行。
的面板、菜单和工具栏
1.2.1A的启动
在Arena安装完成后,Arena会在桌面上自动生成快捷方式的图标
,双击图标即可进入Arena界面;同时,也可以在硬盘上的Arena\目录下双击文件进入。
在进入Arena后点击工具栏上的新建图标
打开的操作桌面(Desktop),如图1-1:
图1-1
1.2.2Desktop操作桌面简介
1.操作桌面的结构
Arena提供了十分方便的操作桌面以保证用户能够快速、简洁的建立仿真模型。
Arena的操作桌面主要由工具栏(Toolbars)、菜单栏、状态栏(Statusbar)、建模界面组成。
下文对这几部分的主要功能将一一介绍。
2、工具栏:
工具栏集中了我们建立仿真模型所要用到的主要工具,它由Standard(标准工具栏)、(视图工具栏)等组成,下面将注意介绍:
Standard:
这个工具栏提供了新建、保存和打印等功能,如图1-2:
图1-2
View:
提供了视图功能,用户对建模区进行视图操作如图1-3:
图1-3
其中经常用到的功能有:
Zoomin:
放大
Zoomout:
缩小
ViewAll:
建模区全部视图,即,以建立模型的全部视图。
ViewPrevious:
当前视图的前一视图。
ViewRegion:
选择视图区域。
Arrange:
为了用户能够创建生动、形象的动画,提供了功能齐全的绘图工具,Arrange工具栏(图1-4)就是为Arena的绘图提供支持的。
图1-4
它主要的功能有:
Bringtofront:
移到最上
Sendtoback:
移到最下
Group:
合并
Ungroup:
取消合并
VerticalFlip:
垂直对齐
HorizontalFlip:
水平对齐
Rotate:
旋转
Connect:
连接
Draw:
这个工具栏(图1-5)提供了简单的绘图工具,用户可以利用这些工具在模型中绘制简单的图形。
图1-5
Color:
利用这个工具栏,用户可以向绘制的图形添加颜色(图1-6)。
图1-6
Animate:
提供了强大的动画工具,用户运行仿真模型时能够通过动画,观察、分析仿真系统的运行情况。
Animate工具栏(图1-7)提供了在建模中需要的各种动画组件。
1-7
Template:
Template提供了建立仿真系统所需要的模块,后面的章节中将详细介绍。
Run:
这个工具栏的主要功能是控制仿真系统的运行,如图:
1-8。
图1-8
主要的功能如下:
Go:
仿真系统开始运行。
Step:
分步进行仿真。
在建立仿真系统时,常常会出现一些错误,而且这些错误很难被发现,利用Step功能可以分步的进行仿真,详细的观察整个仿真的过程,这样比较容易发现系统中的错误。
Fast-forward:
快速仿真而不显示动画。
Pause:
系统暂停。
Startover:
回到仿真系统运行前的状态,准备重新进行仿真。
End:
退出仿真运行模式,进入编辑模式。
RunInteraction:
这个工具栏的主要功能是在仿真系统运行前,对仿真系统进行检查和纠错,如图1-9:
图1-9
主要的功能有:
Check:
在不运行仿真系统的情况下对仿真系统进行编译,常用来验证系统,找出系统的错误。
Command:
激活Command窗口,在窗口中用户可以输入命令来同运行中的仿真系统交互和监控。
可以实现设置仿真中断条件,检查系统队列中实体数,输出仿真报告等功能。
属于较高级的应用。
Break:
设置仿真运行中断的时间和条件。
Trace:
产生仿真运行中的历史文件。
这些文件常用来发现和纠正仿真系统中的错误。
Watch:
激活Watch窗口,用户可以通过设置实时的了解仿真系统中一些变量(variable)和表达式(Expression)的值
Report:
激活Report窗口,在仿真运行时暂停时,可以通过这个口看到暂停时的系统状态。
ShowModules:
选择是否显示仿真模型中的模块。
Integration:
为了能够便于用户设计各种类型的仿真系统,提供了VBA(VisualBasicApplication)工具,Integration工具栏提供了用户创建VBA程序所需要的工具。
图1-10
ModuleDataTransfer:
可以激活ModuleDataTransferWizard,通过这个向导,用户可以输入或输出模块中的数据。
VisualBasicEditor:
开启VisualBasic编译器。
VBADesignMode:
切换VBA设计模式(VBADesignMode)VBA使用模式(VBAUseMode)
3、菜单栏
Arena的菜单栏主要由File、Edit、View、Tools、Arrange、Module、Run、Window、Help菜单组成,如图1-11:
图1-11
File、Edit、View、Window、Help这几个菜单的功能同其它软件的功能类似,这里就不再详述了,下面主要介绍其它四个菜单的功能。
Tools:
Arena的Tools菜单主要为用户提供了一些建立仿真系统所必需的工具。
常用的工具有:
输入分析器(Inputanalyzer)、输出分析器(Outputanalyzer)。
这两个工具在后面的第二章和第五章将详细介绍。
Arrange:
此菜单的功能同Arrange的功能基本相同。
Module:
这个菜单的功能主要是完成对模板的操作。
多数功能在工具栏中已经介绍这里只介绍如下内容:
TemplatePanel:
它的功能是加载和卸载模板(Template)。
当鼠标移到这一命令时会弹出一个菜单,包含了Attach和Detach两个命令。
当我们点击Attach时会出现窗口(图1-12)。
图1-12
用户可以选择想要在工具栏中的TemplateBar中添加的模板。
点击Detach时,可以将TemplateBar中所有的模板剔除。
Run:
这个菜单主要的功能是控制仿真系统的运行,其中主要的功能在RunInteraction工具栏中已经介绍,下面将简要介绍其余的功能:
ReviewErrors:
用来检查编译后仿真系统产生的错误。
ViewResults:
在仿真系统运行结束后,查看系统报告。
图1-13
SIMAN:
选择这一命令时会有弹出菜单,包含两个选项:
View和Write。
由于Arena的仿真系统是建立在仿真语言SIMAN的基础上,所以,用户可以打开仿真系统的SIMAN源代码进行编辑。
当执行View命令时,Arena将打开SIMAN源代码供用户查看;当执行Write命令时,将在模型目录中产生仿真系统的SIMAN模型和实验文件。
Setup:
当执行该命令时,将出现Setup窗口(图1-13),用户可以对系统参数进行设定。
Speed:
这个命令会弹出三个子命令,分别是:
IncreaseSpeed—增加仿真系统的运行速度;DecreaseSpeed—减慢仿真系统的运行速度;SpeedFactor—设置仿真系统的运行速度。
4、状态栏和建模界面
建模界面:
建模界面就是Arena为建立仿真系统提供的区域,如图1-14:
图1-14
Arena是一种面向对象的仿真工具,用户可以不用编写程序而直接使用Arena提供的仿真模块来建立仿真系统。
方法就是将Template(模版)工具栏中的Module(模块)拖到建模界面上,根据对象系统的状况将这些模块连接起来,同时设置好参数,就可以完成对对象系统的仿真。
在建模界面中,用户可以建立仿真系统的逻辑模型和动画模型对对象系统进行仿真,图1-14就是一个加油站仿真系统的模型。
状态栏
状态栏位于Arena桌面的右下角,主要的功能是显示光标在建模界面中的坐标值。
一个简单的例子
为了让大家快速的了解Arena建立仿真模型的过程,本书将建立一个最简单的仿真系统——单队列、单服务台的排队系统。
1.3.1模板的添加
在建立模型之前,需要在Template工具栏上添加建立模型需要的模板。
建立单队列、单服务台的模型,只要Common模板就足够了,加载改模板的过程是点击Template工具栏上的Attach(或点击菜单“Module\TemplatePanel\Attach”),出现AttachTemplatePancel窗口(图1-12)
选择Common后点击“打开”,即完成了Common模板的加载。
加载后Template工具栏上的Common模板如图1-15所示:
在建模时,主要用到的模块有:
“Arrive”、“Server”“Depart”、“Simulate”、“Animate”。
1.3.2单队列、单服务台仿真模型的建立
1、Arrive模块
Arrive模块的主要功能是按一定的概率分布产生实体(entities)实体。
在本例中,实体代表到达服务系统的顾客。
首先,点击Template工具栏Common模板中的Arrive
,在光标移到建模区域时会变成十字,选择你要加在模块的位置,单击鼠标,表完成了模块的加载。
加载后的Arrive模块的图标为
,双击图标
,打开Arrive对话框(图1-16):
对话框由三部分组成,分别是:
EnterData、ArrivalData、LeaveData。
图1-15
在EnterData区域的单选框中选择Station,在后面的组合框中填入“InDoor”作为Arrive模块的名字。
在ArrivalData区域填入如下内容:
在BatchSize填入1,表示每次到达的实体数是1;
FirstCreation文本框中填入的数值表示第一个实体到达的时间(缺省值为0);
在TimeBetween中的下拉菜单中我们可以选择实体到达时间间隔的概率分布。
Arena提供了十几种概率分布供用户选择,在本例中,实体到达系统的时间间隔服从参数是5指数分布,所以填入“EXPO()”。
MaxBatches表示在一次仿真中产生实体的最大数量,如果不填则表示对实体数没有限制。
图1-16
MarkTimeAttribute:
Arrive在产生每个实体时,都通过该组合框赋给实体一个属性(属性默认命为TimeofArrival),这个属性将记录产生这个实体时的系统时间。
通过这个属性可以计算实体的系统逗留时间。
在LeaveData区域中的单选框内,需要选择实体离开Arrive模块的方式。
实体离开Arrive模块的方式有以下两种:
Route:
实体在Arrive对应的Station
(关于Station将在下文进一步介绍)位置产生,经过一段时间,位移到后面对应的模块。
Connect:
实体产生后不需要任何时间直接到达下一个模块。
Connect的本质是模块间的一种逻辑联系,可以认为实体是在下个模块产生的;而Route除了逻辑联系外,也是一种物理联系,实体在Arrive模块产生,位移一段时间后到达下一个模块。
2、Server模块
Server模块的主要功能是对实体的延时处理,这种延时可以看成是生产加工、服务、等待。
Server的核心成分是资源及其相应的队列。
按照前文的方法向建模界面中填加Server模块
。
双击
打开Server对话框(图1-17)。
图1-17
同Arrive模块类似,Server模块也由三个功能区域组成,分别是:
EnterData、ServerData、LeaveData。
在EnterData区域内,需要填入Server模块的名称Machine。
ServerData是Server模块中最重要的部分,本例需要进行如下设置:
Resource:
在这个组合框中填入资源的名称Machine_R。
CapacityType:
它的主要功能是选择实体占用Resource的方式,下拉菜单种有两种Arena默认的占用子方式:
Capacity和Schedule。
前者表示占用资源的实体的数量不变;后者按一定的计划改变占用资源的实体数量。
(下文中将详细介绍Schedule的资源占用方式)本例中选择Capacity的占用方式。
在选择Capacity后,下发会出现Capacity文本框,表示了资源允许实体同时占用的最大数量,默认值为1,本例中使用默认值,表示一次最多只能对一个实体进行服务。
ProcessTime:
在这个组合框中,需要填入延迟时间的概率分布。
本例中,机器的服务时间服从三角分布参数为TRIA(1,4,8)。
在选择复选框ResourceStatistics后,在仿真结果报告中将会输出对Server模块的统计,主要内容有:
系统资源忙的个数、资源队列的平均长度、可利用资源的平均个数。
在LeaveData区域中,需要对实体离开Server模块的方式进行选择,同Arrive模块类似,仍旧选择Connect。
3、Depart模块
Depart模块的主要功能是消除系统中的实体。
这种消除实体的过程可以看作是顾客离开服务系统或是工件完成加工出厂。
在建模界面中添加Depart模块
,双击图标
打开Depart对话框(图1-18)。
图1-18
Depart模块也是由三个功能区域组成,分别是EnterData、Count、Tally。
在EnterData区域中填入Depart模块的名称OutDoor。
Count区域的功能是统计经过Depart的实体个数,在本例中,可以看作是统计完成加工的产品的数量。
在Count区域的单选框中选择IndividualCounter,表示对某一个变量计数(相对于集合而言);在下面的Counter组合框中填入变量的名称Production;最后的Increment文本框中填入1,表示每当一个实体经过Depart模块,变量Production的值就增加1。
完成上面的操作后Arena会在Depart图标的上方自动生成Variable图像工具,图标为
双击该图标打开Variable对话框(图1-19)。
用户可以点击Area、Border和Font按钮对Variable的图形外观进行设置。
在仿真系统运行时,VariableDialog会实时的输出变量值,在此对话框中,可以输入变量的名称,更改对图标的颜色设置等。
Tally区域的主要功能是计算一些变量的值。
图1-19
在单选框中选择IndividualTally,表示计算单个变量的参数(相对于集合而言);在下面的Tally组合框中输入变量的名称Flowtime。
TypeStatistics单选框由三个选项:
Interval:
记录在到达Depart模块后,实体某些属性值的差,这个属性的值是先前定义并记录过值的。
例如:
在本例中计算实体系统逗留时间的过程是这样的:
在上文Arrive模块的ArrivalData区域中的MarkTimeAttribute组合框中定义了属性TimeofArrival,Arrival模块创建实体时将该时刻的系统时间赋给该属性记为
;在Depart模块的Tally区域中的TypeStatistics选择Interval,然后在下面的Attribute组合框中的下拉菜单中选择属性TimeofAttribute。
(Arena在建模时会自动记录已经定义过的各种名称,如:
属性名、变量名、模块名,当后面建模时用到这些名称时,直接可以在下拉菜单里选择,以免由于输入错误导致系统无法运行)在实体到达Depart模块时,Depart模块记录下此时的系统时间
,然后计算出系统逗留时间
,然后将
值赋给变量Flowtime。
Between:
记录到达Depart的两个实体到达的时间间隔。
Expr:
每到达一个实体都记录下指定表达式的值。
4、实体的连接
在这个模型中,实体在Arrive模块产生,到达Server模块接受服务后,在Depart模块离开系统,在设置好模块后,需要将各个模块连接起来。
在Arena中模块间的连接方式主要有两种:
Connect和Route,在前文Arrive和Server模块已经设置了Connect的离开方式,在本例中用Connect连接各个模块。
点击工具栏的Connect
图标或菜单中的Module\Connect,将三个模块连接起来,如图:
在连接好三个模块后,仿真系统的逻辑部分就完成了。
5、Animate模块
在进行仿真时,需要对系统的一些变量进行实时的统计,通过图表来表示。
下面要介绍Animate模块,在仿真系统中建立图表对仿真系统进行统计。
在建模界面中添加Animate模块
,双击图标
打开Animate对话框(图1-20)。
Animate主要由三个功能区域,分别是:
DataObject、Information、DisplayAs。
在第一个Animate模块中需要显示Server模块中资源的队列长度,即,队列中实体的数量。
在DataObject区域内的单选项需要用户选择显示对象的类型。
在本例中,需要显示队列长和机器状态,所以,在第一个Animate中选择Queue选项。
在选择Queue选向后,下方出现QueueName组合框,在组合框中填入队列的名称Machine_R_Q(下拉菜单中由该项)。
需要说明的是,在定义Server模块时,Server模块默认的队列名称为Mechine_R_Q,这里填入的队列名称必须同Server模块中的名称保持一致。
图1-20
在选择Queue后Information选项中会出现多选项,本例选择NumberinQueue,表示显示队列中的实体个数。
在DisplayAs区域中由四个复选框,每个选项对应Animate模块对应的四种图形工具:
Variable:
显示变量值。
Level:
用柱体水平高度表示变量值。
Histogram:
用柱状图表示变量值。
Plot:
用折线图表示变量的值。
本例中选择用折线图(Plot)显示队列长度,所以选择Plot选项。
在关闭对话框后,双击图标
,打开Plot对话框(图1-21)。
图1-21
TimeRange文本框中需要填入折线图的时间长度(默认值为60),本文的仿真时间为15,所以填入15。
Refresh区域的功能是根据仿真的进行实时的更新折线图区域。
在本例中由于折线图的时间长度同仿真运行时间相等,所以选择None。
在Border区域中选择BoundingBox,在下面的复选框中选择X-Label。
右面的按钮Area、Border、FillArea可以选择折线图的颜色。
在设置Animate模块后,Plot对话框的Expression列表框中默认表达式为NQ(Machine_R_Q)。
在列表框的旁边有Add、Edit、Delete按钮,可以对列表框中的选项进行添加、编辑和删除操作。
点击Edit按钮打开PlotExpression对话框(图1-22)
在PlotExpression对话框中,文本框Minimum和Maximum中填入队列长的范围最小值为0,最大值为3。
在右下角的单选框选择Stepped。
在第二个Animate模块中需要显示资源的忙闲状态,在本例中仍用折线图来表示,资源忙态在折线图中用1来表示,闲态用0表示。
图2-22
由于同前面的Animate模块设置类似,这里就不再重述了。
6、Simulate模块。
在建立好仿真系统的逻辑模型后,需要对仿真模型的运行进行控制,在中是通过Simulate模块对仿真系统进行控制的。
在建模界面中添加Simulate模块,图标为
。
双击图标
打开Simulate对话框(图1-23)
该对话框主要有两个功能区域:
Project和Replicate。
在Project区域,在Title文本框内填入仿真系统的名称;在Analyst文本框中填入分析者的名称;在最后一项Data中填入建模的时间。
在Replicate区域,在NumberofReplicatior文本框内输入独立重复仿真系统运行的次数,默认值为1;在BeginningTime文本框中输入仿真开始的系统时间,默认值为0;在LengthofReplication中填入仿真进行的时间,本例中的仿真系统的仿真运行时间为15。
最后,在下面BetweenReplications复选框中选择InitializeSys和InitializeStatWWWi,分别表示在独立重复仿真之前对系统状态初始化和对系统参数的统计初始化。
图1-23
通过以上的工作,已经完成了单队列、单服务台仿真模型的建立,经过编译如果没有错误就可以运行了。
1.3.3单队列、单服务台仿真模型运行
1、仿真系统的运行
点击
或点击菜单中的Run\Check,确认仿真模型没有错误后,点击工具栏中的图标
或点击菜单中的Run\go开始仿真运行。
仿真运行结束后Arena会自动生成仿真输出报告。
在仿真系统运行结束后,会出现如下对话框,选择“确定”打开仿真的输出报告。
如下图:
ARENASimulationResults
squall-License#9400000
SummaryforReplication1of1
Project:
SimpleProcessinRunexecutiondate:
8/12/2004
Analyst:
DesdemonaRocketModelrevisiondate:
8/12/2004
Replicationendedattime:
TALLYVARIABLES
IdentifierAverageHalfWidthMinimumMaximumObservations
_______________________________________________________________________________
Machine_R_QQueueTime.18608(Insuf).00000.558243
Flowtime(Insuf)2
DISCRETE-CHANGEVARIABLES
IdentifierAverageHalfWidthMinimumMaximumFinalValue
_______________________________________________________________________________
Machine_RBusy.84926(Insuf).00000
#inMachine_R_Q.272