{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE30338](https://jckantor.github.io/CBE30338)\n", "by Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE30338.git).\n", "The text is released under the [CC-BY-NC-ND-4.0 license](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode),\n", "and code is released under the [MIT license](https://opensource.org/licenses/MIT).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Exothermic Continuous Stirred Tank Reactor](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/02.06-Exothermic-CSTR.ipynb) | [Contents](toc.ipynb) | [Model Library](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/02.08-Model-Library.ipynb) >

\"Open

\"Download\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fed-Batch Bioreactor" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model Development\n", "\n", "Mass balances for a fed-batch bioreactor are given by\n", "\n", "$$\\begin{align*}\n", "\\frac{d(XV)}{dt} & = V r_g(X,S) \\\\\n", "\\frac{d(PV)}{dt} & = V r_P(X,S) \\\\\n", "\\frac{d(SV)}{dt} & = F S_f - \\frac{1}{Y_{X/S}}V r_g(X,S)\n", "\\end{align*}$$\n", "\n", "where $X$ is cell concentration, $P$ is product concentration, and $S$ is substrate concentration, all given in units of grams/liter. The reactor is fed with fresh substrate at concentration $S_f$ and flowrate $F(t)$ in liters per hour. The volume (in liters) is therefore changing \n", "\n", "$$\\frac{dV}{dt} = F(t)$$\n", "\n", "Rate $r_g(X,S)$ is the production of fresh cell biomass in units of grams/liter/hr. The cell specific growth is expressed as\n", "\n", "$$r_g(X,S) = \\mu(S)X$$\n", "\n", "where $\\mu(S)$ is the cell specific growth rate. In the Monod model, the specific growth rate is a function of substrate concentration given by\n", "\n", "$$\\mu(S) = \\mu_{max}\\frac{S}{K_S + S}$$\n", "\n", "where $\\mu_{max}$ is the maximum specific growth rate, and $K_S$ is the half saturation constant which is the value of $S$ for which $\\mu = \\frac{1}{2}\\mu_{max}$.\n", "\n", "For this model, the product is assumed to be a by-product of cell growth\n", "\n", "$$r_P(X,S) = Y_{P/X}r_g(X,S)$$\n", "\n", "where $Y_{P/X}$ is the product yield coefficient defined as\n", "\n", "$$Y_{P/X} = \\frac{\\mbox{mass of product formed}}{\\mbox{mass of new cells formed}}$$\n", "\n", "The model further assumes that substrate is consumed is proportion to the mass of new cells formed where $Y_{X/S}$ is the yield coefficient for new cells\n", "\n", "$$Y_{P/X} = \\frac{\\mbox{mass of new cells formed}}{\\mbox{mass of substrate consumed}}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dilution Effect\n", "\n", "One aspect of the fed-batch model is that volume is not constant, therefore the cell, product, and substrate concentrations are subject to a dilution effect. Mathematically, the chain rule of differential calculus provides a means to recast the state of model in terms of the intensive concentration variables $X$, $P$, and $S$, and extensive volume $V$.\n", "\n", "$$\\begin{align*}\n", "\\frac{d(XV)}{dt} & = V\\frac{dX}{dt} + X\\frac{dV}{dt} = V\\frac{dX}{dt} + F(t)X \\\\\n", "\\frac{d(PV)}{dt} & = V\\frac{dP}{dt} + P\\frac{dV}{dt} = V\\frac{dP}{dt} + F(t)P \\\\\n", "\\frac{d(SV)}{dt} & = V\\frac{dS}{dt} + S\\frac{dV}{dt} = V\\frac{dS}{dt} + F(t)S\n", "\\end{align*}$$\n", "\n", "Rearranging and substituting into the mass balances gives\n", "\n", "$$\\begin{align*}\n", "\\frac{dX}{dt} & = - \\frac{F(t)}{V}X + r_g(X,S) \\\\\n", "\\frac{dP}{dt} & = - \\frac{F(t)}{V}P + r_P(X,S) \\\\\n", "\\frac{dS}{dt} & = \\frac{F(t)}{V}(S_f - S) - \\frac{1}{Y_{X/S}}r_g(X,S) \\\\\n", "\\frac{dV}{dt} & = F(t)\n", "\\end{align*}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Python Implementation" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import odeint\n", "\n", "# parameter values\n", "\n", "mumax = 0.20 # 1/hour\n", "Ks = 1.00 # g/liter\n", "Yxs = 0.5 # g/g\n", "Ypx = 0.2 # g/g\n", "Sf = 10.0 # g/liter\n", "\n", "# inlet flowrate\n", "\n", "def F(t):\n", " return 0.05\n", "\n", "# reaction rates\n", "\n", "def mu(S):\n", " return mumax*S/(Ks + S)\n", "\n", "def Rg(X,S):\n", " return mu(S)*X\n", " \n", "def Rp(X,S):\n", " return Ypx*Rg(X,S)\n", "\n", "# differential equations\n", "\n", "def xdot(x,t):\n", " X,P,S,V = x\n", " dX = -F(t)*X/V + Rg(X,S)\n", " dP = -F(t)*P/V + Rp(X,S)\n", " dS = F(t)*(Sf-S)/V - Rg(X,S)/Yxs\n", " dV = F(t)\n", " return [dX,dP,dS,dV]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulation" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IC = [0.05, 0.0, 10.0, 1.0]\n", "\n", "t = np.linspace(0,50)\n", "sol = odeint(xdot,IC,t)\n", "X,P,S,V = sol.transpose()\n", "\n", "plt.plot(t,X)\n", "plt.plot(t,P)\n", "plt.plot(t,S)\n", "plt.plot(t,V)\n", "\n", "plt.xlabel('Time [hr]')\n", "plt.ylabel('Concentration [g/liter]')\n", "plt.legend(['Cell Conc.',\n", " 'Product Conc.',\n", " 'Substrate Conc.',\n", " 'Volume [liter]'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Exothermic Continuous Stirred Tank Reactor](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/02.06-Exothermic-CSTR.ipynb) | [Contents](toc.ipynb) | [Model Library](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/02.08-Model-Library.ipynb) >

\"Open

\"Download\"" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }