首页 arena中文教程arena中文教程第3章

arena中文教程arena中文教程第3章

举报
开通vip

arena中文教程arena中文教程第3章第3章 Arena概貌 在第二章的2.4部分,我们实际上利用Arena完成了“手工”仿真过程,而且在2.6部分对该模型和修改后的模型(即到达率加倍)进行了多次重复仿真运行。这一章本书将带你领略应用Arena建模仿真的整个过程,首先教你启动Arena,浏览为上一章手工仿真建立的现成模型,并运行该仿真模型,然后学习如何从头开始建立模型。本章也会探讨用户界面问题,以及如何使用帮助文件系统,并讨论运行仿真的不同方法,同时讲解绘图和图形工具的用法。 3.1节介绍如何启动Arena;3.2节带你浏览一个现成的模型;在3....

arena中文教程arena中文教程第3章
第3章 Arena概貌 在第二章的2.4部分,我们实际上利用Arena完成了“手工”仿真过程,而且在2.6部分对该模型和修改后的模型(即到达率加倍)进行了多次重复仿真运行。这一章本书将带你领略应用Arena建模仿真的整个过程,首先教你启动Arena,浏览为上一章手工仿真建立的现成模型,并运行该仿真模型,然后学习如何从头开始建立模型。本章也会探讨用户界面问题,以及如何使用帮助文件系统,并讨论运行仿真的不同方法,同时讲解绘图和图形工具的用法。 3.1节介绍如何启动Arena;3.2节带你浏览一个现成的模型;在3.3节你可以更加详细地查看这一模型,浏览对话框和动画,运行模型和查看结果;3.4节帮助你从头开始一步步建造该模型;3.5节简要介绍Arena的一些主要建模功能,包括菜单和工具条中的可用选项以及绘图打印功能等;3.6节介绍Arena强大的帮助文件系统以及所有详细的技术文件;3.7节讨论有关运行和控制仿真的各种选项。 看完本章后,你将会了解Arena是如何工作的,并知道用Arena可以做些什么,而且你可以有效地运用Arena建立一些简单的模型,甚至可能借助帮助系统,通过自己摸索有关菜单和对话框完成一些更为复杂的工作。仅通过阅读本章,你也许就能了解不少有用的东西,但如果能同时在电脑上加以实际操作,效果会更好。有关如何建立模型的更多内容将会在第四章及以后章节讨论。 3.1 启动系统 Arena是一种真正的微软“视窗”操作系统(Windows)的应用软件,因此用户对它的外观和风格会比较熟悉,并且其一般的特征和操作也与Windows操作系统一致。另外,Arena与其它Windows软件全面兼容,例如文字处理软件、电子表格软件和CAD软件等,所以用户可以很容易地在不同软件系统与Arena之间来回移动对象(第10章将详细介绍Arena与其它软件地交互和通信)。 顺便补充一句,本书假设读者对Windows的基本概念和操作都已经熟悉了,例如: ( 磁盘,文件,文件夹和路径。 ( 鼠标和键盘的使用,包括单击、双击和右击鼠标。 ( 操作窗口,如移动、调整大小、最大化、最小化和关闭。 ( 对菜单的操作。书中使用如下符号“M > C> S > T”,表示打开菜单M,从中选择C,然后从子菜单中选择S(如果有的话),最后选择带有标签T的页面(如果有的话)。 ( Control、Alt和Shift键的使用。“Ctrl+任意键”意味着同时按下Ctrl键和任意键(这一点同样适用于“Alt+任意键”和“Shift+任意键”)。如果“任意键”是键盘键,则不区分大小写。“任意键”也可以是鼠标点击,例如“Ctrl+单击”可以拓展某个选择使其包括增列项目。 ( 对文本和其它项目的剪切Cut(或者菜单命令Edit>Cut,或者组合快捷键Ctrl+X),复制Copy(或Edit>Copy,或Ctrl+C)和粘贴Paste(或Edit>Paste,或Ctrl+V)。 ( 填写对话框,包括输入和编辑文本条目、按下按钮、选定和清除(即取消选定)选项框、从一列选择按钮(单选按钮)中单击选中其中一个按钮、以及从下拉菜单中选择项目。 如果读者对以上提到的操作不熟悉,在阅读下面的内容前最好先要复习一下Windows操作指南。 下面来到电脑旁,电脑中已按随书附带的说明书安装了Arena系统(可以参阅附录E来了解如何安装Arena教学版,安装程序在随书附带的光盘内),找到Arena图标或快捷方式并双击它(或者启动Windows,单击开始按钮,在程序菜单中找到Rockwell Software,进而找到Arena 7.0子菜单,最后在其中找出Arena 7.01的图标并单击来启动Arena),很快Arena版权窗口就会出现,如果你运行的是教学版(本书光盘提供的即为该版本)或评估版的Arena,你将会看到一个相应的信息框,阅读后请点击确定(OK)(由于OK按钮是默认选项,也可以在键盘上之间点击回车键)。 此时在Arena窗口左上方会出现文件(File)、视图(View)、工具(Tools)和帮助(Help)菜单(如果一个空的模型文件在Arena启动后被自动打开,则还可以看到其它几个菜单)。你还可以看到含有不同按钮的工具栏,不过在打开模型文件之前,只有如下几个工具栏可用(处于激活状态): 创建一个新的空模型文件,这个按钮等同于菜单命令File >New和键盘操作Ctrl+N。 显示一个对话框用以打开一个以前保存过的模型,等同于File >Open和 Ctrl+O。你可能需要在其它文件夹或磁盘中去寻找所要打开的模型文件。 模板添加(系统提供了若干模板(Template),每个模板中包含了相应的建模元素),等同于File >Template Panel >Attach。这些模板文件(扩展名为.tpo)保存在Arena 7.0文件夹下的Template文件夹中。 模板断开(当你不再需要相应的建模元素出现在活动面板里时),等同于File >Template Panel >Detach。 关联帮助按钮,提供关于菜单或者工具栏命令的帮助。单击它鼠标箭头上会增加一个问号,用带有问号的箭头单击想要得到帮助的工具栏按钮或者菜单命令即可得到相应的帮助信息,关闭帮助窗口后鼠标指针就会返回原来的单箭头。 工具提示(Tooltips)可以提供另外一种更加快速和简洁的关于工具栏按钮的帮助。将鼠标停留在某个按钮上面保持一两秒种不动,就会出现一个小方框显示该按钮的名称。如果你想知道那个按钮更多的信息,可以使用,也可以在帮助系统中查阅相关信息(因为你此时已知道了该按钮的名称)。关于帮助功能的更多描述可以参考3.6节。如果你对频繁出现工具提示感到厌烦,可以通过View>Toolbars菜单打开Toolbars标签项,在其中清除Show Tooltip(显示工具提示)选项。当想从Arena系统退出时,点击右上角的,或者使用菜单命令File>Exit,或者按Alt+F4。 3.2 Arena的窗口组成 在这一部分,我们将打开一个现成的模型,看看Arena的各种窗口,以便读者熟悉,同时介绍一些Arena的基本术语。 3.2.1打开模型文件 已有的模型可以通过File>Open菜单命令打开(或者单击弹出“打开文件”对话框),文件名称会出现在滚动框内,当然你也可以直接搜索其它文件夹或磁盘。找到名为Model 03-01.doe的文件(Arena文件的默认扩展名为.doe1)。当使用典型安装时,该模型文件保存在Arena 7.0文件夹下的Book Examples文件夹内。单击文件名选中该文件,并点击Open按钮即可(或者双击该文件名)。 你会看到一个如图3-1所示的Arena窗口(你看到的工具栏和按钮也可能会有些差异,或所处的位置不同),我们称之为模型3-1。 3.2.2 Arena窗口的构成和关联 如图3-1所示,该模型所在的Arena窗口可分为几个部分。 在右边占据屏幕大部分的是模型窗口,它实际上位于Arena窗口的内部,如果你同时打开几个模型,每个模型窗口单独容纳一个模型,但所有窗口都在Arena窗口内,就像文字处理和电子表格软件一样。你可以通过点击某个窗口以便在不同窗口之间切换,或者从Window菜单的窗口列表里选取。如果有大量模型窗口同时被打开,可以使用Ctrl+Tab键在窗口之间切换,或者使用“(”按钮使部分窗口缩小为图标形式,此外,Window菜单里还有一些其它命令(层叠、平铺等)来安排打开的模型和被最小化的图标。可使用工具按钮(即File>New或者Ctrl+N)来创建一个空的模型窗口,使用按钮(即File>Save或者Ctrl+S)来保存当前的活动模型窗口,使用(即File>Open或者Ctrl+O)来打开以前保存过的模型窗口,改变窗口大小或重新定位窗口的操作与其它Windows操作系统下的应用软件是一样的。 原书P52 项目工具栏 工具栏 模型窗口中的流程图视图 状态栏 模型窗口中的电子表格视图 图3-1 简单加工系统(模型3-1)的Arena窗口 我们所熟悉的剪切、复制和粘帖功能在Arena内部以及Arena和其它应用软件之间均可进行。例如,你同时打开了几个模型窗口,想把一些对象从其中一个窗口复制到另一个窗口,可先用鼠标选择对象(可用Ctrl+单击或者拖动鼠标画框来选择多个对象),再复制对象到剪切板(Ctrl+C或Edit>Copy),切换到另一窗口,然后将其粘贴进去(Ctrl+V或Edit>Paste)。当选择了“粘贴”操作之后,在选项的西北角鼠标箭头会变成十字线,然后在想要粘帖的位置点击鼠标即可完成操作。再比如,你同时打开了Arena和工作表,你想要将表中的一个长数字放到Arena文本对话框中,可首先从工作表单元格中复制该数字,再切换到Arena窗口中(通过Windows任务栏或使用Alt+Tab键在打开的软件之间切换),在对话框中定位你想要放数字的插入点,然后粘贴进去。如果你在文字处理系统中写 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 ,想要粘贴一幅Arena屏幕的“快照”,则进入Arena窗口,按Prnt Scrn键,然后切换回正在处理的文档,在你想要的位置粘贴该快照;如果你只想粘贴当前活动的窗口(例如一个对话框),则按住Alt+Prnt Scrn,然后粘贴到你想要的位置。 模型窗口分为两个区域或两种视图:流程图视图(flowchart view)和电子数据表格视图(spreadsheet view),通常情况下在模型窗口中能够同时看到两种视图是很有用的(但也可通过在菜单命令View中清除Split Screen选项或者单击来关闭一个视图,以便让模型窗口集中显示某个视图。在这种情况下,要想看流程图视图或电子数据表格视图,只需在屏幕左边的项目栏里单击任何一个流程模块()或电子数据表格模块()即可)。流程图包含了模型的图形符号,有加工流程、动画和其他一些绘图元素。电子数据表格能够显示诸如时间等参数的模型数据,允许用户进入和编辑数据。许多模型参数在两种视图中都可以被看到并编辑,但电子数据表格视图使用户能够一次处理更多的参数,并且相似的参数被集中存放,对于大模型来说非常便于编辑。当同时显示两种视图时,可通过上下拖动分割两种视图的水平线,以改变两种视图在模型窗口中的比例。 图3-1中Arena窗口的左下方是项目工具栏(Project Bar),它存放各种面板(panel),每个面板包含了用户所使用的各种对象。面板一次只能显示一个。当前项目栏显示的是“基本操作面板(Basic Process Panel)”,它包含了基本建模模块(module),这些模块在仿真模型中有广泛的用途。在基本加工面板下面的是标有“报告(Report)”的水平按钮,这个面板可以显示仿真运行后的结果,可试着点击这个按钮观察该面板,再次点击基本操作面板返回。“导航(Navigate)”面板可以使用户从不同角度观察模型,在多层递阶模型中还可以看不同的子模型(模型3-1没有多层子模型,因此唯一的视角是顶层模型,单击左边的“+”键,在打开的树状结构中可以看到三个条目,具体将是在3.2.3节讨论)。项目工具栏通常被放置在窗口左侧,但也可以将其“悬浮”在屏幕的任何位置,当然如果你愿意,也可以把它放在模型窗口的右侧。当用户在建模时,一般需要显示项目工具栏,然而当需要更大的空间来查看模型窗口中的事物时,可以按项目工具栏右上角的“(”按钮或者在View菜单中清除Project Bar选项来隐藏工具栏。 Arena中还有其它一些面板(可能会与版本的授权情况有关),包括“高等操作(Advanced Process)”(用“更小”的建模操作块来对各种细节建模),“高等运送(Advanced Tranfer)”(包括移动实体的许多选项)、“操作块(Block)”与“构模元素(Element)”(使用户能充分使用作为Arena基础的仿真语言SIMAN;参阅文献Pegden Shannon和Sadowski, 1995)。还有更多的面板,包括创建特殊的应用系统,例如对工厂、呼叫中心、以及高速包装线建模等。为了能够在模型中使用使这些面板,需要通过File>Template Panel>Attach或者添加模板按钮()把相应的面板装载到模型中去。面板文件的扩展名为.tpo,位于Arena 7.0文件夹下的Template文件夹内。如果你想把特定的面板导入每个新建的模型,可进入Tools>Options>Settings,然后把所需的.tpo文件输入到Auto Attach Panels框内。 在Arena窗口最下面是状态栏,它显示此刻正在进行的有关仿真状态的各种信息。现在状态栏显示的是鼠标指针在建模空间中的坐标(x, y)(详见3.2.3节);当仿真运行时,显示的是仿真时间、当前的重复仿真次数、重复仿真的总次数。也可以通过在View菜单中清除Status Bar选项来隐藏状态栏。 3.2.3流程图视图一览 在图3-1模型窗口中看到的流程图仅仅是该模型众多可能视图中的一种,这些模型的流程被描述在一个图形建模空间中,图形建模空间的中心坐标为(0, 0),从中心坐标向四个方向延伸出1000个单位长度,这些单位只是表示位置的,没有任何特殊的物理意思。点击模型窗口右上角的(按钮,可以最大化窗口尺寸,同样点击Arena系统窗口右上角的(,可以最大化Arena视窗。 为了看流程图的不同部分,可以使用窗口下面和右侧的滚动条或箭头来浏览(试一试,你也可以先用鼠标激活模型窗口,然后通过上下左右键来浏览),你也可以对视图放大(用按钮或“+”键或View>Zoom In菜单)或缩小(用按钮或“-”键或View>Zoom Out菜单),以便从不同“高度”看模型。点击按钮(或View>Views>All菜单或用“*”键)可以自动显示全景,以最可能近的焦距观看整个模型。如果你想返回看以前的视图,可以点击(或View>Previous菜单)。如果你正处在较高的高度上,但想拉近看某块区域以仔细观察时,可以选择View>Views>Region菜单或点击“[”键,使鼠标指针变为十字线,从长方形的一个角点开始拉到另一个角点以确定观察区域,则可以近距离察看(即在可能的最低的高度上)该区域内的所有图象。 如果你有一个选好的视图,可以把它保存为命名的视图(Named View),同时给它分配一个热键。首先通过缩放将你想要保存的视图定义好,选择View> Named Views菜单(或点击“?”键),然后单击Add 键。你需要给这个视图一个描述性的名字,同时也可以选择给它分配一个热键。通过选择View> Named Views菜单(或点击“?”键),单击想要显示的视图,然后按Show键。你也可以在项目栏的导航(Navigate)面板里点击左上角的“+”键,打开所有命名的视图构成的树状结构,然后点击所要的视图条目。最快的方式就是点击分配给那个视图的热键来显示该视图,不过你必须记住这些热键,也可以用文本的形式 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 在模型上(参看3.5.3部分),命名的视图热键是Arena软件中少数几个区分大小写的地方(例如,“a”和“A”是不同的)。命名的视图在任何时候都可以访问,甚至在仿真运行过程中。对于模型3-1已经建立了三个命名的视图:整个视图(热键a)、逻辑视图(热键l)和散点图视图(热键p)。 打开新模型时,它会以特定的初始视图出现,一般位于图形建模空间原点(0, 0)位置的东南部,可以在键盘按Home键(或View>Views>Home菜单)返回原来位置。为了看到图形建模空间最大可能的面积(从最大的高度看),选择View>Views>Max菜单。 为了目测方位,可以通过View>Grid菜单(或点击)显示有小点组成的背景网格,如果你想进一步使新近放进去的对象对齐网格,可以选择View>Snap(或点击)。这两种操作键都是开关键,也就是说你可以通过重复点击来取消操作。为了使已有的对象对齐网格,首先选择对象,然后单击调整对象的位置与网格点对齐。为自定义网格点间隔,选择View>Grid Settings菜单,对话框内的数值以图形建模空间的度量单位为 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 。 3.2.4 模块 Arena模型的基本构件叫做模块(module),可利用这些模块定义仿真流程和数据,它们存放在项目栏中的各种面板里,基本上可分为流程模块(flowchart module)和数据模块(data module)两类。 流程模块在模型中描述了动态过程,你可以把流程模块看成实体流经的结点或者模型起止的过程。要把一定类型的流程模块放到模型中去,可以从项目栏里选取该模块并拖到流程图窗口里(当然在窗口里也可以拖动模块重新定位)。在某种情况下流程模块是相互关联的。在基本操作面板中,可用的流程模块有创建(Create)、清除(Dispose)、处理(Process)、决策(Decide)、批量(Batch)、分离(Separate)、赋值(Assign)和记录(Record)模块,而别的面板中还有许多其它的流程模块。在基本操作面板中,每种类型的模块都有不同的形状,类似于经典的流程图(参考Schriber, 1969),但是在其它面板中有更多的流程模块的形状没有具体含义,它们只是用简单的长方形来表示,一些面板中(如“高等运送”面板)使用不同颜色的长方块区分不同类型的流程模块,另一些面板(如用于联络中心和包装的专用面板)使用更加复杂的图形表示流程模块。一旦流程模块被放到流程图窗口里,即可双击该模块来编辑它,此时会出现一个有关该模块的对话框。另一种编辑的方法就是在项目栏或流程图窗口中选择一种模块类型(例如单击Create或Process模块),此时在电子数据表格视图中会出现一列该类型的模块,这样就可在电子数据表格中编辑它们了。这种方法可以使你对模型中该种类型的所有模块情况一目了然,因此在大型模型中非常有帮助。 数据模块定义了各种操作元素(如实体、资源和队列)的属性,同样也能够创建整个模型所用的各种数值变量和表达式,在项目栏里像小电子表格形状的模块就是数据模块的图标。“基本操作”(Basic Process)面板里的数据模块有实体、队列、资源、变量、调度和集合模块,别的面板里包含了其它种类的一些数据模块。实体不会流经数据模块,同时数据模块也不能被拖进模型窗口内,实际上数据模块隐藏在“场景”背后,定义不同的数值、表达式和条件。不能通过双击数据模块来编辑它们,但可以在工具栏里单击数据模块,这样相应类型数据模块的电子表格就会出现在电子数据表格视图内,通过双击可以编辑或增加数据行。系统默认的是在电子数据表格内编辑模块,但如果双击左侧的数据列,则可以在对话框内编辑。与流程模块不同,同一类型的数据模块在模型中不会出现多于一个,但一个数据模块可能有很多行,每行描述一个独立的对象所包含的数据(例如,如模型中有三种不同的队列,队列数据模块就会包含三行,每行在表格中代表一个队列)。 同一模型内流程和数据模块通过它们共有的对象(如队列、资源、实体类型和变量)名称相互联系起来。Arena保存所定义过的对象名称目录,并把它们在适当的位置以下拉的形式呈现出来,这样可以帮助用户记住对象的名称(可以使用户不必多次输入对象名称,或者至少可以保证对象名称前后一致,从而保证模型顺利运行)。 3.2.5 内部模型文档 当把鼠标指针停留在一个模型符号或其它对象上时,你将会看到相应的数据提示,数据提示分为默认描述和自定义描述。默认描述介绍有关对象的一般信息,如名称和类型;自定义描述给出用户在对象属性区域内所键入的内容。在对象上点击鼠标右键,然后选择属性,就会出现可键入文本的区域。数据提示的出现与否可以通过View>Data Tips菜单控制,默认情况下,“默认描述”和“自定义描述”都处于激活状态,当然也可以将两种提示屏蔽掉。 除了对模块描述外,也可以定义“项目描述”,即给整个模型提供一些说明性文本信息,可利用项目描述很好地说明模型是做什么的、为什么这么创建模型以及所做的假设等相关信息,可通过Run>Setup>Project Parameters菜单键入项目描述(参看本章后面的图3-15)。 数据提示是一种很有用的功能,但当模型很大时,你可能想知道是否有其它方式去充分利用这些信息,答案是肯定的。可利用Tools>Model Documentation Report菜单创建用户报告,它汇总了所有模型数据,可在该菜单中的可选项中选择报告要包括的各种信息,即可生成HTML形式的报告。 3.3 浏览现有模型:模型3-1 为了了解模型3-1是如何创建的,本书将带你进入模型窗口中的流程模块和数据模块,说明这些模块是如何联系起来的,然后再运行这个模型查看结果。之后在3.4节,本书将从头开始教你如何建立模型。 3.3.1 Create流程模块 首先从流程图视图左侧的“创建”模块(Create)开始,此处把该模块命名为“零件到达系统”。 对于到达模型边界的实体来说,Create模块意味着从外部进入模型的起始点,在这个例子中,实体就代表零件。双击该模块会打开一个图3-2所示的对话框。 原书P57 图3-2 模型3-1的Create模块对话框 在“名称”(Name)栏中输入Part Arrives to System(零件到达系统)作为该模块的名字,这个名称将会出现在模块图标框内和数据提示部分。然后在“实体类型”(Entity Type)栏中定义Part作为该实体的类型,在这个模型中只有一个实体类型,但是通常情况下会有很多实体类型,此时需要分别命名使其直观,同时可以用于其它一些目的。 话框中部的“到达时间间隔”(Time Between Arrivals)区域是用于规定相邻实体到达间隔时间属性的。在“类型”(Type)栏内选择Random (Expo)(可使用下拉列表箭头)定义到达时间间隔为一个服从指数分布的随机变量(如果需要复习概率知识可参看附录C;查看指数分布或其它概率分布的定义参看附录D),在“参数值”(Value)栏内输入5,在“单位”(Unit)栏内定义Minites(分钟)作为时间单位,表明此处是5分钟而不是5秒种、5小时或5天, Arena不严格区分混合整数和实数,因此也可以输入“5.”或“5.0”。 在对话框底部,可以看到“每次到达实体数”(Entities per Arrival)栏中数值为1(默认值),表明一次到达一个零件;“最大到达数”(Max Arrivals)栏中了定义仿真过程中实体最大的到达数量,此处为无穷大(缺省),如果有限制,则在达到最大到达数之后Create模块将被“关闭”;“首次到达”(First Creation)栏表示第一个实体的到达时间,此处为0(而不是经过一段初始时间)。 单击对话框中的Cancel按钮或右上角的来关闭对话框;若要保存所做的改动,则单击OK按钮。 另一种编辑Create模块的方法是通过电子数据表格视图来完成的。当单击流程图视图中的Create模块(如果模型内Create模块有很多,单击其中任何一个即可)或项目栏中Create模块图标,则Create模块的数据表格就会出现在电子数据表格视图内(如图3-3所示),单击或双击每个区域都可以编辑数据元素或从可选项中做出选择,图3-3通过单击“类型”(Type)打开相应的下拉列表(下拉列表会出现在任何起作用的地方)显示了一系列“类型”选项。如果在模型内有多个Create模块,则每个模块在Create模块表格内有一个单独的行与其对应,在大型模型中这种方法可以快速编辑很多元素,或者一次总揽所有Create模块。若在流程图或表格视图选择一个特定的Create模块,同时也会在另外一个窗口中选定了那个特定模块。在表格行上右击,可以选择以对话框的形式编辑模块,类似于图3-2。在数值区域右击,则可以选择 “构造表达式”(Build Expressions)来帮助输入复杂的代数表达式,如各种Arena变量、概率分布、数学方程和代数运算等(3.4.10和4.2.4节将讨论表达式构造器)。通过拖拉分割表格字段的竖条标记可以改变表格字段的宽度。 原书P58 图3-3 模型3-1的Create模块数据表格 3.3.2 Entity数据模块 上节在Create模块里所做的事情之一就是将实体类型定义为Part。在项目栏中选取“实体”数据模块(Entity),则实体数据表格就会出现在电子数据表格视图中(图3-4),此时可以看到并编辑模型中的各类实体的属性。图3-4显示了“初始图形”(initial picture)字段的下拉列表,告诉我们在仿真运行过程中零件实体的动画图形将显示为蓝色的球,还有其它几个字段用于定义实体的各类成本数据,在行末还有一个复选框问你是否要这个实体类型的统计报告表,统计表包括了运行期间这类实体在系统中的平均逗留时间和最大逗留时间。本模型只有一个实体类型,如果有多个实体类型,每个类型在实体表中用一行来描述。 原书P59 图3-4 模型3-1的Entity模块数据表格 3.3.3 Process流程模块 “处理”模块(Process)代表机器,包括资源、队列和实体延时(本例中指零件加工),本例的Process模块被命名为钻孔加工中心(Drilling Center)。双击该模块,可以看到如图3-5所示对话框。 在“名称”(Name)栏键入模块名称Drilling Center后,在类型栏(Type)选取“标准”(Standard)类型,这意味着这项操作的逻辑将在Process模块中定义,而不是在其递阶子模型中定义(关于子模型和层次的内容将在5.2.4节讨论)。对话框底部是“统计报告表”(Report Statistics)复选框,用于选择是否输出相关的统计报告,如利用率、队列长度和排队等待时间等。 逻辑(Logic)区域占了对话框大部分面积,决定了该模块对实体的有关操作。 在“活动”(Action)栏中选取“占用-延时-释放”(Seize Delay Release),它表明在该模块中实体会“占用”一定数量的资源,然后“延时”一段时间(表示服务),最后“释放”资源以便其它实体能够占用。其它可能的“活动”主要有以下几种:Delay,仅仅“延时”实体一段时间(可以把“延时”认为红色交通灯,信号过后实体才能继续进行);Seize Delay,“占用”资源然后“延时”(但不释放资源);Delay Release,“延时”然后“释放”以前被“占用”的资源。几个Process模块结合起来可以表示很多类型的处理活动。 原书P60 图3-5 模型3-1的Process模块对话框 可以在模块中指定不同实体占用资源的优先权值(Priority),在Arena中,越小的数字意味着越高的优先权。 对话框的资源(Resources)部分定义了所占用或释放的资源。点击“添加”(Add)按钮可以在资源列表中增加一项资源,双击表中某一资源行可以定义或编辑这种资源,也可单击资源行再选择“编辑”(Edit),此时会出现“资源”(Resources)对话框,如图3-6所示。在对话框内可以定义资源名称(Name)和加工单元数量(Quantity)(例如单个服务器),这一数量是实体将要占用或释放的加工单元的数量(而不是资源本身所拥有的加工单元的数量,即资源容量,资源容量在“资源”数据模块中定义,将在以后讨论)。若填入一种以上资源,意味着实体在开始加工之前必须占用特定数量的每种资源(例如一台机器和两名操作人员),且相应地要释放特定数量的各种资源。 返回到如图3-5所示的对话框,“延时类型”(Delay Type)的下拉列表提供了三种概率分布(正态分布、三角分布和均匀分布)、一个“常量”(Constant)选择和一个“表达式”(Expression)选择。“单位”(Units)域决定了延时的时间单位,“分配”(Allocation)域涉及如何确定延时所带来的成本。下面一行的内容根据“延时类型”选择的不同而不同。值得注意的是,延时类型中的“表达式”选项在定义延时持续时间方面有很大灵活性,它包括了Arena所有概率分布,在表达式字段内单击右键还可以调出“表达式构造器”(Expression Builder)帮助你建立各种表达式(参见3.4.10和4.2.4)。 原书P61 图3-6 模型3-1的Resources对话框 点击Cancel按钮关闭Process对话框;如果要保存所做的改动,点击OK。 如果在流程图视图中选中某个Process模块,或在项目栏中选中Process模块,则在电子数据表格视图中就会出现如图3-7所示的Process模块表格,图上还显示了“延时类型”(Delay Type)下拉列表。如果模型中有多个Process模块,则数据表格的每一行表示一个Process模块,像Create模块一样,它提供了另一种描述方式,既可以同时查看多个Process模块,也可以编辑模块的每个数据域。如果在Resources域单击“1 Rows”按钮,就会出现一个二级数据表格(如图3-8),可以在该表中编辑、添加和删除资源,等同于图3-6所示的资源对话框(在进行下一步之前,需要单击右上角的按钮以退出二级数据表格)。 原书P61 图3-7 模型3-1的Process模块数据表格 原书P62 图3-8 模型3-1的Process模块中的Resources二级数据表格 3.3.4 Resource数据模块 一旦在Process模块中定义了一种资源(本例中资源为钻床),就会自动在“资源”(Resource)数据模块中建立一个数据项。可在项目栏中单击Resource模块查看资源数据表格,如图3-9所示。通过资源数据表格可以确定每种资源的特征,例如资源容量(Capacity)是固定的还是可变的(图3-9显示了“资源类型”(Type)的下拉列表,其中“固定能力”被选中)。也可以根据一些模式定义资源故障,单击“故障”(Failures)栏下面的“0 Rows”按钮可以弹出Failures二级数据表格(故障模式在“高等操作”(Advanced Process)面板的“故障”(Failure)数据模块里定义,该面板需要另外附加到项目栏中)。 原书P62 图3-9 模型3-1的Resource数据模块电子表格 3.3.5 Queue数据模块 如果实体进入Process模块而钻床处于繁忙状态,实体必须排队等待。如果在项目栏中选中“队列”(Queue)数据模块,队列数据表格就会出现在电子数据表格视图中,如图3-10所示,此时可以定义队列的各个属性,例如排队规则,图3-10中“类型”(Type)列表中显示了“先进先出”(First In First Out)规则(默认选项);也可以根据实体的某种属性规定排队规则,假如选择了“最低属性值”(Lowest Attribute Value),则必须在“属性名称”(Attribute Name)栏里指明用于排序的具体属性,队列将按该属性的升序排列。 原书P62 图3-10 模型3-1的Queue数据模块电子表格 3.3.6 制作资源与队列动画 说到队列,你可能已经注意到了流程图视图里Process模块上方的符号,这就是显示队列动画的地方。当在Process模块中指定实体需要“占用”(Size)资源时,模块上方就会出现这个图形。 谈到动画时,毫无疑问你会注意到Process模块右上方的,它位于队列动画的队首位置,这就是资源动画,在仿真过程中动画图象会根据钻床是空闲还是繁忙而改变。资源动画不是凭空而来的,而是通过动画工具栏中的资源按钮()添加到模型中去的,在上双击会得到如图3-11所示的“资源图形布局”(Resource Picture Placement)对话框,可以从图形库(扩展名为.plb的文件,通常在Arena 7.0文件夹内)中根据资源的状态选出合适的图形来表示资源的不同动画,本书将在3.4.8和4.3.3节讨论资源动画问题。 原书P63 图3-11 模型3-1的“资源图形布局”对话框 3.3.7 Dispose流程模块 “清除”(Dispose)模块代表实体离开模型边界,双击Dispose模块会调出如图3-12所示对话框和图3-13所示的Dispose数据表格。在这里没有更多的可做 ( 仅仅是给模块起个描述性的名字,并决定是否要输出实体统计数据,包括经过这个模块的实体在系统中的平均和最大逗留时间以及实体的成本信息等。 原书P64 图3-12 模型3-1的Dispose模块对话框 原书P64 图3-13 模型3-1的Dispose模块数据表格 3.3.8 Connecting流程模块 Create、Process和Dispose模块(从左向右的顺序)是通过连接线(Connector)连接起来的,从而建立起了所有零件流经的序列,使零件从一个流程模块流向另一个模块。单击连接(Connect)按钮()或者选择菜单Object>Connect进行连接时,鼠标指针变为十字线,单击源模块的出口点(),再单击目标模块的入口点()(如果你想用一系列的线段来连接,可以单击一些中间点)。如果发现很难进行连接,可以把自动对齐()取消掉,这样你可以很容易的单击出口点和进口点。 如果选择Object>Auto Connect,Arena将自动把新放进去的模块的入口点与一个此前选中的模块的出口点相连接。 如果选择Object>Smart Connect,则新的连接线将自动遵循水平和垂直方向放置,当然这只是感觉的问题,对模型操作和结果没有影响。 如果选择Object>Animate Connector(或把动画连接器按钮按进去),当仿真运行的时候,Arena将显示实体图形沿连接线运动的动画,这仅仅是让你知道运送正在进行 ( 就仿真和统计数据而言,此时运送时间实际上为0(即速度无穷大),在4.4节将讨论如何模拟非0运送时间,以及如何用动画来表示。 3.3.9 动态散点图 模型中的两个散点图是通过动画(Animate)工具栏中的散点图(Plot)按钮()创建的,在仿真运行过程中,它们将被自动绘制,但仿真结束时图像会消失(7.2.1节将讨论绘制更加详细的散点图,且在运行结束后仍存在)。 双击上面的散点图会调出如图3-14左面的“散点图”(Plot)对话框。在“表达式”(Expression)栏里只有一个条目,因此在散点图中仅有一条曲线,单击“添加”(Add)按钮调出表达式对话框(填完后,其形式如图3-14右边部分),在表达式框中键入函数NQ (Drilling Center.Queue),即队列中实体数量(队长),其中实体数量在仿真过程中自动更新,在框中右击可以使用表达式构造器来帮助我们键入正确的内容(关于表达式构造器参看3.4.10和4.2.4节)。 原书P65 图3-14 模型3-1的队列长度Plot对话框及表达式对话框 在对话框中双击表达式(或单击表达式后再单击Edit)会调出如图3-14右边所示的填充好的散点图“表达式”(Plot Expression)对话框。其中最小值(Minimum)表示绘图曲线的y轴最小值,最大值(Maximum)表示y轴允许的最大值。由于本例模型是从空闲开始的,因此很明显最小值应该是0;最大值可以是一个猜测的先验值,经过运行发现确切的最大队长后,再对这个值加以调整。如果最大值设得很大,则散点图会被沿y轴压扁,相反如果设得很小,则会截掉部分散点图(后面将会讨论Arena自动缩放功能)。# History Points表示在任何给定的时间内所允许的最大拐点数,若仿真运行时散点图的左部看不见,则应该增大这个值。由于该散点图描述队列长度,所以应该以分段常量形式来表示,因此应选择Stepped选项来定义曲线外观。Color按钮用以改变曲线的颜色,这在同一坐标轴内绘制不同表达式的曲线时会很有用。单击Cancel按钮关闭Plot Expression对话框返回到Plot对话框。 返回到Plot对话框后,在“时间范围”(Time Range)栏内输入20,这样在整个20分钟(分钟是模型定义的基本时间单位)的仿真运行中允许在x轴上有足够空间绘图。既然宽度足够,我们将在“刷新”(Refresh)栏处选择不刷新图像(None)(None下面的数字表示按多大比例刷新图形)。在“边界”(Border)栏中选择Bounding Box,并选中Fill Area复选框,表示将用某种颜色填充到曲线下面的区域中。如果要在同一张图上绘制几条曲线,可以选择Synchronize Min and Max复选框,对曲线极值加以缩放,使按相当的幅度表示在同一y轴上,此时还要键入对曲线最大和最小值的估计值;如果进而选择了Y-Label,则可通过选择Auto Scale来让Arena根据所有曲线的需要调整y轴比例。也可以给散点图加上标题,“标题”(Title)区域内的各栏内容应是不难理解的(Percent Height是指标题高度占整个散点图高度的百分比)。X- Label选项可以让我们标注x轴的极值,在3.3.10节将介绍如何自己定制标注,同样的Y-Label选项将显示曲线在y轴方向的最大与最小值。Plot对话框右边缩略图下面的Area、Border和Fill Area按钮用于为图形区域(背景)、边框、曲线下的填充区域选择颜色(此处选择亮灰色背景,深灰色填充区,黑色边框)。单击Cancel关闭Plot对话框。 用鼠标拖拉散点图的边界可以改变其大小,可以单击选中图形试一试(不用担心,使用Undo功能可以恢复原状)。事实上,在填完对话框之后就确定了图形的初始尺寸,但这是可以更改的,如通过拖拉散点图重新定位。 Drill Press: Number Busy(忙态钻床数)散点图及其表达式对话框跟上面提到的相似,所以此处不再赘述。唯一不同之处是表达式形式,此处在y轴上绘制的表达式值是处于忙态的钻床数量,很明显数值只能是0或1,所以在散点图表达式对话框内可指定最大值为2,这样有利于图形美观。如前所述,可以在表达式框里使用表达式构造器来创建正确的名称与语法。 3.3.10 修饰模型 在模型窗口中添加各种文字标注,例如左上角的标题和散点图上的坐标轴标注等,可以通过绘图(Draw)工具栏中的本文(Text)按钮()实现, 同时还可以控制文本的字体、大小和字型,在本文输入中使用Ctrl+回车重新开始一行。为了改变文本颜色,首先选中相应文本(在文本上单击),然后使用Text Color按钮()选择相应的的颜色(单击)或者其它不同的颜色(单击);还可单击文本后拖动下划线条来调整文本大小或旋转文本。 另外绘图工具栏中还有方框、椭圆、多边形、直线以及控制它们颜色和字体的工具,这些都可以用来装饰模型窗口,当然这主要取决于个人的艺术创造力与天赋。在本模型中只是在模型标题后面绘制了一个阴影框。在排列(Arrange)工具栏和菜单中还有很多按钮和命令用以操作对象,例如组合、旋转和把绘图对象送到层叠对象的前面或后面等。3.5.2和3.5.3节将讨论更多艺术性工作。 3.3.11 设置仿真运行条件 通过Run>Setup菜单可以调出带有五个标签版面的对话框(Run Setup)来设置运行周期和重复仿真运行次数,图3-15显示了“项目参数”(Project Parameters)选项卡,在这里可以定义项目标题、分析员姓名、项目描述和选择以后输出何种性能指标。也可以选择键入一个简单的项目描述来为模型提供一个内部说明。 原书P67 图3-15 模型3-1的Run>Setup> Project Parameters对话框 图3-16显示了“重复仿真运行参数”(Replication Parameters)选项卡,它控制仿真的运行。“重复仿真次数”(Number of Replications)默认为1(此时我们仅考虑建模问题,所以1是可以接受的)。在“日期与时间”(Start Date and Time)区域也选择默认值,这可以使某个特定的日期与时间和开始仿真时刻0联系起来。可以指定每次重复运行前的“预备时间”(Warm-up Period),预备时间过后系统会清除统计累加器以使仿真初始条件对系统的影响减弱。本例指定“重复仿真运行周期”(Replication Length)为20,选定时间单位为分钟,每天小时数默认为24(对于这个问题是很显然的,但如果习惯上以天为单位,一天有两班生产,每班8小时,则可认为一天有16小时)。“基准时间单位”(Base Time Unit)指明了默认的时间单位,因此基于时间的输出都将按这种默认时间单位形成报告,同样,在一些没有指定时间单位的输入参数域也按这种默认时间单位处理(例如图3-14的Plot对话框里的时间范围)。“终止条件”(Terminating Condition)框允许建立复杂的或与状态有关的终止准则,在12.5.2节的一个例子中,利用这一选项可使仿真运行到结果满足精度时为止。在模型3-1中,仿真在第20分钟时终止。单击Cancel关闭“运行设置”对话框。 说到终止,必须在每个Arena模型中指明如何终止仿真运行,这是建模的一部分,而且Arena不知道你想要什么,因此也没有自带任何默认的终止条件。事实上,大多数情况下仿真永远运行下去或直到你人为停止它。3.7节将介绍如何暂停运行和在必要时取消运行。 原书P68 图3-16 模型3-1的Run>Setup> Replication Parameters对话框 3.3.12 仿真运行 单击“标准”(Standard)工具栏中的“运行”(Go)按钮()(或Run>Go菜单或按F5键)开始运行模型,可以注意到这些按钮类似于媒体播放器上的那些按钮。当第一次运行模型时,Arena将检查模型中的错误(也可以单击“运行交互”(Run Interaction)工具栏中的按钮或Run>Check Model菜单或按F4键来检查模型错误),如果存在错误,系统会提出警告,同时给出一些寻找和纠正错误的帮助。检查无错后才能观看动画运行,此时必须快看,因为运行时间很短。在动画运行中,可以看到零件实体(蓝色小球)到达和离开,资源图形随着资源状态在“空闲”和“忙”之间转换而发生变化,当实体进入和离开时队列的改变,状态栏中数字仿真时钟快速跳动,散点图被动态绘制等。根据模块类型不同,流程模块旁边的记数器显示了不同的数量,对于Create模块,计数器显示的是创建的实体数量;对于Process模块,显示的是目前在加工的实体数量;对于Dispose模块,显示的是离开系统的实体数量。在3.7节将讨论其它运行模型的方式。 运行后的最终状态如图3-17所示(去掉了问是否查看结果对话框)。散点图显示了和手工仿真图2-3相同的信息,状态栏里的时钟停在了最终时刻,在这一时刻可以看出资源处于忙态,还有一个零件在队列中等待(与2.4.3节的最终状态和表2-2最下面一行信息相一致),另外流程模块旁边的计数器显示的终值也和2.4.3节手工仿真结果一样。 运行结束后出现的对话框询问是否查看总结报告,关于总结报告将在3.3.13节讨论。在看过报告后(或者选择不看报告),模型窗口将被“悬挂”起来,不能编辑任何事物,这是因为你仍旧处在运行模式,在这种模式下可以查看散点图和动画的最终状态,若要退出运行模式返回到编辑状态,必须单击结束按钮()。 3.3.13 查看输出报告 仿真运行结束后,如果想要查看数值报告,在如图3-17右下角的对话框内单击Yes,这样就会在Arena窗口中打开一个新的报告窗口(独立于模型窗口)。在项目栏中的“报告”(Reports)面板中列出了一系列可以查看的各种不同形式的报告,如“汇总报告”(Category Overview)、“重复仿真运行分类报告”(Category by Replications)和“资源报告”(Resources)等,单击每一种报告都会打开一个独立的报告窗口(可使用Arena窗口菜单查看打开了什么报告),当查看完报告后别忘了关闭这些报告窗口,因为返回到模型窗口时,这些报告窗口不会自动关闭,如果改动了模型并重新运行,可能会同时打开几个报告窗口,从而分不清楚哪个报告对应哪个模型变更。实际上,当改动模型研究不同参数设置或假设的影响时,应该略微改动.deo文件名,因为如果不改动文件名, Arena会用同名的报告文件覆盖以前的结果,这样以前的结果会丢失(3.5.1节讨论的过程分析器能够提供一种更好的方式来管理多个模型变更运行,并且能够跟踪结果)。 原书P70 图3-17 模型3-1的最终动画状态 默认选项下安装的Arena自动调出的是汇总报告,可以看到大多数结果,在项目栏中的其它报告虽有一些重复,但报告得更详细。在“报告窗口”的左侧有一个目录树(单击“+”可展开目录树,单击“-”则收缩目录树),它是所有报告的超级连接纲要。报告是按页面组织的,通过报告窗口左上方的,,,按钮可以浏览各页面,如果想打印一些或全部页面,点击报告窗口内的按钮(不是Arena窗口内的类似按钮。如果报告窗口是活动的,则Arena窗口内的类似按钮是暗淡的,处于非活动状态)。如果你想把报告输出到文件,单击报告窗口的按钮,然后依指示进行。 如果想寻找一些具体的报告,最好单击目录树中的“+”和“-”。例如,想查看仿真运行中队列发生了什么变化,通过在目录树中单击一系列的“+”进入到报告的“队列”(Queue)部分(Simple Processing → Queue → Time → Waiting Time → Drilling Center.Queue),最终得到钻孔中心的等待时间信息,如图3-18所示。在目录树中选择的内容显示在右边的报告中,在“等待时间”(Waiting Time)行上可以看到平均排队等待时间是2.5283分钟(报告中提示基本时间单位是分钟),最大排队等待时间是8.1598分钟(两者都与2.4.2节手工仿真结果一致),报告窗口再往下一点的“其它”(Other)标题下,能够看到平均排队等待的零件数(队长)是0.7889,最大排队等待零件数为3,两者都与2.4.2节手工仿真结果一致。 原书P71 图3-18 模型3-1的“汇总报告”(部分) 通过浏览报告,可以注意到表2-3中的输出性能指标在报告中都有,并且还有Arena自动收集的其它许多资料(将在以后讨论),例如,根据下面提示的目录树分支,可以发现: ( Simple Processing → Entity → Total Waiting Time → Part:平均系统逗留时间为6.4397分钟,最大系统逗留时间为12.6185分钟。 ( Simple Processing → Resources → Usage → Instantaneous Utilization → Drill Press:钻床利用率是0.9171(即运行时间的91.71%钻床处于忙态),利用率的不同指标将在4.2.5节讨论。 ( Simple Processing → Process → Other → Number In → Drilling Center:在仿真运行过程中,有7个实体进入钻孔中心模块。 ( Simple Processing → Process → Other → Number Out → Drilling Center:在仿真运行中,有5个实体离开钻孔中心模块(比进入的少2个,这两个在仿真终止时尚未离开钻孔中心),5还代表了模型中的总产量,因为零件离开钻孔中心就等于离开了系统。 ( Simple Processing → Entity → Time → Waiting Time → Part:离开系统的5个零件在所有队列(当然此处只有一个)排队的平均等待时间是3.0340分钟,最大排队等待时间是8.1598分钟。这个平均值之所以不同于2.5283分钟的钻孔中心平均排队等待时间,是因为3.0340分钟计算的是5个离开系统的零件的平均等待时间,而2.5283分钟计算的是所有6个离开队列的零件的平均等待时间,两个最大排队等待时间是相等的,是因为那个最大等待时间的零件在仿真中完成加工较早(两个最大值不一定总是相等)。 ( Simple Processing → Entity → Other → WIP → Part:在制品数平均为1.7060个,最大能达到4个。 报告中的各种数据可以分为记数型统计量、时间持续型统计量和计数器统计量。 ( 记数型统计量(Tally)是由一系列数字取平均值、最小值或最大值得到的结果。例如,平均和最大系统逗留时间(分别是6.4397和12.6185)就是记数型统计量,因为它们是仿真运行中5个离开系统的零件的平均和最大系统逗留时间。有时候记数型统计量也被称为离散时间统计量(discrete-time statistics),因为它们的“时间”下标(1,2,3,…)是按时间顺序的离散指标集。 ( 时间持续型统计量(Time-persistent)是由散点图的平均值、最大值和最小值产生的结果,且散点图的x轴是连续的时间。时间持续型统计量的平均值需要求散点图曲线下的累积面积(即积分),平均和最大排队等待实体数(分别是0.7889和3个)与钻床的瞬时利用率都是时间持续型统计量。 ( 计数器统计量(Counter)从名字上就可以看出是某种事物的累计和,通常它们只是记录事情发生的次数,如离开或进入钻孔中心的零件数量。计数器统计量所累计的数字也可能并不都是1,例如在钻孔中心的累积等待时间是15.1700分钟(排队等待时间之和),在汇总报告中,这个数值可以通过Simple Processing → Process → Accumulated Time → Accum Wait Time → Drilling Center.Queue 找到;通过Simple Processing → Resources → Usage → Total Number Seized → Drill Press,可以看到另外一个计数器统计量,即钻床资源被使用了6次。 关闭报告窗口后,只要不删除模型运行后Arena创建的微软数据库文件,则还可以在以后查看这些报告。数据库文件通常命名为model_filename.mdb,其中model_filename为模型文件名(本例中数据库文件名为Model 03-01.mdb)。只要在项目栏的报告面板里单击想看的报告便可以再次查看它。整个工作方式是Arena使用Crystal Reports第三方软件去读取数据库文件,从中析取有用的材料,然后以报告窗口的形式展现出来。 在大型复杂的模型中采用这种结构非常有用,它可以组织大量的不同输出数据,帮助查找资料、进行对比以及做出结论。 除了上面介绍的几种报告外,Arena还产生一份相当紧凑的仿真结果报告,像ASCII文本一样,文件名为model_filename.out,如图3-19所示。报告中的一些标题有些不一样,例如,“离散变化型变量”(Discrete-Change)等同于时间持续型统计量,你也会发现这份报告中有些数据(可能有些微小的可四舍五入的差别)在前面已经讨论过,而另有一些数据则不在前面提到的报告里(例如记数型统计量的观测次数)。某种情况下,这种方式比前面的报告结构更简单快捷,可是报告中的顺序、安排和标识都不太友好,事实上这种形式是Arena早期版本的产物,可以追溯到80年代早期使用SIMAN仿真语言的时候。如果想把这种报告形式作为仿真运行结束后的默认报告,可以进入Run>Setup>Reports菜单,在“默认报告”(Default Report)列表中选中SIMAN Summary Report。 到目前为止,像平均值、最小值、最大值和时间平均这些概念的含义应该很清楚了,可是报告中很多地方都提到了“半长”(Half Width)(虽然在这个模型内我们不可能得到这些数值,而且被告知“数据不充分”),半长指的是性能指标期望值的置信区间(95%)的半长,假如仿真过程能够提供足够的数据,就可计算出来。 原书P74 图3-19 模型3-1的SIMAN格式仿真输出报告(Model 02-01.out) 如果做多次重复仿真运行,每次运行Arena对一种输出性能指标生成综合报告,对多次运行结果求平均值和样本标准差,则可计算出这种性能指标期望值95%置信区间的半长, 2.6.2节手工仿真就是这么做的,见表2-4。练习3-1将教你如何用Arena重新产生表2-4中的结果。 如果对系统长期运行(或稳态)性能感兴趣,可以选择进行一次长时间仿真运行,具体内容参看6.3节,如果运行时间足够长,也可以在报告中看到半长数值。Arena把单次长时间运行结果分解为若干批量,这些批量相当于多次重复仿真运行产生的结果。有关内容将在7.2.3节讨论,包括如何从仿真输出数据中计算这些半长。为什么有时我们在报告中看到的不是半长的数值而是“数据不足”(有时候是“相关”)呢?这是因为只有运行周期足够长时才能得出半长结果,如果运行周期不够长,Arena就会拒绝得出。 3.4 自己动手创建模型3-1 本节将逐步介绍如何建造模型3-1,可能开始建造的模型看起来不十分像模型3-1,但在功能上是等同的且能产生相同的结果。 在开始之前,先介绍两个经常会用的用户界面功能。 ( 在流程图视图内的空白处右击鼠标会调出一个小选项框,其中一项就是“重复上一操作”(repeat last action),当重复操作时(例如,可能需要多次放置一个模块),使用这一功能可以节省时间。另外,选项框内还包括一些视图、运行和检查模型的操作。 ( 按Ctrl+D或按Ins键可复制在流程图视图选中的对象。 3.4.1 新建模型窗口和基本操作面板 按按钮(或File>New或者Ctrl+N)打开一个新的模型窗口,默认文件名为Model1,保存时默认扩展名为.deo,当然在保存模型窗口内容时也可以改变文件名。在这个模型操作期间打开的一系列新模型窗口将会得到默认文件名Model2、Model3等等。单击模型窗口右上角的可以在Arena窗口中最大化模型窗口。 接下来,如果在项目栏中没有所需要的面板则需添加。对于这个模型,只需要“基本操作”面板即可,它是Arena 7.0文件夹下的Template文件夹内名为BasicProcess.tpo的文件。单击按钮(或File>Template Panel>Attach或右键单击项目栏选择Attach)打开如图3-20所示添加模板对话框,在这里打开“基本操作”面板文件BasicProcess.tpo(在文件上单击,然后单击Open按钮或者直接在文件上双击);也可以让Arena自动添加一定的面板到新建模型窗口的项目栏内,这可通过在Tools>Options>Settings菜单中把面板文件名(包括.tpo扩展名)输入到Auto Attach Panels框内。 原书P76 图3-20 添加面板对话框 添加后的面板出现在项目栏内,面板内有代表每种模块的图标。在面板内右击可以改变图标的大小或者只显示模块的本文信息,如果意外添加了错误的面板,也可以通过在错误的面板内右击选择Detach来删除之(也可以用按钮或者File>Template Panel>Detach),即使已经在模型中放置了错误面板中的模块也可以删除它。另外,如果显示屏不够显示整个面板内容,可以使用右边的滚动条来查找所有的模块。 3.4.2 放置和连接流程模块 这个模型需要Create、Process和Dispose三种流程模块。要添加一个流程模块,可以从项目栏中把它的图标拖动到流程图窗口内,然后释放到你想要的地方,别忘了使用3.2.3节提到的网格()、自动对齐()和按网格点对齐()等功能帮助把模块调整成一条直线。 如果在菜单中选中了Object>Auto-Connect功能,按上面提到的顺序把流程模块拖到模型中后,Arena将自动按正确的顺序连接模块;如果选中了Object>Smart Connect功能,则这些连接线会自动调整为水平或垂直方向。 图3-21显示了在放置了三个流程模块后流程图窗口的样子(两种“连接”开关键都已打开),其中Dispose模块还处于被选中的状态,因为它是最后被放进去的。如果没有选中Object>Auto-Connect,则需要手工连接模块,单击连接按钮(),然后选中模块上的出口点()和进口点(),如同3.3.8节所述;回想3.3.8节,如果动画连接线(Animate Connector)按钮()被按下去(或选中Object> Animate Connectors),则可以看到动画过程中实体沿连接线运动,这样就会了解实体从一个模块移动到另一个模块的过程,不过此时的模拟运动时间为0,4.4节将介绍如何在模型中实现非零运动时间。 原书P77 图3-21 流程模块的初始布局 3.4.3 Create流程模块 双击模型中的的Create模块打开如图3-22所示的对话框,在这里需要编辑几处内容。首先,把模块名称从默认的“Create 1”改为“Part Arrives to System”,把实体类型从默认的“Entity 1”改为“Part”,然后在“到达时间间隔”(Time Between Arrivals)区域内,接受默认的“随机”(Random(Expo))类型,参数值由1改为5,在下拉列表内选择分钟作为时间单位,在对话框最底部的三个区域都接受默认值,最后单击OK保存改动。保存时的对话框应该如图3-2所示。回想起来,也可以通过电子数据窗口来查看和编辑流程模块,具体参见3.3节,这个Create模块的完整电子表格显示在图3-3中,可以注意到这个模块的新名字出现在流程图视图的模块中。 原书P77 图3-22 Create模块对话框 3.4.4 输入界面 在介绍新的模块和新的概念的时候,本书试图带你浏览每一个对话框,即像Create模块这么简单,上面的描述也相当冗长,为了讲述得更加简洁,本书将使用输入界面(Display)这样的直观形式,如输入界面3-1所示。注意到输入界面由三部分构成,右上部分是填写好的对话框(见图3-2),在某些情况下,这部分也会显示几个相关联的对话框;左上部分显示的是与右上对话框相关联的模块(以及将在该对话框中点击的按钮);输入界面的下面部分是一个表格,表格显示了用于完成对话框的必要操作,表格左边一列为对话框栏目或提示,右边一列包含了输入的数据或动作(选择复选框或按命令按钮)。一般而言,当介绍新模块或模块新的二级对话框时,会提供整个输入界面;但对于介绍过的的模块;通常只提供输入界面下部的表格部分,对于那些输入界面中没有显示的条目,表明接受默认值。 原书P78 输入界面3-1 完整的Create模块对话框 现在是保存模型的好时机,选择一个不同于Model 03-01的名字保存,或者把Model 03-01保存在另一个文件夹内。 3.4.5 Entity数据模块 在Create模块中你已经定义实体类型为Part,现在继续讨论一些有关实体的事情。以前在这里所做的唯一事情是把实体的初始动画图形由“报告”()改为“蓝色的小球”(),为实现这一步,在项目栏中单击Entity数据模块,在电子数据表格视图中会将其参数显示出来(见图3-4),在“初始图形”(Initial Picture)列表中单击Picture.Blue Ball即可。 3.4.6 Process流程模块 输入界面3-2指出了在Process流程模块中需要编辑的内容。由于规定“活动”(Action)需要占用资源,所以必须单击“添加”(Add)按钮定义被占用的资源,这样就调出了“资源”(Resources)二级对话框(也见输入界面)。如果想让队列在动画中能显示得更长,可单击队列动画图标(),然后拖住左端点向左移动(按住Shift键限制角度为水平、垂直或45°)。 原书P79 输入界面3-2 完整的Process模块 3.4.7 Resource与Queue数据模块 一旦定义了Process模块,模型当中就有了资源和队列,两者的名字在前面已被指定(队列名是whatever.Queue,whatever是队列所在的Process模块的名称)。如果你想为资源与队列指定非默认的名字,可以在Resource和Queue数据模块中定义,参见3.3.4和3.3.5节。 3.4.8 资源动画 制作资源动画通常是很有好处的,尽管对于仿真结果不一定起什么作用。这样可以显示资源的状态(闲或忙),也能够显示正在被加工的实体。 单击动画(Animate)工具栏内的资源(Resource)按钮()调出“资源图形布局”(Resource Picture Placement)对话框,现要为资源指定图形,单击“标识”(Identifier)栏旁边的箭头从中选择资源名Drill Press,然后在左侧图形列表中选择“非活动状态”(Inactive),单击Delete按钮删除该图标;同样试着删除图形列表中的“故障”(Failure)。 现在钻床在空闲时显示为白色的方块,繁忙时显示为绿色的方块。若要改变动画图形,双击相应的“方块”调出图形编辑器(Picture Editor),在这里可以自己动手绘制钻床相应状态的图形,或者如果你有另外的描绘钻床的图形文件(可以来自数字摄象机),也可以复制粘贴进图形编辑器内。 我们还可以从Arena的图形库中挑选一些吸引人的艺术图形。关闭图形编辑器返回到资源图形布局对话框,在右栏中单击Open按钮打开Arena图形库文件,首先找到Arena 7.0文件夹,你会看到一系列扩展名为.plb的文件,打开Machines.plb,在右边可以看到很多好看的图形,向下滚动单击,再单击左边的Idle图标按钮,然后单击,把图形复制到左边变成钻床空闲状态的图形,取代白色方块。同样地复制到左边变为钻床忙态图形。最后,选中底下的“占用区域”(Seize Area)框,以便正在加工中的零件能够出现在动画中。这时资源图形布局对话框看起来应该如图3-11所示,4.3.3节将讨论关于资源图形的更多内容。 3.4.9 Dispose流程模块 Dispose模块是最后一个流程模块,输入界面3-3显示了如何编辑这个模块(唯一要做的就是改变默认名)。 原书P80 输入界面3-3 完整的Dispose模块 3.4.10 动态散点图 在3.3.9节已经描述了两个散点图动画元素的大多数输入项和属性。现在从头一步步制作这样的散点图,按下动画工具栏中的散点图(Plot)按钮()调出一个空白的“散点图”(Plot)对话框,然后按照输入界面3-4的说明填充对话框。记住,最初你必须估计在“散点图表达式”(Plot Expression)对话框内的y轴最大值,在对结果有了进一步的认识后再调整这个值。填写完对话框后单击OK,这时鼠标指针变成十字线,点击确定散点图的一个角点位置,然后拖动鼠标到另外一个角点位置,即可在模型窗口中放置好散点图(当然以后还可以调整散点图的大小和位置)。 原书P81 输入界面3-4 完整的“队列长度”散点图对话框 在“散点图表达式”二级对话框内可直接键入NQ(Drilling Center.Queue)。在Arena当中,有许多地方可以直接键入普通代数表达式,但为了输入正确,你必须知道模型中各种对象的正确名称(像Drilling Center.Queue)和Arena内部函数(如NQ,它能返回队列中当前的实体数量)。为了避免需要大量记忆的困难,Arena提供了一个“表达式构造器”(Expression Builder),通过在“表达式”栏内右击便可在弹出菜单中选择进入表达式构造器。图3-23显示了表达式构造器窗口,在图中我们展开了左边的“表达式类型”树,找到了想要的“当前队列长度”散点图表达式。随着我们选择的表达式类型的不同,右上角框内的显示内容也会随之改变,可以在下拉列表中指明所需队列的名称(在这个模型中只有一个队列,因此下拉列表很短)。在底部的“当前表达式”(Current Expression)框内显示出由表达式构造器得出的结果,单击OK,系统就会把该结果送回我们开始右击的栏内。当然在“当前表达式”框内也可以编辑和修改表达式,例如使用运算按钮进行数值运算,或者利用左边的类型树查找其它数量等。 原书P82 图3-23 用表达式构造器建立队列长度表达式 “处于忙态的钻床数量”散点图与队列长度散点图类似,只有两点不同于输入界面3-4,并且都是在“散点图表达式”二级对话框内。第一,构造表达式NR (Drill Press),打开表达式构造器,在“表达式类型”(Expression Type)树中选择以下路径Basic Process Variables → Resource → Usage → Current Number Busy,在Resource Name下拉列表里找到Drill Press;第二,既然我们知道图中曲线高度是0或1,因此直接在y轴“最大值”栏内填2。 为了使两个散点图在视觉上和谐,应绘制相同的大小的图形,并在垂直方向上对齐。 3.4.11 装饰窗口 模型3-1的流程图视图中有几处文本标注,用于帮助记录信息,也可指明在动画中某个元素代表什么,这些文本标注可以通过绘图工具栏的本文按钮()来实现,打开的文本编辑对话框如图3-24所示,在其中输入文本信息(使用Ctrl+回车换行),使用Font按钮改变字体(Times Roman、 Arial等)、字形(斜体、粗体等)和大小,单击OK后鼠标指针变成十字线,在流程图视图中点击确定本文的西北角点。可以拖动文本标注改变其位置,也可以选中文本并拖动它的下划线来调整文本的大小与方向(调整方向时按住shift键能够限制方向为水平、垂直或45°)。若要改变文本的颜色,首先选中文本,然后使用文本颜色按钮()选择下划线的颜色(单击)或者选择另一种颜色(单击,从调色板中选出),选中新颜色后,这种颜色将变为新的下划线颜色。 模型标识文字后面的黄色背景框和阴影是通过绘图工具栏的矩形按钮绘出的,单击矩形按钮,鼠标指针变为十字线,点击一次确定矩形的一个角点,再次点击确定矩形对角线上的另一个角点。选中矩形并单击填充颜色按钮()可以改变矩形的填充颜色;单击线条颜色按钮()可以改变边框的颜色。为了创造像阴影一样的人为三维效果,可以使用排列(Arrange)工具栏或菜单中的诸如Send to Back等功能来调整图形位置(例如将黑框放置在黄框后面稍微右下一点,以产生阴影效果)。 原书P83 图3-24 文本编辑对话框 如果想在流程图视图放置图形文件(.gif、.jpg等),可使用Edit>Insert New Object,选择Create from File,然后浏览选择你想导入的图形文件,单击Insert后点击OK,最后用鼠标(十字线)放置图形。 很明显,你可能会花费很多时间在这种装饰事情上。我们不想强加于人任何观点,但通过经验观察确实发现,如果你想向组织中更高层次的管理人员提供仿真结果,你越应在图形上花费更多的功夫。 3.4.12 运行参数的设置 使用菜单命令Run>Setup来设立运行条件,进入菜单后会发现几个带标签的页面,这些页面控制模型的运行,不过这里只需要编辑其中的两页。 第一个页面是“项目参数”(Project Parameters)选项卡,在这里输入项目标题、分析员姓名和项目描述。也可以根据需要修改在输出报告中收集哪些统计数据,这可通过在Tools >Options>Project Parameters菜单中设置默认选项来实现。完成后的对话框如图3-15所示。 另外一个需要编辑的选项卡是“重复仿真运行参数”(Replication Parameters),这些内容在3.3.11节已讨论过,编辑后的对话框如图3-16所示。 3.4.13 为视图命名 可以为模型设立各种命名的视图(Named View),首先通过场景缩放将当前视图调整成你想保存的场景,然后选择View> Named View菜单(或按?键),单击添加(Add),挑选一个名称和热键(此处是区分大小写的)定义此视图。如果以后想改变这个视图定义,则将场景缩放到新的视图效果,在Named View菜单中单击编辑(Edit)来完成;要想从列表中删除已定义的某个视图,只需选中该视图名并单击删除(Delet)即可。至于如何使用命名的视图,我们在3.2.3节已经讨论过了。 乍一看,设立命名的视图似乎也只是一种装饰,但是请相信,随着模型规模的扩大,这是非常有用的手段。 3.5 关于菜单、工具栏、绘图和打印的更多知识 本节将简要的介绍一些关于菜单和工具栏的其它各种信息,,以及一些关于绘图和打印的功能。在后面章节的例子里,必要时还会对这些内容给予更加详细的说明。 3.5.1 菜单 这里首先对Arena菜单内容做一个简要的概述。如果在某种情况或状态下菜单里的一些选项不能用, 则这些选项是暗淡的(意味着你不能选择)。要想知道菜单条目的更多信息,可单击,然后点击任何菜单项目(无论暗淡与否)来获得完整的信息及相关的主题链接。 文件菜单(File Menu):在文件菜单里可以创建新的模型文件(New)、打开已有的模型(Open)、关闭窗口(Close)和保存模型(Save),也可以向项目栏内添加和删除面板(Attach/Detach),还可以从AutoCAD(或者其它DXF格式的CAD程序)中导入CAD图形用做Arena“背景”,在某种情况下允许使用现成的设备图形和元素(如线导车辆的路径),另外一种可导入的图形文件是.vsd格式的Microsoft Visio图形文件。如果想改变Arena使用的颜色,可以把它们保存为一种调色板,同样也可以打开以前保存过的调色板。通过文件菜单还可以进行文件打印、从Arena内部发送邮件(可以把当前的模型添加到发送信息内)。Arena能够记住最近打开的文件,并可以快速地再次打开它们。退出(Exit)命令是结束Arena的方法之一。 原书P85 (第一幅图,无图名) 编辑菜单(Edit Menu):在编辑菜单里能够找到对象操作的许多常用选项。能够取消前面的操作(Undo)或重做取消的操作(Redo);剪切(Cut)或复制(Copy)选中的对象到剪切板,以将其放置到当前模型中的其它地方或其它模型中去,在某些情况下还可以放到其它应用软件中去;粘贴(Paste)能够把剪切板中的内容插入到模型中去,粘贴为超级链接(Paste Link)可以为当前处在剪切板中的源文件创建OLE链接;制作副本(Duplicate)是复制选中的对象并放置在源目标的附近;删除(Delete)能够永久清除选中的对象,当然也可以选中模型中的部分或所有对象,同时删除它们;使用实体图形(Entity Picture)可以改变实体数据模块中的图形列表和列表中图形的外观,而且还可以从Arena图形库中复制图形到列表中去;时间进度表(Calendar Schedule)可以描述复杂的递阶时间模式(星期由天组成,天由班组组成等)、定义例外情况(如假日和休假),同时以复合的形式显示其效果;查找(Find)功能是搜索当前模型中所有模块和动画对象以寻找文本串,并且可以控制全字匹配和区分大小写(这个功能经常用于查找你认为没有但在报告错误信息中存在的条目);属性(Property)选项能够显示附加的对象属性,例如对象的唯一标识;如果有链接到其它类似于电子表格或音频文件的链接,则链接(Link)功能能够显示该链接并允许你修改链接;插入新对象(Insert New Object)用来放置来自其它应用程序的图形和多媒体文件等;对象(Object)让你能够编辑从其它应用程序放到模型中去的对象。 原书P85 (第二幅图,无图名) 视图菜单(View Menu):在视图菜单里能够控制模型在屏幕上的显示形式以及窗口中显示何种工具栏。缩放(Zoom)可以让你从不同的高度看模型,以便你既能够看大模型也可以看细节的小部分,缩放因子(Zoom Factor)控制每次缩放的比例,视图提供了模型的多种“固定”视图,命名的视图让你能够定义、改变和使用自己的视图;网格(Grid)与对齐(Snap)在调整对象时很有用,网格设置(Grid Settings)可以控制网格与对齐的间隔;分页显示模型(Page Break)指明了页面是如何分割的;数据提示(Data Tips)用于控制当鼠标停留在对象上方时是否显示对象属性;层次(Layers)用于控制模型编辑或运行时显示何种对象;如果分割屏幕(Split Screen)被选择为打开,则模型窗口将同时显示流程图视图和电子数据表格视图;工具栏(Toolbars)用于指定在屏幕上显示哪些工具集,项目栏(Project Bar)是开关键,用于控制是否显示工具栏;类似地,状态栏(Status Bar)让你决定是否想看到屏幕最下方的水平状态栏,状态栏能够告诉你正在进行什么,同时指出了图形建模空间里鼠标指针的坐标。 原书P86 (第一幅图,无图名) 工具菜单(Tools Menu):Arena不仅有强大的建模能力,而且还带有一整套相关的工具,至于有那些工具取决于你的注册信息。Arena符号库(Arena Symbol Factory)提供了大量的分类图形,从中可以为实体和资源等动画创建图形符号;输入分析器(Input Analyzer)用于根据所观察到的真实数据来拟合模型输入数据的概率分布(参看4.5.4节);过程分析器(Process Analyzer)可组织有效的方法进行多次仿真运行,每次运行代表不同的模型配置,同时跟踪结果,它也可以帮助对仿真结果进行正确的统计分析,从不同的模型配置中选择最好的配置;具有额外统计能力的另一个应用程序叫做输出分析器(Output Analyzer),它是Arena所带的工具,但必须单独启动,在6.5和6.4节分别介绍如何使用过程分析器和输出分析器;工厂分析器(Factory Analyzer)有利于对生产操作能力建模,利用它的子菜单可以实现与FactoryTalk交换数据,FactoryTalk是生产企业的中央资料库;联络中心(ContactCenter)提供了特殊的功能去对联络/呼叫中心建模;模型文件报告(Model Documentation Report)可以生成一套简洁但完整的资料,包括运行条件、使用的模块和子模型等。输出模型到数据库(Export Model to Database)可以把模型的细节保存到Access或Excel数据库中,从数据库输入模型(Import Model from Database)可以从这样的数据库中输入模型的细节信息从而快速的构造或更新模型;OptQuest是与Arena配套的一种应用软件,它能够改变模型输入,然后进行一系列的仿真运行,寻找使输出性能指标最优的一组输入数据组合,在6.6节给出了一个关于OptQuest应用的例子;宏(Macro)选项提供了记录和运行宏命令的工具,也提供了使用VB编辑器编写用户逻辑的工具,关于VB的话题将在10.2节讨论;最后的选项(Option)条目允许你改变和自定义有关Arena运行和外观的各种选项,以符合你的需要。 原书P86 (第二幅图,无图名) 排列菜单(Arrange Menu):排列菜单的条目都与模型中的模块和图形对象有关(有些只能用于图形对象)。使用送到前面(Bring to Front)和送到后面(Send to Back)可以在一堆重叠的对象中把被选择的对象分别送到最顶层和最底层;组合(Group)和取消组合(Ungroup)表示在逻辑上把多个对象整合成一个或拆开,但不改变对象的物理性质,在移动或复制由多个个体对象构成的复杂图形时组合功能非常有用;翻转(Flip)是把选中的对象沿指定的方向绕轴翻转,旋转(Rotate)则是把选中的对象沿顺时针方向旋转90°;对齐(Align)是把选中的对象沿它们的上面、下面、左边或右边对齐,分布(Distribute)是在水平或垂直方向上平均安排所选中的对象;流程图分布(Flowchart Alignment)是把选中的流程模块在水平或垂直方向上平均排列;按网格点对齐(Snap to Grid)强制所选中的对象对齐下面的网格点;改变对齐点(Change Snap Point)可以改变用于所选对象所对齐的网格点的确切位置。 原书P87 (第一幅图,无图名) 对象菜单(Object Menu):对象菜单中的条目与模型的逻辑结构、流程模块和逻辑块间的连接线有关。单击连接(Connect),鼠标指针变为十字线,此时可在实体流经的模块之间建立连接;自动连接(Auto-Connect)是一个开关键,能够自动把新放入的模块与已经选中的模块相连接;智能连接(Smart Connect)使新增加的连接线以水平或垂直线段绘制,而不是用可能的对角线绘制,除非用手工绘制连接线过程中进行了中间点击;动画连接线(Animate Connectors)用于在仿真中显示实体沿流程模块之间的连接线移动的过程(即使实体在仿真中的移动是瞬时发生);子模型(Submodel)用于定义和管理分层的子模型,将在第五章讨论。 原书P87 (第二幅图,无图名) 运行菜单(Run Menu):运行菜单中包括在3.3.11和3.4.12节讨论过的运行设置(Setup)对话框,它控制当前模型运行的方式(包括运行时间长度等),还包括以不同方式运行仿真的项目,还有观察执行情况、检查模型错误(Check)并查看错误信息(Review Errors)、设置及控制如何运行模型以及在屏幕上如何显示等,对于这些功能本书将在3.7节进一步描述。通过此菜单也可访问由Arena生成的用SIMAN仿真语言编写的代码。 原书P88 (第一幅图,无图名) 窗口菜单(Window Menu):如果同时打开了几个模型,则可以用相互重叠的层叠方式(Cascade)或非重叠的平铺方式(Tile)排列模型;如果最小化了几个模型,还可以选择排列图标(Arrange Icons)来组织它们;使用系统背景颜色(Use System Bachground Color)指的是让模型使用当前Windows操作系统层次所选的颜色,而不是Arena内部设置的颜色,再次选择该条目可以使模型返回Arena的内部颜色(每次选择这个条目,就会在“系统”与“用户”之间切换);最后,可以选中菜单底部已经打开的模型来激活该模型。 原书P88 (第二幅图,无图名) 帮助菜单(Help Menu):帮助菜单是访问Arena在线帮助系统的几条途径之一(具体参见3.6节)。进入Arena Help子菜单后,可以按目录(Content)、索引(Index)、搜索(Search)等方式查找所需信息;“What’s This ?”子菜单将鼠标指针改变为,此时在菜单条目或工具栏按钮上单击即可得到相关帮助;版本注释(Release Notes)提供了最近的改进和系统需求等信息;Arena技巧文件(Arena SMART Files)为两百个小模型建立了基于主题的索引,这些小模型阐明了许多特殊的建模技术;接下来是关于当前模型中所添加的面板的帮助主题;产品手册介绍了关于Arena构件及其相关产品的信息,Arena在线帮助直接带你登录含最新帮助和软件信息的网站(当然必须在线完成);菜单中最后三项提供了支持和培训信息,Arena用于商业、研究和实验版本的复制保护,以及详细的版本信息。 原书P88 (第三幅图,无图名) 3.5.2 工具栏 Arena有几个工具栏(Toolbar),工具栏上面带有按钮和下拉列表框,这些工具栏便于快速访问常用的活动。这些按钮中,一些可以更快地实现菜单功能,还有一些是做某种事情的唯一途径。 选择菜单View>Toolbars(或在工具栏里右击)可选择当前显示哪些工具栏。像许多其它应用软件一样,可以把工具栏拖下来,让它悬浮在窗口内部,或者让它停放在窗口两侧(如果你只是想让工具栏悬浮在侧边但不停放在侧边上,在拖动工具栏接近侧边时按住Ctrl键)。不用每次使用Arena时都设置工具栏选项,因为Arena将记住最后一次的配置,另外,在不同的阶段也可以有不同的配置,例如,编辑模型的时候、仿真运行过程中、其它的各种窗口处于活动状态的时候等,Arena将会记住每种配置。 通过View>Toolbars>Customize菜单或在工具栏内右击选择Customize,可以自定义如何显示工具栏,下面将按顺序介绍每种工具栏,但是通过自定义功能你可以选择去重新安排哪些按钮在哪种工具栏上。 ( 尽管可以选择隐藏标准(Standard)工具栏,但是你会发现没有它会很不方便。 原书P89 (第一幅图,无图名) 标准工具栏开始是创建新模型、打开已有模型和保存当前模型这些按钮,就像文件菜单里一样,同样与文件菜单对应的还有添加面板、删除面板、打印和打印预览按钮。剪切、复制、粘贴、取消和重做按钮的功能来自编辑菜单。接下来的是分割屏幕的开关键,放大镜是用于最可能近地放大查看在流程图视图里选中的区域,也可以从下拉列表里选择缩放比例。层按钮让你能够控制模型在编辑和运行模式下何种类型的对象能够被看到,接下来是添加子模型和连接流程模块。随后是编辑时间模式和编辑例外情况,分别用来创建和管理事件的时间模式和例外情况,再后面是显示复合视图,是用来管理特定系统元素的能力与效率的数据。接下来六个按钮是用于运行控制的,将在3.7节讨论。最后一个按钮是关联帮助按钮,单击此按钮后,再点击工具栏中的按钮、菜单命令或项目栏模块能够了解与此有关的帮助信息。 ( 绘图(Draw)工具栏中的按钮没有相对应的菜单选项,因此只能访问工具栏。 原书P89 (第二幅图,无图名) 使用绘图工具栏可以绘制静态的线段、折线、弧、贝塞尔曲线、矩形、多边形和椭圆等用于装饰模型,还可以为模型添加文本注释。有一些按钮控制线段颜色、填充颜色、文本颜色和窗体背景颜色,也能够改变线型和图形填充模式。如果你在其它应用软件中使用过绘图功能,就会熟悉Arena的绘图能力,最好的熟悉这些功能的办法就是打开一个模型窗口试试这些操作,具体参见3.5.3节的绘图功能。 ( 动画(Animate)工具栏用于制作模型动画,并改进一些模块自带动画的显示效果。 原书P90 (第一幅图,无图名) 一般说来,其操作都是单击某个按钮,根据需要填写对话框,然后放置到模型中去。这些按钮的功能各不相同,在以后章节的建模中将具体讲解(我们目前已使用过Plot和Resource按钮)。现在可以把鼠标指针停留在每个按钮上查看其提示信息。 ( 集成(Integration)工具栏中包括了有关模块数据传输向导和VBA(VB编辑器和VBA设计模式)功能的按钮。 原书P90 (第二幅图,无图名) 第十章将讨论VBA的使用,VBA能够通过一个完整的VB程序接口扩充Arena标准建模功能。 ( 视图(View)工具栏的按钮控制如何观察建模窗口中的流程图视图。 原书P90 (第三幅图,无图名) 在此可以管理命名的视图、放大和缩小、观看整个视图或观看前一视图,还可以让视图显示网格背景,使新放入的或所选中的对象对齐网格 ( 排列(Arrange)工具栏基本上对应于Arrange菜单。 原书P90 (第四幅图,无图名) 包括把选中的对象送到前面或送到后面,把选中的多个对象组合在一起,也可以再取消组合;把绘制对象沿过中点的水平线或垂直线翻转, 90°旋转;按选中对象的上边、下边、左边或右边对齐它们;在水平或垂直方向上平均布置它们。 ( 运行交互(Run Interaction)工具栏有几个按钮对应于运行菜单,分别用于检查模型错误、输入命令、设置断点、监视运行过程、和中断模块运行,工具栏的最后一个按钮对应于Object菜单中的动画连接线。 原书P91 (第一幅图,无图名) ( 录制宏(Record Macro)工具栏有开“始/暂停/恢复运行”按钮,以及“停止录制VB宏”按钮,一个宏是存储在VB模块子程序中的一系列VB语句(将在第十章讨论)。 原书P91 (第二幅图,无图名) ( 动画传送(Animate Transfer)工具栏提供向模型中添加动画对象的工具。 原书P91 (第三幅图,无图名) 工具栏里的按钮包括暂存处、占用、停车、运送设备、站、交叉点、路径、路段、距离、网络和导入路径,本书将在随后的章节中讨论这些功能。 3.5.3 绘图 3.5.2节提到的绘图工具栏有多种图形、文本工具和控制功能,使你能够通过放置静态对象(不参与仿真和动画)来改善模型,这些静态对象可以帮助记录信息或使动画看起来更逼真,例如添加墙壁、走廊和盆栽。Arena并不是想提供一种CAD或者艺术功能,但是这些基本绘图能力还是很有用的,当然也可以像3.4.11节提到的那样从其它软件包导入图形。Arena的绘图工具用起来跟其它绘图程序差不多,因此此处仅仅指出有哪些绘图工具以及让你尝试使用一下来熟悉它们。 ( 线段(Line),:在这个按钮上点击一次,鼠标指针变为十字线,单击线段起点,再次单击得到线段终点,如果想限制线段为水平、垂直或45°方向,鼠标指针移向线段末端时按住Shift键不放。 ( 折线(Polyline),:使用这个按钮能够绘制锯齿状折线(中间的折点数不限)。选中按钮后,单击确定起点,然后在每个中间折点处单击一次,最后双击确定终点,绘制过程中可以按住Shift键不放以使线段为水平、垂直或45°方向。 ( 弧(Arc),:弧就是绘制椭圆的部分边缘。首先单击确定椭圆的中心,然后移动鼠标追随边缘轮廓,再次单击确定弧的大小与形状(按住Shift键不放可使椭圆成为圆),这时鼠标指针变为从椭圆中心点发射出来的线段的末端,单击确定弧的一个端点,再次单击确定弧的另外一个端点。如果以后想再次编辑这段弧,首先选中弧,使用线段改变弧长,使用所显示的标记点改变椭圆的大小和形状。 ( 贝塞尔曲线(Bézier Curve),:贝塞尔曲线也是一种常用曲线,它们能够适应很多不同的形状而仍能维持其光滑度和美观。单击确定一个端点,然后进行中间点击(最多30次)确定内部吸引点,双击确定另外一个端点,当鼠标移向下一个点过程中按住Shift键可以限制连接两点的线段为水平、垂直或45°方向。如果想要改变曲率,选中曲线,拖动内部吸引点或端点到不同地方。要想移动曲线的话,用鼠标直接拖动即可。 ( 矩形(Box),:首先单击确定一个角点,然后再次单击确定另外一个对角点。按住Shift键可以限制矩形为正方形。这个对象和下面的多边形及椭圆一样都有边界,边界也可以被认为是线段,因此可以选择颜色和线形,同样边界内部还可以选择填充颜色和填充模式。 ( 多边形(Polygon),:单击确定第一个点,然后鼠标移到其它位置单击确定其它点,双击确定最后一个点,最后一个点自动被连接回第一个点。按住Shift键可以强迫线段为水平、垂直或45°方向。这个对象和矩形一样有线边界和填充区域。 ( 椭圆(Ellipse),:首先单击确定中心点,移动鼠标追随边界轮廓直到想要的大小和形状,最后再次单击。按住Shift键限制椭圆为圆。这个对象和矩形一样有线边界和填充区域。 ( 文本(Text),:使用文本功能可以在模型中添加注解作为标注或提供信息。单击这个按钮调出对话框,在对话框内键入文本信息,在输入过程中使用Ctrl+回车开始新的一行,使用Ctrl+Tab向前跳格,利用对话框上的字体(Font)按钮可以改变字形、字体和大小。关闭对话框后鼠标指针变为十字线,单击确定文本信息的西北角点。使用文本的下划线可以移动文本、调整其大小或改变其方向(按住Shift键可以限制方向为水平、垂直或45°)。 ( 线段颜色(Line Color),:如果选中线对象(线段、折线、弧、贝塞尔曲线或其它图形的边界),单击此按钮的画笔部分可以将对象的颜色改变为画笔的下划线颜色,单击下拉箭头可以将对象的颜色改变为调色板中选择的颜色,另外新添加的线也自动取为下划线颜色。Arena不仅会为当前窗口中即将添加的线“记住”这种线段颜色,而且还会为新开的窗口“记住”这种线段颜色,直到你再次改变颜色为止。 ( 填充颜色(Fill Color),:与线段颜色类似,只不过这个命令作用在图形(方框、多边形或椭圆)的内部。 ( 文本颜色(Text Color),:与线段颜色类似,只不过这个命令作用在文本图形对象上。 ( 窗体背景颜色(Windows Background Color),:这个按钮将流程图窗口的背景颜色设置为从调色板中选取的颜色。 ( 线形(Line Style),:这个命令用于设置线的宽度和形状。None选项使线段不显示,但事实上它仍旧存在(这个选项同样对图形的边界起作用)。 ( 填充模式(Fill Pattern),:这个命令设置图形内部的填充形式。 3.5.4 打印 从Arena可以直接打印当前活动窗口中流程图窗口的全部或部分。使用File>Print Preview(或)可以预览即将打印的内容;使用File>Print(或或Ctrl+P)进行打印;使用File>Print Setup可以选择打印驱动或设置打印机。 如果模型很大,打印可能需要几个页面,而且如果模型中有命名的视图,可以得到当前视图的打印件以及每个命名视图的单独打印件,但如果你不想要全部这些,可以使用打印预览查看每页上显示的内容,然后有选择地打印你想要的页面。使用View>Page Break可以在流程图视图内显示页面的起止位置。 除了直接打印外,还有一种可供选择的方法。如果你见到自己喜欢的视图,可单击Prnt Scrn键将其复制进剪贴板,然后切换到正在处理的文档中,把这个“快照”粘贴到你需要的地方,如果喜欢的话还可以打印这个文档。也可以把这个复制的图象粘贴到绘图程序中,然后加以修剪或整理(实际上本书中的Arena窗口片段就是这么得到的)。 3.6 帮助系统 Arena有完整而详细的帮助系统,可以作为重要参考,也可以指导你学习各种操作,还可以提供建模示例和完整的项目示例。帮助系统是精心集成的,为快速简单地帮你找出所需要的信息,它还提供了其它一些领域的超级链接。本节将简单介绍几种访问帮助系统的方式,可是你会发现学习帮助系统的最好办法就是自己深入进去开始探索。 任何时候进入帮助(Help)菜单都能够访问完整的帮助系统,帮助菜单的内容已在3.5.1节介绍过。 按钮能够调用关联帮助(context-sensitive help),单击按钮,然后单击你感觉好奇的工具栏按钮、菜单命令、项目栏模块等,便可通过可视化的途径得到所需要的信息。 大多数Arena对话框都有帮助按钮可以单击,这是一条获得直接信息的很好的途径,例如,那部分软件是做什么的、有哪些可选项、相关内容是如何定义的、相关的概念(高级链接到帮助系统的其它部分)和示例等。也可以使用对话框右上方的?按钮来访问“这是什么?”帮助信息,单击?按钮,然后单击对话框中的个别项目即可。 万一你忘记了某个按钮是做什么的,可以将鼠标指针停留在这个按钮上一两秒钟,会出现一个小盒状的提示信息告诉你这个按钮是什么。 在Arena 7.0文件夹内的Examples文件夹里有几个详细的示例模型,你可以打开、浏览、复制、编辑(为安全起见,最好编辑复制品)和运行这些模型。如果你使用的是教学版本或其它受限制版本的Arena,由于同时存在于系统中的实体数量受到限制,你可能无法把模型运行完。如果你打开了一个大模型(超过了教学版本的限制),Arena会进入到运行时间模式(Runtime mode),在这种模式下只允许你进行微小的改动然后运行模型,不允许做诸如添加和删除模块这样的显著改动。这些示例模型显示了构建和研究仿真模型的方方面面,在“示例模型”(Example Models)帮助主题里,对每个示例模型都作出了描述。 3.7 关于运行模型的更多信息 通常开始建立模型的时候只是想把模型运行完,但有时候你可能想控制运行如何进行,Run菜单中的条目以及标准工具栏和运行交互工具栏中的相应按钮能够实现这些功能。 ( Run>Setup能够为当前模型设置各种运行选项,例如决定是否显示动画和是否以全屏模式运行等,这些选择和说明被保存在当前模型中,而不是变成全局效果。单击运行设置对话框中的帮助按钮,通过浏览这些高级链接主题可以熟悉这些选项。 ( Run>Go(或标准工具栏中的按钮或F5功能键)开始运行模型(或暂停后重新开始),如果在上次模型错误检查后又对模型进行了改动,在运行前系统会先检查模型。 ( Run>Step(或按钮或F10功能键)每次执行模型的一个动作,以便能仔细看到模型的运行情况,这确实很烦人,但作为调试和演示工具来说相当有用。像使用开始运行(Go)按钮一样,如果在上次运行模型后Arena检测到了改动,则使用此单步运行(Step)前将首先检查模型。 ( Run>Fast-Forward(或按钮)以更快的速度运行模型,不再显示动画,但也可以暂停运行过程来观看动画。在上次运行模型后若Arena检测到了改动,则使用此快进功能前将首先检查模型。 ( Run>Pause(或按钮或Esc键)暂停仿真运行,以便查看运行情况,再按该按钮重新启动运行。 ( Run>Start Over(或或Shift+F5)返回到仿真的初始状态重新运行模型。如果在上次运行模型后Arena检测到了改动,系统在重新开始运行前将首先检查模型。 ( 当Arena运行模型的时候,系统处于运行模式,大多数建模工具被禁用,因此当运行结束后,需选择Run>End(或或Alt+F5)退出运行模式,使建模工具恢复到可操作状态。如果在运行终止前仿真被暂停,使用结束按钮也将取消暂停状态。 ( Run>Check Model(或或F4)用于“编译”模型,如果在这个阶段Arena检测到错误,就会在错误/警告窗口给出提示,窗口底部的按钮将帮助你找到问题所在(例如,在流程图窗口指出出错的模块)。 ( Run>Review Errors能够再次调用最近的错误/警告窗口,窗口中包含了上次检查所发现的错误信息。 ( Run>Run Control>Command(或)带你进入一个交互式的命令行窗口,在这里可以控制运行,例如中断运行并改变参数,如有必要,也可以检查模型并开始运行仿真。 ( Run>Run Control>Break(或)用于设置断点,即中断运行的时间或条件,以便届时检查或说明某些事情。 ( Run>Run Control>Watch(或)建立了一个窗口,用以在运行过程中观察变量或表达式的值,Run>Setup>Run Control让你决定是否监视过程与仿真运行并行进行,还是仅在监视窗口处于活动状态时进行(后者速度更快)。 ( Run>Run Control>Break on Module(或)可以在选中模块中设置中断或将其清除,模块上的中断是指实体在开始或恢复在该模块上的逻辑操作时被暂停执行。 ( Run>Run Control>Highlight Active Module使正在执行的流程模块突出显示,这样在动画显示中能清晰地看见活动模块。 ( Run>Run Control>Batch Run (No Animation)若被选中,模型在运行过程中不会有任何动画显示,这种运行方式比快进(Fast-Forward)方式运行得更快,通常适用于项目处于正式运行阶段、为精确分析需要大量统计数据的时候。 ( Run>SIMAN 使你能够查看SIMAN模型文件(.mod)和实验文件(.exp)的源代码,并把它们写到一个文件中去,这些源代码是模型用最基本的SIMAN仿真语言编写的,为加深理解,可阅读一些关于SIMAN的知识(参见Pegden, Shannon和adowski,1995)。 3.8 小结 快速浏览了一遍Arena后,你现在应该对它有所了解了,在接下来的第四章到第九章,本书将让你自己加以探索,但会给你提供一张详细的行进路线图。在这些章节里,你将建立一系列愈加复杂的模型,在这些模型中阐述了很多建模技术,有时候也需要你表现一些有创造性的建模技巧。在第四章的最后部分、整个第六章、第七章的最后部分和第十二章中,将从输入和输出两个方面着手,系统介绍如何用Arena进行仿真研究所需的统计分析。 3.9 习题 3-1 通过Run>Setup>Replication Parameters设置模型3-1重复仿真运行5次,查看输出结果,注意多次重复仿真运行性能指标的变化,确认表2-4中的数据。打开“按重复仿真运行分类显示”的报告,可以单独查看每次重复仿真运行的报告,但置信区间的半长只能在汇总报告中才能看到。(在做多次重复仿真运行时参看6.3节关于记数型输出统计数据平均值的格式编排的说明;也可参看在.3.13节讨论的.out文件,如图3-19所示。) 3-2 打开Create模块,把指数分布的到达时间间隔平均值由5改为2.5(点击OK完成修改),这样模型3-1的实体到达速率加倍,这些在2.6.3节讨论过。设置重复仿真运行5次,把得到的结果与手工仿真结果(图2-4)相对比,打开“按重复仿真运行分类显示”的报告,单独查看每次重复仿真运行的报告。(在做多次重复仿真运行时参看6.3节的说明,是关于记数型输出统计数据平均值的格式编排的;也可参看在.3.13节讨论的.out文件,如图3-19所示。) 3-3 把模型3-1的运行周期延长到12小时来观看一个有趣的现象。打开散点图,延长时间范围(注意时间单位),增大散点图y轴队长(Number in the Queue)最大值,此外,还可能需要增大 # history 栏中的数据点数。然后设置一次重复仿真运行。 3-4 按习题2-4所述修改模型3-1,打开Process模块,把延时类型改为Expression,输入合适的表达式(需要的话可以使用“表达式构造器”)。运行模型20分钟,与手工仿真结果对比,如果结果不同(假定你的操作完全正确),如何解释? 然后,试运行模型24小时,观看队长散点图(将两个散点图的时间范围改变为1440,# history 改为1000,另外对队长散点图,y轴最大值改为50)。为了队长动画能有更多的空间,单击队列线段,拖动左端点向左移动。看看会发生什么?为什么? 3-5 按习题2-1所述实现附加的收集统计数据的功能,同时添加能够追踪系统中零件总数(即在制品 work in progress,缩写为WIP)的散点图。注意,在仿真运行期间任何给定的时间点,在WIP数量等于排队等待零件数量与正在加工零件的数量之和,也可以用“表达式构造器”来检查帮助主题“Entities WIP Variable”。 3-6 在模型3-1中做如下变动: · 添加第二台机器,所有零件离开第一台机器后马上进入第二台机器,第二台机器可以进行另外一种加工操作(例如,第一台是钻床,第二台是铣床)。第二台机器上的处理时间与第一台机器相同,像以前一样收集统计数据,外加第二台机器的排队等待时间、队长和利用率等统计数据。 · 零件离开第二台机器后,有一个“通过/失败”的检测,进行检测花费5分钟(常数),通过概率为80%,检测时有可能会发生排队,排队以“先进先出”为规则。不论零件是否通过检测,所有零件都会离开系统。分别清点“失败” 和“通过”零件的数量,同时收集检测中心的排队等待时间、队长和利用率等统计数据(提示:尝试使用Decide流程模块)。 · 绘制这三个站的队长和设备繁忙数量的散点图。 · 运行仿真480分钟,而不是20分钟。 3-7 在习题3-6中,假设铣后没有通过审查的零件必须被送回重铣,而不能离开;对重铣后的零件进行相同的检测,失败概率相同,不限制零件被送回铣床的次数,在习题3-6的条件下运行模型,对比检测中心排队等待时间、队长和利用率的结果,当然没有必要分别统计通过和没通过检测的零件数量,因为最终所有零件都将通过检测(会吗?),同时必须保证队列动画的线段和散点图的y轴有足够的空间。 3-8 在习题3-7中,假设经过检测中心能够导致三种结果:通过(概率0.8,如前)、失败(概率0.09)和重铣(概率0.11),失败的零件立即离开系统,重铣的零件返回洗床。不论零件过去的加工经历,上面的概率对于每个经过检测中心的零件是固定。分别统计最终失败和最终通过的零件数量,同时收集在检测中心队列等待时间、队长和利用率的统计数据。(提示:利用Decide流程模块并设想翻转一枚多维硬币。) 3-9 在模型3-1中,假设不是只有一种零件资源,而是有三种到达的资源,每种到达的不同资源分别为:蓝色(如前)、绿色和红色,对于每种颜色的到达零件,到达时间间隔是均值15分钟的指数分布。运行模型480分钟,计算和模型3-1相同的性能指标。一旦这些零件进入系统,它们保持各自的颜色不变(动画中),不同颜色零件的队列等待时间、队长和利用率等统计数据是不区分的,可是系统逗留时间的统计数据是按零件颜色分别收集的。在钻孔中心的加工时间与模型3-1相同,并且各种颜色零件的加工时间是一样的。 3-10 在科技博物馆里,经常会看到概率板(probability board)(也叫作“五点梅花形排法”(quincunx)): 原书P98 (插图,无图号) 概率板像一个大的倾斜烘烤面板,在上部边缘中点有一个狭槽,从面板外面的储存器里通过狭槽一次滚进一个弹球,假定储存器里有k个弹球,紧挨着狭槽下面有个固定的木桩,每个进入的弹球都会撞击木桩引起弹球向左或向右滚落,假设倾斜的面板使弹球向左或向右滚落的概率相等。在这个木桩下面有两根木桩,它们平行于面板顶面,水平方向上与第一根木桩偏移了一些距离,第二排木桩是按对角排列的,如下图所示。假设面板的倾斜角度、木桩间距、弹球质量和重力场正好可以使每个弹球都能击中第二排的其中一根木桩(哪个木桩被击中取决于击中第一根木桩后是向左还是向右滚落),弹球击中第二排木桩后右会向左或向又滚落(向左和向右滚落的概率都是50%)。接下来一排平行木桩有三根,水平方向上与第二排木桩也有一定偏移,以便使每个弹球能够击中其中一根木桩。这种情况一直持续到最后一排,假设有n排,则最后一排有n个木桩(本图中n=6,记最上面一根单独为一排)。最后一排木桩下面有n+1个按对角布置的收集器,从最后一排木桩滚落的弹球将落到其中一个收集器里。创建一个Arena仿真模型模拟一个6排木桩和1000个弹球的概率板。制作弹球在面板上弹落的动画,用动画工具栏的“水平”(level)动画对象制作落入收集器中弹球数量的动画,另外统计每个收集器中的弹球数量。根据落入每个收集器中弹球的比例来估计符合哪种概率分布?如果有人打开了左面的窗口,风进来把弹球向右吹,这样对于每个木桩,弹球向右滚落的概率为75%(而不是50%),情况又会怎么样? 1 在早期系统中,Arena的代号为Bambi。此处不再详述。
本文档为【arena中文教程arena中文教程第3章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_252470
暂无简介~
格式:doc
大小:198KB
软件:Word
页数:50
分类:工学
上传时间:2018-09-05
浏览量:126