道路交通图书馆 - MoveTo 块 - while 循环?
Road Traffic Library - MoveTo block - while loop?
我想在 AnyLogic 中实现联网的自动车队。因此,车辆代理有能力改变其路线。我的理解是,使用标准的“MoveTo”块可以让您移动车辆代理仅一次,方法是告诉它要将代理移动到哪条路。
例如:
可以在 road4Source 中指定的任何道路上创建遵循上述块的任何车辆,然后移动到 moveToRoad2[=55= 中指定的另一条道路] 块然后到达 endOfRoute 块时将是 destroyed/deleted/discarded。
但是,由于车辆可以自己选择路线,所以我只知道车辆的起点和目的地,并不知道确定它将采取什么路线。因此,MoveTo 块的数量理想情况下应该是动态的。
考虑到这一点,是否可以重复使用 MoveTo 块(将其视为一种 while 循环),以便车辆保持在 MoveTo 阻塞直到它到达 目的地 (在我的情况下是一条特定的道路)?
像这样:
因此,在 moveToRoad2 的 Road 参数中,我可以输入类似的内容(可能是错误的,只是为了说明):
car.getRoad() == car.destination ? endOfRoute : car.getRoad()
其中 car.getRoad()
会 return 车辆想要去的道路,如果它等于汽车的目的地,那么它会去 endOfRoute块。
EDIT 1
我现在明白了,如果有两个连接到同一个端口,AnyLogic 会抛出一个错误:
Out端口不能连接多个In端口
那么有没有其他方法可以实现我在这里想要做的事情?
首先,这是你想要的配置:
然后您需要生成汽车将要行驶的道路集合...此集合在 carSource 中生成...或者您可以在 "loop" 中进行更新。
汽车代理必须有一个以 0 开头并在每次退出 carMoveTo 时递增 +1 的变量...
所以汽车要走的新路是:
collection.get(car.variable)
并且在 carMoveTo 退出时:
car.variable++;
在 selectOutput 中,true 的条件为:
agent.variable==collection.size()
希望对您有所帮助...
然而,如果你有太多的交通,你会在你的模型中看到大问题,因为汽车不一定会在 carMoveTo 中识别目的地后的交通所以你可能会被压碎......或者可能不会......取决于不同的因素.
我想在 AnyLogic 中实现联网的自动车队。因此,车辆代理有能力改变其路线。我的理解是,使用标准的“MoveTo”块可以让您移动车辆代理仅一次,方法是告诉它要将代理移动到哪条路。
例如:
可以在 road4Source 中指定的任何道路上创建遵循上述块的任何车辆,然后移动到 moveToRoad2[=55= 中指定的另一条道路] 块然后到达 endOfRoute 块时将是 destroyed/deleted/discarded。
但是,由于车辆可以自己选择路线,所以我只知道车辆的起点和目的地,并不知道确定它将采取什么路线。因此,MoveTo 块的数量理想情况下应该是动态的。
考虑到这一点,是否可以重复使用 MoveTo 块(将其视为一种 while 循环),以便车辆保持在 MoveTo 阻塞直到它到达 目的地 (在我的情况下是一条特定的道路)?
像这样:
因此,在 moveToRoad2 的 Road 参数中,我可以输入类似的内容(可能是错误的,只是为了说明):
car.getRoad() == car.destination ? endOfRoute : car.getRoad()
其中 car.getRoad()
会 return 车辆想要去的道路,如果它等于汽车的目的地,那么它会去 endOfRoute块。
EDIT 1
我现在明白了,如果有两个连接到同一个端口,AnyLogic 会抛出一个错误:
Out端口不能连接多个In端口
那么有没有其他方法可以实现我在这里想要做的事情?
首先,这是你想要的配置:
然后您需要生成汽车将要行驶的道路集合...此集合在 carSource 中生成...或者您可以在 "loop" 中进行更新。
汽车代理必须有一个以 0 开头并在每次退出 carMoveTo 时递增 +1 的变量...
所以汽车要走的新路是:
collection.get(car.variable)
并且在 carMoveTo 退出时:
car.variable++;
在 selectOutput 中,true 的条件为:
agent.variable==collection.size()
希望对您有所帮助... 然而,如果你有太多的交通,你会在你的模型中看到大问题,因为汽车不一定会在 carMoveTo 中识别目的地后的交通所以你可能会被压碎......或者可能不会......取决于不同的因素.