文档详情

基于anylogic的北京火车站建模教学

s9****2
实名认证
店铺
DOC
2.53MB
约25页
文档ID:481062293
基于anylogic的北京火车站建模教学_第1页
1/25

XXXXXXX北京火车站简单模型建模与仿真汇 报 人:庞XXX指导教员:XXXXX目录1.关于此模型的使用 32.理论基础 43.北京火车站简单模型 53.1使用行人库模型 53.2 创建一个模型动画区域 63.3 加入行人流 93.4 运行模型和观察行为 113.5 加入服务类模型 123.6 交互地改变乘客到达频率 163.7 收集统计数据 194.总结与展望 235.参考文献 251关于此模型的使用AnyLogic为我们提供了强大的行人库(Pedestrian Libirary),我的北京火车站简单模型用于仿真“真实”环境中的北京站人流情况我的模型主要是根据Sample Modles样例中的Subway Entrance创建而成,在样例中你可以参考模型,创建行人建筑(如排队通道、安检通道等)或大厅(其中具有大量行人)通过创建的模型,收集模拟的基本统计数据,并有效地可视化所模拟的过程,以验证和展示自己做的的模型此外我们还可以收集不同区域的行人密度统计数据,以确保服务点在假定的负载下是否具有可接受性,估测行人在指定区域的停留时间长度,观察其内部几何结构建筑的潜在问题——即加入某些建筑或其他应用之后可能会带来的影响。

在创建该的模型中,行人可以在连续空间中行进,并且对不同类型的建筑(墙壁,安检区等)和其他行人作出反应2理论基础本模型构建的理论基础是基于社会力模型(Social force model)应运而生的由Helbing等人提出的社会力模型是一种多粒子自驱动模型,也就是在模型中行人是由自驱动的粒子代替的社会力的概念并不是指物理上实际存在的力,而是以一种虚拟的方式代表行人的社会心理以及行人之间、行人和环境之间的相互作用一个质量为的行人 总是希望以一定的期望速度朝期望的方向运动, 因此,行人在行走过程中都会期望能在较短的时间内调整他当前的实际速度 到期望速度行人与墙壁、其他行人的相互作用包括排斥和摩擦距离越近,之间的相互作用力就越大社会力模型中,常常用和分别代表行人之间、行人和墙壁之间的相互作用力模型的行人运动主方程为:社会力模型认为,行人之间往往会保持一定的距离,这一特性在模型当中是通过心理力来模拟的但是如果两个人之间的距离小于他们的半径之和(一个行人用一定半径的圆代替)的话,就代表他们有身体上的接触行人和墙壁之间的处理方式是类似的,唯一的不同是在力的强度上有一点区别应该说,社会力模型是到目前为止最好的行人微观仿真模型。

模型中的变量不是任意的,因为那些变量都有可以测得的物理意义模型仿真的结果显示行人交通流具有自组织的特性所以本模型应用社会力模型作为理论基础下面我就我创建的简单模型:北京火车站简单模型,作为示例进行一下讲解 3. 北京火车站简单模型我们将创建一个非常简单的模型,用于仿真北京火车站的乘客流为避免出现在列车快要离开时才开始排队买票的窘境,一些乘客可能事先在早些时候已经买好票了这样这些乘客就可以直接进入安检等候大厅等安检后进候车大厅等候上车没有车票的乘客必须在售票大厅,通过取票或购买车票之后才可以进入安检等候大厅,通过安检进入候车大厅等候检票上车这一模型将演示如何使用AnyLogic行人库仿真简单的行人流和服务3.1使用行人库模型行人模型包括两个主要部分——环境和行为环境包括墙壁,不同的区域(如:候车大厅、购票区)、服务(如:检票、验票),队列(如:取票队列、购票队列)等通常,为了创建一个环境对象,我们还需要自己定义其图形,加入对应的库对象,并为此对象设置属性与企业库(我们前几次课做装甲团坦克训练保障仿真时的模型库)一样,行人的行为可以使用流程图的方式定义你可以从库模板中按住鼠标左键拖动对象,并为此对象设置自定义属性,然后将多个对象连接在一起。

► 如何使用行人库① 打开行人库模板② 加入一个对象,用鼠标按住左键将其从模板中拖出来③ 将对象放置于所需位置④ 改变对象属性① 打开库页面 点击行人库选项卡③ 行人库模板显示了库中的所有对象你可以点击模板中的任一对象,然后将其拖动到结构图中为了解关于此对象的简要信息,只需将鼠标置于其上方,便会出现工具提示④ 在你将一对象拖动到结构图之后,此对象即被选定,并且其属性将显示于Properties(属性)窗口中,在此窗口里面你可以根据你的模型要求调整对象属性若需在稍后调整属性,首先点击此对象以将其选定,然后在Properties(属性)窗口中修改对象属性3.2 创建一个模型动画区域现在我们将绘制此模型的动画区域为简化绘制,我们将通过描述库(Presentation)里的工具绘制自己的动画区域,绘制布局图,或导入任一图片作为布局图当你希望对草稿布局绘图进行实验时,绘图步骤很容易根据范例进行绘图操作可以很好地对已有布局图进行操作► 绘制北京火车站布局图① 创建布局图边框② 加入各个布局内部图形③ 标注各图形► 绘制模型动画① 绘制建筑物墙壁② 绘制一个入口③ 绘制一个出口1、为简化绘图,你可能需要使用对应的工具条按钮关闭网格,并对动画进行缩放。

