What are the equations and other details of the built-in Python Gekko flowsheet objects such as the reactor model? Gekko has the compounds that I need for an industrial application of nonlinear Model Predictive Control (MPC) to a gas-phase fluidized-bed polymer (polyethylene) reactor.
from gekko import GEKKO, chemical
m = GEKKO(remote=False)
c = chemical.Properties(m)
c.compound('ethylene') # primary monomer reactant
c.compound('propylene') # co-polymer monomer reactant
c.compound('hydrogen') # melt-index modifier
c.compound('ethane') # inert
c.compound('propane') # inert
c.compound('cyclohexene') # density modifier
c.compound('isopentane') # condensing agent
c.compound('nitrogen') # pressure control
f = chemical.Flowsheet(m)
r = f.reactor(ni=2)
m.options.SOLVER = 1
m.solve()
This simple reactor model produces the following output:
--------- APM Model Size ------------
Each time step contains
Objects : 1
Constants : 0
Variables : 12
Intermediates: 0
Connections : 12
Equations : 0
Residuals : 0
Number of state variables: 29
Number of total equations: - 10
Number of slack variables: - 0
---------------------------------------
Degrees of freedom : 19
----------------------------------------------
Steady State Optimization with APOPT Solver
----------------------------------------------
Iter Objective Convergence
0 2.55529E-16 1.38889E+00
1 2.38753E-25 1.23358E-16
2 2.38753E-25 1.23358E-16
Successful solution
---------------------------------------------------
Solver : APOPT (v1.0)
Solution time : 0.026300000000000004 sec
Objective : 0.
Successful solution
---------------------------------------------------
How can I find more details about the 10 equations and 29 variables? I am interested in property control (melt index and density) and maximize production rate by adjusting catalyst, hydrogen, and co-monomer (propylene, iso-butene, etc).
Gekko outputs a LaTeX file
rto_4_latex.tex(or{mode}_4_latex.tex}for other modes) with the model details about equations and variables when you setm.options.DIAGLEVELto 4 or higher.You can also see more information in the many files that it produces when you solve locally with
remote=Falseand open the run directory withm.open_folder().You can get a PDF document if you compile the LaTeX document with
call pdflatex mainif you are in Windows and have downloaded texlive. Otherwise, you could put it into the online OverLeaf editor to convert to a PDF. Here are the first two equations of the 7 page document that is created.