如何根据行驶的道路改变速度

时间:2018-10-21 00:01:02

标签: anylogic

我在道路运输图书馆上建立了模型,在高速公路上有驶出出口的汽车。由于实际高速公路上的速度为70mph,出口处的速度为40mph,因此我想将出口处的汽车速度从70mph降低到40mph。

  

设置

我有一个cars人口,这些人口是建立在自定义代理Car上的。

carSource的{​​{1}}和initialSpeed时速为70英里。 preferredSpeed与二进制carSource配对,以40%的概率离开出口,接着是两个selectOutput节点,一个为出口,另一个为沿高速公路。< / p>

我假设我们可以通过将moveTo动作指定为moveTo来更改onEnter节点中(到出口的)汽车代理商的速度(因为40mph是每英里18米第二)。但是,这似乎并没有影响出口处汽车的速度(当我在模拟中盯上它时)。另外,在模型中花费的时间也不会改变。

关于如何更改car.setPreferredSpeed(18);退出道路的业务代表速度的任何建议?

1 个答案:

答案 0 :(得分:2)

您已经正确开发了模型。但是使用道路交通库时,您应该考虑以下几点:

  • 在道路交通资料库中,汽车的速度会根据汽车的当前速度,首选速度,最大和最小加速度以及道路配置和交通状况逐渐变化。因此,当您根据汽车的减速速度(默认为4.2 mps2)和当前速度(可能为70 MPH)将汽车的首选速度设置为40 MPH时,会花一些时间来降低速度,而且这种速度不会很快发生。为了感觉到汽车的速度降低,您可以执行以下操作之一:a)延长carSorce中出现汽车的道路的长度,以使汽车有更多的时间在到达出口之前降低速度。 b)增加汽车的减速度。

  • 您可以使用setPreferredSpeed(40, SpeedUnits.MPH),而无需将速度单位更改为MPS

PS:为了确保建模没有问题,作为测试,请在onEnter的{​​{1}}部分中将汽车的首选速度设置为0,然后检查它们是否停止过一会儿。