Как указать пункт назначения автомобиля после какого-либо события (например, нажатие кнопки) в AnyLogic - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь направить все автомобили к ближайшим выездам в дорожной сети, нажав кнопку для запуска аварийной эвакуации. Но AnyLogic выдает ошибку, что

Исключение при выполнении дискретного события root.carMoveToSEECS_P1: Дорога назначения не указана

Как динамически изменить дорогу назначения в блоке carMoveTo библиотеки дорожного движения AnyLogic.

Я попытался установить значения moveto и назначения в CarMoveTo. Но, похоже, это не сработает.

carMoveToSEECS_P1.set_movesTo(carMoveToGate1.movesTo);
carMoveToSEECS_P1.set_destination(carMoveToGate1.destination);

1 Ответ

0 голосов
/ 01 мая 2019

Разбейте ваш «carMoveTo» на несколько шагов, добавив решающий блок и вернувшись назад.Вы можете иметь глобальную переменную для экстренной эвакуации.CarMoveTo передвигает автомобили на отдельные линии остановки перед выходом.Если аварийное логическое значение истинно, то вы должны установить пункт назначения автомобиля на следующий выход через блок carMoveTo.В противном случае автомобиль будет направлен к следующей линии остановки по маршруту.

Ключом будет установка переменной структуры, которая знает все линии остановки по маршруту автомобиля.Если дорожная сеть сложная, вы можете запустить препроцессор, чтобы позволить каждому автомобилю ехать в / из каждого пункта назначения источника и создать список линий остановки, которые представляют промежуточные точки оценки.

...