Anylogic用户手册1

上传人:豆浆 文档编号:75476974 上传时间:2022-04-15 格式:DOC 页数:57 大小:2.48MB
收藏 版权申诉 举报 下载
Anylogic用户手册1_第1页
第1页 / 共57页
Anylogic用户手册1_第2页
第2页 / 共57页
Anylogic用户手册1_第3页
第3页 / 共57页
资源描述:

《Anylogic用户手册1》由会员分享,可在线阅读,更多相关《Anylogic用户手册1(57页珍藏版)》请在装配图网上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流Anylogic用户手册1.精品文档.1. 创建AnyLogic模型1.1 AnyLogicTM建模语言AnyLogicTM建模语言已经成功应用于对大规模和复杂系统的建模。AnyLogicTM模型的主要构建模块是活动对象(active object)。活动对象可以用于建模现实世界中类型广泛的各种对象,例如加工工作台,资源,人员,硬件,具体的物体,控制器,等等。一个活动对象即是活动对象类的一个实例。在你开发一个AnyLogicTM模型时,你实际上是在开发活动对象的类,以及定义这些类之间的关系。你也可以很方便地使用AnyLogicTM库中的活动对

2、象类。活动对象类被映射到JavaTM类上。因此,活动对象类允许继承,虚函数,多态等等特性。面向对象的方法给建模带来了显著的益处。使用类进行建模提供了结构分解和活动对象重用的特性。在定义了一个具有所需结构的活动对象类之后,你就可以在你的模型中创建此类的多个活动对象。类等级结构允许对上述这些概念进行更进一步的扩展。活动对象继承由于活动对象类都是JavaTM类,因此一个活动对象类可以继承自另一个活动对象类。子类继承了父类的接口,并且可以加入自己独有的结构元素和方法。继承允许对代码的重用,并使得对模型的修改变得简单易行。在你定义了基础类之后,例如此基类代表一辆汽车,则它的通用属性可以被子类所继承,例如

3、子类可以分别代表运动型车辆和卡车。实际上现实世界中的所有对象都具有复杂的结构。为便于管理和掌握大规模系统的复杂结构,分解就成了一条重要原则。通过将一个整体的系统分解为各个部分,并且对这些部分进一步分解,这样我们就克服了人类认知能力的局限。等级化分解由于一个活动对象可能在任意所需的深度上封装其他活动对象,因此AnyLogicTM模型可以等级化地分层分解。由于每个活动对象通常代表模型中的一个逻辑部分,因此你就可以根据需要,将一个模型分解为具有不同细节的多个层次。每个AnyLogicTM模型中都有一个根活动对象,其中包含了被封装起来的其他对象,而这些对象又包含其各自的被封装对象,以此类推。这样,我们

4、就创建了活动对象的等级树。封装也使你能够隐藏被建模对象中的所有复杂细节。结构分解由于AnyLogicTM模型都具有定义良好的交互接口,因此这些模型可以被结构化地分解。活动对象只通过边界对象与它们周围的环境进行交互。通过定义连接器以建模实际的耦合关联,我们就可以很方便地描述不同对象之间的关联。这样就将对象的内部实现与关于环境的直接知识分离开,使得活动对象可以重用。活动对象重用除了使用继承之外,对包含模型类的库的使用也支持了对建模知识的重用。AnyLogicTM允许你创建可重用的活动对象类库,这些库可以在一些特定的应用领域或建模工作中进行创建。库允许在不同模型中对类的更好的重用。你只需要对一个类开

5、发一次,并进行存储,即可在多个工程中使用这个类。1.2 开始使用AnyLogicTM在此后你都将使用AnyLogicTM开发环境开发和运行模型。首先,你需要打开AnyLogicTM,并创建一个新工程,或打开一个已有的工程。接着,你需要使用由AnyLogicTM提供的构建工具构建此模型。然后你就可以运行仿真。这一章节为你提供了如何开始使用AnyLogicTM的参考信息。 打开AnyLogicTM1. 从Windows开始菜单中打开AnyLogic快捷方式(默认位于如下菜单路径中:开始|所有程序|AnyLogic 5.2|AnyLogic)。2. 此时即出现注册向导。为使用AnyLogicTM构建

6、模型,你需要拥有试用(有限时间)或永久的全功能产品密钥。 使用试用版AnyLogicTM1. 获得一个试用版密钥。如果你下载了AnyLogicTM用于评估测试,则这一密钥将通过电子邮件发送给你。其他情况,请打开如下网页:并填写其中的表格。然后产品密钥将通过电子邮件发送给你。2. 打开了注册向导之后,选择向导中的Enter permanent or evaluation key(输入永久或试用密钥)选项,然后输入你通过电子邮件接收到的试用版产品密钥。3. 为继续运行AnyLogicTM,你可以选择Continue evaluation(继续评估)选项。 获得全功能的AnyLogicTM产品密钥1

