GEKKO имеет параметр настройки под названием BIAS , который должен дать вам то, что вы хотите.Цитировать из документации GEKKO по BIAS :
BIAS аддитивный коэффициент, который включает в себя разницу между текущим измеренным значением иначальное состояние контроллера. FSTATUS определяет, какая часть необработанного измерения используется для обновления значения MEAS .Состояние обратной связи 0 указывает, что измерение не следует использовать, а значение BIAS сохраняется на начальном значении 0. Состояние обратной связи 1 использует все измерения при обновлении MEAS * 1019.*.Состояние обратной связи между 0 и 1 обновляет MEAS с дробным вкладом от LSTVAL и нового измерения.Значение BIAS обновляется из MEAS и непредвзятого прогнозирования модели ( Model_u ).
BIAS = MEAS - Model_u
BIAS добавляется к каждой точке горизонта, и целевая функция контроллера переводит смещенную модель ( Model_b ) в требуемый диапазон заданного значения.
Model_b = Model_u + BIAS
Значение BIAS также можно установить навнешнего значения, установив опцию BIAS напрямую и установив FSTATUS в 0 (ВЫКЛ).
Поэтому, если вы хотите автоматически согласовать прогнозы модели с измеренными значениями, установитестатус обратной связи - 1 для каждого резюме в вашей модели (model_name.variable_name.FSTATUS = 1
).
Вы также можете самостоятельно вычислять срок коррекции смещения каждый раз, когда у вас есть новое измерение, вычитая прогнозируемое значение из предыдущего цикла MPC всоответствующий шаг по времени от соответствующего нового измерения.