注:本文摘抄《行人交通仿真方法与技术》,转发请注明引用。
一、新建项目
在本阶段中,我们将先创建地铁站行人交通仿真模型,主要包括绘制行人交通环境以及模拟行人进入站厅层后沿着通道走向列车的行为。
运行AnyLogic,显示欢迎页面。欢迎页面有AnyLogic软件简介、程序综述及特性介绍。此外,该页面也会提示访问XJ科技公司的网站,并提供许多相关的教程。
1. 关闭欢迎页面,在AnyLogic主界面中选择“文件”→“新建”→“模型”命令,从而创建一个新的模型。
2. 在“模型名”文本框中,输入新模型的名称SubwayEntranceHall。
3. 在“位置”文本框中,确定程序创建模型所在的文件夹。既可以单击“浏览”按钮选择一个文件夹,也可以直接在“位置”文本框中输入文件夹的名称。
4. 行人交通仿真的时间单位一般为秒,因此将“模型时间单位”设置为秒。
5. 单击“完成”按钮,便可从零开始进行创建新模型,也可以选择一个模板来初始化模型。
6. 由于本案例目的是学习如何创建模型,单击“完成”按钮关闭向导。
在图形编辑器中,将会看到一个空的模型Main活动对象类。下面简要介绍AnyLogic的界面。
二、导入底图
创建行人交通仿真模型,通常以添加仿真环境的底图开始,然后在底图的基础上绘制仿真环境中的墙壁、障碍物、楼梯等元素,再建立行人行为模型(即:行人在仿真环境的行为及其行为之间的先后顺序)。接下来,我们将添加地铁站的布局图,具体步骤如下:
1. 点击“面板”,切换至面板视图。在面板视图中,可以通过点击停靠在左侧的图标切换选项卡。当对图标的功能不清楚时,让鼠标在图标上滞留2秒便会显示该图标的名称,如(a)所示。在本步骤中选择“演示”选项卡,如(b)所示。
2. 将演示选项卡中的“图像”模块拖拽至图形编辑器。在图形编辑器中,该模型最初显示的图像为一个交叉的矩形。
3. 给图像模块添加底图图像。一般情况下,在添加该模块后会自动弹出文件游览窗口,选择底图文件即可。若文件游览窗口没有自动弹出,可在选择图像模块后点击属性视图中的“添加图像”按钮,手动添加底图文件,如图所示。该底图文件在<AnyLogic 安装目录>resourcestutorialsSubway Entrance Hallhall_drawing.png。图形编辑器导入底图后如图所示。
4. 锁定底图。为了避免在后续建模过程中对底图文件的错误操作(如:移位、更改大小等),建议把底图锁定。
三、绘制墙体
导入仿真环境的底图之后,应对模型空间进行标记。通常,空间标记从行人交通环境中的墙体开始。
1. 切换至行人库选项卡,双击空间标记中的墙 模块,右侧的图标将变成 ,这意味着该模块处于激活状态,此时可在图形编辑器中自由绘制墙体。当遇到连续墙体时,可依次移动鼠标到拐角处并点击右键,软件会自动在拐点之间添加一段墙体,在最后一个拐点处双击鼠标即可完成绘制。当遇到曲面墙的时候,其绘制方法如图所示。
2. 模型的墙体绘制完成后的效果如图所示。
四、绘制行人流的进入线和目标线
接下来,我们定义行人流进入仿真环境的地点和离开仿真环境的地点。
1. 首先,绘制行人流的进入线。即当模型开始运行时,行人从该处进入到仿真环境中。在AnyLogic中,使用空间标记中的“目标线”模块来定义行人的进入线。
在本模型中,我们在底图上标有“Entrance”的地方绘制进入地铁的行人的进入线,其具体步骤如下:
1) 从行人库中的空间标记模块中将“目标线”模块拖拽至图形编辑器中;
2) 将目标线移动到“Entrance”的位置,并重新调整目标线的长短。绘制后的效果如图所示。
3) 选择该目标线,在属性窗口将其命名为entryLine。
2. 绘制行人的进入线之后,我们继续绘制另一根目标线。该目标线的作用是引导行人在进入地铁站仿真环境后朝该线前进。因此将该目标线绘制在文本“TO TRAINS”处,并使用默认的命名targetLine,如图10-13所示。
五、创建行人流的流程图
现在,我们将完整地建立行人交通流仿真模型。我们将用行人库中模块构建的流程图来定义一个行人流所经历的过程,即行人从入口进入地铁站,然后到达地铁站的尽头,走向地铁站台层。
在AnyLogic中,创建流程图可以有以下三个步骤:①从各个库或模板选项卡中拖拽模块至图形化编辑界面;②根据逻辑顺序连接各个模块;③设置每个模块的属性。
创建模型流程图
1. 使用拖拽的方式将模块添加至图形编辑器中,如图所示。并将这些模块按照图的顺序依次连接。当使用通过拖拽的方式添加模块至图形编辑器时,若比较靠近已绘制的模块时,AnyLogic将自动连接新添加的模块和该模块。(注意:自动连接应该将一个模块的右端口和另一个模块的左端口连接,否则会引起错误。如:将pedSink和pedGoTo的下侧的端口连接将导致模型无法正常运行,因为该端口用于紧急情况下行人的疏散。)
2. 将三个模块分别重命名为inflowSource、goToTrains、pedSink。如图所示。
设置流程图模块的属性
3. 设置inflowSource属性。
在属性视图中定义行人出现地点的类型及出现的具体位置。在本案例中,“出现在”属性选择直线,在“目标线”的下拉菜单中选择entryLine(我们事先绘制的入口目标线的名称),或者点击选择按钮 并在图形编辑器中选择该目标线。最后,设置行人的到“达速率”为4000人/每小时,如图所示。
4. 修改“goToTrains”对象的属性,指定行人的目的地。当行人进入仿真环境后,行人将会到达建模时事先指定的目标线。在本阶段,我们假设所有行人都直接朝地铁站台层的入口前行,所以将“模式”属性更改为到达目标,将“目标线”设置为targetLine(绘制第二根目标线路的名称),如图所示。
5. 不设置PedSink对象的属性,即保留默认属性。
六、运行模型
现在,我们已完成了此阶段模型的建模工作。下面,我们将检测并运行模型。
1. 单击按钮 后,在下拉列表中选择需要运行的模型。在本处,我们需要运行的模型是Subway Entrance Hall/Simulation,如图所示。
启动该模型后,将会弹出一个演示窗口,在窗口中展现的是的仿真模拟实验的简要信息。默认情况下,该界面仅有模型的名称和一个开始按钮,如图所示。随后可以在此界面添加图像或者关于模型的描述等信息。
2. 点击“运行”按钮,并观察模型的运行过程。可以看到行人进入地铁的入口,然后穿过通道通往站台层,如图所示。
这样,我们在几分钟之内就建立了一个地铁站行人交通仿真模型。值得注意的是,有的参考模型非常具有借鉴意义。当建模遇到困难时,可将你的模型与参考文件中与该阶段对应的参考模型做对比,从而找出问题。
最后可通过按 按钮或者按“Shift + S”组合键来保存模型。此外,为了便于区分各个阶段的模型,也为了避免后面阶段模型文件出错导致重头再来的悲剧,建议及时将本阶段构建的模型文件另存为SubwayEntranceHall_Phase1.alp作为备份。在以后的练习和建模过程中,请养成定时保存项目的习惯,以免意外的发生。