如何根据车辆所在的道路改变车辆的速度
How to change speed of vehicle based on the road it is on
我在公路交通图书馆建立了一个模型,我在高速公路上有汽车从出口驶出。由于实际高速公路上的速度是70英里/小时,出口道路上的速度是40英里/小时,我想将出口处汽车的速度从70英里/小时降低到40英里/小时
Setup
我有 cars
个基于自定义代理的人口 Car
。
carSource
的 initialSpeed
和 preferredSpeed
为 70mph。 carSource
与二进制 selectOutput
配对,有 40% 的概率进入出口,然后是两个 moveTo
节点,一个用于出口,另一个用于直行高速公路。
我假设我们可以通过将 onEnter
动作指定为 car.setPreferredSpeed(18);
(因为 40mph 是 18米每秒)。然而,这似乎并不影响汽车在出口处的速度(当我在模拟中注视它时)。此外,花在模型上的时间也没有改变。
关于如何更改 moveTo
出口道路的代理速度的任何建议?
您已经正确开发了模型。但是使用道路交通库,需要注意几点:
在道路交通库中,汽车的速度会根据汽车的当前速度、首选速度、最大和最小加速度以及道路配置和交通状况逐渐变化。因此,当您将汽车的首选速度设置为 40 MPH 时,根据其减速率(默认为 4.2 mps2)和当前速度(可能为 70 MPH),降低速度需要一些时间,而且不会很快发生。为了感知汽车减速,您可以执行以下操作之一:a) 增加 carSorce
中汽车出现的道路长度,以便汽车在到达出口前有更多时间减速。 b) 增加汽车的减速度。
您可以使用 setPreferredSpeed(40, SpeedUnits.MPH)
而无需将速度单位更改为 MPS
P.S.: 为了确保你的建模没有问题,作为测试,在moveTo
的onEnter
部分将car's preferred speed设置为0,并检查他们是否在一段时间后停止。
我在公路交通图书馆建立了一个模型,我在高速公路上有汽车从出口驶出。由于实际高速公路上的速度是70英里/小时,出口道路上的速度是40英里/小时,我想将出口处汽车的速度从70英里/小时降低到40英里/小时
Setup
我有 cars
个基于自定义代理的人口 Car
。
carSource
的 initialSpeed
和 preferredSpeed
为 70mph。 carSource
与二进制 selectOutput
配对,有 40% 的概率进入出口,然后是两个 moveTo
节点,一个用于出口,另一个用于直行高速公路。
我假设我们可以通过将 onEnter
动作指定为 car.setPreferredSpeed(18);
(因为 40mph 是 18米每秒)。然而,这似乎并不影响汽车在出口处的速度(当我在模拟中注视它时)。此外,花在模型上的时间也没有改变。
关于如何更改 moveTo
出口道路的代理速度的任何建议?
您已经正确开发了模型。但是使用道路交通库,需要注意几点:
在道路交通库中,汽车的速度会根据汽车的当前速度、首选速度、最大和最小加速度以及道路配置和交通状况逐渐变化。因此,当您将汽车的首选速度设置为 40 MPH 时,根据其减速率(默认为 4.2 mps2)和当前速度(可能为 70 MPH),降低速度需要一些时间,而且不会很快发生。为了感知汽车减速,您可以执行以下操作之一:a) 增加
carSorce
中汽车出现的道路长度,以便汽车在到达出口前有更多时间减速。 b) 增加汽车的减速度。您可以使用
setPreferredSpeed(40, SpeedUnits.MPH)
而无需将速度单位更改为 MPS
P.S.: 为了确保你的建模没有问题,作为测试,在moveTo
的onEnter
部分将car's preferred speed设置为0,并检查他们是否在一段时间后停止。