AnyLogic使用帮助文档
- 格式:doc
- 大小:265.50 KB
- 文档页数:19
AnyLogic的应用10.2.1这里以AnyLogic的系统帮助中提供的一个经典的模型——Bass Diffusion Model来介绍系统动力学模型建模。
Bass diffusion Model是用来研究新产品的扩散过程,该模型认为一个新产品投入市场后,它的扩散速度主要是受到两种信息传播途径的影响:(1)大众传播媒介如广告等(外部影响),它通过传播产品性能中容易得到验证的部分(如价格、尺寸、颜色和功能等)来影响产品的扩散;(2)口头交流,即已采用者对未采用者的宣传(内部影响),它通过传播产品某些一时难以得到验证的部分(如可靠性、使用方便性和耐久性等)来影响产品的扩散。
接下来介绍如何建立该模型:1)建立新模型(1)点击工具栏的(New Model)按钮或File菜单的New Model命令。
(2)在弹出的New Model对话窗口中输入Model的名称、需要存放的位置(可点击Browse按钮浏览本地文件系统并选定要保存的地址)和所在的Java包(可自动生成),如图2.10.8所示。
图2.10.8 建模窗口(3)点击Finish按钮,进入开发环境并完成以下各歩,在建模的时候要注意保存。
2)添加Stocks添加两个Stocks模块用来描述从产品的使用者和潜在使用者的数量,如图2.10.9。
图2.10.9 模型中的Stocks模块(1)在面板视图(Palette View)中的模型面板(Model)上选中Stock Variable模块。
(2)选着workspace(图形编辑区)中适当的位置,点击即可在此处创建一个Stock Variable模块,在workspace中图标为一个蓝色的矩形,可通过拖动调整它的位置。
(3)单击workspace中的stock variable的图标,属性视图(Properties View)中会显示此Stock Variable的属性(属性窗口需要打开),在属性视图的General类属性中修改此Stock Variable的名称(Name)为:PotentialAdopter,表示用该模块描述产品潜在使用者的数量。
实验报告小组成员:六人一组,自由组合实验一:AnyLogic软件和排队系统模拟1.实验内容有关AnyLogic的安装和基本使用离散事件模拟的实现2.操作步骤2.1有关AnyLogic的安装和基本使用(1)打开AnyLogic的安装程序选择I Agree。
(2) 选择Next。
(3)选择存储路径,Install。
填写基本使用信息,通过邮箱获取口令,点击下一步,输入口令,安装成功。
(4)欢迎页面有六大模块:AnyLogic入门指南,AnyLogic新增功能,专业版功能,示例模型,提出问题/获得支持,XJ Technologies网站。
(5)Anylogic 教程银行营业厅(离散事件)2.2银行营业厅离散事件建模步骤(1)创建一个新的模型a.点击工具栏新建按钮,弹出新模型对话框。
b.定义模型名称,这里设为Bank。
c.点击下一步,选择使用模版创建模型,在建模方法清单中选择离散事件。
d.点击下一步,创建离散事件模型,这里模拟M/M/1系统因此不勾选使用资源,其他模型选项可自行尝试。
e.点击完成结束该过程。
新模型已经创建好,用户界面如下,工程窗有一个主动对象类和模拟实验。
双击,出现标签页:标签页下方是主动对象类的属性页:双击,出现标签页:(2)修改模型流程图流程图由一列企业库对象组成,每个对象定义了一些操作。
这里给出的流程图是最简单的排队系统模型,包括数据源(Source)、队列(Queue)、延迟(delay)和数据宿(Sink)。
a.数据源对象产生指定离散时间到达的实体。
在这里,它模拟顾客到达。
修改数据源的属性,指定顾客到达的频率,在到达速率中输入0.67.b.队列对象模拟顾客排队等候服务。
修改队列的属性,设置队列容量为15个实体(最多有15个顾客等候),勾选启用统计,开启队列对象的收集统计功能。
如果顾客等待时间过长,则设定“启动超时”项的超时值,控制顾客离开。
Queue有四个port接口:in,out,outPreempted,outTimeout。
AnyLogic软件功能介绍操作系统支持Windows 7及XP支持Mac OS X 10.6及以上版本支持基于GTK的Linux,例如Ubuntu Linux 8.04及以上版本或SuSE Open Linux 10.2及以上版本建模方法系统动力学:通常用于长期的战略模型,并假设建模的对象高度聚合。
在动力学模型中,人、产品、事件和其他离散项都是以数量代表,因此它们就失去了所有的个体属性、历史或动态变化。
如果问题适合这种抽象程度,系统动力学会是可以使用的正确方法。
AnyLogic采用了为系统动力学建模者所熟悉的方式来设计和模拟反馈结构(存量、流程图和决策规则,包括数组变量又叫下标)。
用户可以依次定义存量和流变量使用公式中的自动“代码补全”为了模型有更好的易读性,可以定义“影子”变量使用表函数(查找表)、线性或样条曲线插值定义枚举和范围类型的维度定义子维度和子范围定义任意维度的数组变量每个数组变量的不同部分可以使用多种公式使用特定的系统动力学和标准Java的数学函数基于智能体:是本质上分散的、以个体为中心的(和系统层相反)模型设计途径。
建模者在设计基于智能体的模型时,确定主动实体,即智能体(可以是人、公司、项目、资产、车辆、城市、动物、船、产品等),定义它们的行为(主要驱动力,反应、记忆、状态等),并将它们置于某个环境里,建立连接,然后运行仿真。
那时,整体的(系统层)行为就是个体行为交互的结果。
AnyLogic是唯一能够有效的支持智能体建模的工具,用户可以将基于智能体的建模方法和其他方法相结合。
AnyLogic基于智能体建模提供了一些可重复使用的设计模式,包括:模型结构智能体同步空间(连续、离散或GIS地图)、移动性、空间动画智能体联系(网络,社会网络)和交流智能体的动态创建和消失离散事件:世界上我们观察到的绝大多数过程是由连续的变化所构成的。
然而,当我们试图分析这些过程时,分解连续的过程为离散的部分以简化分析是很有意义的。
合肥学院管理系《物流系统建模与仿真》AnyLogic排队系统仿真实验报告姓名***学号****班级******成绩2013年4月10日一、实验目的:通过学习操作Anylogic仿真软件,学会用AnyLogic仿真支持离散和连续仿真的无缝集成;了解Anylogic仿真系统的运行流程;熟悉其基本操作,学会优化仿真结果,并学会结合实际情况设计模型解决问题。
二、实验工具:Anylogic系统软件三、实验原理:1、轻变换抽象层次和视点直到它完美地适用于需要解决的问题;2、如果认为系统动态学的抽象层对解决问题绰绰有余,使用整合聚集表;3、如果系统能以流程(操作顺序、实体、资源)的形式显示出来,使用离散事件建模;4、如果对具体的对象行为更感兴趣,使用基于主体的建模;5、可以将不同的方法用于一种模型。
四、实验内容:运用Anylogic系统软件仿真实际生活中的排队现象,对排队现象进行仿真分析。
五、实验步骤:1、首先创建一个新的模型,然后对模型的时间进行修改,将停止时间改为240。
如下图:2、然后再Anylogic界面中放入以下对象:一个source,一个selectOutput,两个queue,并将其命名为队列1和队列2,一个hold,一个delay,一个sink,并连接各对象。
如下图:3、进行参数的修改,对source,electOutput,队列2,delay 四个对象的参数进行修改。
如下图:对electOutput的参数进行修改:对delay队列2的参数进行修改:4、为了对该仿真系统进行评价,加入以下对象,两个statistics,一个polt,并对其参数进行相应的修改。
如下图:5、最后运行此模型,运行状况如下图:队列1 :241个样本均值=9.9队列2 :241个样本均值=9.9六、实验体会:在进行这个排队实验以前,对Anylogic系统仿真软件没有什么了解,在课上听老师说的和自己真正操作起来,感觉完全不一样,刚开始装的英文版的,根本看不懂,对照着使用说明也找不到相关的按钮在哪里,后来听同学说还可装汉语版的,我高兴了一下,这会终于可以好操作一些了,在宿舍同学的帮助下,我终于一步步的完成了实验操作,后来竟然不能运行,最后俊哥帮我找到了问题所在,好像是有个连接的属性设置错了。
AnyLogic GIS地图AnyLogic提供了在仿真模型中使用GIS地图的独特功能。
地图可用于供应链及物流网络或是其他需要将位置、道路、路径、区域等信息考虑在内的模型系统。
同时,AnyLogic内置谷歌地图搜索功能,允许用户利用地图数据轻松地定位城市、街道、道路、医院、商店和公交站点,也可将模型元素放置在地图上,元素可根据实际空间数据沿现有道路和路径移动。
Main里主要截图Map里需要瓦片信息,这样用开源的地址:也可以自己搭建瓦片服务,需要搭建一套GeoServer服务器的配合。
1.物料因为AnyLogic可以直接处理多种数据存储,包括Oracle、MS SQL、MySQL、PostgreSQL、MS Access、Excel和text文件等。
这里我们用MySql数据库作为数据来源。
MySql这里不做太多介绍。
Navicat是Mysql的客户端,打开Navicat客户端来连接Mysql数据库。
1. 新建数据库这里我们叫map_gis,字符集utf8mb4,排序规则utf8mb4_bin 。
2. 在数据库map_gis,分别建立如下4张表。
t_point 点地图数据表t_line 线地图数据表t_lane 道路表t_area 区域表建表SQL如下2. AnyLogic里建模内容新建工程后,在AnyLogic面板里选择数据库,将数据库添加到Main智能体里,具体位置如下图所示:将数据库托到Main智能体后,对数据库链接做详细编辑,这里注意需要引入JDBC驱动包(是一个java开发语言的jar包)详情见下图:引入JDBC驱动包的方式如下,点击工程后,属性面板出现“依赖项”,将下载好的jar 包路径加入即可,详情如下:编辑完数据库后,需要添加数据表,如图将面板中的“查询”拖入面板,如下图:点击“查询”,给它命名,需要选择对应的数据库,以及这个查询指向哪张数据表,如下图我们选择t_point表,在“查询”选项中有两个选择“选择表中所有”和“SQL”,“选择表中所有”可以理解select * from t_point; 就是查询表里全部数据,选择“SQL”可以灵活的查找表里对应的数据。
实验报告小组成员:六人一组,自由组合实验一:AnyLogic软件和排队系统模拟1.实验内容有关AnyLogic的安装和基本使用离散事件模拟的实现2.操作步骤2.1有关AnyLogic的安装和基本使用(1)打开AnyLogic的安装程序选择I Agree。
(2) 选择Next。
(3)选择存储路径,Install。
填写基本使用信息,通过邮箱获取口令,点击下一步,输入口令,安装成功。
(4)欢迎页面有六大模块:AnyLogic入门指南,AnyLogic新增功能,专业版功能,示例模型,提出问题/获得支持,XJ Technologies网站。
(5)Anylogic 教程银行营业厅(离散事件)2.2银行营业厅离散事件建模步骤(1)创建一个新的模型a.点击工具栏新建按钮,弹出新模型对话框。
b.定义模型名称,这里设为Bank。
c.点击下一步,选择使用模版创建模型,在建模方法清单中选择离散事件。
d.点击下一步,创建离散事件模型,这里模拟M/M/1系统因此不勾选使用资源,其他模型选项可自行尝试。
e.点击完成结束该过程。
新模型已经创建好,用户界面如下,工程窗有一个主动对象类和模拟实验。
双击,出现标签页:标签页下方是主动对象类的属性页:双击,出现标签页:(2)修改模型流程图流程图由一列企业库对象组成,每个对象定义了一些操作。
这里给出的流程图是最简单的排队系统模型,包括数据源(Source)、队列(Queue)、延迟(delay)和数据宿(Sink)。
a.数据源对象产生指定离散时间到达的实体。
在这里,它模拟顾客到达。
修改数据源的属性,指定顾客到达的频率,在到达速率中输入0.67.b.队列对象模拟顾客排队等候服务。
修改队列的属性,设置队列容量为15个实体(最多有15个顾客等候),勾选启用统计,开启队列对象的收集统计功能。
如果顾客等待时间过长,则设定“启动超时”项的超时值,控制顾客离开。
Queue有四个port接口:in,out,outPreempted,outTimeout。
AnyLogic应用于地铁仿真地铁交通网络中路网的构建和列车的控制可以采用离散事件建模方法。
在离散事件仿真中,系统的运行由依时间顺序的事件序列代表。
每个事件发生在一个时刻,并表明系统中状态的改变。
在地铁仿真中,典型的事件例如:乘客到达车站、列车打开车门等等。
在AnyLogic中,离散事件建模主要通过标准库实现。
AnyLogic提供行人库,专注于建模具有集中人流的场所,例如地铁站。
传统的离散事件方法无法精确地模拟行人移动,而AnyLogic行人库基于“社会力”、行人模拟理论,以定量的“力”代表行人个体移动的各种内因,包括提速到预定速度、与其他行人及边界保存距离、吸引效果等,能够在物理层建模行人之间,以及行人与环境(如墙壁、闸机)之间的交互,以可视化行人移动及收集统计数据。
行人库以流程图的方式建模,且能够与标准库相配合,使得用户可以很好地衔接车站中的行人仿真与路网中的列车仿真。
AnyLogic地铁站乘客案例(使用行人库)功能标准库:支持离散事件,或者更准确地说,以流程为中心的建模规范。
使用标准库对象,可以建模地铁路网这样的真实系统,包含实体(即列车)和过程(如列车行进)。
以流程图的形式使用,具有层次化、伸缩性、可扩展、面向对象的特点。
可以创建相应的动画展示。
Entity类:生成并参与各流程的实体。
可以代表列车或乘客。
列车的属性可能包括车次号、载客定额等;乘客的属性可能包括起始站、目的站等。
Source模块:产生实体,即列车。
是路网模型的起点。
产生列车的方式可以通过定义间隔时间或时刻表。
可以定义列车的动画图形。
Delay模块:使实体产生一个强制的延迟。
可用于表达列车行驶所需的时间或在车站停留的时间。
可以创建动画显示列车沿预设的轨迹前进。
延迟时间可以定义为一个数,常数或者随机数,也可以通过定义轨迹的长度和前进的速度从而计算得出。
Pickup模块:从Queue模块移除实体,添加到进入的容器实体中。
可以建模乘客(实体)进入列车(容器实体)。
系统要求AnyLogic 6 模型AnyLogic 6 模型是独立的Java应用并在任何支持平台形式的Java上运行,或者用JRE(Java Runtime Environment)的以下版本支持Java浏览:·JRE 1.6.0 或者(download the latest JRE from Sun)·Java组合式的(在一个浏览器内需要运行模型,可以选择的用JRE安装)。
AnyLogic 6 模型开发环境AnyLogic 6 模型开发环境是基于Java的应用,而且在下列平台上被检查:∙Microsoft Windows 7, x86-32 和 x64∙Microsoft Windows Vista, x86-32∙Apple Mac OS X 10.4.1 或者 Universal∙SuSE Open Linux 10.2 或者 x86-32∙Ubuntu Linux 7.04 或者 x86-32AnyLogic 6也可能被安装到其它平台,不包含在这个列表里(比如其它Linux 分布),但是我们不能保证它的全平台形式兼容性。
Java 2标准版6.0及以后的版本在运行AnyLogic模型开发环境时被需要。
JRE被包含在窗口的AnyLogic安装包内,但是需要与其它平台不相关。
硬件介绍∙AnyLogic 6 安装需要250MB硬盘空间。
∙我们建议有1GB内存和最理想表现的现代信息处理机。
∙我们建议最好使用鼠标而不是键盘。
AnyLogic支持服务购买AnyLogic,您得到一年免费签署使用软件支持服务。
然后您可以购买“一年的维修和技术支持”包在这一年内来得到支持和更新。
关于价格,请访问/purchase/prices/.AnyLogic支持服务包括:1.Upgrades. 可以使您有所有少的多的更新来保持您的AnyLogic更新与时间同步。
2.Technical support. 您可以问关于AnyLogic的任何技术问题。
AnyLogic使用帮助文档 1 / 19 AnyLogic使用帮助文档 一 概要 本文档内容包含AnyLogic的简单介绍,AnyLogic使用入门以及在使用过程中常见的一些问题。且所有内容仅针对pedestrian模型。
二 安装 除按正常模式安装AnyLogic以外,我们还需要额外添加一个shp文件导入控件,以及
安装neatbean。 控件的安装方法很简单,把InputShape_1.0.0.jar和openmap.jar复制到C:\Program Files\AnyLogic 6 Professional\plugins下即可(具体路径请参考自己的anylogic安装路径)。
三 创建一个简单的pedestrian模型 1 打开anylogic程序,File->new->model。 2 输入模型文件相关信息,next。
3 选择 use template to create model,并选择Pedestrian Dynamics。Next。 AnyLogic使用帮助文档
2 / 19 4 Add waiting area和Add service and queue都不勾选。Finish。 5 运行程序观察效果。
四 基础对象介绍 关于各个对象的属性行为,仅说明一些比较常用的。 构建一个完整的模型,以下对象是必不可少的。PedConfiguration,PedGround,PedSource,PedSink,PedGoTo。下面一一介绍。 1 PedConfiguration PedConfiguration主要标示模型中的一些配置信息。 1) Time step, seconds 时间步长,即pedestrian每隔多久移动1次。 0.3是通过社会调查获得的一个比较合理的数据。这个值越小,peds移动的更精确,但是需要更多的计算。 2) Animation scale, pixels per meter AnyLogic使用帮助文档 3 / 19 PedConfiguration中需要格外关注一个数据,即多少像素为1米。模型中的单位分为像素和米,所以在使用中需要注意他们之前的差别。 3) Render ped as
Ped的显示样式。 circle在表现上要好看一些,但是会让程序慢一下。Cross会让程序跑的快一些,point会更快,但是point无法表现出ped的大小。 2 PedGround PedGround主要表示模型的模拟器环境。可以简单的理解为墙的设置。 1) Walls (group, optional) peds不能穿过的地方,简称为墙。可以通过walls来表示实际的模拟器环境。 参数可以null,不为null时必须为group。 2) Walls touch tolerance, pixels 人与墙之间的间隔,单位为像素。 0.2米是一个比较合适的值。 3) Additional ties (group of lines, optional) 额外的ties 当PedGoto的寻路方式为manual时会使用到该参数。可以为空 4) Show advanced parameters 勾选将显示一些高级设置。 a) Gap between tie and wall, meters 系统自动生成的tie和墙之间的距离。缺省值为0.3米。 这个值必须大于0。 b) Maximum tie length, meters 系统自动生成的tie的最大长度。缺省值为5米。 在某些模型里面,将该参数设置到最小,可以显著提高性能。 c) Minimum angle between ties, radian tie之间的最小角度。单位为弧度。缺省值为0.3。 由两点之间生成的tie,如果与角平分线之间的角度小于该值,将会被移除。 d) Delete crossing ties 是否删除相交的tie。 e) Show nodes 程序运行过程中,是否显示节点。 f) Color for nodes 节点颜色。 g) Show edges 是否显示边缘。 h) Color for edges 边缘颜色。 i) Show ties 是否显示tie j) Color for ties tie的颜色 k) Show obstacles 显示障碍 AnyLogic使用帮助文档 4 / 19 l) Color for obstacles 障碍的颜色 3 PedSource PedSource主要作用是生成ped。通常作为模型的起点。 1) Creation mode 选择ped生成模式,是单个模式还是组模式。 2) Ped arrivals defined by 指定生成ped的模式。 a) Arrival rate, peds per time unit 按时间比率生成。如 1000/hour()。 b) Ped interarrival time 间隔时间生成。如:exponential( 1000 / hour() )。具体时间间隔由 AngLogic内部定义,该参数仅定义生成比率。 c) Rate table, peds per minute 生成比率有Table Function提供。 d) Arrival table 生成比率有Table Function提供。 Table Function中一个条目(20,10)表示第20s生成10个人。 e) Manual (call inject() method) 手动调用inject(int n)函数生成人。 3) Group arrivals defined by group和ped的区别主要在于,ped每次生成时单个的。group生成每次生成是以 group的size大小的人为1个单位生成的。如group的size为10,则每次生成人 的时候都是10人。生成模式与ped相同。 4) Limited number of arrivals 是否限制生成ped的数量。如果选择是,则需要输入人数上限。 5) New ped ped实例化。可以实例为new ped()或者ped的子类。 6) Diameter, meters ped的大小。单位为米。 7) Comfortable speed, meters per sec. ped的速度,米/秒。默认值为uniform(0.5,1)。 8) Animation shape 设定动画演示时的形状。具体用途还没摸索出来^^ 9) color 设定生成的ped的颜色。默认情况下为空,随机设置颜色。 10)Arrival ground (PedGround) ped生成时所处的环境。 11)Appears at (line, polyline) ped生成时所处的位置。 12)Initial Spedd,meter per second 初始速度。单位为米/秒。 13)With offset,meters 定义ped生成位置位于线上的位置。缺省位置为uniform(0,length)。如果改成 AnyLogic使用帮助文档 5 / 19 uniform(0.5*length,0.75*length),则表示生成的均匀分布在线段/折线距离起点1/2 线段/折线长度到3/4长度的这一部分。起点为折线/线段上带+的点。 14)initial direction,radian ped生成时的初始朝向。单位为弧度。可选择下拉单提供的North,South,East, West。 15)On exit 可以在这里编码。ped离开该组件时会调用这段代码。 16)advanced parameters—Ped simulation algorithm ped的模拟器算法。默认值为pedConf.algorithmSocialForceModel。这个参数我 没有深入研究过。高端人士可以自己编写模拟器算法来试验一下。 4 PedGoTo 设定ped的行走目的地和路线。 1) Target(point,line) ped的目的地,可以是line,也可以是point。 2) Path choice mode 有两种模式,auto和Manual。 auto模式,ped会自动计算到达目的地的路径。 Manual模式,ped则根据指定的path行走。若选择Manual模式,则必须在 Parameters栏path项填写设定的path。path为ShapePolyLine。 3) Target reach tolerance,meters 定义ped距离目的地多少范围内算完成pedgoto。 4) On enter, On exit, On cancel 分别定义ped进入,离开,取消pedGoto时的行为。 5) Blocking detection timeout 当ped进入一个死角,从该位置无法沿既定路径到达目的地,则会进入timeout 计时,超时后会重新计算路径。 5 PedSink ped的最终端,进入该对象的ped会从画面消失。 1) On enter 自定义进入该对象的行为。
以上为该模型中对象的基本介绍。其他模型介绍请参考help文档。 关于其他对象的示例,请查看help->Sample Models。Pedestrian Dynamics的三个示例。
五 进阶功能。 这一块内容比较乱,基本上以我在做地铁疏散遇到的问题为主。 1 path的画法 可以这样理解,ped按path行走,实际是按于path关联的一连串ties行走。表示path的polyline,以+点为起点,每条tie必须放在polyline的点上面。