官方教程
https://anylogic.help/tutorials
官方学习资源(含下载安装)
具体操作教程
- 统计信息:https://anylogic.help/tutorials/bank-office/4-collecting-utilization-statistics.html
- 测量时间:https://anylogic.help/library-reference-guides/process-modeling-library/time-in-system.html,https://anylogic.help/library-reference-guides/process-modeling-library/timemeasurestart.html#:\~:text=If you see the runtime error "The TimeMeasureStart,error message%2C has the TimeMeasureStart blocks property empty.
- 3d窗口:https://anylogic.help/anylogic/3d/view3d.html
- 创建agent:https://anylogic.help/tutorials/turbine-maintenance/1-different-types-of-agents.html
找anylogic仿真的论文方式
IEEE上搜索anylogic
官网整理:https://www.anylogic.cn/resources/articles/
常用操作对应按键
- 移动仿真的图:按住右键
- 连接组件:双击后连接
- 路径停止绘制:双击,点击同时按住ctrl可以画弯的路径
- 仿真图显示每个组件的信息:单击
- 仿真3d图,按住alt可以调整视角
地铁入口教程
教程链接
https://anylogic.help/tutorials/pedestrian/1-simulating-simple-pedestrian-flow.html
阶段1
"新模型被创建。它已经有一个智能体类型名为 Main, 实验名为 Simulation experiment。智能体是 AnyLogic 模型的主要构建块。在我们的例子中,
Main 智能体将作为定义模型所有逻辑的场所:在这里,我们将放置入口大厅的图纸,并定义描述行人流程的流程图。"
创建模型
创建时间单位为分钟,要选择成模型单位时间是分钟,
若创建时没有设置成,后续修改:
在项目视图中,选择模型(最顶端的项目)。
在模型的属性中,从模型时间单位下拉列表中选择所需的时间单位。
https://anylogic.help/anylogic/experiments/model-time.html
添加图纸
没有自动跳出文件窗口,参照:
https://anylogic.help/anylogic/presentation/image.html
可以在属性页面添加。
- 为图纸画墙:按住左键移动可以画弯曲的线,并控制弯曲的弧度,在墙的属性可以修改颜色和宽度
- 添加目标线
定义流程图
- PedSource 块生成行人。它通常用作行人流的起点。在我们的例子中,它模拟了乘客的到达。
- PedGoTo 将行人从当前位置移动到新的位置。我们添加这个块来模拟乘客如何从入口处移动到地铁列车。
- PedSink 块处理入站行人。它通常用作行人流的终点。
- 请参阅《行人图书馆参考指南》, 了解所有行人图书馆块的详细信息。(https://anylogic.help/library-reference-guides/pedestrian-library/blocks.html)
将组件关联上目标线(明确目标线的作用)
- 选择 inflowSource 块。在 "属性" 视图中,定义乘客将出现的位置。从 "目标线" 下拉列表中选择 "entryLine"(之前在入口处绘制的目标线的名称)。
- 修改 goToTrains 的属性。为乘客指定目的地。进入大楼后,行人将前往您在此指定的目的地。
阶段2
现在我们希望乘客在进入地铁站台之前通过售票口。所以让我们在走廊尽头增加一个售票口
图标不一致,更换成安装8.7版本保持一致,中文显示更好。
绘制服务
带队服务 ------ 用于定义行人在队列中等待直到服务可用的服务。
带区域的服务 ------ 用于定义带电子队列的服务。在这种情况下,行人不排队,而是在相邻区域等待。
有两种类型的服务:
- 线性服务定义了一条线,行人应该沿着这条线移动。行人服务在线的起点,然后移动到终点,最后离开服务。检票闸机自然是线性服务。
- 点式服务定义了一个点,在这个点上,行人应该在服务延迟时间内停留。行人到达服务点后,开始在那里等待指定的延迟时间。
出现问题
问题:Unreachable target: (740.00, 280.00) on level 'name: level' for pedestrian 'id: 1' located at: (220.00, 270.91) on level 'name: groundDefault'!
解决:将线服务的属性的层由level改成groundDefault,要保持其他的组件的层一致(在工程)
阶段3:行人密度图
拖入密度图:位置和大小->层属性也要保持一致,不然显示不出来
阶段4:增加自动售票机
注意:设置线服务属性时,售票机是点服务,闸机是线服务
任务:一些乘客直接送到售票口,另一些乘客则送到售票机那里接受服务,
用pedselectoutput实现,PedSelectOutput 块是 Pedestrian Library 的一个决策块
无法显示3d人(非教程内容)
3d人无法显示,3d地板有一个厚度,人高度不够在外面就看不见,矩形墙的填充类型设置为无填充就好了
统计队列长度的数据集样本数超过了300(事件里定时了每分钟采集一次长度),时间折线图只显示150个点,在时间折线图的数据更新里选择不自动更新数据就正常了
统计排队人数、服务和排队时间(非教程内容)
参考
官方教程(pedservice):https://anylogic.help/library-reference-guides/pedestrian-library/pedservice.html#pedservice
视频教程:https://www.bilibili.com/video/BV1UK421s7o3/?vd_source=775316543df455e17016d86856ed432d
根据观察queuesize是统计单条队列,size是统计这个服务的数量
绘制直方图
数据集要选直方图数据而不是数据集,绘制直方图时才能正确转换格式,注意这两种数据集的图标是不一样的,论文里是有区别的