Гибкое изменение длительности симуляции в Anylogic

У меня есть модель системной динамики только с одним агентом. Я могу установить продолжительность симуляции, в моем случае одно примерное значение будет 120 месяцев. Что мне делать, если я хочу поэкспериментировать с разной продолжительностью, например, 24 или 240 месяцев? Изменение его в свойствах "модельного времени" эксперимента кажется обременительным, потому что вам придется останавливать эксперимент каждый раз.

Для других входных данных модели я создал ползунки на стартовом экране и привязал их к параметрам модели, а не к переменным. Таким образом, я могу перемещать ползунки, запускать моделирование с помощью кнопки воспроизведения, затем возвращаться к начальному экрану с помощью кнопки остановки и настраивать значения. Можно ли сделать то же самое и с конечным временем?

Модель преобразована из Vensim, где была переменная с именем FINAL_TIME, которую можно было изменить интерактивно с помощью ползунка в режиме SyntheSim. Это то, что я ищу, за исключением того, что возможности SyntheSim недоступны в Anylogic.

1 ответ

Решение

Два пути..

вы можете использовать функцию getEngine().setStopTime(tstop); при инициализации вашей модели, где tstop - ваш параметр времени, в котором симуляция остановится

или вы можете использовать событие и настроить событие для запуска в гибкое время и использовать finishSimulation()в действии. Это позволяет вам даже изменить время моделирования во время выполнения, когда захотите.

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