Какие уравнения есть в объектах схемы Python Gekko?

Каковы уравнения и другие детали объектов встроенной схемы Python Gekko например модель реактора? У Gekko есть соединения, которые мне нужны для промышленного применения нелинейного модельного прогнозирующего управления (MPC) в газофазном полимерном (полиэтиленовом) реакторе с псевдоожиженным слоем.

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()

Эта простая модель реактора дает следующий результат:

 --------- 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
 ---------------------------------------------------

Как я могу найти более подробную информацию о 10 уравнениях и 29 переменных? Меня интересует контроль свойств (индекс плавления и плотность) и максимизация производительности за счет регулирования катализатора, водорода и сомономера (пропилена, изобутена и т. Д.).


person TexasEngineer    schedule 23.11.2019    source источник


Ответы (1)


Gekko выводит файл LaTeX rtofrom 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.options.DIAGLEVEL = 4 m.solve() m.open_folder() latex.tex (или {mode}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.options.DIAGLEVEL = 4 m.solve() m.open_folder() latex.tex} для других режимов) с моделью подробности об уравнениях и переменных, когда вы устанавливаете m.options.DIAGLEVEL на 4 или выше.

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.options.DIAGLEVEL = 4
m.solve()
m.open_folder()

Вы также можете увидеть больше информации во многих файлах, которые он создает, когда вы решаете локально с помощью remote=False и открываете каталог выполнения с помощью m.open_folder().

\documentclass[8pt]{article}
\begin{document}
\title{Model Title}
\author{John D. Hedengren}
\maketitle
\section{equations}

\subsection{Equation 1 }
\texttt{ ss.reactor1.overall\_mole\_balance }
\begin{equation}
0 = {\dot n}_{in} + {\dot r}_{gen} - {\dot n}_{out} - \frac{\partial n}{\partial t}
\end{equation}
Variables
\begin{enumerate}
\item \texttt{ 0.60000E+00 kmol/sec    ss.reactor1.inlet[1].ndot * 2}
\item \texttt{ 0.60000E+00 kmol/sec    ss.reactor1.inlet[2].ndot * 11}
\item \texttt{ 0.12000E+01 kmol/sec    ss.reactor1.outlet.ndot * 19}
\item \texttt{ 0.00000E+00 kmol/sec    ss.v1 * 29}
\end{enumerate}

Вы можете получить документ PDF, если скомпилируете документ LaTeX с помощью call pdflatex main, если вы работаете в Windows и загрузили texlive . В противном случае вы можете поместить его в онлайн-редактор OverLeaf для преобразования в PDF. Вот первые два уравнения созданного 7-страничного документа.

PDF-файл модели Гекко

person John Hedengren    schedule 23.11.2019
comment
Насколько сложно было бы заставить Gekko выводить документ Microsoft Word? Полагаю, это будет непросто. Похоже, это мощный способ создать документацию по модели в формате PDF. Многие люди, с которыми я общаюсь, хотят использовать только Excel, Word и электронную почту. - person TexasEngineer; 24.11.2019
comment
Уравнения намного проще писать с помощью LaTeX, хотя я видел больше поддержки формул LaTeX в последних версиях Word. Я посмотрю, есть ли что-нибудь для автоматического экспорта. Другие также могут указать мне на некоторые ресурсы. - person John Hedengren; 24.11.2019