Difference between revisions of "Bioreactor"

From mintOC
Jump to: navigation, search
Line 28: Line 28:
 
<math>\mu = \mu_{m}*(1-P/P_{m})*S/(K_m+S+S^2/K_i)</math>
 
<math>\mu = \mu_{m}*(1-P/P_{m})*S/(K_m+S+S^2/K_i)</math>
  
The fixed parameters (constants) of the model are:
+
The fixed parameters (constants) of the model are as follows.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 80: Line 80:
 
|}
 
|}
  
This would result in an right hand side function <math>f(x,u)</math> in this case, because there are no free parameters. Of course one could also specify an implicit DAE system (<math>F(\dot{x},x,u,p,t)=0</math>), where it just hast to be said which states are differential and which are algebraic.
+
== Optimal Control Problem ==
 +
 
 +
In this section the Optimal Control Problem (OCP) with the dynamic model as equality constraint is specified. In general every OCP has either a Lagrange or Mayer type objective or both.
 +
First the general structure of the OCP is given to show the type of objective (linear, quadratic, ...) and constraints (equality and/or inequality, linear or nonlinear) as well as the variables that are free to optimize.
 +
All of the above dynamic models can be used, in the following we just write for all:
 +
 
 +
<p>
 +
<math>
 +
\dot{x}=f(x,u,p,t) \forall \, t \in I.
 +
</math>
 +
</p>
 +
 
 +
Implicit systems would be treated similarly. Then the general OCP is writte as:
 +
 
 +
<p>
 +
<math>
 +
\begin{array}{cl}
 +
\displaystyle \min_{x, u, p} & J(x,u,t)\\[1.5ex]
 +
\mbox{s.t.} & \dot{x} =  f(x,u,p,t), \forall \, t \in I\\
 +
& 0 = g(x(t_o),x(t_f),p) \\
 +
& 0 \ge  c(x,u,p), \forall \, t \in I\\
 +
& 0  =  h(x,u,p), \forall \, t \in I \\
 +
& x \in \mathcal{X},\,u \in \mathcal{U},\, p \in P.
 +
\end{array}
 +
</math>
 +
</p>
 +
 
 +
This is the most general formulation, where the initial value, parameters, and inputs are free. The states and inputs are vectors (or matrices) of functions while the parameters are just a vector of variables. If the initial (or final) state is fixed, one just adds a constraint <math>x(t_0)=x_0</math> and specifies the value(s) of <math>x_0</math> in a list or table.
 +
If the parameters are fixed, then one just removes them from the list of optimization variables and states their values in a list (same for point conditions inside of the interval <math>I</math>). If the OCP is a parameter estimation problem without inputs,
 +
the inputs just dont appear in the problem above at all, neither as optimization variable nor as part of the constraints. In contrast if they are just fixed this is done by the equality constraints. In this setup the above problem is very general and by
 +
stating the different objective functions and constraint functions one can cover a wide range of OCPs.

Revision as of 15:49, 8 December 2015

The bioreactor example is an easy bioreactor with an substrate that is converted to a product by the biomass in the reactor. It has three states and a control that is describing the feed concentration of substrate. It is taken from the examples folder of the ACADO toolkit described in:

Houska, Boris, Hans Joachim Ferreau, and Moritz Diehl. "ACADO toolkit—An open‐source framework for automatic control and dynamic optimization."
Optimal Control Applications and Methods 32.3 (2011): 298-312.

Originally the problem seems to be motivated by:

VERSYCK, KARINA J., and JAN F. VAN IMPE. "Feed rate optimization for fed-batch bioreactors: From optimal process performance to optimal parameter estimation."
Chemical Engineering Communications 172.1 (1999): 107-124.

Model Formulation

The dynamic model is an ODE model:


\begin{array}{rcl}
\dot{X}&=&-DX+\mu X \\
\dot{S}&=& D(S_{f}-S)-\mu /Y_{xs} X \\
\dot{P}&=&-DP+ (\alpha \mu +\beta) X.
\end{array}

The three states describe the concentration of the biomass (X), the substrate (S), and the product (P) in the reactor. In steady state the feed and outlet are equal and dilute all three concentrations with a ratio D. The biomass grows with a rate \mu, while it eats up the substrate with the rate \mu/Y_{xs} and produces product at a rate (\alpha \mu +\beta). The rate \mu is given by:

\mu = \mu_{m}*(1-P/P_{m})*S/(K_m+S+S^2/K_i)

The fixed parameters (constants) of the model are as follows.

Parameters
Name Symbol Value Unit
Dilution D 0.15 [-]
Rate coefficient K_i 22 [-]
Rate coefficient K_m 1.2 [-]
Rate coefficient P_m 50 [-]
Substrate to Biomass rate Y_{xs} 0.4 [-]
Linear slope \alpha 2.2 [-]
Linear intercept \beta 0.2 [-]
Maximal growth rate \mu_m 0.48 [-]

Optimal Control Problem

In this section the Optimal Control Problem (OCP) with the dynamic model as equality constraint is specified. In general every OCP has either a Lagrange or Mayer type objective or both. First the general structure of the OCP is given to show the type of objective (linear, quadratic, ...) and constraints (equality and/or inequality, linear or nonlinear) as well as the variables that are free to optimize. All of the above dynamic models can be used, in the following we just write for all:


\dot{x}=f(x,u,p,t) \forall \, t \in I.

Implicit systems would be treated similarly. Then the general OCP is writte as:


\begin{array}{cl}
 \displaystyle \min_{x, u, p} & J(x,u,t)\\[1.5ex]
 \mbox{s.t.} & \dot{x}  =  f(x,u,p,t), \forall \, t \in I\\
 & 0 = g(x(t_o),x(t_f),p) \\
 & 0  \ge  c(x,u,p), \forall \, t \in I\\
 & 0  =  h(x,u,p), \forall \, t \in I \\
 & x \in \mathcal{X},\,u \in \mathcal{U},\, p \in P.
\end{array}

This is the most general formulation, where the initial value, parameters, and inputs are free. The states and inputs are vectors (or matrices) of functions while the parameters are just a vector of variables. If the initial (or final) state is fixed, one just adds a constraint x(t_0)=x_0 and specifies the value(s) of x_0 in a list or table. If the parameters are fixed, then one just removes them from the list of optimization variables and states their values in a list (same for point conditions inside of the interval I). If the OCP is a parameter estimation problem without inputs, the inputs just dont appear in the problem above at all, neither as optimization variable nor as part of the constraints. In contrast if they are just fixed this is done by the equality constraints. In this setup the above problem is very general and by stating the different objective functions and constraint functions one can cover a wide range of OCPs.