{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE20255](https://jckantor.github.io/CBE20255)\n", "by Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE20255.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", "< [Balancing Reactions](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/02.01-Balancing-Reactions.ipynb) | [Contents](toc.ipynb) | [Process Flows and Balances](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/03.00-Process-Flows-and-Balances.ipynb) >

\"Open" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Generation Consumption Analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "\n", "This [Jupyter notebook](http://jupyter.org/notebook.html) demonstrate the use of the [symbolic algebra package `Sympy`](http://sympy.org/en/index.html) for the generation/consumption analysis for the production of ammonia using basic principles of reaction stoichiometry." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example: Ammonia Production\n", "\n", "BASF, headquartered in Ludwigshafen, Germany, is the largest chemical company in the world. In 1913, under its original name Badische Anilin- und Soda-Fabrik, BASF commercialized the Haber-Bosch process for the production of ammonia from natural gas, water, and air. \n", "\n", "Prior to this invention, American and European agriculture was dependent on guano mined from the 'Guano Islands' in the Caribbean Sea and Pacific Ocean, and saltpeter mined from the deserts of Peru, Chile, and Bolivia. The competition for these limited resouces led to the notorious [U.S. Guano Islands Act of 1856](http://en.wikipedia.org/wiki/Guano_Islands_Act), and multiple wars (the Guano War, the [War of the Pacific](http://en.wikipedia.org/wiki/War_of_the_Pacific), later resulting in acute fertilizer shortages that was called 'the Wheat Problem' in England by Sir William Crookes in 1898. \n", "\n", "The following video produced by BASF provides a technical overview of the Haber-Bosch process. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "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\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"uMkzxV_y7tY\",560,315,rel=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem Statement\n", "\n", "Consider three reactions for the production of ammonia\n", "\n", "1. Steam-reforming of methane\n", "

\n", "CH4 + H2O → CO + 3 H2\n", "
\n", "2. Water-gas shift \n", "
\n", "CO + H2O → CO2 + H2\n", "
\n", "3. Haber-Bosch reaction\n", "
\n", "N2 + 3 H2 → 2 NH3\n", "
\n", "\n", "Determine if it is possible to construct a process for the production of ammonia with no wasted hydrogen and no release of carbon monoxide." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solution\n", "\n", "We begin by setting up the stoichiometric matrix for generation/consumption analysis\n", "\n", "| Species | R1 | R2 | R3 | Net |\n", "| :-------------: | :-----------: | :-----------: | :-----------: | :-----------------: |\n", "| | χ1 | χ2 | χ3 | $\\sum_k\\nu_k\\chi_k$ |\n", "| CH4 | -1 | 0 | 0 | ≤ 0 |\n", "| H2O | -1 | -1 | 0 | ≤ 0 |\n", "| CO | 1 | -1 | 0 | 0 |\n", "| H2 | 3 | 1 | -3 | 0 |\n", "| CO2 | 0 | 1 | 0 | ≥ 0 |\n", "| N2 | 0 | 0 | 1 | ≤ 0 |\n", "| NH3 | 0 | 0 | 2 | 1 |\n", "\n", "\n", "which includes three equality constraints which need to be solved for\n", "χ1, χ2, and χ3.\n", "\n", "The first step is to import `sympy`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import sympy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When imported in this way, the functions from `sympy` must be accessed with the prefix `sympy.`. This avoids overwriting functions with the same name as those in `sympy`, such as `plot`.\n", "\n", "Next we use the `sympy.var` function to create three symbolic variables corresponding to χ1, χ2, and χ3." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(x1, x2, x3)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.var('x1 x2 x3')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The net stoichiometric coefficients can be written in terms of the symbolic variables. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "v = dict()\n", "v['CH4'] = -x1\n", "v['H2O'] = -x1 - x2\n", "v['CO'] = x1 - x2\n", "v['H2'] = 3*x1 + x2 - 3*x3\n", "v['CO2'] = x2\n", "v['N2'] = -x3\n", "v['NH3'] = 2*x3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The three process constraints are encoded as equations using the sympy function `Eq()`" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "eqns = [\n", " sympy.Eq(v['NH3'],1), \n", " sympy.Eq(v['CO'],0),\n", " sympy.Eq(v['H2'],0)\n", "]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These equations are solved for χ1, χ2, and χ3." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{x2: 3/8, x3: 1/2, x1: 3/8}\n" ] } ], "source": [ "soln = sympy.solve(eqns)\n", "print(soln)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To finish the problem, the solutions are substituted back into the expressions for the stoichiometric coefficients, and the non-zero coefficients are displayed." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "N2 -1/2\n", "H2O -3/4\n", "NH3 1\n", "CH4 -3/8\n", "CO2 3/8\n" ] } ], "source": [ "for k in v.keys():\n", " a = v[k].subs(soln)\n", " if a != 0:\n", " print(\"{0:<3s} {1:>6s}\".format(k,str(a)))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Balancing Reactions](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/02.01-Balancing-Reactions.ipynb) | [Contents](toc.ipynb) | [Process Flows and Balances](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/03.00-Process-Flows-and-Balances.ipynb) >

\"Open" ] } ], "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.3" } }, "nbformat": 4, "nbformat_minor": 2 }