Python-GEKKO从入门到精通(二)基本元素

8类变量类型(4类标准类型,4类拓展类型):
标准类型:
常量,m.Const(value, [name]),可赋一个标量值
参数,m.Param([value], [name]),可赋向量值
变量,m.Var([value], [lb], [ub], [integer], [name]),模型约束条件中定义的变量eg:x+3y=0里的x,y
中间体,m.Var([value], [lb], [ub], [integer], [name])
拓展类型:
固定变量FV(继承自Param),m.FV([value], [lb], [ub], [integer], [name])
可控变量MV(继承自FV),m.MV([value], [lb], [ub], [integer], [name]),可控制和更改的变量
状态变量SV(继承自Variables),m.SV([value], [lb], [ub], [integer], [name])
控制变量CV(继承自SV),m.CV([value], [lb], [ub], [integer], [name]),整个过程中保持不变
代数式:
等式/不等式约束条件m.Equations(eqs) eg:m.Equations(x==y),m.Equations(x+2*z-3>=0)
目标函数:m.Obj(obj)默认求最小值(也可用m.Minimize(obj)),m.Maximize(obj)求最大值
求解:
求解方法:m.options.IMODE=1-9(需要自己视问题而设定,默认设定为3,可行的时候不用调)
仿真 参数估计(模型参数估计/滚动时域估计) 控制(实时优化RTO、模型预测控制MPC)
1 Steady-State (SS) 2 Steady-State (MPU) 3 Steady-State (RTO)Dynamic Simultaneous
4 Simultaneous (SIM) 5 Simultaneous (EST) 6 Simultaneous (CTL)Dynamic Sequential
7 Sequential (SQS) 8 Sequential (EST) 9 Sequential (CTL)
求解器选择:m.options.SOLVER=0-3(默认为3,0为比较所有可用求解器)
0: Benchmark All Solvers,1: APOPT, 2: BPOPT, 3: IPOPT
IPOPT 适用于大自由度的问题或没有很好的初始解的问题。
BPOPT 系统生物学领域应用的最佳选择
APOPT 适用于热启动或自由度(变量数 - 方程数)小于 2000 时,同时也是处理混合整数问题的唯一求解器。
求解:m.
solve
(disp=True, debug=False)
结果显示:print(var.value)