关闭网格 缩小动画(或Ctrl+滚轮)绘制环境区域边界绘制如下图所示的折线 点击Polyline(折线)工具条按钮,然后点击第一个点 点击若干个中间点,完成路径 双击最后一个点为所绘制的折线设置如下: 选中图形单击右键,弹出对话框,选择creat a group 创建一个群,命名为售票大厅墙壁 改变折线的颜色和宽度,以使其更醒目 使此折线闭合 在Properties(属性)窗口的Polyline(折线)选项卡中,选中Closed polyline(闭合折线)选框这样就把折线的第一个点和最后一个点连接起来,使此折线闭合2、为行人流定义入口和出口点首先绘制一个入口入口是行人出现在仿真环境中的点入口可以定义为一条线段,折线,或一个包含有线段和/或折线的枢纽设置所绘制线段的属性: 点击Line(线段),然后在动画中绘制一条直线同理绘制出口线段,如下图所示: 将此线段命名为售票大厅入口 改变线段的颜色和宽度 绘制出口线段 将此线段命名为售票大厅出口请注意入口和出口线段都应位于环境区域形体内部,即位于折线“售票大厅墙壁”内部3.3 加入行人流现在我们将完成创建仿真行人流的简单模型我们需要加入库对象,以向被仿真环境中加入或从其中移出行人。

► 创建模型流程图① PedSource② PedSink③pedConfiguration① 加入一个PedSource对象PedSource对象用于生成行人设置此对象的属性如下: 定义行人流入口点选择行人流入口的动画形体设置售票大厅入口为行人流的入口点定义其名称为“由售票大厅进站”② 加入一个PedSink对象,并将它与PedSource对象连接起来PedSink对象用于将进入系统的行人移出系统这一对象通常用作行人流的终点设置此对象的如下属性: 定义其名称为“乘客出售票大厅”③ 加入一个pedConfiguration对象,pedConfiguration对象用于定义系统的行人的结构,这一对象代表了一系列行人库的全局参数,并允许针对特定任务调整模型,以获得最佳模型性能设置此对象的如下属性: 定义其名称为“人流配置(结构)”3.4 运行模型和观察行为我们已经完成了使用AnyLogic行人库创建一个简单的模型现在你可以点击Run(运行)按钮以开始运行此模型你可以看到模型行为正确:乘客进入地铁入口,并且穿过通向地铁列车的走廊► 运行模型并查看动画②①由①和②可知,①=②=848,所以此模型运行顺畅3.5 加入服务类模型现在将通过加入服务类模型来扩展我的模型。

向你展示在行人库中服务是如何定义的首先,我们修改动画,然后修改模型流程图► 修改模型动画① 绘制服务门(线段)② 创建一个枢纽组③ 绘制通往服务门的队列④ 创建一个枢纽组举例:如排队区服务类模型① 定义两条代表验票门的线段,如下图所示 绘制线段注意:起点——即你在绘制线段时点击的第一个点——很重要乘客将从你最先绘制的点移动到你最后绘制的点② 创建一个枢纽组枢纽用于将多个动画形体合成一组由于我们希望对多个形体定义一个服务,因此我们需要使用枢纽 建立枢纽(按住Ctrl键选中两个线段,右键,group),命名为验票③ 绘制折线以代表通往检票门的队列,如下图所示 绘制折线注意:折线的起点很重要它代表此队列的头因此我们将每个折线的第一个点放置于对应的检票门附近创建一个枢纽组,并将其命名为“出厅”将刚刚创建的所有折线都加入到此枢纽组中,方法与前述对代表“验票”的线段进行的操作相同同理,我们可以创建其他几个服务类的模型现在我们将修改模型流程图创建和连接对象,如下所示► 修改模型流程图① PedService② pedServices① 加入一个PedServic对象这一对象允许定义一个或多个服务设置此对象的如下属性: 选择“护栏”为服务形体 命名为“去候车厅”② 加入一个 pedServices对象。

这一对象允许定义一个或多个服务点位置以及通向这些服务点的队列设置此对象的如下属性:注意:此时为出售票大厅,所以延迟但依然在行进,当买票时有延迟但不行进 选择“验票”为服务形体 指定服务延时时间(以秒计) 命名为“护栏” 设置“出厅”为队列形体 定义了服务点的形体可以为线段,折线,或一个包含多个线段/折线的枢纽由于我们希望定义多个服务,因此我们使用一个枢纽选择定义了通向此服务的队列的动画形体队列可以属于不同类型根据其对应的动画形体,队列类型将自动被检测出③ 将各对象连接即可得到我们简单的模型现在你可以点击Run以运行模型,并观察其行为你可以看到乘客现在穿过检票门,并且有时候会形成队列你可以通过点击其对应的动画形体来查看某个乘客的状态这将向你显示此行人的速度和局部行人密度这一选项只有在你向模型中加入了pedConfiguration模块,并且设定了较低的模型速度,如1x,之后才可用3.6 交互地改变乘客到达频率现在我们将设置乘客到达频率为可更改我们希望交互地改变乘客到达率,以确保在假定的负载下服务点仍然能保持可接受的性能表现我们将在动画中引入对应的控制元素以交互改变此频率► 设定乘客到达频率 用所创建的参数定义乘客到达频率► 加入一滑块以改变乘。

下载提示
相似文档
正为您匹配相似的精品文档