使用 AnyLogic 进行仿真 / 行人仿真 / 第 6 步:添加检票闸机
外观
< 使用 AnyLogic 进行仿真 | 行人仿真
现在我们将通过添加自动检票闸机来扩展我们的模型。因此我们将向您展示如何在行人库中定义服务。
首先,我们将修改动画,然后修改模型流程图。
- 绘制四条线代表检票闸机,如下图所示。
- 起点很重要。乘客将从起点移动到线的终点。
- 创建一个包含所有这些线的组。我们需要它,因为我们想用多个形状来定义一个服务。
选择四个刚创建的线(选择多个形状的最简单方法是按住 Ctrl 键依次点击它们),右键点击选择,然后从弹出菜单中选择 分组/创建组。您将看到一个组图标 出现在选择的中心。选择此组并将其重命名为gatesGroup. - 绘制多段线来模拟排队到检票闸机,如下图所示
- 多段线的起点很重要。它代表队列的首部。因此,将每个多段线的第一个点放在相应的检票闸机附近。
- 将所有刚创建的多段线添加到一个新组中,就像您最近为代表控制闸机的线所做的那样。将此组命名为gatesQueuesGroup.
- 绘制一条线,如下图所示。将其命名为lineBeforeGates.
现在我们将修改模型流程图。
- 添加新的对象并将它们连接起来,如下所示
- 修改 PedGoTo 对象的属性。现在我们希望此块将乘客移动到检票闸机前面的线,而不是地铁列车。
设置以下对象属性
- 指定乘客的新目的地。选择lineBeforeGates作为 目标(点,线)。
- 配置 PedServices 对象。PedServices 对象表示一个或多个服务,并定义其默认属性。由此对象定义的服务可以由流程图对象 PedServices 引用。
设置以下对象属性
- 名称 此对象为gates.
- 指定包含代表服务的线的组。在 服务(线组) 字段中键入gatesGroup。
- 指定包含代表服务队列的多段线的组。在 队列(线组,多段线) 字段中键入gatesQueuesGroup。
- 保持所有其他属性不变。您可以看到 延迟 时间是均匀分布的,最小值为 2 秒,最大值为 3 秒。保留它,因为它是检票闸机的典型延迟时间。
- 保留 服务类型:延迟并通过。行人库中存在两种类型的服务。延迟并通过 服务由一条线定义,行人应沿此线移动。行人服务位于线的起点,然后在离开服务之前移动到终点。我们使用它,因为我们希望乘客通过代表检票闸机的服务线。另一种类型的 服务(延迟)也由一条线定义,行人应踏上该线以延迟服务时间。
- 配置 PedService 对象。PedService 对象被添加到流程图中,以模拟行人流如何通过由 PedService 对象定义的服务。
设置以下对象属性
- 指定定义行人将通过的服务的 PedServices 对象。在 服务(PedServices) 字段中键入 gates(我们 PedServices 对象的名称)。
现在您可以运行模型并观察其行为。您可以看到现在乘客通过检票闸机,有时会形成队列。