{ "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", "< [Reactors](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/05.00-Reactors.ipynb) | [Contents](toc.ipynb) | [Steam Reforming of Methane](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/05.02-Steam-Reforming-of-Methane.ipynb) >

\"Open" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "QNHvXizqqcc6" }, "source": [ "# Dehydrogenation of Propane\n", "\n", "(Example 4.7-2 from Felder, et al.)\n", "\n", "Propane can be dehydrogenated to form propylene in a catalytic reactor: \n", "\n", "$$C_3H_8 \\longrightarrow C_3H_6 + H_2$$\n", "\n", "A process is to be designed for a 95% overall conversion of propane. The reaction products are separated into two streams: the first, which contains H2, C3H6, and 0.555% of the propane that leaves the reactor, is taken off as product; the second stream, which contains the balance of the unreacted propane and propylene in an amount equal to 5% of that in the first stream, is recycled to the reactor. Calculate the composition of the product, the ratio (moles recycled)/(mole fresh feed), and the single-pass conversion.\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "toc", "id": "F-msUoWD4zTt" }, "source": [ "* [Example 4.7-2 Dehydrogenation of Propane](#scrollTo=QNHvXizqqcc6)\n", "* [Process Model](#scrollTo=XEn6os4dvqZX)\n", "* [Product Composition](#scrollTo=zIxh44zIvD_a)\n", "* [Recycle Ratio](#scrollTo=0z2mr1SVvG3P)\n", "* [Single Pass Conversion](#scrollTo=3XZtQmHcvWaY)\n", "* [How Does Process Performance Depend on Single Pass Conversion?](#scrollTo=VIrO99Kqvzkz)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "XEn6os4dvqZX" }, "source": [ "## Process Model" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 204 }, "colab_type": "code", "executionInfo": { "elapsed": 1067, "status": "ok", "timestamp": 1537906129427, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "xDt97dGqP1wr", "outputId": "56a27bfb-0d42-46af-b958-0f5a282586ef" }, "outputs": [ { "data": { "text/plain": [ "{X: 95.0000000000000,\n", " n1: 995.900900900901,\n", " n10: 4.75000000000000,\n", " n2: 4.75000000000000,\n", " n3: 900.900900900901,\n", " n4: 99.7500000000000,\n", " n5: 95.0000000000000,\n", " n6: 5.00000000000000,\n", " n7: 95.0000000000000,\n", " n8: 95.0000000000000,\n", " n9: 895.900900900901}" ] }, "execution_count": 1, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "from sympy import *\n", "\n", "# define constants\n", "\n", "nfeed = 100.0\n", "\n", "# define variables\n", "\n", "var('X')\n", "var('n1:11')\n", "\n", "# define constants\n", "\n", "# unit balances\n", "\n", "mixer = [\n", " Eq(nfeed + n9, n1), # C3H8\n", " Eq(n10, n2) # C3H6\n", "]\n", "\n", "reactor = [\n", " Eq(n3, n1 - X), # C3H8\n", " Eq(n4, n2 + X), # C3H6\n", " Eq(n5, X) # H2\n", "]\n", "\n", "separator = [\n", " Eq(n3, n6 + n9), # C3H8\n", " Eq(n4, n7 + n10), # C3H6\n", " Eq(n5, n8) # H2\n", "]\n", "\n", "# process specifications\n", "\n", "specs = [\n", " Eq(n6, (1-0.95)*nfeed), # 95% process conversion\n", " Eq(n6, 0.00555*n3), # 0.555% of propane recovered in propylene product\n", " Eq(n10, 0.05*n7) # propylene recycle is 5% of outlet flow\n", "]\n", "\n", "soln = solve(mixer + reactor + separator + specs)\n", "soln" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "zIxh44zIvD_a" }, "source": [ "### Product Composition" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 68 }, "colab_type": "code", "executionInfo": { "elapsed": 345, "status": "ok", "timestamp": 1537906157845, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "Fk2Z6xTUttrD", "outputId": "b0edb7ce-0a5a-43c7-bb64-56670089c6d8" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C3H8 Product = 2.56 %\n", "C3H6 Product = 48.72 %\n", " H2 Product = 48.72 %\n" ] } ], "source": [ "nTotal = soln[n6] + soln[n7] + soln[n8]\n", "print('C3H8 Product = ', round(100*soln[n6]/nTotal,2), '%')\n", "print('C3H6 Product = ', round(100*soln[n7]/nTotal,2), '%')\n", "print(' H2 Product = ', round(100*soln[n8]/nTotal,2), '%')" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "0z2mr1SVvG3P" }, "source": [ "### Recycle Ratio" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "executionInfo": { "elapsed": 495, "status": "ok", "timestamp": 1537906165862, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "Cfs53JnmbLZi", "outputId": "ab6aab54-f2d0-47f7-d676-ebb35d14a646" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Recycle Ratio = 9.00650900900901\n" ] } ], "source": [ "print('Recycle Ratio = ', (soln[n9] + soln[n10])/nfeed)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "3XZtQmHcvWaY" }, "source": [ "### Single Pass Conversion" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "executionInfo": { "elapsed": 291, "status": "ok", "timestamp": 1537906173174, "user": { "displayName": "Jeffrey Kantor", "photoUrl": "", "userId": "09038942003589296665" }, "user_tz": 240 }, "id": "yyhim5-VcVmR", "outputId": "0177482c-9253-4ab5-ddf4-8edec2f5a69c" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Single Pass Conversion 0.0953910172328011\n" ] } ], "source": [ "print('Single Pass Conversion', (soln[n1] - soln[n3])/soln[n1])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", "id": "AlD72vHOzxsg" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Reactors](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/05.00-Reactors.ipynb) | [Contents](toc.ipynb) | [Steam Reforming of Methane](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/05.02-Steam-Reforming-of-Methane.ipynb) >

\"Open" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "Dehydrogenation of Propane.ipynb", "provenance": [], "toc_visible": true, "version": "0.3.2" }, "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 }