{ "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) >
"
]
},
{
"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) >
"
]
}
],
"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
}