7、. 在打开注册向导之后,选择Send request for permanent key(发送永久密钥请求)选项,然后按照向导提示操作。你将被提示要通过电子邮件发送请求信息到请求处理中心。2. 在你通过电子邮件接收到你的个人解锁密钥之后,再次打开注册向导(如有必要,请点击AnyLogicTM的Help(帮助)菜单,选择Register product(产品注册),接着选择Enter permanent or evaluation key(输入永久或试用密钥)选项,然后输入你的个人解锁密钥。3. 在完成了产品注册向导之后,AnyLogicTM即开始运行(图1)。 运行AnyLogicTM,并打开

8、指定工程在Windows资源管理器中点击一个AnyLogicTM工程文件(扩展名为.alp,图标为)。如果你已经完成了产品注册向导,则此时AnyLogicTM应开始运行。如果没有,请先完成产品注册向导,然后再次点击此文件图标。 图 1 AnyLogicTM用户界面请注意点击另一个模型文件并不会打开一个新的AnyLogicTM窗口。另一个模型文件将在同一个AnyLogicTM窗口中打开(如有必要,你将被提示要保存现在正在打开的文件)。 1.2.1 使用工程在启动之后,AnyLogicTM即显示Start Page(开始页),如图2所示。开始页将提示你创建一个新工程,打开现有工程,或打开一个最新的

9、AnyLogicTM实例。图2. AnyLogicTM开始页一个工程即是你在开发模型时的一个工作区。你可以使用开始页或AnyLogicTM的File(文件)菜单对AnyLogicTM工程进行管理。 创建一个新工程1. 在开始页的Projects(工程)页面中,点击New project(新建工程)按钮,或者点击New(新建)工具条按钮,或者从主菜单中选择File|New(文件|新建),或者按键盘上的Ctrl+N。此时即出现New project(新建工程)对话框。2. 指定新工程的名称和保存位置。3. 指定你是否希望为此工程创建一个文件夹。4. 点击OK。 打开一个现有的工程1. 在开始页的P

10、rojects(工程)页面,点击Browse(浏览)按钮,或者点击Open(打开)工具条按钮,或者从主菜单中选择File|Open(文件|打开),或者按键盘上的Ctrl+O。此时Open(打开)对话框即显示。2. 浏览找到你希望打开的工程文件,双击此文件,或者点击此文件,然后点击Open(打开)按钮。AnyLogicTM提供了对最近打开过的工程的快捷访问。 打开一个最近打开过的工程1. 在AnyLogicTM的File(文件)菜单底部的工程列表中选择你希望打开的工程,或者点击开始页中的Projects(工程)选项卡,从最近打开的工程列表中选择你希望打开的工程,然后点击Open(打开)按钮。如果

11、你正在使用某个特定的工程,你可以告诉AnyLogicTM不要在程序启动时显示开始页,而是直接打开你最近使用过的工程。 在AnyLogicTM启动时打开最近使用的工程/开始页1. 在主菜单中选择Tools|Options(工具|选项.,)。此时即出现Options(选项)对话框。2. 在Miscellaneous(杂项)页面,选择/取消Reload last project on startup(在启动时重新加载前一次使用的工程)选框。3. 点击OK。AnyLogicTM标准发行版本中包含了一些最新的范例,这些范例按照主题类别组织(计算机和电信网络,医疗健康,制造和后勤,交通和运输等)。你可以查

12、看这些例子以了解如何开发你自己的模型。 打开一个AnyLogicTM范例1. 在开始页中点击Examples(范例)选项卡。AnyLogicTM范例列表即显示于开始页的右侧面板中。2. 如有必要,选择By category(按主题)选项,则将这些例子按照AnyLogicTM主题类别进行排序。范例主题类别的列表显示于右侧面板中,为显示某一类别中的所有范例,请点击此类别项目左侧的加号图标。如有必要,选择Sorted alphabetically(按字母顺序排序)选项以将范例按照字母顺序排序。3. 点击一个范例项目。此时即显示此范例的描述信息。4. 点击Open(打开)按钮。在开始页中,你可以查看A

13、nyLogicTM的在线资源和文档。 查看在线资源1. 在开始页中,点击Online Resources(在线资源)选项卡。AnyLogicTM在线资源和文档列表即显示于开始页右侧面板中。2. 点击你希望查看的在线资源。3. 点击Open(打开)按钮。 保存当前工程1. 点击Save(保存)工具条按钮,或者在主菜单中选择File|Save(文件|保存),或者按键盘上的Ctrl+S。 保存当前工程到新的文件名中1. 从主菜单中选择File|Save As(文件|另存为)。Save As(另存为)对话框即显示。2. 指定保存此工程的新文件名称和位置。3. 点击Save(保存)按钮。 保存所有工程1

14、. 点击Save All(全部保存)工具条按钮,或者在主菜单中选择File|Save All(文件|全部保存)。 关闭当前工程1. 在主菜单中选择File|Close(文件|关闭)。AnyLogicTM一次可以打开一个工程。然而,你可以运行多个AnyLogicTM窗口,并在不同的窗口中打开不同的模型。 同时运行两个或多个AnyLogicTM窗口1. 在一个AnyLogicTM实例窗口正在运行时,从Windows开始菜单中打开AnyLogic快捷方式。2. 在新打开的AnyLogicTM窗口中,打开你所需的工程。这样你就可以同时对多个工程进行操作,并可以将一个工程中的类复制到另一个工程中。1.3

15、 编辑工程AnyLogicTM开发环境构建于最新的Windows用户界面技术之上,其特性包括:l 可自定义的窗口,工具条,颜色,图像l 鼠标拖放编辑l 图表缩放l 通过类树在工程中方便地进行浏览l 动态检查类型,参数,以及图表语法l 图形化高亮显示错误你可以在多个AnyLogicTM编辑器窗口中对工程进行编辑。在创建了一个新工程之后,Project(工程)窗口和Properties(属性)窗口即显示(请参考图3)。Project(工程)窗口用于创建,查看,和操作模型元素。Properties(属性)窗口用于查看和修改模型元素的属性。这一章节将给出这些窗口的细节描述。结构编辑器(Structur

16、e editor)工程(Project)窗口状态图(Statechart)编辑器动画编辑器(Animation editor)属性(Properties)窗口代码(Code)窗口输出(Output)窗口图3 用于编辑工程的窗口1.3.1 Project(工程)窗口你可以在Project(工程)窗口(工作区(Workspace)窗口中的一个页面,如图4所示)中访问多种工程元素,如包,类等等。由于工程的结构是等级化的,因此一个工程将显示为一个树状结构:工程自身构成树的顶层,接着下一层为包,然后下一层是活动对象和消息类,以此类推。工作区的树状视图使得对此工程的浏览十分便捷。图4. Project(工

17、程)窗口 显示Project(工程)窗口1. 点击Project(工程)工具条按钮,或者在主菜单中选择View|Project(查看|工程),或者按键盘上的Alt+0。对于Project(工程)窗口中的项目,你可以对它们实行一些通用的操作。你可以复制,移动,和删除项目。这样,你就可以方便地管理你的工程。在复制或删除时,你应首先选定一个项目。 选定一个项目1. 点击这个项目。Properties(属性)窗口中即应显示出被选定项目的属性。 删除这个项目1. 点击Delete(删除)工具条按钮,或者在主菜单中选择Edit|Delete(编辑|删除),或者右键点击此项目,然后在弹出菜单中选择Delet

18、e(删除),或者按键盘上的Del键。 复制这个项目1. 点击Copy(复制)工具条按钮,或者在主菜单中选择Edit|Copy(编辑|复制),或者右键点击此项目,然后在弹出菜单中选择Copy(复制),或者按键盘上的Ctrl+Ins键。 剪切这个项目1. 点击Cut(剪切)工具条按钮,或者在主菜单中选择Edit|Cut(编辑|剪切),或者右键点击此项目,然后在弹出菜单中选择Cut(剪切),或者按键盘上的Shift+Del键。 粘贴这个项目4. 选择你希望将其粘贴到的父项目。例如,你可以将一个活动对象类粘贴到一个包中。5. 点击Paste(粘贴)工具条按钮,或者在主菜单中选择Edit|Paste(编

19、辑|粘贴),或者右键点击父项目,然后在弹出菜单中选择Paste(粘贴),或者按键盘上的Shift+Ins键。如有必要,你可以将此工程元素排除在模型之外。这样,你可以在设计时通过将一个元素排除在外来调整你的模型结构,并引入其他模型元素。 从模型中排除/向模型中引入一个项目1. 右键点击此项目,然后从弹出菜单中选择Exclude from build(从模型中排除)。此项目的图像即变得模糊/锐利。1.3.2 Properties(属性)窗口Properties(属性)窗口用于查看和修改当前选定的对象的属性。在你选定了某个对象之后即,在Project(工程)窗口中,或在图表编辑器窗口中(请查看1.5

20、.2“图表编辑器,通用操作”)选定一个对象Properties(属性)窗口中(如图5)将显示所选定对象的属性。图5. Properties(属性)窗口Properties(属性)窗口由若干个页面组成。每个页面中都有如编辑框,选框,按钮等等之类的控件,用于查看和修改属性。页面的数目和每个页面的内容取决于所选定对象的类型。你可以直接将一个项目从模型树中拖动到Properties(属性)窗口的一个域内。 显示/隐藏Properties(属性)窗口1. 点击Properties(属性)工具条按钮,或者在主菜单中选择View|Properties(查看|属性),或者按键盘上的Alt+Enter键。 显示

21、Properties(属性)窗口中的特定页面1. 点击Properties(属性)窗口顶部的对应选项卡。每个模型元素都可以有一条描述性文字与之相联系,以使模型更易于理解。 设置元素描述1. 选择模型元素2. 在Properties(属性)窗口的Description(描述)页面中输入文字。AnyLogicTM将为当前选定的模型元素显示工具提示,其中显示此对象的属性的细节描述。 获得关于一条属性的信息1. 在Properties(属性)窗口中,将鼠标光标移动到所需的控件上,然后等待显示工具提示。如有必要,你可以告诉AnyLogicTM不要显示属性的工具提示。 显示/隐藏属性的工具提示1. 在主菜

22、单中选择Tools|Options.(工具|选项)。此时即出现Options(选项)对话框。2. 在Miscellaneous(杂项)页面中,选中/取消Enable property tips(允许属性提示)选框。3. 点击OK。1.3.3 对窗口进行布局在编辑你的工程时,你实际上是在若干个窗口中进行工作。所打开的窗口的名称列表显示于AnyLogicTM的Windows菜单的底部。你可以使用Window菜单的选项对打开的窗口进行布局。 以层叠方式显示模型窗口1. 在主菜单中选择Window|Cascade(窗口|层叠)。 将模型窗口沿着AnyLogicTM窗口宽度方向纵向平铺1. 在主菜单中选

23、择Window|Tile Vertically(窗口|纵向平铺)。 将模型窗口沿着AnyLogicTM窗口长度方向横向平铺1. 在主菜单中选择Window|Tile Horizontally(窗口|横向平铺)。 关闭所有窗口1. 在主菜单中选择Window|Close All(窗口|关闭所有窗口)。 激活一个窗口1. 从Window(窗口)菜单中选择此窗口的名称。2. 如果打开了太多的窗口,则窗口列表中只显示其中的一部分。在主菜单中选择Window|More Windows(窗口|更多窗口),在Select Window(选择窗口)对话框中选择你希望激活的窗口,然后点击OK。 激活列表中的下一

24、个窗口1. 在主菜单中选择Window|Next(窗口|下一个窗口),或者按键盘上的Ctrl+F6。 激活列表中的上一个窗口1. 在主菜单中选择Window|Previous(窗口|上一个窗口),或者按键盘上的Ctrl+Shift+F6。1.4 模型元素AnyLogicTM模型是等级化地组织起来的。工程(project)由包(package)组成,以便更好地组织一个工程的结构。一个工程可以使用其他工程作为库(library)库是一组针对特定应用领域而开发的类的集合。为使你的工作更加容易,AnyLogicTM允许你根据你需要对模型进行的实验,指定若干个对应于不同模型执行参数的实验(experim

25、ent)。这一章节将对这些AnyLogicTM模型元素进行介绍。1.4.1 工程AnyLogicTM中的一个工作单元即称为一个工程。在一个工程中完整地定义了一个模型或一个库。一个工程在Project(工程)窗口中将显示为一个根项目。下面所述的工程属性定义于Properties(属性)窗口的General(常规)页面中。常规属性Name(名称)工程的名称,通常与模型的文件名相同。Loaded from(加载位置)只读工程文件(.alp)的位置。Target file(目标文件)可选存储所生成的代码的文件的文件名。如果你希望将一个工程作为库来使用,则你需要指定此属性,请参考第20章“库”。Addi

26、tional library files(附加的库文件)可选你所希望在编译时加入到此工程的JavaTM库列表,由分号分隔。Folder for generated files(放置所生成的文件的文件夹)可选AnyLogicTM存放所生成的文件的文件夹的路径。如果未指定,则AnyLogicTM将所生成的文件放置于Windows临时文件夹中。AnyLogic可以为整个工程生成一个HTML报告。编辑器可以生成综合的交叉引用的HTML报告,其中包括图表,元素属性,和代码。为打印整个报告,你可以从浏览器中打印此HTML报告。 生成整个工程的HTML报告1. 在主菜单中选择File|Generate Re

27、port(文件|生成报告)。此时即打开浏览器,并显示所生成的.html报告。1.4.2 包工程由包组成。在工程中可以有一个或多个包。包中含有活动对象,消息,其他类,和外部文件。包可以用于更好地对工程的结构进行组织。 向工程中加入一个新的包1. 在主菜单中选择Insert|New Package(插入|新的包),或者在Project(工程)窗口中,右键点击此工程,然后从弹出菜单中选择New Package(新建包)此时即打开New Package(新建包)对话框。2. 指定新建的包的名称,然后点击OK。属性Name(名称)此包的名称。Exclude from build(构建时排除)如果设置此属

28、性,则此包将被排除出此模型。当AnyLogicTM生成代码时,它把每个AnyLogicTM包映射到同名的JavaTM包上。因此,位于不同的AnyLogicTM包中的类被放置到不同的JavaTM包中。使用AnyLogicTM包的规则与使用JavaTM包的规则相同。为使用一个来自于另一个包的类,你需要导入此包,或者在这个类的名称前面添加此包名称作为前缀。包的导入将在1.5.9.1“导入包”中介绍。如果你不希望与名字空间打交道,你可以在你的模型中只使用一个包例如,mypackage。默认情况下,在你创建一个新工程时,AnyLogicTM即创建一个与此工程同名的包。1.4.3 库一个工程可以将其他工程

29、作为库来使用。库是为特定应用领域或建模任务所开发的类的集合。AnyLogicTM中提供了若干个库,你也可以很容易地创建你自己的库。使用库具有几个优点:l 提供了在不同模型中对类的更好的重用。一个类只需要被开发和存储一次,就可以在其他工程中被引用使用。l 库使你可以在AnyLogicTM工程中组织团队工作:模型的一部分由一个团队成员开发,并放到库中,其他人在他们的工作只需使用相兼容的库版本。l 通过开发合适的库,你可以将AnyLogicTM转化成针对特定领域的高层次的建模工具,在此工具中可以通过简易的鼠标点击来进行操作。AnyLogicTM在Libraries(库)窗口中显示了可用的库。AnyL

30、ogicTM标准发行版本中包含了若干个库,这些库位于Lib目录下。你可以查看这些库以了解如何开发你自己的库。创建库和使用AnyLogicTM库类的细节信息将在第20章“库和外部文件”中给出。1.4.4 实验一个实验(experiment)中存储了模型的一组配置参数。AnyLogicTM支持几种不同的实验类型,以用于不同的仿真任务。当创建一个新工程时,AnyLogicTM即自动创建一个实验,并将其设置为当前实验(current experiment),即定义了当前模型仿真参数的实验。这一实验是一个仿真实验(simulation experiment)。它将运行模型仿真,并显示动画,同时允许对模型

31、进行调试。大多数情况下使用的实验都是仿真实验。其他的AnyLogicTM实验类型(优化实验optimization experiment,参数变化实验parameter variation experiment)只用于模型参数起重要作用,并且你需要分析这些参数如何影响模型行为的情形,或你希望找到你模型对应的最优参数的情形下。自定义参数(custom parameter)允许你使用JavaTM语言定义自定义的实验脚本。实验和配置参数具体将在第12章“实验”中进行介绍。1.5 活动对象活动对象是AnyLogicTM模型的主要构建模块。活动对象可以用于建模现实世界中类型广泛的各种对象,例如:加工工作

32、台,资源,人员,硬件,具体的物体,控制器,等等。一个活动对象是一个活动对象类的一个实例。活动对象类可以由用户开发,或者从库中得到。 向包中加入一个新的活动对象类1. 点击New Active Object Class(新活动对象类)工具条按钮,或者在主菜单中选择Insert|New Active Object Class(插入|新活动对象类)。此时即应出现New Active Object Class(新活动对象类)对话框。指定所要创建的活动对象类的名称,选择将要放置此活动对象类的包,然后点击OK。2. 你也可以在Project(工程)窗口中,用鼠标右键点击将要加入活动对象类的包,然后在弹出菜

33、单中选择New Active Object Class(新活动对象类)菜单项。此时即应出现New Active Object Class(新活动对象类)对话框。在此对话框中指定新的活动对象类的名称,然后点击OK。每个活动对象类都有如下属性:属性Class name(类名称)此类的名称。Base class(基类)可选基类的名称。可以为ActiveObject或它的子类。如果未指定,则认为基类为ActiveObject。请查看1.5.10,“活动对象继承”,以了解关于活动对象继承的更多信息。Parameters(参数)可选活动对象类的一组形式参数。Exclude from build(构建时排除

34、)如果设置了此属性,则此类被从此工程中排除出去。Show name(显示名称)如果设置了此属性,则此类的名称将显示于其结构图中。Show object rectangle(显示对象矩形)如果设置了此属性,则代表此对象的边界的矩形将显示于其结构图中。Public(exported from library)如果此属性未被设置,则在此对象被用作库的情况下,你将无法从其他工程中访问此类(如果你需要隐藏一些辅助库类,你可能需要作此设置)。1.5.1 结构图每个活动对象类都有一个与之相联系的结构图。结构图有若干个作用,它可以:l 定义活动对象类的接口l 定义被封装的类以及它们之间的相互作用l 定义行为元

35、素,例如定时器和状态图结构图由各种不同的形体构成,即:当前对象(this object),被封装的对象(encapsulated object),端口(port),变量(variable),连接器(connector),图表定时器(chart timer),状态图(statechart),和文本框(text box)(请参考图6)。图6. 结构图你可以在结构图编辑器中使用结构工具条对活动对象的结构图进行编辑(图7)。结构图编辑器图7. 结构图编辑器和工具条 打开一个活动对象类的结构图1. 在Project(工程)窗口中右键点击一个活动对象类,然后在弹出菜单中选择Open Structure(打

36、开结构图),或者在Project(工程)窗口中双击此活动对象类。活动对象显示为一个黑体画框。画框代表活动对象类在结构图中的“边界”。这一形体表示,位于此画框中的所有端口和变量都成为此活动对象类的接口元素。这一形体在图中是可选的(非必需)。这一形体的属性既是活动对象类的属性。你可以使用文本框在图中放置一条注释。这样做不会影响模型的行为。 加入一个文本框1. 点击Text Box(文本框)工具条按钮,或者在主菜单中选择Draw|Text Box(绘制|文本框)。2. 在图中点击你希望放置此文本框的位置。然后拖动以设置文本框形体的大小。 修改文本框中的注释1. 双击此文本框。2. 编辑此文本框中的内

37、容。3. 点击图中的空白区域,或按Esc键,以保存修改后的文字。4. 你也可以使用文本框的Properties(属性)窗口来修改其中的文字。1.5.2 图表编辑器 通用操作AnyLogicTM中有四个图表编辑器:结构图编辑器,状态图编辑器,动画编辑器,以及3D动画编辑器。这些编辑器都是基于同样的技术构建的,因此它们具有一些共同的通用编辑操作,我们将在这一节中介绍这些通用操作。各个编辑器独有的操作分别在第1.5.1节“结构图”,第9.2节“状态图”,第11.2节“动画图”和第11.3节“3D动画图”中介绍。AnyLogicTM图表由图形对象即形体组成。为绘制一个形体,你需要点击对应的工具条按钮,

38、然后在图中放置此形体。每个编辑器都有自己对应的工具条,其中有此图表类型所特有的形体工具条按钮。选择形体在图表中你可以选择任一形体。在你选择了一个形体之后,Properties(属性)窗口中即显示此形体的属性。 选择一个形体1. 点击此形体。 选择一个以上的形体1. 拖动矩形选择框以选择多个形体。 将形体加入到选择中/从选择中去掉一个形体1. 按下Shift键,同时用鼠标点击此形体。 选择图中的所有形体1. 从主菜单中选择Edit|Select All(编辑|全选),或者按Ctrl+A键。复制,移动,和删除形体你可以复制,移动,和删除形体。 复制所选内容到剪贴板1. 点击Copy(复制)工具条按

39、钮,或者在主菜单中选择Edit|Copy(编辑|复制),或者右键点击所选内容,然后从弹出菜单中选择Copy(复制),或者按Ctrl+Ins键。 剪切所选内容1. 点击Cut(剪切)工具条按钮,或者在主菜单中选择Edit|Cut(编辑|剪切),或者右键点击所选内容,然后从弹出菜单中选择Cut(剪切),或者按Shift+Del键。 粘贴剪贴板中的内容1. 点击Paste(粘贴)工具条按钮,或者在主菜单中选择Edit|Paste(编辑|粘贴),或者右键点击图中的空白区域,从弹出菜单中选择Paste(粘贴),或者按Shift+Ins键。被粘贴的形体即显示,并且其轮廓线为蓝色。2. 将被粘贴的形体移动到

40、所需位置。 复制所选内容1. 按下Ctrl键,同时拖动所选内容。 移动所选内容1. 拖动所选内容,或者使用方向键。 删除所选内容1. 点击Delete(删除)工具条按钮,或者在主菜单中选择Edit|Delete(编辑|删除),或者右键点击所选内容,然后从弹出菜单中选择Delete(删除),或者按Del键。 隐藏所选内容1. 在主菜单中选择Draw|Hide(绘制|隐藏)。 取消隐藏所有被隐藏的形体1. 在主菜单中选择Draw|Unhide All(绘制|取消隐藏所有)。 将整个图表的图像复制到剪贴板1. 在主菜单中选择Draw|Copy Image(绘制|复制图像),或者右键点击图中的空白区域

41、,然后从弹出菜单中选择Copy Image(复制图像)。你可以取消前一个操作。 取消前一个操作1. 点击Undo(取消)工具条按钮,或者在主菜单中选择Edit|Undo(编辑|取消),或者按Alt+Backspace键,或者Ctrl+Z键。 重复前一个被取消的动作1. 点击Redo(重复)工具条按钮,或者在主菜单中选择Edit|Redo(编辑|重复),或者按Ctrl+Y键。你可以移动,中心放置,或缩放图表,以更好地观察图表中的特定部分。 移动图表1. 用右键点击图表,然后一直按下右键,移动鼠标。 中心放置图表1. 在主菜单中选择Draw|Go to Center(绘制|移动到中心),或者右键点

42、击图中的空白区域,然后从弹出菜单中选择Go to Center(移动至中心)。图表即被中心放置。 缩放图表以适合所有形体1. 在主菜单中选择Draw|Zoom|Zoom to Fit(绘制|缩放|缩放到合适大小),或者右键点击图中的空白区域,然后从弹出菜单中选择Zoom to Fit(缩放到合适大小)。此时图表即被中心放置,并且缩放到合适大小以适合所有形体。 放大图表1. 点击Zoom In(放大)工具条按钮,或者在主菜单中选择Draw|Zoom|Zoom In(绘制|缩放|放大)。 缩小图表1. 点击Zoom Out(缩小)工具条按钮,或者在主菜单中选择Draw|Zoom|Zoom Out(

43、绘制|缩放|缩小)。 缩放到指定的矩形1. 在主菜单中选择Draw|Zoom|Zoom to Rectangle(绘制|缩放|缩放到矩形)。2. 在图中你希望缩放至的区域拖动鼠标以选择此矩形区域。 缩放到默认大小1. 在主菜单中选择Draw|Zoom|Zoom to Default(绘制|缩放|缩放到默认大小)。你可以控制图表网格的外观。 启用/关闭网格1. 点击Enable Grid(启用网格)工具条按钮,或者在主菜单中选择Draw|Grid|Enable Grid(绘制|网格|启用网格)。 显示/隐藏网格1. 在主菜单中选择Draw|Grid|Show Grid(绘制|网格|显示网格)。

44、将一个形体对齐到网格上1. 选择一个形体。2. 点击Snap to Grid(与网格对齐)工具条按钮,或者在主菜单中选择Draw|Grid|Snap to Grid(绘制|网格|与网格对齐)。默认情况下,当你缩放,拖动,或移动一个形体时,其他与之逻辑关联的形体也将发生移动。例如,连接器与端口一起移动,被封装的对象与封装对象一起移动,简单状态将反映复合状态的改变,等等。有时候我们不想要这样的行为,这种情况下你通常可以关闭智能拖动特性。 在操作时关闭智能拖动1. 在完成操作时按住Shift键。 编辑一个形体的名称1. 双击此形体的名称,或者右键点击此形体,然后从弹出菜单中选择Edit Name(编

45、辑名称),或者按F2。2. 输入此形体的新名称。3. 按Enter或点击图中的空白区域以保存修改后的名称,或按Esc以取消修改。你也可以通过Properties(属性)窗口来编辑形体的名称。 旋转一个形体1. 在主菜单中选择Draw|Rotate(绘制|旋转)。2. 使用旋转手柄来旋转一个结构元素。 获得形体属性的简要信息1. 将鼠标光标移动到此形体上,并等待出现工具提示。1.5.3 活动对象的图标每个活动对象类都有自己特有的图标。每当这个类的实例在结构图中或在动画图(请参考10.2.2节“结构图动画”)中显示为被封装的对象时,即显示此图标。请注意这一图标图像与AnyLogicTM动画无关,并

46、且不显示于此活动对象类自身的结构图中。1.5.3.1 图标图活动对象图标由图标图定义。你可以使用动画工具条在图标编辑器(图8)中对图标图进行编辑。图8. 图标编辑器 创建一个活动对象类的图标1. 点击New Icon(新建图标)工具条按钮,或者在主菜单中选择Insert|New Icon(插入|新图标)。此时即显示New Icon(新建图标)对话框窗口。指定新图标的名称,选择此图标将要对应的活动对象类,然后点击OK。2. 你也可以在Project(工程)窗口中,右键点击此图标将要对应的活动对象类,然后从弹出菜单中选择New Icon(新建图标)。此时即显示New Icon(新建图标)对话框窗口

47、。指定新图标的名称,然后点击OK。3. 此时即出现图标编辑器窗口。每个活动对象类都只能有一个对应的图标。 打开活动对象类的现有图标1. 在Project(工程)窗口中,右键点击活动对象类的图标(Icon)项目,然后从弹出菜单中选择Open Icon(打开图标)。此时即显示图标编辑器窗口。图标编辑器具有1.5.2节“图表编辑器,通用操作”中所描述的通用编辑操作。蓝色十字表示图标图的原点(0, 0)。一个图标由多个形体,例如圆圈,矩形,线段,以及标记等,组合绘制而成。请查看11.2.2节“动画形体”和11.2.3节“标记”以了解关于这些形体的细节描述。图标大小将自动设置以适合其中所有的形体。每个形

48、体都有一组属性,以定义其视觉外观:位置,高度,宽度,颜色,等等。形体的通用属性将在11.2.1.2节“动画形体的通用属性”中介绍。1.5.3.2 图标动画概念每个形体都具有许多属性以定义其视觉外观,这些属性包括:位置,高度,宽度,颜色,等等。典型情况下这些属性将按照如图9所示进行组织:图9. 图标形体的属性这些概念与AnyLogicTM动画概念类似图标图将形体的属性与活动对象的数据联系起来。左侧的静态值显示了在编辑器中进行绘制时所定义的此属性的值。这一值也将作为默认值。右侧的表达式定义了在仿真过程中这一属性的实际值。在这里你可以将形体的外观与活动对象的任意数据联系起来。数据可以发生改变,并且这

49、些改变将在图中反映出来。如果这一表达式为空,则在整个仿真过程中此属性的值将一直保留为默认的静态值。图10显示了一个将图标形体的图形属性与活动对象数据相联系起来的例子。这里圆圈的坐标由活动对象的参数x和y动态定义,矩形的旋转角度由活动对象的成员变量alpha定义。图10. 将图形属性与模型数据相联系起来这样,通过将形体属性与活动对象数据相联系起来,你就可以在模型运行时在结构图动画中动态地显示活动对象。1.5.3.3 活动对象的图像活动对象图标是AnyLogicTM5的新特性。在以前版本的AnyLogicTM中,你只能在来自于文件的静态图像与活动对象类之间建立关联。实际上,在这一版本中保留活动对象

50、图像特性的目的只是为了与较早的版本相兼容。我们推荐你为活动对象类创建图标,然后将图像形体加到此图标中,而不是直接使用活动对象图像。请注意,如果定义了活动对象类的图标,则活动对象类的图像不起作用。活动对象的图像通过活动对象的Properties(属性)窗口的Image(图像)页面定义(如图11)。图11. 活动对象Properties(属性)窗口的Image(图像)页面 为活动对象定义一个图像1. 在Project(工程)窗口中点击此活动对象。2. 点击Properties(属性)窗口的Image(图像)页面中的Image(图像)按钮。此时即显示Choose Image(选择图像)对话框。此对话

51、框中显示了预定义的图像。3. 为使用一个预定义的图像:双击此图像,或者点击此图像,然后点击OK。4. 如果需要从文件加载图像:点击Browse(浏览)按钮。此时即打开Open(打开)对话框。浏览找到你希望使用的图像文件。双击此文件,或者点击此文件,然后点击Open(打开)按钮,以选择此文件。所指定的图像即显示于Properties(属性)窗口的Image(图像)页面中。 移除已指定的活动对象的图像1. 在Project(工程)窗口中点击此活动对象类。2. 点击Properties(属性)窗口中的Image(图像)页面内的Reset(复位)按钮。1.5.4 被封装的对象活动对象可以在任意所需的深

52、度层次上封装其他活动对象。被封装的对象是其他活动对象类的实例,并且将被此活动对象类的每个实例封装。封装一个类是创建模型等级结构的必须步骤。 向一个活动对象类中加入一个被封装的对象1. 将活动对象类从Project(工程)窗口中拖动到父活动对象的结构图中。如果为父活动对象定义了形体,则所有的被封装对象都应放置于此父对象形体内部。被封装的对象显示为被填充的矩形(如图12所示)。如果AnyLogicTM无法找到所引用的类,则被封装的对象将显示为红色。图12 被封装的对象被封装的对象具有如下属性属性Name(名称)被封装的对象的名称。Type(类型)只读被封装的对象所属的类。Parameters(参数

53、)可选被封装的对象的一系列形式参数。每个参数都应以如下形式给出:Name Value,其中Name是参数的名称,Value是参数的值。Exclude from build(构建时排除)如果设置了此属性,则此被封装的对象被排除出模型。Show name(显示名称)如果设置了此属性,则此被封装的对象的名称将显示于结构图中。Auto create(自动创建)如果设置了此属性,则AnyLogicTM将自动创建被封装的对象。否则这一对象应通过手动创建。你可以打开被封装对象类的结构图。 打开被封装对象的结构图1. 双击被封装的对象,或者右键点击被封装的对象,从弹出菜单中选择Open Structure(打

54、开结构图)。如有必要,你可以在结构图中翻转被封装对象的图像。 水平翻转被封装对象1. 选中此被封装的对象2. 点击Flip Horizontal(水平翻转)工具条按钮,或者在结构图中右键点击被封装的对象,然后从弹出菜单中选择Flip Horizontal(水平翻转),或者在主菜单中选择Draw|Flip Horizontal(绘制|水平翻转)。被封装的对象可以为单一对象,或者复数对象(请不要将这个概念与模型重复混淆)。一个复数对象代表一组属于同一类的活动对象。对象重复使你可以非常经济地表述由具有任意相互连接的对象所组成的复杂结构。在父类的结构图中,显示的复数对象名称后面将加上一个星号(如图12

55、)。请查看第2章“复数对象”,以了解关于复数对象的细节描述。1.5.5 根对象一个AnyLogicTM模型是由互相封装的活动对象类所构成的一棵树(如图13)。由于每个活动对象通常代表模型中的一个逻辑部分,因此一个模型可以被分解到若干个细节层次。树的根称之为根对象。根对象代表了你的模型中的最高抽象层次。当你指定根对象的类时,你即告诉了AnyLogicTM在何处开始创建模型。图13. 活动对象树由于你可以修改模型的根对象,这样AnyLogicTM就可以支持简单的模型修改方法。你可以在同一个工程中创建若干个具有不同根对象的实验。这样你就可以通过改变当前实验来方便地调整你的模型结构。 为一个实验设置根

56、对象1. 在Project(工程)窗口中点击此实验。2. 在Properties(属性)窗口,从Root object(根对象)下拉列表中选择此实验的根对象。例如,你可以建模一辆汽车。你定义了Automobile类,这个类代表了你的模型中的最高抽象层次,因此你设置这个类为根对象类。此类中封装了代表汽车零部件的对象:轮胎,发动机,化油器,等等。这些部件也可以封装其他代表其中零件的对象,依此类推。然而,你可能需要将注意力集中在汽车的发动机上。因此你可以简单地设置Engine类为你模型的根对象类。反之亦然,你可能需要建模一个车库。这种情况下你需要在你的模型中创建新的抽象层次,并将其设置为模型等级树的

57、顶层。与其他一些已对模型根对象进行详细定义的建模工具不同,在AnyLogicTM中你可以用非常简单的方法改变模型的结构。例如,在上面所述的例子中,进行如下操作:1. 定义类Garage,以代表车库。2. 将已经创建好的代表汽车的类封装到Garage类中。3. 创建一个新的仿真实验,并将它设置为当前实验。4. 将类Garage作为所创建的实验的根对象类。1.5.6 活动对象的数据你可以通过定义参数和变量来定义活动对象的数据。你也可以通过编写你自己的JavaTM代码来定义类成员变量。1.5.6.1 参数活动对象可以有参数。通常情况下,参数用于参数化地表示对象。当对象实例具有类中所描述的相同行为,但

58、行为的参数值不同时,即需要使用这些参数。所有的参数在模型执行过程中都可见并且可以更改。这样你就可以在运行时通过更改参数来方便地调整你的模型。活动对象参数可以被关联到被封装的对象的参数上。这种情况下,参数的改变即被沿着活动对象树中的参数依赖关系传播下去。请查看第3章“参数”以了解对参数的细节的描述。如果你需要建模一些数据单元随时间的连续变化,请使用变量,而不是参数。1.5.6.2 变量如果你需要定义一些数据单元(可能会随时间连续变化),你可以定义一个变量。一个变量可以为任意的标量类型,矩阵,或超矩阵。变量可以与其他活动对象共享。变量可以出现于随时间连续变化的微分和代数方程式,以及模型值中。在模型

59、执行时,可以在AnyLogicTM用户界面中对变量进行观察,并且可以通过用户界面更改变量。请查看第4章“变量”以了解对变量的细节的描述。1.5.6.3 类成员变量你可以在活动对象类的代码窗口的Additional class code(附加的类代码)段声明JavaTM成员变量。你可以在这一对象中访问这些数据成员。请查看1.5.9“为活动对象编辑代码”以了解细节信息。如果你只需要在一个活动对象内部,且只在离散的时刻(即,既不与其他对象共享,亦不会连续变化)对一个数据项进行访问,且你不需要在模型执行时观察或更改此数据项,则你可以声明一个成员变量。其他情况,请声明一个普通变量。1.5.7 活动对象的

60、行为活动对象可以具有内部的行为。在AnyLogicTM中你可以定义离散时间行为,连续时间行为,以及混合行为。l 连续的过程用具有连续变化变量的微分和代数方程来描述。l 在非常简单的情况下,对象内部的离散行为可以使用定时器来定义;在事件和时间顺序变得更为复杂的时候可以使用状态图(扩展的状态机)来定义。l 当离散和连续时间行为之间存在相互依赖关系时,则需要混合模型。你可以使用混合状态图来定义混合的行为。1.5.7.1 方程式连续时间的行为可以通过方程式来定义。你可以定义一组微分方程,代数方程,和公式,以描述变量随时间的连续变化。请查看第5章“方程式”以了解关于方程式的细节描述。1.5.7.2 定时

61、器对象内部的行为可以用定时器来定义。定时器用于计划一些用户定义的行为。在AnyLogicTM中有静态和动态两种定时器。后者用于计划多重事件。请查看第8章“定时器”,以了解关于定时器使用的细节描述。1.5.7.3 状态图在活动对象的生命期内,活动对象将对外部及内部事件和条件作出反应,执行操作。活动对象内部存在状态,即表明执行操作的顺序起重要作用。对某些对象,这一操作的事件顺序和时间顺序十分普遍,使得最佳的选择是使用状态转换图状态图来描述这些对象的行为。状态图用于显示给定某一给定算法的状态空间,导致从一个状态到另一个状态转变的事件,以及由于状态转变引起的行为。AnyLogicTM支持混合状态图这是

62、将离散逻辑和连续事件行为结合起来的最自然最有效的方法。在混合状态图中,你可以将一组方程式与状态图的一个状态相关联。状态转换将使连续行为发生改变。同时,你可以指定一个由连续变化变量决定的条件来触发一个转变。连续过程将驱动离散逻辑。请查看第9章“状态图”以了解对状态图的细节描述。1.5.8 活动对象之间的相互作用AnyLogicTM支持连续时间和离散时间的活动对象相互作用机制。结合这些机制,你可以创建活动对象的复杂接口。1.5.8.1 变量共享变量共享是AnyLogicTM中的连续时间相互作用机制。这些变量可以暴露于活动对象的接口之中,并且与其他活动对象共享。当属于不同活动对象的两个接口变量被关联到一起时,一个变量的(设置为输出)变化将立刻传播到另一个变量(设置为输入)那里。这就提供了连续和/或离散时间的对象相互作用。请参考第4章“变量”以了解关于变量和变量共享的细节信息。1.5.8.2 消息传递消息传递是AnyLogicTM中的离散时间相互作用机制。这一机制的概念是在活动对象之间传递

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!