diff options
author | hardythe1 | 2015-04-07 15:58:05 +0530 |
---|---|---|
committer | hardythe1 | 2015-04-07 15:58:05 +0530 |
commit | 92cca121f959c6616e3da431c1e2d23c4fa5e886 (patch) | |
tree | 205e68d0ce598ac5caca7de839a2934d746cce86 /Mass_-_Transfer_Operations/Chapter9_1.ipynb | |
parent | b14c13fcc6bb6d01c468805d612acb353ec168ac (diff) | |
download | Python-Textbook-Companions-92cca121f959c6616e3da431c1e2d23c4fa5e886.tar.gz Python-Textbook-Companions-92cca121f959c6616e3da431c1e2d23c4fa5e886.tar.bz2 Python-Textbook-Companions-92cca121f959c6616e3da431c1e2d23c4fa5e886.zip |
added books
Diffstat (limited to 'Mass_-_Transfer_Operations/Chapter9_1.ipynb')
-rwxr-xr-x | Mass_-_Transfer_Operations/Chapter9_1.ipynb | 2154 |
1 files changed, 2154 insertions, 0 deletions
diff --git a/Mass_-_Transfer_Operations/Chapter9_1.ipynb b/Mass_-_Transfer_Operations/Chapter9_1.ipynb new file mode 100755 index 00000000..6ae47958 --- /dev/null +++ b/Mass_-_Transfer_Operations/Chapter9_1.ipynb @@ -0,0 +1,2154 @@ +{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1356f02f4e266983d4e000fdec653dca9388627dd3d49506786471d71b9d02b6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: Distillation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.1: Page 349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.1\n",
+ "# Page: 349\n",
+ "\n",
+ "print'Illustration 9.1 - Page: 349\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "#****Data****#\n",
+ "# a:n-heptane b:n-octane\n",
+ "Pt = 760; # [mm Hg]\n",
+ "#*****#\n",
+ "\n",
+ "Tempa = 98.4;# [boiling point of A,OC]\n",
+ "Tempb = 125.6;# [boiling point of B,OC]\n",
+ "x = numpy.zeros(6);\n",
+ "y_star = numpy.zeros(6);\n",
+ "alpha = numpy.zeros(6);\n",
+ "# Data = [Temp Pa (mm Hg) Pb(mm Hg)]\n",
+ "Data = [(98.4, 760.0, 333.0),(105.0 ,940.0, 417.0),(110.0, 1050.0, 484.0),(115.0, 1200.0, 561.0),(120.0, 1350.0, 650.0),(125.6 ,1540.0, 760.0)];\n",
+ "for i in range(0,6): \n",
+ " x[i] = (Pt-Data[i][2])/(Data[i][1]-Data[i][2]);# [mole fraction of heptane in liquid]\n",
+ " y_star[i] = (Data[i][1]/Pt)*x[i];\n",
+ " alpha[i] = Data[i][1]/Data[i][2];\n",
+ "\n",
+ "print\"\\t\\t T(OC)\\t\\t\\t\\t Pa(mm Hg)\\t\\t\\t\\t\\t\\t\\t Pb(mm Hg)\\t\\t\\t\\t\\t\\t\\t\\t x\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t y*\\t\\t\\t\\t\\t\\t\\t\\t\\t alpha\\n\"\n",
+ "for i in range(0,6):\n",
+ " print \"\\t \\t \",Data[i][0],\"\\t \\t \\t \\t\",Data[i][1],\"\\t \\t \\t \\t\",Data[i][2],\"\\t \\t \\t \\t \",round(x[i],3),\"\\t \\t \\t \\t \",round(y_star[i],3),\"\\t\\t\\t\\t\\t\\t\\t\\t\",round(alpha[i],2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.1 - Page: 349\n",
+ "\n",
+ "\n",
+ "\t\t T(OC)\t\t\t\t Pa(mm Hg)\t\t\t\t\t\t\t Pb(mm Hg)\t\t\t\t\t\t\t\t x\t\t\t\t\t\t\t\t\t\t\t y*\t\t\t\t\t\t\t\t\t alpha\n",
+ "\n",
+ "\t \t 98.4 \t \t \t \t760.0 \t \t \t \t333.0 \t \t \t \t 1.0 \t \t \t \t 1.0 \t\t\t\t\t\t\t\t2.28\n",
+ "\t \t 105.0 \t \t \t \t940.0 \t \t \t \t417.0 \t \t \t \t 0.656 \t \t \t \t 0.811 \t\t\t\t\t\t\t\t2.25\n",
+ "\t \t 110.0 \t \t \t \t1050.0 \t \t \t \t484.0 \t \t \t \t 0.488 \t \t \t \t 0.674 \t\t\t\t\t\t\t\t2.17\n",
+ "\t \t 115.0 \t \t \t \t1200.0 \t \t \t \t561.0 \t \t \t \t 0.311 \t \t \t \t 0.492 \t\t\t\t\t\t\t\t2.14\n",
+ "\t \t 120.0 \t \t \t \t1350.0 \t \t \t \t650.0 \t \t \t \t 0.157 \t \t \t \t 0.279 \t\t\t\t\t\t\t\t2.08\n",
+ "\t \t 125.6 \t \t \t \t1540.0 \t \t \t \t760.0 \t \t \t \t 0.0 \t \t \t \t 0.0 \t\t\t\t\t\t\t\t2.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2: Page 354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.2\n",
+ "# Page: 354\n",
+ "\n",
+ "print'Illustration 9.2 - Page: 354\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:ethylaniline\n",
+ "Pt = 760.0; # [mm Hg]\n",
+ "ma1 = 50.0;# [g]\n",
+ "mb1 = 50.0;# [g]\n",
+ "#*******#\n",
+ "\n",
+ "# Data = [Temp Pa(mm Hg) Pb(mm Hg)]\n",
+ "Data = [(38.5, 51.1 ,1.0),(64.4 ,199.7, 5.0),(80.6 ,363.9 ,10.0),(96.0, 657.6, 20.0),(99.15 ,737.2 ,22.8),(113.2, 1225.0, 40.0)];\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Mb = 121.1;# [kg/kmol]\n",
+ "\n",
+ "for i in range(0,6):\n",
+ " p = Data[i][1]+Data[i][2];\n",
+ " if p==Pt:\n",
+ " pa = Data[4][1];# [mm Hg]\n",
+ " pb = Data[i][2];# [mm Hg]\n",
+ " T = Data[i][0];# [OC]\n",
+ " \n",
+ "\n",
+ "ya_star = pa/Pt;\n",
+ "yb_star = pb/Pt;\n",
+ "ya1 = ma1/Ma;# [g mol water]\n",
+ "yb1 = mb1/Mb;# [g mol ethylalinine]\n",
+ "Y = ya1*(yb_star/ya_star);# [g mol ethylalinine]\n",
+ "print\"The original mixture contained\",round(ya1,2),\"g mol water and \",round(yb1,2),\" g mol ethylanaline\\n\"\n",
+ "print\"The mixture will continue to boil at \",T,\" degree C, where the equilibrium vapour of the indicated composition,until all the water evaporated together with \",round(Y,3),\"g mol ethylaniline\\n\"\n",
+ "print\"The temparature will then rise to 204 degree C, and the equilibrium vapour will be of pure ethylanaline\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.2 - Page: 354\n",
+ "\n",
+ "\n",
+ "The original mixture contained 2.77 g mol water and 0.41 g mol ethylanaline\n",
+ "\n",
+ "The mixture will continue to boil at 99.15 degree C, where the equilibrium vapour of the indicated composition,until all the water evaporated together with 0.086 g mol ethylaniline\n",
+ "\n",
+ "The temparature will then rise to 204 degree C, and the equilibrium vapour will be of pure ethylanaline\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.3: Page 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.3\n",
+ "# Page: 362\n",
+ "\n",
+ "print'Illustration 9.3 - Page: 362\\n\\n'\n",
+ "import numpy\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:n-C3H8 b:n-C4H10 c:n-C5H12 d:n-C6H14\n",
+ "# Bubble Point Calculation\n",
+ "xa = 0.05;\n",
+ "xb = 0.30;\n",
+ "xc = 0.40;\n",
+ "xd = 0.25;\n",
+ "P = 350;# [kN/square m]\n",
+ "#******#\n",
+ "\n",
+ "# Assume:\n",
+ "Temp = 60;# [OC]\n",
+ "x = [0.05, 0.30, 0.40, 0.25];\n",
+ "m = [4.70, 1.70 ,0.62 ,0.25];# [At 60 OC]\n",
+ "# Reference: C5H12\n",
+ "mref = m[3];\n",
+ "Sum = 0;\n",
+ "alpha = numpy.zeros(4)\n",
+ "alpha_x = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[3];\n",
+ " alpha_x[i] = alpha[i]*x[i];\n",
+ " Sum = Sum+alpha_x[i];\n",
+ "\n",
+ "# From Eqn. 9.23:\n",
+ "SumF = Sum;\n",
+ "Sum = 0;\n",
+ "mref = 1/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 56.8;# [OC]\n",
+ "m = [4.60, 1.60, 0.588, 0.235];# [At 56.8 OC]\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[2];\n",
+ " alpha_x[i] = alpha[i]*x[i];\n",
+ " Sum = Sum+alpha_x[i];\n",
+ "\n",
+ "SumF = Sum;\n",
+ "mref = 1/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 56.7;# [OC]\n",
+ "Bt = 56.8;# [OC]\n",
+ "yi = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " yi[i] = alpha_x[i]/Sum;\n",
+ "\n",
+ "print\"The Bubble Point is \",Bt,\" degree C\\n\"\n",
+ "print\"Bubble point vapour composition \\n\"\n",
+ "print\"\\t yi\\n\";\n",
+ "print\"\\n n-C3\\t \",round(yi[0],3)\n",
+ "print\"\\n n-C4\\t \",round(yi[1],3)\n",
+ "print\"\\n n-C5\\t \",round(yi[2],3)\n",
+ "print\"\\n n-C6\\t \",round(yi[3],3)\n",
+ "\n",
+ "print\"\\n \\n \\n\"\n",
+ "\n",
+ "# Dew Point Calculation\n",
+ "# Asume:\n",
+ "ya = 0.05;\n",
+ "yb = 0.30;\n",
+ "yc = 0.40;\n",
+ "yd = 0.25;\n",
+ "Temp = 80;# [OC]\n",
+ "y = [0.05, 0.30 ,0.40, 0.25];\n",
+ "m = [6.30 ,2.50 ,0.96 ,0.43];# [At 60 OC]\n",
+ "# Reference: C5H12\n",
+ "mref = m[3];\n",
+ "Sum = 0;\n",
+ "alpha = numpy.zeros(4)\n",
+ "alpha_y = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[3];\n",
+ " alpha_y[i] = y[i]/alpha[i];\n",
+ " Sum = Sum+alpha_y[i];\n",
+ "\n",
+ "\n",
+ "# From Eqn. 9.29:\n",
+ "SumF = Sum;\n",
+ "Sum = 0;\n",
+ "mref = SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 83.7;# [OC]\n",
+ "m = [6.60, 2.70, 1.08, 0.47];# [At 56.8 OC]\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[2];\n",
+ " alpha_y[i] = y[i]/alpha[i];\n",
+ " Sum = Sum+alpha_y[i];\n",
+ "\n",
+ "SumF = Sum;\n",
+ "mref = 1.0/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 84.0;# [OC]\n",
+ "Dt = 84.0;# [OC]\n",
+ "xi = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " xi[i] = alpha_y[i]/Sum;\n",
+ "\n",
+ "print\"The Dew Point is \",Dt,\" degree C\\n\"\n",
+ "print\"Dew point liquid composition \\n\"\n",
+ "print\"\\t xi\\n\"\n",
+ "print\"\\n n-C3\\t \",round(xi[0],3)\n",
+ "print\"\\n n-C4\\t \",round(xi[1],3)\n",
+ "print\"\\n n-C5\\t \",round(xi[2],3)\n",
+ "print\"\\n n-C6\\t \",round(xi[3],3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.3 - Page: 362\n",
+ "\n",
+ "\n",
+ "The Bubble Point is 56.8 degree C\n",
+ "\n",
+ "Bubble point vapour composition \n",
+ "\n",
+ "\t yi\n",
+ "\n",
+ "\n",
+ " n-C3\t 0.229\n",
+ "\n",
+ " n-C4\t 0.478\n",
+ "\n",
+ " n-C5\t 0.234\n",
+ "\n",
+ " n-C6\t 0.059\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "The Dew Point is 84.0 degree C\n",
+ "\n",
+ "Dew point liquid composition \n",
+ "\n",
+ "\t xi\n",
+ "\n",
+ "\n",
+ " n-C3\t 0.007\n",
+ "\n",
+ " n-C4\t 0.109\n",
+ "\n",
+ " n-C5\t 0.363\n",
+ "\n",
+ " n-C6\t 0.521\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4: Page 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.4\n",
+ "# Page: 365\n",
+ "\n",
+ "print'Illustration 9.4 - Page: 365\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol feed]\n",
+ "zF = 0.5;\n",
+ "D = 60.0;# [mol]\n",
+ "W = 40.0;# [mol]\n",
+ "#*******#\n",
+ "\n",
+ "# From Illustration 9.1, Equilibrium data:\n",
+ "Data = numpy.array([[1.0 ,1.0],[0.655, 0.810],[0.487 ,0.674],[0.312, 0.492],[0.1571 ,0.279],[0, 0]]);\n",
+ "Feed = numpy.array([[0 ,0],[1.0 ,1.0]]);\n",
+ "# The operating line is drawn with a slope -(W/D) to cut the equilibrium line.\n",
+ "def f44(x):\n",
+ " return -((W/D)*(x-zF))+zF\n",
+ "x = numpy.arange(0.2,0.7,0.1);\n",
+ "plt.plot(Data[:,0],Data[:,1],label=\"Equilibrium Line\")\n",
+ "plt.plot(Feed[:,0],Feed[:,1],label=\"Feed Line\")\n",
+ "plt.plot(x,f44(x),label=\"Operating Line\");\n",
+ "plt.grid('on')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Mole fraction of heptane in liquid\")\n",
+ "ax.set_ylabel(\"Mole fraction of heptane in vapour\")\n",
+ "plt.legend(loc='lower right');\n",
+ "plt.show()\n",
+ "# The point at which the operating line cuts the equilibrium line has the following composition* temparature:\n",
+ "yd = 0.575;# [mole fraction heptane in vapour phase]\n",
+ "xW = 0.387;# [mole fraction heptane in liquid phase]\n",
+ "Temp = 113;# [OC]\n",
+ "print\"mole fraction of heptane in vapour phase \",yd\n",
+ "print\"mole fraction of heptane in liquid phase \",xW\n",
+ "print\"Temperature is \",Temp,\" degree C\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.4 - Page: 365\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ndu0iIyOD0aNH07VrVypXrsxRRx3F66+/ztq1a5k4cSLgympeeuml9O7dm1q1atG2bVuWLFlScJ+S\nymrmX9uvXz9q167Nyy+/zIIFC+jQoQN169blyCOP5JZbbikwQvk1FFq3bk3NmjWZMmUKmZmZRWo6\npKWlMXLkSFq3bk2dOnXo3bt3kYysjz/+eEFJ0hdeeOF3IxAvrF27lkqVKhWUM01PT2fo0KF07tyZ\nWrVqcd5557Ft27aC9vPnz6djx47UrVuXNm3a8OGHMcsyVDplqe4T640yVnCbPdtVYVu5svS25amq\nZhjRpqy/eb95//339aCDDtLc3NzffTZgwADt06ePqrrqaQcffLC+8cYbmpOToyNGjNBmzZppTk6O\n5ubm6sknn6wPPfSQZmdn65o1a7R58+Y6a9asItdOmzZNVVV/++03XbRokX7xxReam5ura9eu1eOO\nO05HjRpV0LeI6OrVqwuO582bp40bNy44TktL01NPPVU3b96s27dv1+OOO06fffbZgu90xBFH6NKl\nS3Xv3r165ZVXaqVKlYrcL5j09PRiq8t9//33KiIFujnzzDO1RYsWunLlSv3tt980PT1dhwwZoqqq\nGzZs0MMOO0zfD5SInDNnjh522GH6888/e/yfKEq43wtlrOCWsiOGZctcmovXX4cWLUpua6MEI+kQ\nic4WIVu3bqVevXrFFuM54ogj2Lp1a8Fxu3bt6NGjB5UrV2bQoEHs27ePzz//nAULFrB161buu+8+\nDjroIJo1a8a1117L5MmTC67t2LEjF17oEjhXq1aNk08+mfbt21OpUiWOOuoorr/++ojfsG+99VaO\nOOII6tatywUXXEBWVhYAr7/+OldffTXHHXcc1atX54EHHoiKW0pEuOqqq2jRogXVqlWjV69eBX1O\nnDiR7t270y1QIrJLly60a9eO9957r9z9RoOUnK76889u5tHjj0NJlfqScfVyKqeajpQKrYs4zXyp\nV68eW7duJS8v73fGYfPmzdSvX7/gOLhcp4jQuHFjNm3ahIiUWlYztNTnihUrGDRoEIsWLWLv3r3k\n5OTQrl27iGQ/ImjhUvXq1dm8eXOB3O3btw/bd3kI7XPPnj2AK3U6ZcoUpk+fXvB5Tk5OkXKp8STl\nRgz797u1Cr16wcCB4dvZKMEwIqdDhw5UrVqVN954o8j5PXv2MHPmTM4555yCc8HlOfPy8tiwYQON\n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\nzM+VsnViXQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f17518>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole fraction of heptane in vapour phase 0.575\n",
+ "mole fraction of heptane in liquid phase 0.387\n",
+ "Temperature is 113 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.5: Page 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.5\n",
+ "# Page: 366\n",
+ "\n",
+ "print'Illustration 9.5 - Page: 366\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "import pylab\n",
+ "import numpy.linalg as lin\n",
+ "#****Data****#\n",
+ "Pt = 760.0;# [mm Hg]\n",
+ "zFa = 0.5;# [mol fraction benzene]\n",
+ "zFb = 0.25;# [mol fraction toulene]\n",
+ "zFc = 0.25;# [mol fraction o-xylene]\n",
+ "#********#\n",
+ "\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol feed]\n",
+ "# For Summtion of Yd_star to be unity, W/D = 2.08 \n",
+ "# The Eqn.are \n",
+ "# (1): W+D = F \n",
+ "# (2): W-2.08D = 0\n",
+ "a =numpy.array([[1.0 ,1.0],[1.0 ,-2.08]]);\n",
+ "b = numpy.array([[F*1.0],[0]]);\n",
+ "soln = lin.solve(a,b)\n",
+ "W = soln[0];\n",
+ "D = soln[1];\n",
+ "Sub = ['A','B','C'];\n",
+ "p =numpy.array([1370 ,550, 200]);# [mm Hg]\n",
+ "m = numpy.zeros(3);\n",
+ "zF = [zFa ,zFb, zFc];# [Given]\n",
+ "yd_star = numpy.array([0,0,0]);\n",
+ "xW = numpy.zeros(3);\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " m[i] = p[i]/Pt;\n",
+ " yd_star[i]=(zF[i])*((W/D)+1)#/(1+(W/(D*m[i])));\n",
+ " xW[i] = yd_star[i]/m[i];\n",
+ "\n",
+ "print\"\\t \\t \\t \\t \\t \\t \\t \\t At W/D = 2.08\\n\\n\\n\"\n",
+ "print\"Substance \\t \\t p(mm Hg)\\t \\t m\\t \\t \\t \\t \\t \\t \\t \\t \\t \\t zF\\t \\t \\t \\t \\t \\t \\t yd*\\t\\t\\t\\t\\t\\txW\\n\"\n",
+ "for i in range(0,3):\n",
+ " print \"\\n\",Sub[i],\" \\t \\t \\t \\t \",p[i],\"\\t \\t \\t \\t \",m[i],\"\\t \\t \\t\",m[i],\"\\t \\t \\t\",zF[i],\" \\t \\t \\t\",yd_star[i],\"\\t\",xW[i]\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.5 - Page: 366\n",
+ "\n",
+ "\n",
+ "\t \t \t \t \t \t \t \t At W/D = 2.08\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Substance \t \t p(mm Hg)\t \t m\t \t \t \t \t \t \t \t \t \t zF\t \t \t \t \t \t \t yd*\t\t\t\t\t\txW\n",
+ "\n",
+ "\n",
+ "A \t \t \t \t 1370 \t \t \t \t 1.80263157895 \t \t \t1.80263157895 \t \t \t0.5 \t \t \t1 \t0.554744525547\n",
+ "\n",
+ "B \t \t \t \t 550 \t \t \t \t 0.723684210526 \t \t \t0.723684210526 \t \t \t0.25 \t \t \t0 \t0.0\n",
+ "\n",
+ "C \t \t \t \t 200 \t \t \t \t 0.263157894737 \t \t \t0.263157894737 \t \t \t0.25 \t \t \t0 \t0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.6: Page 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.6\n",
+ "# Page: 370\n",
+ "\n",
+ "print'Illustration 9.6 - Page: 370\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol]\n",
+ "xF = 0.5;\n",
+ "D = 0.6*100;# [mol]\n",
+ "#******#\n",
+ "\n",
+ "W = F-D;# [mol]\n",
+ "# From Illustration 9.1:\n",
+ "alpha = 2.16;# [average value of alpha]\n",
+ "# From Eqn.9.46;\n",
+ "def f45(xW):\n",
+ " return math.log(F*xF/(W*xW))-(alpha*math.log(F*(1-xF)/(W*(1-xW))))\n",
+ "xW = fsolve(f45,0.5);# [mole fraction heptane]\n",
+ "def f46(yD):\n",
+ " return F*xF-((D*yD)+(W*xW))\n",
+ "yD = fsolve(f46,100);# [mole fraction heptane]\n",
+ "print\"Mole Fraction of heptane in the distillate is \",round(yD,3),\"\\n\"\n",
+ "print\"Mole Fraction of heptane in the residue is \",round(xW,3),\" \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.6 - Page: 370\n",
+ "\n",
+ "\n",
+ "Mole Fraction of heptane in the distillate is 0.615 \n",
+ "\n",
+ "Mole Fraction of heptane in the residue is 0.328 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.7: Page 371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.7\n",
+ "# Page: 371\n",
+ "from scipy.optimize import fsolve\n",
+ "print'Illustration 9.7 - Page: 371\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:benzene b:toulene c:o-xylene\n",
+ "# Assume:\n",
+ "Bt = 100.0;#[OC]\n",
+ "pa = 1370.0;# [mm Hg]\n",
+ "pb = 550.0;# [mm Hg]\n",
+ "pc = 200.0;# [mm Hg]\n",
+ "xFa = 0.5;# [mole fraction]\n",
+ "xFb = 0.25;# [mole fraction]\n",
+ "xFc = 0.25;# [mole fraction]\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol]\n",
+ "D = 32.5;# [mol]\n",
+ "#*******#\n",
+ "\n",
+ "ref = pb;\n",
+ "alpha_a = pa/ref;\n",
+ "alpha_b = pb/ref;\n",
+ "alpha_c = pc/ref;\n",
+ "W = F-D;# [mol]\n",
+ "xbW = 0.3;# [mol]\n",
+ "xaW = 0.4;# [mol]\n",
+ "xcW = 0.3;# [mol]\n",
+ "err = 1.0;\n",
+ "while(err>(10**(-1))):\n",
+ " # From Eqn. 9.47:\n",
+ " def f47(xaW):\n",
+ " return math.log(F*xFa/(W*xaW))-(alpha_a*math.log(F*xFb/(W*xbW)))\n",
+ " xaW = fsolve(f47,xbW);\n",
+ " def f48(xcW):\n",
+ " return math.log(F*xFc/(W*xcW))-(alpha_c*math.log(F*xFb/(W*xbW)))\n",
+ " xcW = fsolve(f48,xbW);\n",
+ " xbW_n = 1-(xaW+xcW);\n",
+ " err = abs(xbW-xbW_n);\n",
+ " xbw = xbW_n;\n",
+ "\n",
+ "# Material balance:\n",
+ "# for A:\n",
+ "def f49(yaD):\n",
+ " return F*xFa-((D*yaD)+(W*xaW))\n",
+ "yaD = fsolve(f49,100);# [mole fraction benzene]\n",
+ "# For B:\n",
+ "def f50(ybD):\n",
+ " return F*xFb-((D*ybD)+(W*xbW))\n",
+ "ybD = fsolve(f50,100);# [mole fraction toulene]\n",
+ "# For C:\n",
+ "def f51(ycD):\n",
+ " return F*xFc-((D*ycD)+(W*xcW))\n",
+ "ycD = fsolve(f51,100);# [mole fraction o-xylene]\n",
+ "print\"The residual compositions are:\\n\"\n",
+ "print\"Benzene:\\n\",round(xaW,3)\n",
+ "print\"Toulene:\\n\",round(xbW,3)\n",
+ "print\"o-xylene:\\n\",round(xcW,3)\n",
+ "print\"\\n The composited distillate compositions are:\\n\"\n",
+ "print\"Benzene:\\n\",round(yaD,3)\n",
+ "print\"Toulene:\\n\",round(ybD,3)\n",
+ "print\"o-xylene:\\n\",round(ycD,3)\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.7 - Page: 371\n",
+ "\n",
+ "\n",
+ "The residual compositions are:\n",
+ "\n",
+ "Benzene:\n",
+ "0.438\n",
+ "Toulene:\n",
+ "0.3\n",
+ "o-xylene:\n",
+ "0.343\n",
+ "\n",
+ " The composited distillate compositions are:\n",
+ "\n",
+ "Benzene:\n",
+ "0.628\n",
+ "Toulene:\n",
+ "0.146\n",
+ "o-xylene:\n",
+ "0.057\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.8: Page 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.8\n",
+ "# Page: 388\n",
+ "\n",
+ "print'Illustration 9.8 - Page: 388\\n\\n'\n",
+ "import numpy.linalg as lin\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a:methanol b:water\n",
+ "Xa = 0.5;# [Wt fraction]\n",
+ "Temp1 = 26.7;# [OC]\n",
+ "Temp2 = 37.8;# [OC]\n",
+ "F1 = 5000.0;# [kg/hr]\n",
+ "#******#\n",
+ "\n",
+ "#(a)\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "Xa = 0.5;# [Wt fraction]\n",
+ "Xb = 1-Xa;# [Wt fraction]\n",
+ "Temp1 = 26.7;# [OC]\n",
+ "Temp2 = 37.8;# [OC]\n",
+ "F1 = 5000.0;# [kg/hr];\n",
+ "# Basis: 1hr\n",
+ "F = (F1*Xa/Ma)+(F1*Xb/Mb);# [kmol/hr]\n",
+ "# For feed:\n",
+ "zF = (F1*Xa/Ma)/F;# [mole fracton methanol]\n",
+ "MavF = F1/F;# [kg/kmol]\n",
+ "# For distillate:\n",
+ "xD = (95/Ma)/((95/Ma)+(5/Mb));# [mole fraction methanol]\n",
+ "MavD = 100.0/((95/Ma)+(5/Mb));# [kg/kmol]\n",
+ "# For residue:\n",
+ "xW = (1/Ma)/((1/Ma)+(99/Mb));# [mole fraction methanol]\n",
+ "MavR = 100/((1/Ma)+(99/Mb));# [kg/kmol]\n",
+ "# (1): D+W = F [Eqn.9.75]\n",
+ "# (2): D*xD+W*xW = F*zF [Eqn. 9.76]\n",
+ "# Solvving simultaneously:\n",
+ "a = numpy.array([[1.0 ,1.0],[xD ,xW]]);\n",
+ "b = numpy.array([F,F*zF]);\n",
+ "soln = lin.solve(a,b);\n",
+ "D = soln[0];# [kmol/h]\n",
+ "W = soln[1];# [kmol/h]\n",
+ "print\"Quantity of Distillate is\", round(D*MavD),\" kg/hr\\n\"\n",
+ "print\"Quantity of Residue is \",round(W*MavR),\" kg/hr\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (b)\n",
+ "# For the vapour-liquid equilibria:\n",
+ "Tempo = 19.69;# [Base Temp. according to \"International Critical Tables\"]\n",
+ "BtR = 99.0;# [Bubble point of the residue, OC]\n",
+ "hR = 4179.0;# [J/kg K]\n",
+ "hF = 3852.0;# [J/kg K]\n",
+ "def f52(tF):\n",
+ " return (F1*hF*(tF-Temp1))-((W*MavR)*hR*(BtR-Temp2))\n",
+ "tF = fsolve(f52,Temp1);# [OC]\n",
+ "BtF = 76.0;# [Bubble point of feed, OC]\n",
+ "# For the feed:\n",
+ "delta_Hs = -902.5;# [kJ/kmol]\n",
+ "Hf = ((hF/1000.0)*MavF*(tF-Tempo))+delta_Hs;# [kJ/kmol]\n",
+ "# From Fig 9.27:\n",
+ "HD = 6000.0;# [kJ/kmol]\n",
+ "HLo = 3640.0;# [kJ/kmol]\n",
+ "HW = 6000.0;# [kJ/kmol]\n",
+ "print\"The enthalpy of feed is \",round(Hf),\" kJ/kmol\\n\"\n",
+ "print\"The enthalpy of the residue is \",round(HW),\" kJ/kmol\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (c)\n",
+ "# From Fig.9.27:\n",
+ "# The miium reflux ratio is established by the tie line (x = 0.37 y = 0.71), which extended pass through F,the feed.\n",
+ "# At Dm:\n",
+ "Qm = 62570.0;# [kJ/kmol]\n",
+ "Hg1 = 38610.0;# [kJ/kmol]\n",
+ "# From Eqn. 9.65:\n",
+ "Rm = (Qm-Hg1)/(Hg1-HLo);\n",
+ "print\"The minimum reflux ratio is \",round(Rm,4),\"\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (d)\n",
+ "# From Fig. 9.28:\n",
+ "Np = 4.9;\n",
+ "# But it include the reboiler.\n",
+ "Nm = Np-1;\n",
+ "print\"The minimum number of theoretical trays required is \",round(Nm),\" \\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (e)\n",
+ "R = 1.5*Rm;\n",
+ "# Eqn. 9.65:\n",
+ "def f53(Q_prime):\n",
+ " return R-((Q_prime-Hg1)/(Hg1-HLo))\n",
+ "Q_prime = fsolve(f53,2);# [kJ/kmol]\n",
+ "def f54(Qc):\n",
+ " return Q_prime-(HD+(Qc/D))\n",
+ "Qc = fsolve(f54,2);# [kJ/hr]\n",
+ "Qc = Qc/3600.0;# [kW]\n",
+ "print\"The Condensor heat load is \",round(Qc),\" kW\\n\"\n",
+ "# From Eqn. 9.77:\n",
+ "def f55(Q_dprime):\n",
+ " return (F*Hf)-((D*Q_prime)+(W*Q_dprime))\n",
+ "Q_dprime = fsolve(f55,2);\n",
+ "def f56(Qb):\n",
+ " return Q_dprime-(HW-(Qb/W))\n",
+ "Qb = fsolve(f56,2);# [kJ/hr]\n",
+ "Qb = Qb/3600.0;# [kW]\n",
+ "print\"The Reboiler heat load is \",round(Qb),\" kW\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (f)\n",
+ "# From Fig: 9.28\n",
+ "Np = 9.0;\n",
+ "# But it is including the reboiler\n",
+ "print\"No. of theoretical trays in tower is\",Np-1,\"\\n\",\n",
+ "G1 = D*(R+1);# [kmol/hr]\n",
+ "Lo = D*R;# [kmol/hr]\n",
+ "# From Fig. 9.28:\n",
+ "# At the feed tray:\n",
+ "x4 = 0.415;\n",
+ "y5 = 0.676;\n",
+ "x5 = 0.318;\n",
+ "y6 = 0.554;\n",
+ "# From Eqn. 9.64:\n",
+ "def f57(L4):\n",
+ " return (L4/D)-((xD-y5)/(y5-x4))\n",
+ "L4 = fsolve(f57,2);# [kmol/hr]\n",
+ "# From Eqn. 9.62:\n",
+ "def f58(G5):\n",
+ " return (L4/G5)-((xD-y5)/(xD-x4))\n",
+ "G5 = fsolve(f58,2);# [kmol/hr]\n",
+ "# From Eqn. 9.74:\n",
+ "def f59(L5_bar):\n",
+ " return (L5_bar/W)-((y6-xW)/(y6-x5))\n",
+ "L5_bar = fsolve(f59,2);# [kmol/hr]\n",
+ "# From Eqn. 9.72:\n",
+ "def f60(G6_bar):\n",
+ " return (L5_bar/G6_bar)-((y6-xW)/(x5-xW))\n",
+ "G6_bar = fsolve(f60,2);# [kmol/hr]\n",
+ "# At the bottom:\n",
+ "# Material Balance:\n",
+ "# Eqn. 9.66:\n",
+ "# (1): L8_bar-GW_bar = W;\n",
+ "# From Fig. 9.28:\n",
+ "yW = 0.035;\n",
+ "x8 = 0.02;\n",
+ "# From Eqn. 9.72:\n",
+ "L8ByGW_bar = (yW-xW)/(x8-xW);\n",
+ "# (2): L8_bar-(L8ByGW_bar*Gw_bar) = 0\n",
+ "a = numpy.array([[1 ,-1],[1 ,-L8ByGW_bar]]);\n",
+ "b = numpy.array([W,0]);\n",
+ "soln = lin.solve(a,b)\n",
+ "L8_bar = soln[0];# [kmol/h]\n",
+ "GW_bar = soln[1];# [kmol/h]\n",
+ "print\"The Liquid quantity inside the tower is \",round(L8_bar),\" kmol/hr\\n\"\n",
+ "print\"The vapour quantity inside the tower is \",round(GW_bar),\" kmol/hr\\n\"\n",
+ "# The answers are slightly different in textbook due to approximation while in python the answers are precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.8 - Page: 388\n",
+ "\n",
+ "\n",
+ "Quantity of Distillate is 2606.0 kg/hr\n",
+ "\n",
+ "Quantity of Residue is 2394.0 kg/hr\n",
+ "\n",
+ "\n",
+ "\n",
+ "The enthalpy of feed is 2545.0 kJ/kmol\n",
+ "\n",
+ "The enthalpy of the residue is 6000.0 kJ/kmol\n",
+ "\n",
+ "\n",
+ "\n",
+ "The minimum reflux ratio is 0.6852 \n",
+ "\n",
+ "\n",
+ "\n",
+ "The minimum number of theoretical trays required is 4.0 \n",
+ "\n",
+ "\n",
+ "\n",
+ "The Condensor heat load is 1609.0 kW\n",
+ "\n",
+ "The Reboiler heat load is 1817.0 kW\n",
+ "\n",
+ "\n",
+ "\n",
+ "No. of theoretical trays in tower is 8.0 \n",
+ "The Liquid quantity inside the tower is 259.0 kmol/hr\n",
+ "\n",
+ "The vapour quantity inside the tower is 127.0 kmol/hr\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.9: Page 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 9.9\n",
+ "# Page: 395\n",
+ "\n",
+ "print'Illustration 9.9 - Page: 395\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import scipy\n",
+ "import numpy\n",
+ "import numpy.linalg as lin\n",
+ "\n",
+ "#****Data****#\n",
+ "P = 695.0;# [kN/square m]\n",
+ "#********#\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "# From Illustration 9.8:\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "F = 216.8;# [kmol/h]\n",
+ "Tempo = 19.7;# [OC]\n",
+ "zF = 0.360;# [mole fraction methanol]\n",
+ "HF = 2533;# [kJ/kmol]\n",
+ "D = 84.4;# [kkmol/h]\n",
+ "zD = 0.915;# [mole fraction methanol]\n",
+ "HD = 3640.0;# [kJ/kmol]\n",
+ "Qc = 5990000.0;# [kJ/h]\n",
+ "# Since the bottom will essentially be pure water:\n",
+ "HW = 6094.0;# [kJ/kmol]\n",
+ "# From Steam tables:\n",
+ "Hs = 2699.0;# [enthalpy of saturated steam, kJ/kg]\n",
+ "hW = 4.2*(Tempo-0);# [enthalpy of water, kJ/kg]\n",
+ "HgNpPlus1 = (Hs-hW)*Mb;# [kJ/kmol]\n",
+ "# (1): GNpPlus1-W = D-F [From Eqn. 9.86]\n",
+ "# (2): (GNpPlus1*HgNpPlus1)-(W*HW) = (D*HD)+Qc-(F*HF) [From Eqn. 9.88]\n",
+ "a = numpy.array([[1 ,-1],[HgNpPlus1 ,-HW]]);\n",
+ "b = numpy.array([[D-F],[(D*HD)+Qc-(F*HF)]]);\n",
+ "soln=lin.solve(a,b)\n",
+ "GNpPlus1 = soln[0];# [kmol/h]\n",
+ "W = soln[1];# [kmol/h]\n",
+ "# From Eqn. 9.87:\n",
+ "def f61(xW):\n",
+ " return (F*zF)-((D*zD)+(W*xW))\n",
+ "xW = fsolve(f61,2);\n",
+ "# The enthalpy of the solution at its bubble point is 6048 kJ/kmol, sufficiently closed to 6094 assumed earlier.\n",
+ "# For delta_w:\n",
+ "xdelta_w = W*xW/(W-GNpPlus1);\n",
+ "Q_dprime = ((W*HW)-(GNpPlus1*HgNpPlus1))/(W-GNpPlus1);# [kJ/kmol]\n",
+ "# From Fig 9.27 ad Fig. 9.28, and for the stripping section:\n",
+ "Np = 9.5;\n",
+ "print\"Steam Rate: \",round(GNpPlus1,1),\"kmol/h\\n\"\n",
+ "print\"Bottom Composition: xW:\",round(xW,5),\"\\n\"\n",
+ "print\"Number of theoretical stages: \",Np,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.9 - Page: 395\n",
+ "\n",
+ "\n",
+ "Steam Rate: 159.7 kmol/h\n",
+ "\n",
+ "Bottom Composition: xW: 0.00281 \n",
+ "\n",
+ "Number of theoretical stages: 9.5 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.10: Page 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.10\n",
+ "# Page: 412\n",
+ "\n",
+ "print'Illustration 9.10 - Page: 412\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# Feed:\n",
+ "F1 = 5000;# [kg/h]\n",
+ "F = 216.8;# [kmol/h]\n",
+ "Tempo = 19.7;# [OC]\n",
+ "zF = 0.360;# [mole fraction methanol]\n",
+ "MavF = 23.1;# [kg/kmol]\n",
+ "Tempf = 58.3;# [OC]\n",
+ "# Distillate:\n",
+ "D1 = 2620;# [kg/h]\n",
+ "D = 84.4;# [kkmol/h]\n",
+ "xD = 0.915;# [mole fraction methanol]\n",
+ "# Residue:\n",
+ "R1 = 2380;# [kg/h]\n",
+ "R = 132.4;# [kmol/h]\n",
+ "xW = 0.00565;# [mole fraction methanol]\n",
+ "\n",
+ "# From Fig. 9.42 (Pg 413):\n",
+ "BtF = 76.0;# [Bubble point if the feed, OC]\n",
+ "DtF = 89.7;# [Dew point of the feed, OC]\n",
+ "# Latent heat of vaporisation at 76 OC\n",
+ "lambda_a = 1046.7;# [kJ/kg]\n",
+ "lambda_b = 2284;# [kJ/kg]\n",
+ "ha = 2.721;# [kJ/kg K]\n",
+ "hb = 4.187;# [kJ/kg K]\n",
+ "hF = 3.852;# [kJ/kg K]\n",
+ "# If heats of solution is ignaored:\n",
+ "# Enthalpy of the feed at the bubble point referred to the feed temp.\n",
+ "HF = hF*MavF*(BtF-Tempf);# [kJ/kmol]\n",
+ "# enthalpy of the saturated vapour at dew point referred to the liquid at feed temp.\n",
+ "HL = (zF*((ha*Ma*(DtF-Tempf))+(lambda_a*Ma)))+((1-zF)*((hb*Mb*(DtF-Tempf))+(lambda_b*Mb)));# [kJ/kmol]\n",
+ "q = HL/(HL-HF);\n",
+ "slope = q/(q-1);\n",
+ "# In fig. 9.42: xD,xW & zF are located on the 45 degree diagonal & the q line is drawn with slope = 'slope' .\n",
+ "# The operating line for minimum reflux ratio in this case pass through the intersection of the q line and the equilibrium curve.\n",
+ "ordinate = 0.57;\n",
+ "def f62(Rm):\n",
+ " return ordinate-(xD/(Rm+1))\n",
+ "Rm = fsolve(f62,0);# [mole reflux/mole distillate]\n",
+ "# from fig. 9.42 (Pg 413):\n",
+ "# The minimum number of theoretical trays is determied using the 45 degree diagonal as operating line.\n",
+ "Np = 4.9;# [including the reboiler]\n",
+ "R = 1.5*Rm;# [mole reflux/mole distillate]\n",
+ "# From Eqn. 9.49:\n",
+ "L = R*D;# [kmol/h]\n",
+ "# From Eqn. 9.115:\n",
+ "G = D*(R+1);# [kmol/h]\n",
+ "# From Eqn. 9.126:\n",
+ "L_bar = (q*F)+L;# [kmol/h]\n",
+ "# From Eqn. 9.127:\n",
+ "G_bar = (F*(q-1))+G;# [kmol/h]\n",
+ "ordinateN = xD/(R+1);\n",
+ "# As in Fig. 9.43:\n",
+ "# The y-intercept = ordinateN and enriching and exhausting operating lines are plotted.\n",
+ "# Number of theoretical stages are determined.\n",
+ "NpN = 8.8;# [including the reboiler]\n",
+ "print\"Number of theoretical stages is \",NpN-1,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.10 - Page: 412\n",
+ "\n",
+ "\n",
+ "Number of theoretical stages is 7.8 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.11: Page 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.11\n",
+ "# Page: 423\n",
+ "\n",
+ "print'Illustration 9.11 - Page: 423\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# a:ethanol b:water\n",
+ "zF = 0.3;\n",
+ "xa = 0.3;# [mole fraction of ethanol]\n",
+ "Temp = 78.2;# [OC]\n",
+ "Ao = 0.0462;# [Area of perforations,square m]\n",
+ "t = 0.450;# [m]\n",
+ "#******#\n",
+ "\n",
+ "Ma = 46.05;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "xb = 1-xa;# [mole fraction of water]\n",
+ "ma = 0.3*Ma/((0.3*Ma)+(xb*Mb));# [mass fraction of ethanol]\n",
+ "mb = 1-ma;# [mass fraction of water]\n",
+ "\n",
+ "\n",
+ "# Feed:\n",
+ "F1 = 910.0;# [kg/h]\n",
+ "Xa = F1*ma/Ma;# [moles of ethanol]\n",
+ "Xb = F1*mb/Mb;# [moles of water]\n",
+ "F = Xa+Xb;# [Total moles]\n",
+ "# Distillate:\n",
+ "xD = 0.80;# [mole fraction of ethanol]\n",
+ "# If essentially all the ethanol is removed from the residue:\n",
+ "D = Xa/xD;# [kmol/h]\n",
+ "MavD = (xD*Ma)+((1-xD)*Mb);# [kg/kmol]\n",
+ "D1 = D*MavD;# [kg/h]\n",
+ "Density_G = (MavD/22.41)*(273.0/(273+Temp));# [kg/cubic meter]\n",
+ "Density_L = 744.9;# [kg/cubic meter]\n",
+ "sigma = 0.021;# [N/m]\n",
+ "\n",
+ "# From Table 6.2,Pg 169:\n",
+ "alpha = (0.0744*t)+0.01173;\n",
+ "beeta = (0.0304*t)+0.015;\n",
+ "At = math.pi*(0.760**2)/4;# [Tower cross sectional Area, square m]\n",
+ "WByT = 530.0/760;# [Table 6.1, Pg 162]\n",
+ "Ad = 0.0808*At;# [Downspout area,square m]\n",
+ "Aa = At-(2*Ad);# [Active area,square m]\n",
+ "# abcissa = (L/G)*(density_G/Density_L)^0.5\n",
+ "# Assume:\n",
+ "abcissa = 0.1;\n",
+ "# From Eqn.6.30:\n",
+ "Cf = (alpha*math.log10(1/abcissa)+beeta)*(sigma/0.020)**0.2;\n",
+ "# From Eqn. 6.29:\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1.0/2);# [m/s]\n",
+ "An = At-Ad;# [square m]\n",
+ "R = 3.0;# [Reflux Ratio]\n",
+ "G = D*(R+1);\n",
+ "G1 = (G*22.41/3600)*((273.0+Temp)/273);# [cubic meter/s]\n",
+ "V = G1/An;# [Vapour velocity,m/s]\n",
+ "percent = (V/Vf)*100;\n",
+ "# Vapour velocity is 58 percent of flooding velocity (amply safe)\n",
+ "L = R*D;# [kmol/h]\n",
+ "L1 = L*MavD;# [kg/h]\n",
+ "abcissa = (L1/(G1*3600.0*Density_G))*(Density_G/Density_L)**0.5;\n",
+ "# Since the value of abcissa is less than0.1, the calculaed value of Cf is correct.\n",
+ "# Since the feed is at the buubble point.\n",
+ "q = 1;\n",
+ "# From Eqn. 9.126:\n",
+ "L_bar = L+(q*F);# [kmol/h]\n",
+ "# From Eqn. 9.127:\n",
+ "G_bar = G+F*(q-1);# [kmol/h]\n",
+ "# The enthalpy of saturated steam,referred to 0 OC,69 kN/square m:\n",
+ "HGNpPlus1 = 2699.0;# [kN m/kg]\n",
+ "# This will be the enthalpy as it enters the tower if expanded adiabatically to the tower pressure\n",
+ "# The enthalpy of steam at 1 std. atm:\n",
+ "HGsat = 2676.0;# [kN m/kg]\n",
+ "Lambda = 2257.0;# [kN m/kg]\n",
+ "# From Eqn. 9.140:\n",
+ "def f63(GNpPlus1_bar):\n",
+ " return G_bar-(GNpPlus1_bar*(1+((HGNpPlus1-HGsat)*Mb/(Lambda*Mb))))\n",
+ "GNpPlus1_bar = fsolve(f63,7);\n",
+ "# From Eqn. 9.141:\n",
+ "LNp_bar = L_bar-(G_bar-GNpPlus1_bar);\n",
+ "\n",
+ "# Tray Efficiencies:\n",
+ "# Consider the situation:\n",
+ "x = 0.5;\n",
+ "y_star = 0.962;\n",
+ "Temp = 79.8;# [OC]\n",
+ "# This is in the enriching section.\n",
+ "Density_L = 791;# [kg/cubic meter]\n",
+ "Density_G = 1.253;# [kg/cubic meter]\n",
+ "# From equilibrium data:\n",
+ "m = 0.42;\n",
+ "A = L/(m*G);\n",
+ "# From chapter 2:\n",
+ "ScG = 0.930;\n",
+ "Dl = 2.065*10**(-9);# [square m/s]\n",
+ "# For L = 38.73 kmol/h\n",
+ "q = 4.36*10**(-4);# [cubic meter/s]\n",
+ "# For G = 51.64 kmol/h\n",
+ "Va = 1.046;# [m/s]\n",
+ "# From tray dimensions:\n",
+ "z = 0.647;# [m]\n",
+ "Z = 0.542;# [m]\n",
+ "hW = 0.06;# [m]\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/(ScG**0.5);\n",
+ "# From Eqn. 6.38\n",
+ "hL = 6.10*10**(-3)+(0.725*hW)-(0.238*hW*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "# From Eqn. 6.64:\n",
+ "thetha_L = hL*z*Z/q;# [s]\n",
+ "# From Eqn. 6.62:\n",
+ "NtL = 40000*(Dl**0.5)*((0.213*Va*Density_G**0.5)+0.15)*thetha_L;\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1/((1/NtG)+(1/(A*NtL)));\n",
+ "# From Eqn. 6.51:\n",
+ "EoG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.63:\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thetha_L);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2)*((1+(4*m*G1*EoG/(L1*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EoG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+((math.exp(eta)-1)/(eta*(1+(eta/(eta+Pe))))));\n",
+ "# Entrainment is neglible:\n",
+ "# Similarly for other x\n",
+ "# Value = [x Entrainment]\n",
+ "#Value = [0 0.48;0.1 .543;0.3 0.74;0.5 EMG;0.7 0.72];\n",
+ "\n",
+ "# Tray Calculation:\n",
+ "op_intercept = xD/(R+1);\n",
+ "# From Fig. 9.48:\n",
+ "# The exhausting section operating line, on this scale plot, for all practical purposes passes through the origin.\n",
+ "# The broken curve is located so that, at each concentration, vertical distances corresponding to lines BC and AC are in the ratio of EMG.\n",
+ "# This curve is used instead of equilibrium trays to locate the ideal trays.\n",
+ "# The feed tray is thirteenth.\n",
+ "x14 = 0.0150;\n",
+ "alpha = 8.95;\n",
+ "EMG = 0.48;\n",
+ "A_bar = L_bar/(alpha*G_bar);\n",
+ "# From Eqn. 8.16:\n",
+ "Eo = math.log(1+(EMG*((1/A_bar)-1)))/math.log(1/A_bar);\n",
+ "# The 6 real trays corresponds to: \n",
+ "NRp = 6*Eo;\n",
+ "xW = 0.015/((math.exp(NRp*math.log(1/A_bar))-A_bar)/(1-A_bar));# [mole fraction ethanol]\n",
+ "# This corresponds to ethanol loss of 0.5 kg/day.\n",
+ "print\"The mole fraction of ethanol in residue is\",round(xW,8)\n",
+ "print\"The Reflux ratio of \",R,\" will cause the ethanol loss of 0.5 kg/day\\n\"\n",
+ "print\"Larger reflux ratios would reduce this, but the cost of additional steam will probaby make them not worthwile.\\n\"\n",
+ "print\"Smaller values of R, with corresponding reduced steam cost and larger ethanol loss, should be considered, but care must be taken to ensure vapour velocities above the weeping velocities.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.11 - Page: 423\n",
+ "\n",
+ "\n",
+ "The mole fraction of ethanol in residue is 6.28e-06\n",
+ "The Reflux ratio of 3.0 will cause the ethanol loss of 0.5 kg/day\n",
+ "\n",
+ "Larger reflux ratios would reduce this, but the cost of additional steam will probaby make them not worthwile.\n",
+ "\n",
+ "Smaller values of R, with corresponding reduced steam cost and larger ethanol loss, should be considered, but care must be taken to ensure vapour velocities above the weeping velocities.\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex-9.12: Pg- 429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 9.12\n",
+ "# Page: 429\n",
+ "\n",
+ "print'Illustration 9.12 - Page: 429\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "# Vapour and liquid quantities throughout the tower, as in Illustration 9.8, with the Eqn. 9.62, 9.64, 9.72, 9.74:\n",
+ "# Data = [x tL(OC) y tG(OC) Vapor(kmol/h) Vapor(kg/h) Liquid(kmol/h) Liquid(kg/h)]\n",
+ "Ma = 34.02;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "Temp = 78.7;# [OC]\n",
+ "x = numpy.array([0.915, 0.600 ,0.370, 0.370, 0.200, 0.100, 0.02]);\n",
+ "y = numpy.array([0.915, 0.762, 0.656, 0.656, 0.360 ,0.178, 0.032]);\n",
+ "\n",
+ "plt.plot(x,y);\n",
+ "plt.grid('on');\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"mole fraction of methanol in liquid\");\n",
+ "ax.set_ylabel(\"mole fraction of methanol in vapour\");\n",
+ "plt.title(\"Operating Line curve\");\n",
+ "plt.legend(loc=\"lower right\")\n",
+ "plt.show()\n",
+ "#x = 0.370: the dividing point between stripping and enriching section\n",
+ "tL =numpy.array([66, 71, 76, 76, 82, 87, 96.3]);# [Bubble point, OC]\n",
+ "tG = numpy.array([68.2 ,74.3 ,78.7 ,78.7 ,89.7 ,94.7 ,99.3]);# [Dew Point, OC]\n",
+ "Vapor = numpy.array([171.3, 164.0 ,160.9, 168.6, 161.6, 160.6, 127.6]);# [kmol/h]\n",
+ "Vapor1 = numpy.array([5303, 4684, 4378, 4585, 3721, 3296 ,2360]);# [kg/h]\n",
+ "Liquid = numpy.array([86.7 ,79.6 ,76.5 ,301, 294, 293, 260]);# [kmol/h]\n",
+ "Liquid1 = numpy.array([2723, 2104, 1779 ,7000, 6138, 5690 ,4767]);# [kg/h]\n",
+ "Data = numpy.zeros(shape=(7,8));\n",
+ "for j in range(1,7):\n",
+ " Data[j,0]= x[j];\n",
+ " Data[j,1]= tL[j];\n",
+ " Data[j,2]= y[j];\n",
+ " Data[j,3]= tG[j];\n",
+ " Data[j,4]= Vapor[j]; \n",
+ " Data[j,5]= Vapor1[j];\n",
+ " Data[j,6]= Liquid[j];\n",
+ " Data[j,7]= Liquid1[j];\n",
+ "\n",
+ "# The tower diameter will be set by the conditions at the top of the stripping section because of the large liquid flow at this point.\n",
+ "# From Illustration 9.8:\n",
+ "G = Data[3,5];\n",
+ "L = Data[3,7];\n",
+ "Density_G = (Data[3,5]/(22.41*Data[3,4]))*(273.0/(273+Temp));# [kg/cubic m]\n",
+ "Density_L = 905.0;# [kg/cubic m]\n",
+ "# abcissa = (L/G)*(Density_L/Density_G)^0.5\n",
+ "abcissa = (Data[3,7]/Data[3,5])*(Density_G/Density_L)**0.5;\n",
+ "# From Fig. 6.34, choose a gas pressure drop of 450 N/square m/m\n",
+ "ordinate = 0.0825;\n",
+ "# From Table 6.3 (Pg 196):\n",
+ "Cf = 95;\n",
+ "viscosity_L = 4.5*10**(-4);# [kg/m.s]\n",
+ "sigma = 0.029;# [N/m]\n",
+ "J = 1;\n",
+ "G_prime = (ordinate*Density_G*(Density_L-Density_G)/(Cf*viscosity_L**0.1))**0.5;# [kg/square m.s]\n",
+ "A = G/(3600*G_prime);# [Tower ,cross section area,square m]\n",
+ "L_prime = L/(A*3600);# [kg/square m.s]\n",
+ "# Mass transfer will be computed for the same location:\n",
+ "# From Table 6.4 (Pg 205):\n",
+ "m = 36.4;\n",
+ "n = (0.0498*L_prime)-0.1013;\n",
+ "p = 0.274;\n",
+ "aAW = m*((808*G_prime/Density_G**0.5)**n)*L_prime**p;# [square m/cubic m]\n",
+ "# From Table 6.5 (Pg 206):\n",
+ "dS = 0.0530;# [m]\n",
+ "beeta = 1.508*dS**0.376;\n",
+ "shi_LsW = 2.47*10**(-4)/dS**1.21;\n",
+ "shi_LtW = ((2.09*10**(-6))*(737.5*L_prime)**beeta)/dS**2;\n",
+ "shi_LOW = shi_LtW-shi_LsW; \n",
+ "shi_Ls = (0.0486*viscosity_L**0.02*sigma**0.99)/(dS**1.21*Density_L**0.37);\n",
+ "H = ((975.7*L_prime**0.57*viscosity_L**0.13)/(Density_L**0.84*((2.024*L_prime**0.430)-1)))*(sigma/0.073)**(0.1737-0.262*math.log10(L_prime));# [m]\n",
+ "shi_Lo = shi_LOW*H;\n",
+ "shi_Lt = shi_Lo+shi_Ls;\n",
+ "# From Eqn. 6.73:\n",
+ "aA = aAW*(shi_Lo/shi_LOW);# [square m/cubic m]\n",
+ "# From Table 6.3 (Pg 196):\n",
+ "e = 0.71;\n",
+ "# From Eqn. 6.71:\n",
+ "eLo = e-shi_Lt;\n",
+ "# From Chapter 2:\n",
+ "ScG = 1;\n",
+ "MavG = 0.656*Ma+(1-0.656)*Mb;# [kg/kmol]\n",
+ "G = G_prime/MavG;\n",
+ "viscosity_G = 2.96*10**(-5);# [kg/m.s]\n",
+ "# From Eqn. 6.70:\n",
+ "Fg = (1.195*G/ScG**(2/3))*((dS*G_prime/(viscosity_G*(1-eLo)))**(-0.36));# [kmol/square m s (mole fraction)]\n",
+ "kY_prime = Fg;# [kmol/square m s (mole fraction)]\n",
+ "DL = 4.80*10**(-9);# [square m/s]\n",
+ "ScL = viscosity_L/(Density_L*DL);\n",
+ "# From Eqn. 6.72:\n",
+ "kL = (25.1*DL/dS)*((dS*L_prime/viscosity_L)**0.45)*ScL**0.5;# [kmol/square m s (kmol/cubic m)]\n",
+ "# At 588.33 OC\n",
+ "Density_W = 53.82;# [kg/cubic m]\n",
+ "kx_prime = Density_W*kL;# [kmol/square m s (mole fraction)]\n",
+ "# Value1 = [x G a ky_prime*10^3 kx_prime]\n",
+ "Value1 = numpy.array([[0.915 ,0.0474 ,20.18 ,1.525, 0.01055],[0.6, 0.0454 ,21.56 ,1.542, 0.00865],[0.370 ,0.0444 ,21.92 ,1.545 ,0.00776],[0.370, 0.0466 ,38, 1.640, 0.0143],[0.2 ,0.0447, 32.82 ,1.692 ,0.0149],[0.1 ,0.0443 ,31.99 ,1.766 ,0.0146],[0.02, 0.0352 ,22.25 ,1.586 ,0.0150]]);\n",
+ "# From Fig: 9.50\n",
+ "# At x = 0.2:\n",
+ "y = 0.36;\n",
+ "slope = -(Value1[4,4]/(Value1[4,3]*10**(-3)));\n",
+ "# The operating line drawn from(x,y) with slope. The point where it cuts the eqb. line gives yi.\n",
+ "# K = ky_prime*a(yi-y)\n",
+ "# For the enriching section:\n",
+ "# En = [y yi 1/K Gy]\n",
+ "En = numpy.array([[0.915 ,0.960, 634 ,0.0433],[0.85 ,0.906 ,532.8 ,0.0394],[0.8 ,0.862 ,481.1 ,0.0366],[0.70, 0.760 ,499.1, 0.0314],[0.656, 0.702, 786.9, 0.0292]]);\n",
+ "# For the Stripping section:\n",
+ "# St = [y yi 1/K Gy]\n",
+ "St = numpy.array([[0.656, 0.707, 314.7, 0.0306],[0.50, 0.639, 124.6 ,0.0225],[0.40 ,0.580, 99.6 ,0.01787],[0.3 ,0.5 ,89 ,0.0134],[0.2 ,0.390, 92.6 ,0.00888],[0.10, 0.232, 154.5, 0.00416],[0.032 ,0.091, 481 ,0.00124]])\n",
+ "# Graphical Integration, according to Eqn.9.52::\n",
+ "\n",
+ "plt.plot(En[:,3],En[:,2],'g');\n",
+ "plt.grid();\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Gy\");\n",
+ "ax.set_ylabel(\"1 / (ky_prime*a*(yi-y))\");\n",
+ "plt.title(\"Graphical Integration for Enriching section\");\n",
+ "plt.show()\n",
+ "# From Area under the curve:\n",
+ "Ze = 7.53;# [m]\n",
+ "# Graphical Integration:\n",
+ "\n",
+ "plt.plot(St[:,3],St[:,2],'r');\n",
+ "plt.grid('on');\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Gy\");\n",
+ "ax.set_ylabel(\"1 / (ky_prime*a*(yi-y))\");\n",
+ "plt.title(\"Graphical Integration for Stripping section\");\n",
+ "plt.show()\n",
+ "\n",
+ "# From Area under the curve:\n",
+ "Zs = 4.54;# [m]\n",
+ "# Since the equlibrium curve slope varies so greatly that the use of overall mass transfer coeffecient is not recommended:\n",
+ "print\"Height of Tower for enriching Section is \",Ze,\" m\\n\"\n",
+ "print\"Height of Tower for Stripping Section is \",Zs,\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.12 - Page: 429\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5ce470>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nOOecy8r/B+9bLqWB6Di+AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7bc0518>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n4zit4v8B7C9A0gfoBi8AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa7dcd30>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height of Tower for enriching Section is 7.53 m\n",
+ "\n",
+ "Height of Tower for Stripping Section is 4.54 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.13: Page 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.13:\n",
+ "\n",
+ "print'Illustration 9.13\\n\\n'\n",
+ "\n",
+ "#**************************Calculation Of Minimum Reflux ratio************************#\n",
+ "# Page: 436\n",
+ "print'Page: 436\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy import interp\n",
+ "from scipy.optimize import fsolve\n",
+ "import numpy.linalg as lin\n",
+ "#***Data***#\n",
+ "# C1:CH4 C2:C2H6 C3:n-C3H8 C4:n-C4H10 C5:n-C5H12 C6:n-C6H14\n",
+ "# zF = [zF(C1) zF(C2) zF(C3) zF(C4) zF(C5) zF(C6)]\n",
+ "zF = numpy.array([0.03 ,0.07 ,0.15 ,0.33 ,0.30 ,0.12]);# [mole fraction]\n",
+ "LF_By_F = 0.667;\n",
+ "Temp = 82;# [OC]\n",
+ "ylk = 0.98;\n",
+ "yhk = 0.01;\n",
+ "#**********#\n",
+ "\n",
+ "# Data = [m HG HL(30 OC);m HG HL(60 OC);m HG HL(90 OC);m HG HL(120 OC);]\n",
+ "Data1 = numpy.array([[16.1 ,12790 ,9770],[19.3 ,13910, 11160],[21.8 ,15000, 12790],[24.0 ,16240, 14370]]);# [For C1]\n",
+ "Data2 = numpy.array([[3.45, 22440, 16280],[4.90 ,24300 ,18140],[6.25 ,26240 ,19890],[8.15 ,28140, 21630]]);# [For C2]\n",
+ "Data3 = numpy.array([[1.10, 31170, 16510],[2.00 ,33000 ,20590],[2.90, 35800 ,25600],[4.00 ,39000, 30900]]);# [For C3]\n",
+ "Data4 = numpy.array([[0.35, 41200 ,20350],[0.70 ,43850 ,25120],[1.16 ,46500, 30000],[1.78 ,50400 ,35400]]);# [For C4]\n",
+ "Data5 = numpy.array([[0.085, 50500, 24200],[0.26, 54000 ,32450],[0.50 ,57800 ,35600],[0.84, 61200 ,41400]]);# [For C5]\n",
+ "Data6 = numpy.array([[0.0300, 58800 ,27700],[0.130, 63500, 34200],[0.239 ,68150 ,40900],[0.448, 72700 ,48150]]);# [For C6]\n",
+ "\n",
+ "# T = [Temparature]\n",
+ "T = numpy.array([30,60,0,120]);\n",
+ "\n",
+ "# Flash vaporisation of the Feed:\n",
+ "# Basis: 1 kmol feed throughout\n",
+ "# After Several trials, assume:\n",
+ "F = 1.0;# [kmol]\n",
+ "GF_By_F = 0.333;\n",
+ "LF_By_GF = LF_By_F/GF_By_F;\n",
+ "m82 = numpy.zeros(6);\n",
+ "y = numpy.zeros(6);\n",
+ "m82[0] = interp(Temp,T,Data1[:,1]);# [For C1]\n",
+ "m82[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m82[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m82[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m82[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m82[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "for i in range (0,6):\n",
+ " y[i] = zF[i]*(LF_By_GF+1)/(1.0+(2/m82[i]));\n",
+ "\n",
+ "Sum = sum(y);\n",
+ "# Since Sum is sufficiently close to 1.0, therefore:\n",
+ "q = 0.67;# [LF_By_F]\n",
+ "# Assume:\n",
+ "# C3: light key\n",
+ "# C5: heavy key\n",
+ "zlkF = zF[2];# [mole fraction]\n",
+ "zhkF = zF[4];# [mole fraction]\n",
+ "ylkD = ylk*zF[2];# [kmol]\n",
+ "yhkD = yhk*zF[4];# [kmol]\n",
+ "\n",
+ "# Estimate average Temp to be 80 OC\n",
+ "m80 = numpy.zeros(6);\n",
+ "alpha80 = numpy.zeros(6);\n",
+ "m80[0] = interp(Temp,T,Data1[:,0]);# [For C1]\n",
+ "m80[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m80[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m80[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m80[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m80[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "for i in range(0,6):\n",
+ " alpha80[i] = m80[i]/m80[4];\n",
+ "\n",
+ "# By Eqn. 9.164:\n",
+ "yD_By_zF1 = (((alpha80[0]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[0])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C1]\n",
+ "yD_By_zF2 = (((alpha80[1]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[1])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C2]\n",
+ "yD_By_zF6 = (((alpha80[5]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[5])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C6]\n",
+ "# The distillate contains:\n",
+ "yC1 = 0.03;# [kmol C1]\n",
+ "yC2 = 0.07;# [kmol C2]\n",
+ "yC6 = 0;# [kmol C6]\n",
+ "# By Eqn 9.165:\n",
+ "def g1(phi):\n",
+ " return (((alpha80[0]*zF[0])/(alpha80[0]-phi))+((alpha80[1]*zF[1])/(alpha80[1]-phi))+((alpha80[2]*zF[2])/(alpha80[2]-phi))+((alpha80[3]*zF[3])/(alpha80[3]-phi))+((alpha80[4]*zF[4])/(alpha80[4]-phi))+((alpha80[5]*zF[5])/(alpha80[5]-phi)))-(F*(1-q))\n",
+ "# Between alphaC3 & alphaC4:\n",
+ "phi1 = fsolve(g1,3);\n",
+ "# Between alphaC4 & alphaC5:\n",
+ "phi2 = fsolve(g1,1.5);\n",
+ "# From Eqn. 9.166:\n",
+ "# Val = D*(Rm+1)\n",
+ "# (alpha80(1)*yC1/(alpha80(1)-phi1))+(alpha80(2)*yC2/(alpha80(2)-phi1))+(alpha80(3)*ylkD/(alpha80(3)-phi1))+(alpha80(4)*yD/(alpha80(4)-phi1))+(alpha80(i)*yhkD/(alpha80(5)-phi1))+(alpha80(6)*yC6/(alpha80(6)-phi1)) = Val.....................(1)\n",
+ "# (alpha80(1)*yC1/(alpha80(1)-phi2))+(alpha80(2)*yC2/(alpha80(2)-phi2))+(alpha80(3)*ylkD/(alpha80(3)-phi2))+(alpha80(4)*yD/(alpha80(4)-phi2))+(alpha80(i)*yhkD/(alpha80(5)-phi2))+(alpha80(6)*yC6/(alpha80(6)-phi2)) = Val ....................(2)\n",
+ "# Solving simultaneously:\n",
+ "a =numpy.array([[-alpha80[3]/(alpha80[3]-phi1), 1],[-alpha80[3]/(alpha80[3]-phi2), 1]]);\n",
+ "b =numpy.array([[alpha80[0]*yC1/[alpha80[0]-phi1]]+[alpha80[1]*yC2/[alpha80[1]-phi1]]+[alpha80[2]*ylkD/[alpha80[2]-phi1]]+[alpha80[i]*yhkD/[alpha80[4]-phi1]]+[alpha80[5]*yC6/[alpha80[5]-phi1]],[alpha80[0]*yC1/[alpha80[0]-phi2]]+[alpha80[1]*yC2/[alpha80[1]-phi2]]+[alpha80[2]*ylkD/[alpha80[2]-phi2]]+[alpha80[i]*yhkD/[alpha80[4]-phi2]]+[alpha80[5]*yC6/[alpha80[5]-phi2]]])\n",
+ "soln = lin.solve(a,b);\n",
+ "yC4 =0.1313547 # [kmol C4 in the distillate]\n",
+ "Val =0.617469; # [kmol C4 in the distillate]\n",
+ "# For the distillate, at a dew point of 46 OC\n",
+ "ydD = numpy.array([yC1,yC2 ,ylkD ,yC4 ,yhkD ,yC6]);\n",
+ "D = sum(ydD);\n",
+ "yD = zeros(6);\n",
+ "m46 = zeros(6);\n",
+ "alpha46 = zeros(6);\n",
+ "Ratio1= zeros(6);\n",
+ "m46[0] = interp(Temp,T,Data1[:,0]);# [For C1]\n",
+ "m46[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m46[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m46[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m46[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m46[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "yD=numpy.array([0.0786,0.1835,0.3854,0.34,0.007866,0.0])\n",
+ "# mhk = mC5 at 46.6 OC, the assumed 46 OC is satisfactory.\n",
+ "\n",
+ "# For the residue, at a dew point of 46 OC\n",
+ "xwW =numpy.array([zF[0]-yC1, zF[1]-yC2 ,zF[2]-ylkD, zF[3]-yC4, zF[4]-yhkD, zF[5]-yC6]);\n",
+ "W = sum(xwW);\n",
+ "xW = zeros(6);\n",
+ "m113 = zeros(6);\n",
+ "alpha113 = zeros(6);\n",
+ "alphalk_av=zeros(6);\n",
+ "alpha_av=zeros(6);\n",
+ "Value=zeros(6);\n",
+ "m113[0] = interp(Temp,T,Data1[:,1]);# [For C1]\n",
+ "m113[1] = interp(Temp,T,Data2[:,1]);# [For C2]\n",
+ "m113[2] = interp(Temp,T,Data3[:,1]);# [For C3]\n",
+ "m113[3] = interp(Temp,T,Data4[:,1]);# [For C4]\n",
+ "m113[4] = interp(Temp,T,Data5[:,1]);# [For C5]\n",
+ "m113[5] = interp(Temp,T,Data6[:,1]);# [For C6]\n",
+ "for i in range(0,6):\n",
+ " alpha113[i] = m113[i]/m113[4];\n",
+ " xW[i] = xwW[i]/W;\n",
+ " # Ratio = yD/alpha46\n",
+ " Value[i] = alpha113[i]*xW[i];\n",
+ "\n",
+ "# mhk = mC5 at 114 OC, the assumed 113 OC is satisfactory.\n",
+ "Temp_Avg = (114+46.6)/2;# [OC]\n",
+ "# Temp_avg is very close to the assumed 80 OC\n",
+ "Rm = (Val/D)-1;\n",
+ "print\"Minimum Reflux Ratio is \",Rm,\" mol reflux/mol distillate\\n \\n\"\n",
+ "print\"*****************Distillate Composition*********************\\n\"\n",
+ "print\"C1\\t \\t \\t \\t:\",yD[0]\n",
+ "print\"C2\\t \\t \\t \\t:\",yD[1]\n",
+ "print\"C3\\t \\t \\t \\t:\",yD[2]\n",
+ "print\"C4\\t \\t \\t \\t:\",yD[3]\n",
+ "print\"C5\\t \\t \\t \\t:\",yD[4]\n",
+ "print\"C6\\t \\t \\t \\t:\",yD[5]\n",
+ "print\"\\n\"\n",
+ "print\"*****************Residue Composition*********************\\n\"\n",
+ "print\"C1\\t \\t \\t \\t: \",xW[0]\n",
+ "print\"C2\\t \\t \\t \\t: \",xW[1]\n",
+ "print\"C3\\t \\t \\t \\t: \",xW[2]\n",
+ "print\"C4\\t \\t \\t \\t: \",xW[3]\n",
+ "print\"C5\\t \\t \\t \\t: \",xW[4]\n",
+ "print\"C6\\t \\t \\t \\t: \",xW[5]\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**********************Number of Theoretical stage***********************#\n",
+ "# Page:440\n",
+ "print'Page: 440\\n\\n'\n",
+ "\n",
+ "for i in range(0,6):\n",
+ " alpha_av[i] = (alpha46[i]*alpha113[i])**0.5;\n",
+ "\n",
+ "alphalk_av = alpha_av[1];\n",
+ "# By Eqn. 9.167:\n",
+ "xhkW = xwW[3];\n",
+ "xlkW = xwW[1];\n",
+ "Nm = 3.496;\n",
+ "# Ratio = yD/xW\n",
+ "Ratio2= zeros(6)\n",
+ "for i in range(0,6):\n",
+ " Ratio2[i] = (alpha_av[i]**(Nm+1))*yhkD/xhkW;\n",
+ "\n",
+ "# For C1:\n",
+ "# yC1D-Ratio(1)*xC1W = 0\n",
+ "# yC1D+xC1W = zF(1)\n",
+ "# Similarly for others\n",
+ "yD2=zeros(6)\n",
+ "xW2=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " a = numpy.array([[1 ,-Ratio2[i]],[1, 1]]);\n",
+ " b = [0,zF[i]];\n",
+ " soln =lin.solve(a,b);\n",
+ " yD2[i] = soln[0];# [kmol]\n",
+ " xW2[i] = soln[1];# [kmol]\n",
+ "\n",
+ "D = sum(yD2);# [kmol]\n",
+ "W = sum(xW2);# [kmol]\n",
+ "# The distillate dew point computes to 46.6 OC and the residue bubble point computes to 113 OC, which is significantly close to the assumed.\n",
+ "\n",
+ "#***************Product composition at R = 0.8***********************#\n",
+ "# Page:441\n",
+ "print'Page: 441\\n\\n'\n",
+ "\n",
+ "# Since C1 and C2 do not enter in the residue nor C6 in the distillate, appreciably at total reflux or minimum reflux ratio, it will be assumed that they will not enter R = 0.8. C3 and C5 distribution are fixed by specifications. Only that C4 remains to be estimated.\n",
+ "# R = [Infinte 0.8 0.58] [Reflux ratios For C4]\n",
+ "R = [inf ,0.8, 0.58];\n",
+ "# Val = R/(R+1)\n",
+ "val=[ 0 , 2.0 , 2.0]\n",
+ "# ydD = [Inf 0.58] \n",
+ "y4D = [0.1255, 0.1306];\n",
+ "yC4D = 0.1306 ;# by Linear Interpolation\n",
+ "# For Distillate:\n",
+ "Sum1 = sum(Ratio1);\n",
+ "x0 = numpy.array([0.004,0.0444501,0.2495,0.65640,0.0451,0.0])\n",
+ "print\"For the reflux ratio of 0.8\\n\"\n",
+ "print\"*****************Distillate Composition*********************\\n\"\n",
+ "print\"\\t\\t\\t Liquid reflux in equilibrium with the distillate vapour\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t \\t\\t:\",x0[i]\n",
+ "\n",
+ "# For boiler:\n",
+ "\n",
+ "#**********Number Of Theoretical Trays***************#\n",
+ "# Page: 443\n",
+ "print'Page: 443\\n\\n'\n",
+ "\n",
+ "R = 0.8;# [reflux ratio]\n",
+ "# From Eqn. 9.175\n",
+ "intersection = (zlkF-(ylkD/D)*(1-q)/(R+1))/(zhkF-(yhkD/D)*(1-q)/(R+1));\n",
+ "# Enriching Section:\n",
+ "y1 = zeros(5);\n",
+ "L = R*D;# [kmol]\n",
+ "G = L+D;# [kmol]\n",
+ "# Assume: Temp1 = 57 OC\n",
+ "# alpha57 = [C1 C2 C3 C4 C5]\n",
+ "alpha57 = numpy.array([79.1 ,19.6 ,7.50, 2.66, 1]);\n",
+ "# From Eqn. 9.177, n = 0:\n",
+ "Val57=zeros(6)\n",
+ "for i in range(0,5):\n",
+ " y1[i] = (L/G)*x0[i]+((D/G)*yD[i]);\n",
+ " Val57[i] = y1[i]/alpha57[i];\n",
+ "\n",
+ "x1 = Val57/sum(Val57);\n",
+ "mC5 = sum(Val57);\n",
+ "Temp1 = 58.4; # [OC]\n",
+ "# Liquid x1's is in equilibrium with y1's.\n",
+ "xlk_By_xhk1 = x1[2]/x1[4];\n",
+ "# Tray 1 is not the feed tray.\n",
+ "# Assume: Temp2 = 63 OC\n",
+ "# alpha63 = [C1 C2 C3 C4 C5]\n",
+ "alpha63 = numpy.array([68.9 ,17.85, 6.95, 2.53, 1.00]);\n",
+ "# From Eqn. 9.177, n = 1:\n",
+ "y2=zeros(6)\n",
+ "Val63=zeros(6)\n",
+ "for i in range(0,5):\n",
+ " y2[i] = (L/G)*x1[i]+((D/G)*yD[i]);\n",
+ " Val63[i] = y1[i]/alpha63[i];\n",
+ " \n",
+ "mC5 = sum(Val63);\n",
+ "x2 = Val63/sum(Val63);\n",
+ "xlk_By_xhk2 = x2[2]/x2[4];\n",
+ "# The tray calculation are continued downward in this manner.\n",
+ "# Results for trays 5 & 6 are:\n",
+ "# Temp 75.4 [OC]\n",
+ "# x5 = [C1 C2 C3 C4 C5]\n",
+ "x5 = numpy.array([0.00240, 0.0195, 0.1125, 0.4800, 0.3859]);\n",
+ "xlk_By_xhk5 = x5[2]/x5[4];\n",
+ "# Temp6 = 79.2 OC\n",
+ "# x6 = [C1 C2 C3 C4 C5]\n",
+ "x6 = numpy.array([0.00204 ,0.0187 ,0.1045, 0.4247 ,0.4500]);\n",
+ "xlk_By_xhk6 = x6[2]/x6[4];\n",
+ "# From Eqn. 9.176:\n",
+ "# Tray 6 is the feed tray\n",
+ "Np1 = 6;\n",
+ "\n",
+ "# Exhausting section:\n",
+ "# Assume Temp = 110 OC\n",
+ "L_bar = L+(q*F);# [kmol]\n",
+ "G_bar = L_bar-W;# [kmol]\n",
+ "# alpha57 = [C3 C4 C5 C6]\n",
+ "alpha110 = numpy.array([5 ,2.2 ,1, 0.501]);\n",
+ "# From Eqn. 9.178:\n",
+ "xNp = zeros(4);\n",
+ "Val110=zeros(6)\n",
+ "k = 0;\n",
+ "for i in range(2,6):\n",
+ " xNp[k] = ((G_bar/L_bar)*yNpPlus1[i])+((W/L_bar)*xW[i]);\n",
+ " Val110[k] = alpha110[k]*xNp[k];\n",
+ " k = k+1;\n",
+ "\n",
+ "yNp = Val110/sum(Val110);\n",
+ "mC5 = 1/sum(Val110);\n",
+ "# yNp is in Eqb. with xNp:\n",
+ "xlk_By_xhkNp = xNp[0]/xNp[3];\n",
+ "# Results for Np-7 to Np-9 trays:\n",
+ "# For Np-7\n",
+ "# Temp = 95.7 OC\n",
+ "# xNpMinus7 = [C3 C4 C5 C6]\n",
+ "xNpMinus7 = numpy.array([0.0790 ,0.3944 ,0.3850, 0.1366]);\n",
+ "xlk_By_xhkNpMinus7 = xNpMinus7[0]/xNpMinus7[2];\n",
+ "# For Np-8\n",
+ "# Temp = 94.1 OC\n",
+ "# xNpMinus8 = [C3 C4 C5 C6]\n",
+ "xNpMinus8 = numpy.array([0.0915, 0.3897 ,0.3826, 0.1362]);\n",
+ "xlk_By_xhkNpMinus8 = xNpMinus8[0]/xNpMinus8[2];\n",
+ "# For Np-9\n",
+ "# Temp = 93.6 OC\n",
+ "# xNpMinus9 = [C3 C4 C5 C6]\n",
+ "xNpMinus9 = numpy.array([0.1032, 0.3812, 0.3801 ,0.1355]);\n",
+ "xlk_By_xhkNpMinus9 = xNpMinus9[0]/xNpMinus9[2];\n",
+ "# From Eqn. 9.176:\n",
+ "# Np-8 is the feed tray.\n",
+ "def g2(Np):\n",
+ " return Np-8-Np1\n",
+ "Np = fsolve(g2,7);\n",
+ "print\"Number of theoretical Trays required for R = 0.8: \",Np[0]\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**************Composition Correction*****************#\n",
+ "# Page: 446\n",
+ "print'Page: 446\\n\\n'\n",
+ "\n",
+ "# New Bubble Point:\n",
+ "# Temp = 86.4 OC\n",
+ "x6_new = x6*(1-xNpMinus8[3]);\n",
+ "x6_new[4] = xNpMinus8[3];\n",
+ "# alpha86 = [C1 C2 C3 C4 C5 C6]\n",
+ "alpha86 =numpy.array([46.5, 13.5, 5.87, 2.39, 1.00, 0.467]);\n",
+ "# From Eqn. 9.181:\n",
+ "xhkn = x5[3];\n",
+ "xhknPlus1 = x6_new[3];\n",
+ "xC65 = alpha86[5]*x6_new[4]*xhkn/xhknPlus1;\n",
+ "x5_new = x5*(1-xC65);\n",
+ "x5_new[4] = 1-sum(x5_new);\n",
+ "# Tray 5 has a bubble point of 80 OC\n",
+ "# Similarly , the calculations are continued upward:\n",
+ "# x2_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x2_new = numpy.array([0.0021, 0.0214 ,0.1418, 0.6786, 0.1553, 0.00262]);\n",
+ "# y2_new = [C1 C2 C3 C4 C5 C6]\n",
+ "y2_new = numpy.array([0.0444, 0.111 ,0.2885, 0.5099, 0.0458 ,0.00034]);\n",
+ "# x1_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x1_new = numpy.array([0.00226, 0.0241, 0.1697 ,0.7100, 0.0932, 0.00079]);\n",
+ "# y1_new = [C1 C2 C3 C4 C5 C6]\n",
+ "y1_new = numpy.array([0.0451 ,0.1209 ,0.3259 ,0.4840 ,0.0239 ,0.000090]);\n",
+ "# x0_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x0_new = numpy.array([0.00425 ,0.0425 ,0.2495, 0.6611 ,0.0425 ,0.00015]);\n",
+ "# yD_new = [C1 C2 C3 C4 C5 C6]\n",
+ "yD_new = numpy.array([0.0789 ,0.1842 ,0.3870 ,0.3420 ,0.0079, 0.00001]);\n",
+ "# From Eqn. 9.184:\n",
+ "# For C1 & C2\n",
+ "alphalkm = alpha86[2];\n",
+ "xlkmPlus1 = xNpMinus7[0];\n",
+ "xlkm = x6_new[2];\n",
+ "xC17 = x6_new[0]*alpha86[2]*xlkmPlus1/(alpha86[0]*xlkm);\n",
+ "xC27 = x6_new[1]*alpha86[2]*xlkmPlus1/(alpha86[1]*xlkm);\n",
+ "# Since xC17 = 1-xC27\n",
+ "# The adjusted value above constitute x7's.\n",
+ "# The new bubbl point is 94 OC\n",
+ "# The calculations are continued down in the same fashion.\n",
+ "# The new tray 6 has:\n",
+ "# xC1 = 0.000023 & xC2 = 0.00236\n",
+ "# It is clear that the conc. of these components are reducing so rapidly that there is no need to go an further.\n",
+ "print\"******Corrected Composition***********\\n\"\n",
+ "print\"Component\\t \\tx2\\t \\t \\t y2\\t \\t \\t x1\\t \\t \\t y1\\t \\t \\tx0\\t \\t \\tyD\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t\",x2_new[i],\"\\t \\t \\t \\t \",y2_new[i],\"\\t \\t \\t \\t \",x1_new[i],\"\\t \\t \\t \\t\",y1_new[i],\"\\t \\t \\t \\t \\t\",x0_new[i],\"\\t \\t \\t \\t\",yD_new[i]\n",
+ "\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#*************Heat Load of Condensor & Boiler & L/G ratio**********#\n",
+ "# Page 448\n",
+ "print'Page: 448\\n\\n'\n",
+ "\n",
+ "# Values of x0, yD & y1 are taken from the corrected concentration.\n",
+ "# HD46 = [C1 C2 C3 C4 C5 C6]\n",
+ "HD46 = numpy.array([13490, 23380, 32100, 42330, 52570, 61480]);# [kJ/kmol]\n",
+ "yDHD= zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yDHD[i] = yD_new[i]*HD46[i];\n",
+ "\n",
+ "HD = sum(yDHD);# [kJ]\n",
+ "# HL46 = [C1 C2 C3 C4 C5 C6]\n",
+ "HL46 = numpy.array([10470, 17210, 18610, 22790, 27100, 31050]);# [kJ/kmol]\n",
+ "xHL=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " xHL[i] = x0_new[i]*HL46[i];\n",
+ "\n",
+ "HL0 = sum(xHL);# [kJ]\n",
+ "# HG58 = [C1 C2 C3 C4 C5 C6]\n",
+ "HG58 = numpy.array([13960, 24190, 37260, 43500, 53900, 63500]);# [kJ/kmol]\n",
+ "yHG1=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yHG1[i] = y1_new[i]*HG58[i];\n",
+ "\n",
+ "HG1 = sum(yHG1);# [kJ]\n",
+ "# From Eqn. 9.54:\n",
+ "Qc = D*((R+1)*HG1-(R*HL0)-HD);# [kJ/kmol feed]\n",
+ "# Similarly:\n",
+ "HW = 39220;# [kJ]\n",
+ "HF = 34260;# [kJ]\n",
+ "# From Eqn. 9.55:\n",
+ "Qb = (D*HD)+(W*HW)+Qc-(F*HF);# [kJ/kmol feed]\n",
+ "# For tray n = 1\n",
+ "G1 = D*(R+1);# [kmol]\n",
+ "# With x1 & y2 from corrected composition;\n",
+ "# HG66 = [C1 C2 C3 C4 C5 C6]\n",
+ "HG66 = numpy.array([14070, 24610, 33800, 44100, 54780, 64430]);# [kJ/kmol feed]\n",
+ "yHG2=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yHG2[i] = y2_new[i]*HG66[i];\n",
+ "\n",
+ "HG2 = sum(yHG2);# [kJ]\n",
+ "# HL58 = [C1 C2 C3 C4 C5 C6]\n",
+ "HL58 =numpy.array([11610 ,17910 ,20470, 24900, 29500, 33840]);# [kJ/kmol feed]\n",
+ "xHL1=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " xHL1[i] = x1_new[i]*HL58[i];\n",
+ "\n",
+ "HL1 = sum(xHL1);# [kJ]\n",
+ "# From Eqn. 9.185:\n",
+ "G2 = (Qc+D*(HD-HL1))/(HG2-HL1);# [kmol]\n",
+ "L2 = G2-D;# [kmol]\n",
+ "L2_By_G2 = L2/G2;\n",
+ "# Similarly, the calculations are made for other trays in enriching section.\n",
+ "# For tray, Np = 14:\n",
+ "# C1 & C2 are absent.\n",
+ "# HG113 = [C3 C4 C5 C6]\n",
+ "HG113 = numpy.array([38260, 49310 ,60240, 71640]);# [kJ/kmol feed]\n",
+ "k = 2;\n",
+ "yHG15=zeros(6)\n",
+ "for i in range(0,4):\n",
+ " yHG15[i] = yNpPlus1[k]*HG113[i];\n",
+ " k = k+1;\n",
+ "\n",
+ "HG15 = sum(yHG15);\n",
+ "# HL107 = [C3 C4 C5 C6]\n",
+ "HL107 = numpy.array([29310 ,31870, 37680 ,43500]);# [kJ/kmol feed]\n",
+ "xHL14=zeros(6)\n",
+ "for i in range(0,4):\n",
+ " xHL14[i] = xNp[i]*HL107[i];\n",
+ "\n",
+ "HL14 = sum(xHL14);# [kJ]\n",
+ "# Similarly:\n",
+ "HL13 = 36790;# [kJ]\n",
+ "HG14 = 52610;# [kJ]\n",
+ "# From Eqn. 9.186:\n",
+ "G15_bar = (Qb+(W*(HL14-HW)))/(HG15-HL14);# [kmol]\n",
+ "L14_bar = W+G15_bar;# [kmol]\n",
+ "G14_bar = (Qb+(W*(HL13-HW)))/(HG14-HL13);# [kmol]\n",
+ "L14_By_G14 = L14_bar/G14_bar;\n",
+ "print\"Condensor Heat Load kJ:\\n\",HL0\n",
+ "print\"Reboiler Heat Load kJ:\\n\",HG15\n",
+ "# For other Exhausting Section Trays:\n",
+ "# Result = [Tray No. L_By_G Temp(OC)]\n",
+ "# Tray 0: Condensor\n",
+ "# Tray 15: Reboiler\n",
+ "Result = numpy.array([[0,0.80 ,46.6],[1 ,0.432 ,58.4],[2, 0.437, 66],[3, 0.369, 70.4],[4 ,0.305, 74],[5 ,0.310, 80.3],[6, 1.53, 86.4],[7, 4.05 ,94.1],[8 ,3.25 ,96.3],[9, 2.88 ,97.7],[10 ,2.58 ,99],[11, 2.48 ,100],[12 ,2.47 ,102.9],[13 ,2.42 ,104.6],[14 ,2.18 ,107.9],[15, 1.73 ,113.5]]);\n",
+ "print\"**************L/G*************\\n\"\n",
+ "print\"Tray No. \\t\\t L/G\\t\\t\\t\\t Temp(OC)\\n\"\n",
+ "for i in range(0,16):\n",
+ " print Result[i,0],\"\\t\\t \\t \\t\",Result[i,1],\"\\t \\t \\t\",Result[i,2];\n",
+ "\n",
+ "# These values are not final.\n",
+ "# They scatter eratically because they are based on the temp. and conc. computed with the assumption of constant L/G\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**************Thiele Geddes Method******************#\n",
+ "# Page:452\n",
+ "print'Page: 452\\n\\n'\n",
+ "\n",
+ "# Use the tray Temperature to obtain m.\n",
+ "# For C4:\n",
+ "# m = [0(Condensor) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15(Reboiler)]\n",
+ "m = numpy.array([0.50 ,0.66, 0.75 ,0.81 ,0.86 ,0.95 ,1.07 ,1.22 ,1.27 ,1.29 ,1.30, 1.32, 1.40, 1.45, 1.51, 1.65]);\n",
+ "A = numpy.array([1.6,0.65,0.582,0.4555,0.354,0.326,1.42990])\n",
+ "S = numpy.array([0.3012,0.39076,0.4479,0.503875,0.53225,0.56680,0.59917,0.69,0.95375])\n",
+ "\n",
+ "# f = Tray No. 6\n",
+ "\n",
+ "# From Eqn. 9.196:\n",
+ "# Value1 = Gf*yf/(D*zD)\n",
+ "Sum = 0;\n",
+ "for i in range(0,6):\n",
+ " Val = 1;\n",
+ " for j in range(0,6):\n",
+ " Val = Val*A[j];\n",
+ " \n",
+ " Sum = Sum+Val;\n",
+ "\n",
+ "Value1 = 1+Sum;\n",
+ "# From Eqn. 9.206:\n",
+ "# Value2 = Lf_bar*xf/(W*xW);\n",
+ "Sum = 0.5316\n",
+ "Value2 = 1+Sum;\n",
+ "# From Eqn. 9.208:\n",
+ "# Value3 = W*xW/(D*zD)\n",
+ "Value3 = A[6]*Value1/Value2;\n",
+ "# From Eqn. 9.210:\n",
+ "DyD = F*zF[3]/(Value3+1);# [kmol,C4]\n",
+ "# From Eqn. 9.209:\n",
+ "WxW = ((F*zF[3]))-(DyD);# [kmol, C4]\n",
+ "# Similarly:\n",
+ "# For [C1; C2; C3; C4; C5; C6]\n",
+ "# Result2 = [Value1 Value2 Value3 DyD WxW]\n",
+ "Result2 = numpy.array([[1.0150, 254*10**6 ,288*10**(-10), 0.03, 0],[1.0567, 8750, 298*10**(-5) ,0.07 ,0],[1.440, 17.241 ,0.0376 ,0.1447, 0.0053],[1.5778 ,1.5306 ,1.475, 0.1335 ,0.1965],[15580, 1.1595, 45.7 ,0.00643 ,0.29357],[1080 ,1.0687 ,7230 ,0.0000166 ,0.1198]]);\n",
+ "D = sum(Result2[:,2]);# [kmol]\n",
+ "W = sum(Result2[:,3]);# [kmol]\n",
+ "# In the Distillate:\n",
+ "DyD_C3 = Result[1,2];# [kmol]\n",
+ "zFC3 = zF[2];# [kmol]\n",
+ "percentC3 = (DyD_C3/zFC3)*100;\n",
+ "DyD_C5 = Result2[3,2];# [kmol]\n",
+ "zFC5 = zF[4];# [kmol]\n",
+ "percentC5 = (DyD_C5/zFC5)*100;\n",
+ "# These do not quite meet the original specification.\n",
+ "# For Tray 2 & C4\n",
+ "# From Eqn. 9.195:\n",
+ "# Value4 = G2*y2/(D*zD)\n",
+ "n = 2;\n",
+ "Sum = 0;\n",
+ "for i in range(0,n):\n",
+ " Val = 1;\n",
+ " for j in range(i,n):\n",
+ " Val = Val*A[j];\n",
+ " \n",
+ " Sum = Sum+Val;\n",
+ "\n",
+ "Value4 = 1+Sum;\n",
+ "# From The enthalpy Balnce:\n",
+ "G2 = 0.675;\n",
+ "# From Eqn. 9.211:\n",
+ "y2 = Value4*DyD/G2;\n",
+ "# Similarly:\n",
+ "# Value4 = [C1 C2 C3 C4 C5 C6]\n",
+ "Value4 = numpy.array([1.0235, 1.1062, 1.351, 2.705, 10.18 ,46.9]);\n",
+ "y2= numpy.array([0.04548,0.114,0.2896,0.53498,0.09697,0.001153]);\n",
+ "Y2 = sum(y2);\n",
+ "# Since Y2 is not equal to 1. THerefore the original temperature is incorrect. By adjusting y2 to unity.\n",
+ "# The dew point is 77 OC instead of 66 OC\n",
+ "# y2_adjusted = [C1 C2 C3 C4 C5 C6]\n",
+ "y2_adjusted = numpy.array([0.0419 ,0.1059 ,0.2675 ,0.4939, 0.0896, 0.00106]);\n",
+ "print\"*****************Composition By Thiele Geddes Method*****************\\n\"\n",
+ "print\"Component\\t \\t \\t y2\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t \\t\",y2_adjusted[i]\n",
+ "# some values of solution in the textbook are incorrect"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.13\n",
+ "\n",
+ "\n",
+ "Page: 436\n",
+ "\n",
+ "\n",
+ "Minimum Reflux Ratio is 0.619146164974 mol reflux/mol distillate\n",
+ " \n",
+ "\n",
+ "*****************Distillate Composition*********************\n",
+ "\n",
+ "C1\t \t \t \t: 0.0786\n",
+ "C2\t \t \t \t: 0.1835\n",
+ "C3\t \t \t \t: 0.3854\n",
+ "C4\t \t \t \t: 0.34\n",
+ "C5\t \t \t \t: 0.007866\n",
+ "C6\t \t \t \t: 0.0\n",
+ "\n",
+ "\n",
+ "*****************Residue Composition*********************\n",
+ "\n",
+ "C1\t \t \t \t: 0.0\n",
+ "C2\t \t \t \t: 0.0\n",
+ "C3\t \t \t \t: 0.00484930540974\n",
+ "C4\t \t \t \t: 0.321097242636\n",
+ "C5\t \t \t \t: 0.480081235564\n",
+ "C6\t \t \t \t: 0.19397221639\n",
+ "\n",
+ "\n",
+ "Page: 440\n",
+ "\n",
+ "\n",
+ "Page: 441\n",
+ "\n",
+ "\n",
+ "For the reflux ratio of 0.8\n",
+ "\n",
+ "*****************Distillate Composition*********************\n",
+ "\n",
+ "\t\t\t Liquid reflux in equilibrium with the distillate vapour\n",
+ "\n",
+ "C 0 \t \t \t \t\t: 0.004\n",
+ "C 1 \t \t \t \t\t: 0.0444501\n",
+ "C 2 \t \t \t \t\t: 0.2495\n",
+ "C 3 \t \t \t \t\t: 0.6564\n",
+ "C 4 \t \t \t \t\t: 0.0451\n",
+ "C 5 \t \t \t \t\t: 0.0\n",
+ "Page: 443\n",
+ "\n",
+ "\n",
+ "Number of theoretical Trays required for R = 0.8: 14.0\n",
+ "\n",
+ "\n",
+ "Page: 446\n",
+ "\n",
+ "\n",
+ "******Corrected Composition***********\n",
+ "\n",
+ "Component\t \tx2\t \t \t y2\t \t \t x1\t \t \t y1\t \t \tx0\t \t \tyD\n",
+ "\n",
+ "C 0 \t \t \t0.0021 \t \t \t \t 0.0444 \t \t \t \t 0.00226 \t \t \t \t0.0451 \t \t \t \t \t0.00425 \t \t \t \t0.0789\n",
+ "C 1 \t \t \t0.0214 \t \t \t \t 0.111 \t \t \t \t 0.0241 \t \t \t \t0.1209 \t \t \t \t \t0.0425 \t \t \t \t0.1842\n",
+ "C 2 \t \t \t0.1418 \t \t \t \t 0.2885 \t \t \t \t 0.1697 \t \t \t \t0.3259 \t \t \t \t \t0.2495 \t \t \t \t0.387\n",
+ "C 3 \t \t \t0.6786 \t \t \t \t 0.5099 \t \t \t \t 0.71 \t \t \t \t0.484 \t \t \t \t \t0.6611 \t \t \t \t0.342\n",
+ "C 4 \t \t \t0.1553 \t \t \t \t 0.0458 \t \t \t \t 0.0932 \t \t \t \t0.0239 \t \t \t \t \t0.0425 \t \t \t \t0.0079\n",
+ "C 5 \t \t \t0.00262 \t \t \t \t 0.00034 \t \t \t \t 0.00079 \t \t \t \t9e-05 \t \t \t \t \t0.00015 \t \t \t \t1e-05\n",
+ "\n",
+ "\n",
+ "Page: 448\n",
+ "\n",
+ "\n",
+ "Condensor Heat Load kJ:\n",
+ "21641.994\n",
+ "Reboiler Heat Load kJ:\n",
+ "59915.6783775\n",
+ "**************L/G*************\n",
+ "\n",
+ "Tray No. \t\t L/G\t\t\t\t Temp(OC)\n",
+ "\n",
+ "0.0 \t\t \t \t0.8 \t \t \t46.6\n",
+ "1.0 \t\t \t \t0.432 \t \t \t58.4\n",
+ "2.0 \t\t \t \t0.437 \t \t \t66.0\n",
+ "3.0 \t\t \t \t0.369 \t \t \t70.4\n",
+ "4.0 \t\t \t \t0.305 \t \t \t74.0\n",
+ "5.0 \t\t \t \t0.31 \t \t \t80.3\n",
+ "6.0 \t\t \t \t1.53 \t \t \t86.4\n",
+ "7.0 \t\t \t \t4.05 \t \t \t94.1\n",
+ "8.0 \t\t \t \t3.25 \t \t \t96.3\n",
+ "9.0 \t\t \t \t2.88 \t \t \t97.7\n",
+ "10.0 \t\t \t \t2.58 \t \t \t99.0\n",
+ "11.0 \t\t \t \t2.48 \t \t \t100.0\n",
+ "12.0 \t\t \t \t2.47 \t \t \t102.9\n",
+ "13.0 \t\t \t \t2.42 \t \t \t104.6\n",
+ "14.0 \t\t \t \t2.18 \t \t \t107.9\n",
+ "15.0 \t\t \t \t1.73 \t \t \t113.5\n",
+ "\n",
+ "\n",
+ "Page: 452\n",
+ "\n",
+ "\n",
+ "*****************Composition By Thiele Geddes Method*****************\n",
+ "\n",
+ "Component\t \t \t y2\n",
+ "\n",
+ "C 0 \t \t \t \t0.0419\n",
+ "C 1 \t \t \t \t0.1059\n",
+ "C 2 \t \t \t \t0.2675\n",
+ "C 3 \t \t \t \t0.4939\n",
+ "C 4 \t \t \t \t0.0896\n",
+ "C 5 \t \t \t \t0.00106\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file |