Использование gekko MV и CV вне моделирования MHE или MPC

Я делаю гибридную энергетическую систему и пытаюсь решить gekko, чтобы минимизировать затраты. У меня есть 3 массива CV, к которым я пытаюсь приспособить генерируемую электроэнергию. Когда я перехожу к решению системы, я продолжаю получать ошибку, что мои массивы не совпадают, я думаю, что это связано с тем, что я не использую временной массив. Есть ли способ заставить gekko в python решить эту систему без использования временного массива? Также могу ли я использовать MV, если я не использую метод MPC или MHE?

from gekko import GEKKO
import numpy as np
import pandas as pd
import matplotlib as plt

m.time = np.linspace(0,10,20)

Esolar = np.linspace(0,10,20)
Ewind  = np.linspace(10,0,20)
Econs  = np.linspace(0,30,20)

m = GEKKO()
Es = m.CV(value = Esolar)
Ew = m.CV(value = Ewind)
Ec = m.CV(value = Econs)

Etherm = m.MV(value = 0, lb = 0, ub = 10)
Enuc = m.MV(value = 0, lb = 0, ub = 40)
Egen = m.Intermediate(Etherm + Enuc)

m.Equation(0 == Egen + Es + Ew - Ec)
m.Obj(Enuc*.05 + Etherm*.1)       #Thermal Energy storage is twice as expensive

m.options.IMODE = 4
m.solve()

person Andrew T    schedule 02.12.2019    source источник
comment
Да, нет никаких проблем с использованием MV для любого режима. Функция MV меняется в зависимости от режима. Например, STATUS ничего не делает в режиме моделирования IMODE=4, но включает (1) или ВЫКЛ (0) степени свободы в режимах оптимизации, таких как IMODE=6 (MPC).   -  person John Hedengren    schedule 04.12.2019


Ответы (1)


m.time помещается перед определением m как GEKKO()

person reyPanda    schedule 02.12.2019