Как изменить скорость автомобиля в зависимости от дороги, на которой он находится - PullRequest
0 голосов
/ 21 октября 2018

У меня есть модель, построенная в библиотеке дорожного транспорта, и у меня есть машины на шоссе, которые съезжают.Поскольку скорость на настоящем шоссе составляет 70 миль в час, а на выезде - 40 миль в час, я хочу уменьшить скорость автомобилей на выходе с 70 миль в час до 40 миль в час.

Настройка

У меня есть cars население, которое построено на пользовательском агенте Car.

У carSource есть initialSpeed и preferredSpeed 70 миль в час.carSource в паре с двоичным selectOutput с вероятностью 40% на выезде, за которым следуют два узла moveTo, один для выхода, а другой для движения по шоссе.

IПредполагается, что мы можем изменить скорость автомобильного агента в узле moveTo (до выхода), указав действие onEnter как car.setPreferredSpeed(18); (потому что 40 миль в час - это 18 метров в секунду).Тем не менее, это, похоже, не влияет на скорость автомобилей на выходе (когда я смотрю на это в симуляции).Кроме того, количество времени, проведенного в модели, также не меняется.

Есть предложения о том, как изменить скорость агента, который moveTo выходит на дорогу?

1 Ответ

0 голосов
/ 21 октября 2018

Вы правильно разработали свою модель.Но используя библиотеку дорожного движения, вы должны учитывать некоторые моменты:

  • В библиотеке дорожного движения скорость автомобилей изменяется постепенно и зависит от текущей скорости автомобиля, предпочтительной скорости, максимального и минимального ускорения, а такжеКонфигурация дороги и условия движения.Поэтому, когда вы устанавливаете предпочтительную скорость автомобиля в 40 миль в час, исходя из скорости замедления (по умолчанию 4,2 м / с2) и текущей скорости (вероятно, 70 миль в час), требуется некоторое время для снижения скорости, и это не происходит быстро.Чтобы определить уменьшенную скорость автомобилей, вы можете выполнить одно из следующих действий: a) увеличить длину дороги, на которой автомобили появляются в carSorce, так, чтобы у автомобилей было больше времени, чтобы снизить их скорость до достижения выхода.б) увеличить замедление автомобиля.

  • Вы можете использовать setPreferredSpeed(40, SpeedUnits.MPH) без изменения единицы измерения скорости в MPS

PS: чтобы убедиться, чтонет проблем в моделировании, в качестве теста установите предпочтительную скорость автомобиля на 0 в onEnter разделе moveTo и проверьте, останавливаются ли они через некоторое время.

...