{ "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", "< [Linearization](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/03.00-Linearization.ipynb) | [Contents](toc.ipynb) | [Linear Approximation of a Process Model](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/03.02-Linear-Approximation-of-a-Process-Model.ipynb) >
"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Step Response of a Gravity Drained Tank\n",
"\n",
"by Jeffrey Kantor (jeff at nd.edu). The latest version of this notebook is available at [https://github.com/jckantor/CBE30338](https://github.com/jckantor/CBE30338). "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Summary\n",
"\n",
"In the example we show how to fit the step response of a nonlinear system, a gravity drained tank, to a first order linear system."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Mass Balance for Tank with Constant Cross-Sectional Area\n",
"\n",
"For a tank with constant cross-sectional area, such as a cylindrical or rectangular tank, the liquid height is described by a differential equation\n",
"\n",
"$$A\\frac{dh}{dt} = q_{in}(t) - q_{out}(t)$$\n",
"\n",
"where $q_{out}$ is a function of liquid height. Torricelli's law tells the outlet flow from the tank is proportional to square root of the liquid height\n",
"\n",
"$$ q_{out}(h) = C_v\\sqrt{h} $$"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Dividing by area we obtain a nonlinear ordinary differential equation \n",
"\n",
"$$ \\frac{dh}{dt} = - \\frac{C_V}{A}\\sqrt{h} + \\frac{1}{A}q_{in}(t) $$\n",
"\n",
"in our standard form where the LHS derivative appears with a constant coefficient of 1."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Nonlinear Step Response"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nJxUFERHp9P8Bsxasekr6TYkAAAAASUVORK5CYII=\n",
"text/plain": [
" "
]
}
],
"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": 2
}