Гибкое изменение длительности симуляции в Anylogic
У меня есть модель системной динамики только с одним агентом. Я могу установить продолжительность симуляции, в моем случае одно примерное значение будет 120 месяцев. Что мне делать, если я хочу поэкспериментировать с разной продолжительностью, например, 24 или 240 месяцев? Изменение его в свойствах "модельного времени" эксперимента кажется обременительным, потому что вам придется останавливать эксперимент каждый раз.
Для других входных данных модели я создал ползунки на стартовом экране и привязал их к параметрам модели, а не к переменным. Таким образом, я могу перемещать ползунки, запускать моделирование с помощью кнопки воспроизведения, затем возвращаться к начальному экрану с помощью кнопки остановки и настраивать значения. Можно ли сделать то же самое и с конечным временем?
Модель преобразована из Vensim, где была переменная с именем FINAL_TIME, которую можно было изменить интерактивно с помощью ползунка в режиме SyntheSim. Это то, что я ищу, за исключением того, что возможности SyntheSim недоступны в Anylogic.
1 ответ
Два пути..
вы можете использовать функцию getEngine().setStopTime(tstop);
при инициализации вашей модели, где tstop - ваш параметр времени, в котором симуляция остановится
или вы можете использовать событие и настроить событие для запуска в гибкое время и использовать finishSimulation()
в действии. Это позволяет вам даже изменить время моделирования во время выполнения, когда захотите.