Установите начальное значение для динамического моделирования с результатами в установившемся режиме в GEKKO.

Я делаю динамическое моделирование с IMODE = 4. Мне интересно, есть ли в GEKKO возможность установить результат моделирования в установившемся режиме с IMODE = 1 в качестве начального значения динамического моделирования.

Или мне нужно запустить моделирование в установившемся режиме и установить значения перед запуском динамического моделирования отдельно?


person Junho Park    schedule 11.11.2019    source источник


Ответы (1)


Gekko автоматически использует значения из моделирования в установившемся режиме IMODE = 1 (SS) или 3 (RTO), чтобы задать начальные значения, такие как начальные условия для других режимов. Он разработан таким образом, чтобы модели могли быть инициализированы с помощью решения в установившемся состоянии перед запуском динамических режимов, таких как моделирование, оценка движущегося горизонта или прогнозирующее управление модели (см. сводку IMODE).

Параметры IMODE

Вот минимальный пример сценария, демонстрирующий инициализацию.

from gekko import GEKKO
m = GEKKO()
p = m.Param(5)
x = m.Var(3)
m.Equation(p==x.dt()+x)

# steady-state (SS) simulation
m.options.IMODE=1
m.solve(disp=False)
print(x.value)

# dynamic simulation initialized with SS solution
m.time = [0,1,2,3,4]
p.value = 4
m.options.IMODE=4
m.solve(disp=False)
print(x.value)

По умолчанию установлено значение x=3. Моделирование установившегося состояния решает с помощью p=5, чтобы получить x=5 из уравнения установившегося состояния 5=0+x. Затем динамическое моделирование решает ODE с уравнением 4=dx/dt+x, чтобы дать решение [5.0, 4.5, 4.25, 4.125, 4.0625] в запрошенные моменты времени [0,1,2,3,4]. Обратите внимание, что начальным условием является 5, а не 3, потому что динамическое моделирование инициализируется из стационарного решения.

person John Hedengren    schedule 13.11.2019