Pregunta 1

Optimización para un modelo de biorreactor semicontinuo.

Modelo del biorreactor: \[ (B_{u}) \left\{ \begin{array}{l} \dot{x} = \mu(s) \cdot x -\frac{u}{v}\cdot x\\ \dot{s} = -\mu(s) \cdot x + \frac{u}{v}\cdot (s_{in} - s)\\ \dot{v} = u \\ x(0) = x_{0},\ s(0) = s_{0},\ v(0) = v_{0} \end{array} \right. \] Problema de optimización: \[ \begin{array}{ll} \min\limits_{T,u()} & T \\ s.a & (x,s,v) \text{ cumple } B_{u} \text{ en } (0,T) \\ & s(T)\leq s_{out},\ v(T) = v_{max} \\ & u(t) \in [0, u_{max}],\ \forall t \in [0,T] \end{array} \]

Discretización del problema

Para \(t_{f}\) y \(N\), la discretización de tiempo corresponde a \(t_n = n\cdot \frac{t_f}{N}\), y un paso del método de Euler para el sistema de EDOs \(B_{u}\) queda dado por \[ \vec{B_{u}} \left\{ \begin{array}{l} x_{n+1} = x_n + \frac{t_f}{N} \cdot \left(\mu(s_{n}) \cdot x_{n} -\frac{u(t_{n})}{v_n}\cdot x_{n} \right)\\ s_{n+1} = s_n + \frac{t_f}{N} \cdot \left(-\mu(s_{n}) \cdot x_{n} + \frac{u(t_{n})}{v_{n}}\cdot (s_{in} - s_{n}) \right)\\ v_{n+1} = v_n + \frac{t_f}{N} \cdot u(t_{n})\\ \end{array} \right. \] Donde \(x_{n} \approx x(t_{n}),\ s_{n} \approx s(t_{n}),\ v_{n} \approx v(t_{n})\).

De esta forma y considerando una discretización de la función \(u\) por el vector \(\vec{u} = (u_n)_{n=0}^{N},\ u_{n} = u(t_{n})\), el problema discretizado se obtiene por \[ \begin{array}{ll} \min\limits_{t_f, \vec{u}} & t_f \\ s.a & (\vec{x},\vec{s},\vec{v}) \text{ cumplen } \vec{B_{u}} \\ & s_{N}\leq s_{out},\ v_N = v_{max} \\ & -u_n\leq 0,\ u_n \leq u_{max},\ n=0,...,N \end{array} \] Se resolverá este problema por medio de la librería scipy.optimize.