Кто-нибудь знает или может решить эту внутреннюю ошибку Anylogic?

В настоящее время я работаю над моделированием городского движения на Anylogic, и иногда, когда моделирование выполняется, появляется эта ошибка и все останавливается: "Исключение во время выполнения дискретного события: java.lang.RuntimeException: root.[139]: ВНУТРЕННЯЯ ОШИБКА: Попытка отправить машину в логическое не то место, где она сейчас находится ". Число "139" на ошибке не является фиксированным значением, оно меняется в зависимости от времени выполнения симуляции. Кто-нибудь знает, что означает эта ошибка и как ее решить? Спасибо за поддержку, это было бы очень полезно для продолжения моей работы. введите описание изображения здесь введите описание изображения здесь

3 ответа

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

Число просто говорит вам, какой автомобиль сталкивается с проблемой, но основная проблема, похоже, связана с какой-то проблемой дорожной сети.

По словам Бенджамина, [139] относится к автомобилю в моделировании. По сути, вы можете попытаться определить, какая машина вызывает ошибку. Я исправил проблему, отследив машину от источника и сопоставив направление движения с логикой, а также изменив дорогу и переключение полос. Я считаю, что у машины возникает конфликт, когда она пытается решить, какой поворот выбрать, исходя из первоначального расчета маршрута. Пожалуйста, обновите, если это поможет. RTL является очень общим, и для воспроизведения реальной логики трафика потребуется сложная модель. Однако было бы легче устранить неполадки для конкретного маршрута и логики.

Бенджамин и Джаухари уже дали вам некоторые идеи, но, тем не менее, я дам вам свой собственный ответ, надеясь, что он также поможет вам. Ошибка говорит сама за себя: похоже, вы говорите машине поехать туда, где она уже находится. Как вы выбираете, куда поехать с машиной? Как я видел на вашем изображении, у вас есть дорога, ведущая к юго-западу, затем соединение, ведущее к юго-западу, и еще одна дорога, ведущая на восток-запад. Поскольку все они находятся в одной сети, вы можете сказать, что автомобиль заводится в южном узле и едет в западный узел, и он автоматически выбирает лучшую дорогу для перехода из одного места в другое. Однако, если вы выбираете соединение между дорогами ABC явно в этом порядке, и делаете это, когда автомобиль выезжает с каждой предыдущей дороги (т.е. выбираете дорогу B после того, как вы съехали с дороги A), это может дать вам эту ошибкупоскольку машина уже может быть на дороге, по которой вы говорите ему ехать.

Другие вопросы по тегам