如果 QueueTime 超过预选值,让行人转移到另一个队列

Make pedestrians divert to another queue if QueueTime Exceeds a preselected Value

编辑版本: 我实际上是在为机场登机航站楼建模。到目前为止它工作正常,但另外我仍在尝试实现一个功能,如果排队时间超过预选值(例如队列中已经有 15 名乘客),允许我的行人不进入服务队列,因此步行到在这个繁忙时期开放的某种备份服务。

这是我的方法:

  1. 可变 QueueSize returns 永久队列中的实际乘客人数。
  2. 每次 ped 进入 pedservice 块 CheckInEco,函数 waitingTime() 启动:
QueueSize = CheckInEco.size(); 
if (QueueSize > 15) CheckInEco.cancel(ped) 

因此,一旦队列中的代理超过 15 个,16 号应该绕过并移动到备用 ServiceBlock,我将连接到 CheckInEco 服务的 ccl 端口。但是在构建模型时,我收到此消息:ped cannot be resolved to a variable?

根据 Anylogic Help,应该可以使用这个 cancel - call,但我不是很有经验..也许有人可以帮助我?

如果已经有超过 16 名行人进入服务区,您可以简单地使用 select 输出块来防止行人进入服务区。

您原来的问题与等待时间有关,您应该遵循完全相同的方法。但是随着等待时间的增加,它变得更加复杂,因为您不想从模拟开始就计算平均等待时间……所以您需要决定是否要计算最后 10 分钟、1 小时等,然后做您想要在队列中包括代理的当前等待时间。由于这是我不打算在这里添加的问题,如果仍然是这种情况,也许会提出一个新问题。