Anylogic - statechart - постоянно устанавливать значение - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь смоделировать паровую сеть с системной динамикой.
Существует один запас A, который имеет поток на складе B.
Я реализовал диаграмму состояний, которая имеет следующие состояния "FillLevelMin", "FillLevelOk" и "FillLevelMax". Когда диаграмма состояний входит в определенное состояние, я хочу, чтобы он влиял на размер потока. К настоящему времени я использовал set_Parameter (число). Это прекрасно работает, если я хочу установить постоянную величину потока, например 1000.

Однако я хотел бы установить поток в динамическую переменную, когда состояние "FillLevelMax". Прямо сейчас поток принимает значение динамического значения при входе в состояние и остается таким же. Однако я бы хотел, чтобы поток обновлял свое значение в соответствии с динамической переменной, пока диаграмма состояния находится в состоянии «FillLevelMax».

Есть идеи, возможно ли это?

1 Ответ

0 голосов
/ 06 сентября 2018

Да, есть элегантный способ, который называется «внутренние переходы». Установите ваше состояние, как показано ниже: enter image description here

Убедитесь, что переход находится на 100% внутри состояния, и установите для тайм-аута приемлемое значение (довольно часто для вашего случая, но помните, что чем чаще вы переоцениваете это, тем медленнее становится ваша модель). Установите для него наименее частое повторение, которое все еще приемлемо.

В коде действия вы можете обновить значение потока.

PS: обратите внимание, что независимо от того, как часто вы обновляетесь, это все же дискретный метод, а не непрерывный, как сама системная динамика!

...