Python-GEKKO從入門到精通(二)基本元素

8類變量類型(4類標(biāo)準(zhǔn)類型,4類拓展類型):
標(biāo)準(zhǔn)類型:
常量,m.Const(value, [name]),可賦一個(gè)標(biāo)量值
參數(shù),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]),可控制和更改的變量
狀態(tài)變量SV(繼承自Variables),m.SV([value], [lb], [ub], [integer], [name])
控制變量CV(繼承自SV),m.CV([value], [lb], [ub], [integer], [name]),整個(gè)過(guò)程中保持不變
代數(shù)式:
等式/不等式約束條件m.Equations(eqs)????eg:m.Equations(x==y),m.Equations(x+2*z-3>=0)
目標(biāo)函數(shù):m.Obj(obj)默認(rèn)求最小值(也可用m.Minimize(obj)),m.Maximize(obj)求最大值
求解:
求解方法:m.options.IMODE=1-9(需要自己視問(wèn)題而設(shè)定,默認(rèn)設(shè)定為3,可行的時(shí)候不用調(diào))
仿真????參數(shù)估計(jì)(模型參數(shù)估計(jì)/滾動(dòng)時(shí)域估計(jì))?????控制(實(shí)時(shí)優(yōu)化RTO、模型預(yù)測(cè)控制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(默認(rèn)為3,0為比較所有可用求解器)
0:?Benchmark All Solvers,1: APOPT, 2: BPOPT, 3: IPOPT?
IPOPT?適用于大自由度的問(wèn)題或沒(méi)有很好的初始解的問(wèn)題。
BPOPT 系統(tǒng)生物學(xué)領(lǐng)域應(yīng)用的最佳選擇
APOPT 適用于熱啟動(dòng)或自由度(變量數(shù) - 方程數(shù))小于 2000 時(shí),同時(shí)也是處理混合整數(shù)問(wèn)題的唯一求解器。
求解:m.
solve
(disp=True,?debug=False)
結(jié)果顯示:print(var.value)