跳转到内容

使用 AnyLogic 进行仿真 / 行人仿真 / 第 6 步:添加检票闸机

来自维基教科书,开放的书籍,开放的世界

第 6 步:添加检票闸机

[编辑 | 编辑源代码]

现在我们将通过添加自动检票闸机来扩展我们的模型。因此我们将向您展示如何在行人库中定义服务。

首先,我们将修改动画,然后修改模型流程图。

修改模型动画

  1. 绘制四条线代表检票闸机,如下图所示。
  2. 起点很重要。乘客将从起点移动到线的终点。
  3. 创建一个包含所有这些线的组。我们需要它,因为我们想用多个形状来定义一个服务。
    选择四个刚创建的线(选择多个形状的最简单方法是按住 Ctrl 键依次点击它们),右键点击选择,然后从弹出菜单中选择 分组/创建组。您将看到一个组图标 出现在选择的中心。选择此组并将其重命名为gatesGroup.
  4. 绘制多段线来模拟排队到检票闸机,如下图所示
  5. 多段线的起点很重要。它代表队列的首部。因此,将每个多段线的第一个点放在相应的检票闸机附近。
  6. 将所有刚创建的多段线添加到一个新组中,就像您最近为代表控制闸机的线所做的那样。将此组命名为gatesQueuesGroup.
  7. 绘制一条线,如下图所示。将其命名为lineBeforeGates.

现在我们将修改模型流程图。

修改模型流程图

  1. 添加新的对象并将它们连接起来,如下所示
  2. 修改 PedGoTo 对象的属性。现在我们希望此块将乘客移动到检票闸机前面的线,而不是地铁列车。
    设置以下对象属性
    • 指定乘客的新目的地。选择lineBeforeGates作为 目标(点,线)
  3. 配置 PedServices 对象。PedServices 对象表示一个或多个服务,并定义其默认属性。由此对象定义的服务可以由流程图对象 PedServices 引用。
    设置以下对象属性
    • 名称 此对象为gates.
    • 指定包含代表服务的线的组。在 服务(线组) 字段中键入gatesGroup
    • 指定包含代表服务队列的多段线的组。在 队列(线组,多段线) 字段中键入gatesQueuesGroup
    • 保持所有其他属性不变。您可以看到 延迟 时间是均匀分布的,最小值为 2 秒,最大值为 3 秒。保留它,因为它是检票闸机的典型延迟时间。
    • 保留 服务类型延迟并通过。行人库中存在两种类型的服务。延迟并通过 服务由一条线定义,行人应沿此线移动。行人服务位于线的起点,然后在离开服务之前移动到终点。我们使用它,因为我们希望乘客通过代表检票闸机的服务线。另一种类型的 服务延迟)也由一条线定义,行人应踏上该线以延迟服务时间。
  4. 配置 PedService 对象。PedService 对象被添加到流程图中,以模拟行人流如何通过由 PedService 对象定义的服务。
    设置以下对象属性
    • 指定定义行人将通过的服务的 PedServices 对象。在 服务(PedServices) 字段中键入 gates(我们 PedServices 对象的名称)。

现在您可以运行模型并观察其行为。您可以看到现在乘客通过检票闸机,有时会形成队列。

华夏公益教科书