使用GEKKO MHE

问题描述

我目前正在尝试GEKKO MHE模式。我在模型中有两个指定的操纵变量和受控变量,还有一个我希望通过MHE估计的参数。当前运行模型时,出现方程式定义错误,

不包含等式(=)或不等式(>,

模型初始化为:

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

n = 17

m = GEKKO(remote=False)

m.time = np.linspace(0,8,n)

c1_in_arr = np.load('c1_in_arr.npy')
c2_in_arr = np.load('c2_in_arr.npy')


V1_measured = np.load('V1_measured.npy')
V2_measured = np.load('V2_measured.npy')


#mmanipulated variables,feeding in the arrays for them
m.C1_in = m.MV(value=c1_in_arr)
m.C2_in = m.MV(value=c2_in_arr)


#estimated variables,feeding in the upper and lower bounds for them
m.C1_eff = m.FV(value = 0.98,lb = 0.95,ub = 1.0)

#controlled variables,feeding in the measurements for them
m.V1 = m.CV(value=V1_measured)
m.V2 = m.CV(value=V2_measured)


mdot_1 = m.Var()
mdot_2 = m.Var()


m.Equation(mdot_1== 1.52*m.C1_eff*m.C1_in)
m.Equation(mdot_2==-0.668*mdot_1 + 1.33*m.C1_eff*m.C2_in)

df_c = pd.read_csv('Values_C.csv',index_col=0)

Hhat_C1 = m.Var()
Hhat_C1 = m.Var()
M_m = 125
mdot_m = 75
mdot_s = 46

m.Equations([Hhat_C1 == -0.606 + 0.0057 * mdot_1,Hhat_C2 == -3.933 + 0.00096 * mdot_1])

C1_m = m.Var(value = 200)
C2_m = m.Var(value = 150)

m.Equations([C1_m.dt() == mdot_1 - C1_m/M_m*mdot_m,C2_m.dt() == mdot_2 - C2_m/M_s*mdot_s)

m.Equation(m.V1==0.8*C1_m/M_m)


m.Equation(m.V2 == 0.78*C1_m/C2_m)


m.options.IMODE = 5
#setting the solver settings to MHE

m.options.EV_TYPE = 1
#setting the solver for the MHE to calculate the parameters based on the sum of absolute errors

m.C1_in.STATUS = 0
m.C2_in.STATUS = 0
m.SiO2_in.STATUS = 0

m.C1_eff.STATUS = 1
m.V1.STATUS = 1
m.V2.STATUS = 1

m.C1_in.FSTATUS = 1
m.C2_in.FSTATUS = 1


m.C1_eff.FSTATUS = 0
m.V1.FSTATUS = 1
m.V2.FSTATUS = 1

m.C1_eff.DMAX = 1.0

m.V1.MEAS_GAP = 0.001
m.V2.MEAS_GAP = 0.001


m.open_folder() 
m.solve(disp = False)
   

在求解之前打开GEKKO文件夹时,该文件夹中也不存在不可行文件。

将MV和CV初始化为“测量”数组的第一个变量时,该模型可以无错误运行

例如m.C1_in = m.MV(value = c1_in_arr [0])

但是,所提供的参数估计不正确。

我认为此错误可能是由于在模型中对待我的MV和CV的方式造成的。有没有办法查明是哪个方程式导致了此错误,或者是由于MV / CV初始化引起的?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)