0% found this document useful (0 votes)
69 views1 page

02.06 Exothermic CSTR

This document describes a simulation of an exothermic continuous stirred tank reactor (CSTR) with the following key points: - The CSTR model involves mole and energy balances with reaction kinetics following first order Arrhenius behavior with strong temperature dependence. - Parameter values are provided for the simulation. With an initial cooling water temperature of 300K, the transient behavior of concentration and temperature over time is simulated numerically. - A plotting function is defined to visualize the simulation results, showing concentration and temperature profiles changing over 10 minutes of reactor operation.

Uploaded by

Pablo Roberto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views1 page

02.06 Exothermic CSTR

This document describes a simulation of an exothermic continuous stirred tank reactor (CSTR) with the following key points: - The CSTR model involves mole and energy balances with reaction kinetics following first order Arrhenius behavior with strong temperature dependence. - Parameter values are provided for the simulation. With an initial cooling water temperature of 300K, the transient behavior of concentration and temperature over time is simulated numerically. - A plotting function is defined to visualize the simulation results, showing concentration and temperature profiles changing over 10 minutes of reactor operation.

Uploaded by

Pablo Roberto
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains material from [CBE30338](https://jckantor.github.

io/CBE30338);\n", "content is available [on Github]


(https://github.com/jckantor/CBE30338.git).*\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [2.5 Hare and Lynx Population Dynamics](https://jckantor.github.io/CBE30338/02.05-Hare-and-Lynx-Population-
Dynamics.html) | [Contents](toc.html) | [Tag Index](tag_index.html) | [2.7 Fed-Batch Bioreactor](https://jckantor.github.io/CBE30338/02.07-Fed-Batch-Bioreactor.html)

" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 1, "link": "[2.6 Exothermic Continuous Stirred Tank Reactor](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6-Exothermic-
Continuous-Stirred-Tank-Reactor)", "section": "2.6 Exothermic Continuous Stirred Tank Reactor" } }, "source": [ "# 2.6 Exothermic Continuous Stirred Tank Reactor" ] }, { "cell_type": "markdown", "metadata": { "nbpages": {
"level": 2, "link": "[2.6.1 Description](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.1-Description)", "section": "2.6.1 Description" } }, "source": [ "## 2.6.1 Description\n", "\n", "This example is intended
as an introduction to the nonlinear dynamics of an exothermic continuous stirred-tank reactor. The example has been studied by countless researchers and students since the pioneering work of Amundson and Aris in the
1950's. The particular formulation and parameter values described below are taken from example 2.5 from Seborg, Edgar, Mellichamp and Doyle (SEMD).\n", "\n", "![Exothermic Reactor]
(https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Agitated_vessel.svg/500px-Agitated_vessel.svg.png)\n", "\n", "(Diagram By [Daniele Pugliesi](https://commons.wikimedia.org/wiki/User:Daniele_Pugliesi) - Own
work, [CC BY-SA 3.0](http://creativecommons.org/licenses/by-sa/3.0), [Link](https://commons.wikimedia.org/w/index.php?curid=6915706))" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.2
Reaction Kinetics](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.2-Reaction-Kinetics)", "section": "2.6.2 Reaction Kinetics" } }, "source": [ "## 2.6.2 Reaction Kinetics\n", "\n", "We assume the kinetics
are dominated by a single first order reaction\n", "\n", "$$A \\xrightarrow{kc_A}{} \\text{Products}$$\n", "\n", "The reaction rate per unit volume is modeled as the product $kc_A$ where $c_A$ is the concentration of $A$. The
rate constant $k(T)$ is a increases with temperature following the Arrehenius law\n", "\n", "$$k(t) = k_0 e^{-\\frac{E_a}{RT}}$$\n", "\n", "$E_a$ is the activation energy, $R$ is the gas constant, $T$ is absolute temperature,
and $k_0$ is the pre-exponential factor. \n", "\n", "We can see the strong temperature dependence by plotting $k(T)$ versus temperature over typical operating conditions." ] }, { "cell_type": "code", "execution_count": 1,
"metadata": { "nbpages": { "level": 2, "link": "[2.6.2 Reaction Kinetics](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.2-Reaction-Kinetics)", "section": "2.6.2 Reaction Kinetics" } }, "outputs": [ { "data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRw
"text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "# Arrehnius parameters\n", "Ea
= 72750 # activation energy J/gmol\n", "R = 8.314 # gas constant J/gmol/K\n", "k0 = 7.2e10 # Arrhenius rate constant 1/min\n", "\n", "# Arrhenius rate expression\n", "def k(T):\n", " return k0*np.exp(-Ea/(R*T))\n",
"\n", "# semilog plot of the rate constant\n", "T = np.linspace(290,400)\n", "plt.semilogy(T, k(T))\n", "plt.xlabel('Absolute Temperature [K]')\n", "plt.ylabel('Rate Constant [1/min]')\n", "plt.title('Arrenhius Rate
Constant')\n", "plt.grid();" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.2 Reaction Kinetics](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.2-Reaction-
Kinetics)", "section": "2.6.2 Reaction Kinetics" } }, "source": [ "This graph shows the reaction rate changes by three orders of magnitude over the range of possible operating temperatures. Because an exothermic
reaction releases heat faster at higher temperatures, there is a positive feedback that can potentially result in unstable process behavior." ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "
[2.6.3 Model Equations and Parameter Values](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.3-Model-Equations-and-Parameter-Values)", "section": "2.6.3 Model Equations and
Parameter Values" } }, "source": [ "## 2.6.3 Model Equations and Parameter Values\n", "\n", "The model consists of mole and energy balances on the contents of the well-mixed reactor.\n", "\n", "\\begin{align*}\n",
"V\\frac{dc_A}{dt} & = q(c_{Ai}-c_A)-Vkc_A \\\\\n", "V\\rho C_p\\frac{dT}{dt} & = wC_p(T_i-T) + (-\\Delta H_R)Vkc_A + UA(T_c-T)\n", "\\end{align*}\n", "\n", "Normalizing the equations to isolate the time rates of
change of $c_A$ and $T$ give\n", "\n", "\\begin{align*}\n", "\\frac{dc_A}{dt} & = \\frac{q}{V}(c_{Ai} - c_A)- kc_A \\\\\n", "\\frac{dT}{dt} & = \\frac{q}{V}(T_i - T) + \\frac{-\\Delta H_R}{\\rho C_p}kc_A + \\frac{UA}{V\\rho
C_p}(T_c - T)\n", "\\end{align*}\n", "\n", "which are the equations that will be integrated below.\n", "\n", "| Quantity | Symbol | Value | Units | Comments |\n", "| :------- | :----: | :---: | :---- | |\n", "| Activation Energy |
$E_a$ | 72,750 | J/gmol | |\n", "| Arrehnius pre-exponential | $k_0$ | 7.2 x 1010 | 1/min | |\n", "| Gas Constant | $R$ | 8.314 | J/gmol/K | |\n", "| Reactor Volume | $V$ | 100 | liters | |\n", "| Density | $\\rho$ | 1000 |
g/liter | |\n", "| Heat Capacity | $C_p$ | 0.239 | J/g/K | |\n", "| Enthalpy of Reaction | $\\Delta H_r$ | -50,000 | J/gmol | |\n", "| Heat Transfer Coefficient | $UA$ | 50,000 | J/min/K | |\n", "| Feed flowrate | $q$ | 100 |
liters/min | |\n", "| Feed concentration | $c_{A,f}$ | 1.0 | gmol/liter | |\n", "| Feed temperature | $T_f$ | 350 | K | |\n", "| Initial concentration | $c_{A,0}$ | 0.5 | gmol/liter | |\n", "| Initial temperature | $T_0$ | 350 | K |
|\n", "| Coolant temperature | $T_c$ | 300 | K | Primary Manipulated Variable |\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.4 Transient Behavior]
(https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.4-Transient-Behavior)", "section": "2.6.4 Transient Behavior" } }, "source": [ "## 2.6.4 Transient Behavior\n", "\n", "The first simulation
assumes a cooling water temperature of 300 K. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "jupyter": { "outputs_hidden": true }, "nbpages": { "level": 2, "link": "[2.6.4 Transient Behavior]
(https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.4-Transient-Behavior)", "section": "2.6.4 Transient Behavior" } }, "outputs": [], "source": [ "from scipy.integrate import solve_ivp\n", "\n", "Ea =
72750 # activation energy J/gmol\n", "R = 8.314 # gas constant J/gmol/K\n", "k0 = 7.2e10 # Arrhenius rate constant 1/min\n", "V = 100.0 # Volume [L]\n", "rho = 1000.0 # Density [g/L]\n", "Cp = 0.239 # Heat
capacity [J/g/K]\n", "dHr = -5.0e4 # Enthalpy of reaction [J/mol]\n", "UA = 5.0e4 # Heat transfer [J/min/K]\n", "q = 100.0 # Flowrate [L/min]\n", "cAi = 1.0 # Inlet feed concentration [mol/L]\n", "Ti = 350.0 # Inlet feed
temperature [K]\n", "cA0 = 0.5; # Initial concentration [mol/L]\n", "T0 = 350.0; # Initial temperature [K]\n", "Tc = 300.0 # Coolant temperature [K]\n", "\n", "def deriv(t, y):\n", " cA,T = y\n", " dcAdt = (q/V)*(cAi - cA) -
k(T)*cA\n", " dTdt = (q/V)*(Ti - T) + (-dHr/rho/Cp)*k(T)*cA + (UA/V/rho/Cp)*(Tc-T)\n", " return [dcAdt, dTdt]" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.4 Transient Behavior]
(https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.4-Transient-Behavior)", "section": "2.6.4 Transient Behavior" } }, "source": [ "We first define a visualization function that will be reused in
later simulations." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "nbpages": { "level": 2, "link": "[2.6.4 Transient Behavior](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.4-
Transient-Behavior)", "section": "2.6.4 Transient Behavior" } }, "outputs": [ { "data": { "image/png":
"iVBORw0KGgoAAAANSUhEUgAAAtAAAAEWCAYAAABPDqCoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9
"text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# simulation\n", "IC = [cA0, T0]\n", "t_initial = 0.0\n", "t_final = 10.0\n", "t = np.linspace(t_initial, t_final,
2000)\n", "soln = solve_ivp(deriv, [t_initial, t_final], IC, t_eval=t)\n", "\n", "# visualization plots concentration and temperature on given axes\n", "def plot_reactor(ax, t, y):\n", " ax[0].plot(t, y[0],
label=str(Tc))\n", " ax[0].set_xlabel('Time [min]')\n", " ax[0].set_ylabel('Concentration [gmol/liter]')\n", " ax[0].set_title('Concentration')\n", " ax[0].set_ylim(0, 1)\n", " ax[0].legend()\n", "\n", " ax[1].plot(t,
y[1], label=str(Tc))\n", " ax[1].set_xlabel('Time [min]')\n", " ax[1].set_ylabel('Temperature [K]');\n", " ax[1].set_title('Temperature')\n", " ax[1].set_ylim(300, 450)\n", " ax[1].legend()\n", " \n", "fig, ax =
plt.subplots(1, 2, figsize=(12, 4))\n", "plot_reactor(ax, soln.t, soln.y);" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.5 Effect of Cooling Temperature]
(https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.5-Effect-of-Cooling-Temperature)", "section": "2.6.5 Effect of Cooling Temperature" } }, "source": [ "## 2.6.5 Effect of Cooling
Temperature\n", "\n", "The primary means of controlling the reactoris through temperature of the cooling water jacket. The next calculations explore the effect of plus or minus change of 5 K in cooling
water temperature on reactor behavior. These simulations reproduce the behavior shown in Example 2.5 SEMD." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "nbpages": { "level": 2,
"link": "[2.6.5 Effect of Cooling Temperature](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.5-Effect-of-Cooling-Temperature)", "section": "2.6.5 Effect of Cooling Temperature"
} }, "outputs": [ { "data": { "image/png":
"iVBORw0KGgoAAAANSUhEUgAAAtAAAAEWCAYAAABPDqCoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA
"text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 2, figsize=(12, 4))\n", "for Tc in [295, 300, 305]:\n", " soln =
solve_ivp(deriv, [t_initial, t_final], IC, t_eval=t)\n", " plot_reactor(ax, soln.t, soln.y)" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.6 Interactive Simulation]
(https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.6-Interactive-Simulation)", "section": "2.6.6 Interactive Simulation" } }, "source": [ "## 2.6.6 Interactive Simulation\n",
"\n", "Executing the following cell provides an interactive tool for exploring the relationship of cooling temperature with reactor behavior. Use it to observe a thermal runaway, sustained
osciallations, and low and high conversion steady states." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "nbpages": { "level": 2, "link": "[2.6.6 Interactive Simulation]
(https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.6-Interactive-Simulation)", "section": "2.6.6 Interactive Simulation" } }, "outputs": [ { "data": {
"application/vnd.jupyter.widget-view+json": { "model_id": "3f00b2b8607c4d4187d0875977a5b962", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=
(FloatSlider(value=300.0, description='Tcooling', max=310.0, min=290.0), Output()), _dom_…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from ipywidgets import
interact\n", "from IPython.display import display\n", "\n", "# create an initial plot object, and close so it doesn't appear\n", "Tc = 300.0\n", "fig, ax = plt.subplots(1, 2, figsize=(12, 4))\n", "soln =
solve_ivp(deriv, [t_initial, t_final], IC, t_eval=t)\n", "plot_reactor(ax, soln.t, soln.y)\n", "plt.close()\n", "\n", "# function to update and display the plot object\n", "def sim(Tcooling):\n", " global
Tc\n", " Tc = Tcooling\n", " soln = solve_ivp(deriv, [t_initial, t_final], IC, t_eval=t)\n", " ax[0].lines[0].set_ydata(soln.y[0])\n", " ax[0].legend().get_texts()[0].set_text(str(Tc))\n", "
ax[1].lines[0].set_ydata(soln.y[1])\n", " ax[1].legend().get_texts()[0].set_text(str(Tc))\n", " display(fig)\n", "\n", "# interactive widget\n", "interact(sim, Tcooling = (290.0, 310.0),
continuous_update=False);" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.7 Nullclines](https://jckantor.github.io/CBE30338/02.06-Exothermic-
CSTR.html#2.6.7-Nullclines)", "section": "2.6.7 Nullclines" } }, "source": [ "## 2.6.7 Nullclines\n", "\n", "The nullclines of two first-order differential equations are points in the phase plane for
which one or the other of the two derivatives are zero.\n", "\n", "\\begin{align*}\n", "V\\frac{dc_A}{dt} & = 0 = q(c_{Ai}-c_A)-Vkc_A \\\\\n", "V\\rho C_p\\frac{dT}{dt} & = 0 = wC_p(T_i-T) + (-
\\Delta H_R)Vkc_A + UA(T_c-T)\n", "\\end{align*}\n", "\n", "The intersection of the nullclines correspond to steady states. The relative positions of the nullclines provide valuable insight into
the dynamics of a nonlinear system." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "nbpages": { "level": 2, "link": "[2.6.7 Nullclines](https://jckantor.github.io/CBE30338/02.06-
Exothermic-CSTR.html#2.6.7-Nullclines)", "section": "2.6.7 Nullclines" } }, "outputs": [ { "data": { "image/png":
"iVBORw0KGgoAAAANSUhEUgAAAfwAAAF3CAYAAABAJfkIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0d
"text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot nullclines\n", "\n", "def plot_nullclines(ax):\n", " T =
np.linspace(300.0,460.0,1000)\n", " ax.plot((q/V)*cAi/((q/V) + k(T)), T, 'b:')\n", " ax.plot(((q/V)*(Ti-T) + (UA/V/rho/Cp)*(Tc-T))/((dHr/rho/Cp)*k(T)), T, 'r:')\n", " ax.set_xlim(0,1)\n", "
ax.set_ylim(300,460)\n", " ax.grid()\n", " ax.legend(['dC/dt = 0','dT/dt = 0'])\n", " ax.set_xlabel('Concentration')\n", " ax.set_ylabel('Temperature')\n", " \n", "fix, ax = plt.subplots(1, 1,
figsize=(8,6))\n", "plot_nullclines(ax)" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.8 Phase Plane Analysis]
(https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.8-Phase-Plane-Analysis)", "section": "2.6.8 Phase Plane Analysis" } }, "source": [ "## 2.6.8 Phase Plane
Analysis\n", "\n", "The final analysis is display the simulation in both time and phase plane coordinates. The following cell produces a " ] }, { "cell_type": "code", "execution_count":
7, "metadata": { "nbpages": { "level": 2, "link": "[2.6.8 Phase Plane Analysis](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.8-Phase-Plane-Analysis)",
"section": "2.6.8 Phase Plane Analysis" }, "scrolled": false }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id":
"fc96639dec6f4ae08c8aa0795911f7a3", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=0.5, description='cinitial', max=1.0,
step=0.01), IntSlider(value=350,…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type":
"execute_result" } ], "source": [ "def plot_phase(ax, t, y):\n", " ax.plot(y[0][0], y[1][0], 'r.', ms=20)\n", " ax.plot(y[0], y[1], 'g', lw=2)\n", "\n", "def phase(cinitial=0.5, Tinitial=350):\n", "
global Tc\n", " soln = solve_ivp(deriv, [t_initial, t_final], [cinitial,Tinitial], t_eval=t)\n", " \n", " ax[0,0].lines[2].set_xdata(soln.y[0][0])\n", " ax[0,0].lines[2].set_ydata(soln.y[1][0])\n", "
ax[0,0].lines[3].set_xdata(soln.y[0])\n", " ax[0,0].lines[3].set_ydata(soln.y[1])\n", " ax[1,0].lines[0].set_ydata(soln.y[0])\n", " ax[1,1].lines[0].set_ydata(soln.y[1])\n", " display(fig)\n", "
\n", "Tc = 300.0\n", "cinitial = 0.5\n", "Tinitial = 350.0\n", "fig, ax = plt.subplots(2, 2, figsize=(12, 9))\n", "soln = solve_ivp(deriv, [t_initial, t_final], [cinitial, Tinitial], t_eval=t)\n",
"plot_nullclines(ax[0,0])\n", "plot_phase(ax[0,0], soln.t, soln.y)\n", "plot_reactor(ax[1,:], soln.t, soln.y)\n", "plt.close()\n", "\n", "interact(phase, cinitial=(0,1,.01), Tinitial=(300,400,1))"
] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.9 Suggested Exercises](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.9-
Suggested-Exercises)", "section": "2.6.9 Suggested Exercises" } }, "source": [ "## 2.6.9 Suggested Exercises" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2,
"link": "[2.6.9 Suggested Exercises](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.9-Suggested-Exercises)", "section": "2.6.9 Suggested Exercises" },
"tags": [ "exercise" ] }, "source": [ "**1.** Using the interactive simulation, adjust the cooling temperature over the range of values from 290K to 310K, identify the cooling water
temperatures at which you observe a qualitative difference in system behavior. Try to identify the following behaviors:\n", "\n", "* Stable steady state\n", "* Oscillatory steady
state\n", "* The onset of a thermal runaway condition\n" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 2, "link": "[2.6.9 Suggested Exercises]
(https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.9-Suggested-Exercises)", "section": "2.6.9 Suggested Exercises" }, "tags": [ "exercise" ] }, "source": [
"**2.** Repeat the exercise using the phase plane simulation. Describe the underlying behaviors in light of the nullclines.\n" ] }, { "cell_type": "markdown", "metadata": {
"nbpages": { "level": 2, "link": "[2.6.9 Suggested Exercises](https://jckantor.github.io/CBE30338/02.06-Exothermic-CSTR.html#2.6.9-Suggested-Exercises)", "section": "2.6.9
Suggested Exercises" }, "tags": [ "exercise" ] }, "source": [ "\n", "**3.** Assume the reactor is start up with a tank of reactant feed with a concentration $c_A = 1$. What is the
maximum initial temperature that would avoid thermal runaway during reactor startup?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [2.5 Hare and Lynx
Population Dynamics](https://jckantor.github.io/CBE30338/02.05-Hare-and-Lynx-Population-Dynamics.html) | [Contents](toc.html) | [Tag Index](tag_index.html) | [2.7 Fed-Batch
Bioreactor](https://jckantor.github.io/CBE30338/02.07-Fed-Batch-Bioreactor.html)

" ] } ], "metadata": { "anaconda-cloud": {}, "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": 4 }

You might also like