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

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

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

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

Я попытался установить переменные movesto и destination для CarMoveTo. Но вроде не работает.

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

person Syed Kumail Haider Naqvi    schedule 01.05.2019    source источник


Ответы (1)


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

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

person Amy Brown Greer    schedule 01.05.2019
comment
Разве мы не можем просто написать код, чтобы изменить место назначения блока carMoveTo за кнопкой эвакуации, и он просто направляет его к этому новому месту назначения, как и для исходного? - person Syed Kumail Haider Naqvi; 01.05.2019
comment
Если этого нет в документации API, я бы предположил, что нет. Существует ТОННА закулисной логики для управления маршрутизацией и предотвращением столкновений. Я предполагаю, что смена места назначения на лету может вызвать некоторые проблемы. Вы всегда можете попросить поддержки. - person Amy Brown Greer; 02.05.2019