欢迎光临散文网 会员登陆 & 注册

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

2023-02-21 23:23 作者:迷路了upup  | 我要投稿


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=Truedebug=False)

结果显示:print(var.value)






Python-GEKKO从入门到精通(二)基本元素的评论 (共 条)

分享到微博请遵守国家法律