{ "metadata": { "name": "", "signature": "sha256:86e26476cb7579fc0837e325085ec3630b6741d9df94034464f5fb6b2f13155a" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Chapter 11: Vapor-Liquid Separation Processes" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.1-1 Page Number 641" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Use of Raoult's Law for Boiling Point Diagram\n", "import numpy as np\n", "from scipy.interpolate import interp1d\n", "from scipy.optimize import root\n", "import scipy.integrate as integrate\n", "\n", "#Variable Declaration\n", "T = 95 #Equlibrium temperature in deg C\n", "P = 101.32 #Vapor pressure from table 11.1-1\n", "PA = 155.7 #Vapor pressure of benzene from table 11.1-1 in kPa\n", "PB = 63.3 #Vapor pressure of toulene from table 11.1-1 in kPa\n", "fPT = lambda x:PA*x + PB*(1.-x)-P\n", "sol = root(fPT,0.05)\n", "xA = sol.x[0]\n", "xB = 1.- xA\n", "yA = PA*xA/P\n", "yB = 1.- yA\n", "\n", "#Result\n", "print \"Liquid and Vapor composions of benzene at 95\u00b0C:\",round(xA,3),round(yA,3)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Liquid and Vapor composions of benzene at 95\u00b0C: 0.411 0.632\n" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.2-1 Page Number 642" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Equilibrium Contact of Vapor-Liquid Mixture\n", "import numpy as np\n", "from scipy.interpolate import interp1d\n", "from scipy.optimize import root\n", "import matplotlib.pylab as plt\n", "\n", "#Variable Declaration\n", "P = 101.32 #Presure of the vapor in kPa\n", "yA2 = 0.4 #Mole fraction of benzene \n", "yB2 = 0.6 #Mole fraction of toulene \n", "V2 = 100. \n", "L0 = 110.\n", "xA0 = 0.3\n", "xB0 = 0.7\n", "xe = np.array([0.000,0.130,0.258,0.411,0.581,0.780,1.000])\n", "ye = np.array([0.000,0.261,0.456,0.632,0.777,0.900,1.000])\n", "#Calculations\n", "#for equimolal overflow \n", "L1 = L0\n", "V1 = V2\n", "fyxe = interp1d(xe,ye, kind='cubic',bounds_error=False)\n", "x = np.arange(0.,1.05,0.05)\n", "y = fyxe(x)\n", "plt.plot(x,y,'r-',xe,xe,'k-')\n", "x1 = 0.4\n", "y1 = (L0*xA0 +V2*yA2 - L1*x1)/V1\n", "x2 = 0.2\n", "y2 = (L0*xA0 +V2*yA2 - L1*x2)/V1\n", "plt.plot([x1,x2],[y1,y2],'k-')\n", "f = lambda x: L0*xA0 +V2*yA2 - L1*x - V1*fyxe(x)\n", "sol = root(f,0.1)\n", "xA1 = sol.x[0]\n", "yA1 = fyxe(xA1)\n", "plt.grid(True)\n", "plt.xlabel('Liquid phase mole fraction, xA')\n", "plt.ylabel('Vapor phase mole fraction, yA')\n", "plt.plot(xA1,yA1,'ro')\n", "\n", "#Results\n", "print \"Equilibrium compositions of liquid and vapor are:\",round(xA1,4),round(yA1,4)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Equilibrium compositions of liquid and vapor are: 0.254 0.4506\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ngg==\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.3-1 Page Number 645" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Relative Volatility for Benzene-Toluene System\n", "\n", "#Variable Declaration\n", "PA85 = 116.9 #Pressure of benzene at 85 deg C\n", "PB85 = 46.0 #Pressure of tuolene at 85 deg C\n", "\n", "PA = 204.2 #Pressure of benzene at 105 deg C\n", "PB = 86.0 #Pressure of toulene at 105 deg C\n", "\n", "#Calculation\n", "alpha85 = PA85/PB85\n", "alpha = PA/PB\n", "\n", "#Results\n", "print 'Relative Volatility for Benzene-Toluene at 85\u00b0C is %4.2f and at 105\u00b0C is %4.2f'%(alpha85,alpha)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Relative Volatility for Benzene-Toluene at 85\u00b0C is 2.54 and at 105\u00b0C is 2.37\n" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.3-2 Page Number 647" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Simple Differential Distillation\n", "import numpy as np\n", "import matplotlib.pyplot as plt \n", "from scipy.interpolate import interp1d\n", "from scipy.optimize import root\n", "from scipy.integrate import quad, simps, romberg\n", "\n", "#Variable Declaration\n", "L1 = 100 #Feed, mol\n", "xfnp = 0.5 #Mole fraction of n-pentane\n", "xfnh = 0.5 #Mole fraction of n-heptane\n", "P = 101.3 #Pressure in kPa\n", "V = 40. #Distilled moles\n", "x = np.array([0.000,0.059,0.145,0.254,0.398,0.594,0.867,1.000])\n", "y = np.array([0.000,0.271,0.521,0.701,0.836,0.925,0.984,1.000])\n", "\n", "#Calculations\n", "L2 = L1-V\n", "lnL1L2 = log(L1/L2)\n", "\n", "f1 = interp1d(x,y,kind = 'cubic',bounds_error=False)\n", "xx = np.arange(0.20,.601,0.001)\n", "yy = f1(xx)\n", "ff = 1./(yy-xx)\n", "f = interp1d(xx,ff,bounds_error=False)\n", "def Integrant(x):\n", " return f(x)\n", "\n", "er = 12. \n", "ub = 0.5\n", "\n", "for j in range(len(xx)):\n", " lb = xx[j+1]\n", " zz = romberg(Integrant, lb, ub)\n", " er = abs(zz-lnL1L2)\n", " if er <=0.005:\n", " xL = xx[j]\n", " break\n", "yav = (L1*xfnp-L2*xL)/V\n", "plt.xlim(0.2,0.55)\n", "plt.ylim(0,3.5)\n", "plt.plot(xx,ff,'k-')\n", "xxx = np.arange(xL,xfnp+0.001,0.001)\n", "yyy = f1(xxx)\n", "fff = 1./(yyy-xxx)\n", "plt.fill_between(xxx,fff,0,color='0.6')\n", "plt.text(0.35,1.0,'Area='+str(round(lnL1L2,3)))\n", "plt.xlabel('$x$')\n", "plt.ylabel('$1/(y-x)$')\n", "plt.grid(True)\n", "#Results\n", "print \"Residue concentration : \", round(xL,3)\n", "print \"Average Distillate concentration:\", round(yav,3)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Residue concentration : 0.276\n", "Average Distillate concentration: 0.836\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.4-1 Page Number 656" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Rectification of Benzene-Toluene Mixture\n", "import numpy as np\n", "from scipy.interpolate import interp1d\n", "from scipy.optimize import root\n", "import matplotlib.pyplot as plt\n", "from math import ceil\n", "\n", "#Variable Declaration\n", "xe = np.array([0.000,0.130,0.258,0.411,0.581,0.780,1.000])\n", "ye = np.array([0.000,0.261,0.456,0.632,0.777,0.900,1.000])\n", "\n", "F = 100. #Feed in kmol/hr\n", "xF = 0.45 #Mole fraction of benzene in feed\n", "xD = 0.95 #Mole fraction of benzene in distillate\n", "xW = 0.10 #Mole fraction of benzene at the bottom\n", "R = 4.0 #Reflux ratio\n", "lambdav = 32099.\n", "Cp = 159. #Average heat capacity of feed in kJ/kmol.K\n", "Tb = 366.7 #Boiling point of feed (K)\n", "Tf = 327.6 #Temperature of feed (K)\n", "\n", "#Calculations\n", "\n", "x = np.arange(0.,1.,0.01)\n", "f = interp1d(xe,ye, kind='cubic')\n", "y = f(x)\n", "\n", "plt.text(.05, .6, 'Equilibrium Curve')\n", "plt.text(xF,xF-0.1, 'Feed Line')\n", "plt.text(xF+0.05,xF+0.1, 'q-Line')\n", "plt.text(xF+0.3,xF+0.3, 'UO Line')\n", "plt.text(xF-0.2,xF-0.2, 'LO Line')\n", "plt.plot(x,y,'k-')\n", "plt.plot(xD,xD,'ro')\n", "plt.plot(xW,xW,'ro')\n", "\n", "plt.annotate('$(x_D,y_D)$', xy=(xD,xD), xytext=(xD,xD-0.02))\n", "plt.annotate('$(x_W,y_W)$', xy=(xW,xW), xytext=(xW,xW-0.02))\n", "plt.xlabel('Liquid mole fraction, x')\n", "plt.ylabel('Vapor mole fraction, y')\n", "plt.plot([0,1.], [0,1.], 'ko-', lw=0.5)\n", "\n", "\n", "\n", "ff = lambda x: f(x)-(mql*x+cql)\n", "\n", "plt.plot([0,1,xF,xF],[0,1,xF,0])\n", "a = np.array([[1,1], [xD,xW]])\n", "b = np.array([F,F*xF])\n", "[D,W]= np.linalg.solve(a, b)\n", "q = 1+Cp*(Tb-Tf)/lambdav\n", "muol = R/(R+1)\n", "cuol = xD/(R+1)\n", "mql = q/(q-1.)\n", "cql = xF - mql*xF\n", "\n", "plt.plot(xD,xD,'rx')\n", "plt.plot(xW,xW,'rx')\n", "a = np.array([[1,-mql], [1,-muol]])\n", "b = np.array([cql,cuol])\n", "[yi,xi] = np.linalg.solve(a, b)\n", "mlol = (xW-yi)/(xW-xi)\n", "clol = yi - mlol*xi\n", "sol = root(ff,0.52)\n", "xq = sol.x[0]\n", "yq = f(xq)\n", "plt.plot([xF,xq],[xF,yq])\n", "plt.plot([xF,xi],[xF,mql*xi+cql])\n", "plt.plot([xD,xi],[xD,yi])\n", "plt.plot([xW,xi],[xW,yi])\n", "x1 = xD\n", "y1 = xD\n", "n = 0\n", "j = 0 \n", "while x1>xW:\n", " y2 = y1\n", " ff = lambda x: y1 -f(x)\n", " sol = root(ff,0.2)\n", " x2 = sol.x[0]\n", " plt.text(x2, y2+0.02, str(n+1)) \n", " plt.plot([x1,x2],[y1,y2],'k-')\n", " if x2 > xW:\n", " n = n+1\n", " else:\n", " dxt = x1 - x2\n", " dx = x1 - xW\n", " n = n + dx/dxt\n", " if x2>xW and x2" ] } ], "prompt_number": 23 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.4-2 Page Number 660" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Minimum Reflux Ratio and Total Reflux in Rectification\n", "import numpy as np\n", "from scipy.interpolate import interp1d\n", "from scipy.optimize import root\n", "import matplotlib.pylab as plt\n", "from math import ceil\n", "\n", "#Variable Declaration\n", "xe = np.array([0.000,0.130,0.258,0.411,0.581,0.780,1.000])\n", "ye = np.array([0.000,0.261,0.456,0.632,0.777,0.900,1.000])\n", "\n", "F = 100. #Feed in kmol/hr\n", "xF = 0.45 #Mole fraction of benzene in feed\n", "xD = 0.95 #Mole fraction of benzene in distillate\n", "xW = 0.10 #Mole fraction of benzene at the bottom\n", "R = 4.0 #Reflux ratio\n", "lambdav = 32099.\n", "Cp = 159. #Average heat capacity of feed in kJ/kmol.K\n", "Tb = 366.7 #Boiling point of feed (K)\n", "Tf = 327.6 #Temperature of feed (K)\n", "\n", "#Calculations\n", "x = np.arange(0.,1.,0.01)\n", "\n", "f = interp1d(xe,ye, kind='cubic')\n", "y = f(x)\n", "plt.text(.05, .6, 'Equilibrium Curve')\n", "plt.text(xF,xF-0.1, 'Feed Line')\n", "plt.text(xF+0.05,xF+0.1, 'q-Line')\n", "plt.grid(True)\n", "plt.title('McCabe Thiele Diagram')\n", "plt.plot(xD,xD,'ro')\n", "plt.plot(xW,xW,'ro')\n", "plt.plot(x,y,'k-')\n", "plt.plot([0,1.], [0,1.], 'ko-')\n", "plt.annotate('$(x_D,y_D)$', xy=(xD,xD), xytext=(xD,xD-0.02))\n", "plt.annotate('$(x_W,y_W)$', xy=(xW,xW), xytext=(xW,xW-0.02))\n", "plt.xlabel('Liquid mole fraction, x')\n", "plt.ylabel('Vapor mole fraction, y')\n", "\n", "\n", "ff = lambda x: f(x)-(mql*x+cql)\n", "plot([0,1,xF,xF],[0,1,xF,0])\n", "a = np.array([[1,1], [xD,xW]])\n", "b = np.array([F,F*xF])\n", "[D,W] = np.linalg.solve(a, b)\n", "q = 1+Cp*(Tb-Tf)/lambdav\n", "mql = 1./(q-1.)\n", "cql = xF - mql*xF\n", "plot(xD,xD,'rx')\n", "plot(xW,xW,'rx')\n", "sol = root(ff,0.52)\n", "xq = sol.x[0]\n", "yq = f(xq)\n", "plot([xF,xq],[xF,yq])\n", "mmin = (xD-yq)/(xD-xq)\n", "Rm = mmin/(1-mmin)\n", "x1 = xD\n", "y1 = xD\n", "n = 0\n", "j = 0\n", "while x1>xW:\n", " y2 = y1\n", " ff = lambda x: y1 -f(x)\n", " sol = root(ff,0.2)\n", " x2 = sol.x[0]\n", " plt.text(x2, y2+0.02, str(n+1)) \n", " plt.plot([x1,x2],[y1,y2],'k-')\n", " if x2 > xW:\n", " n = n+1\n", " else:\n", " dxt = x1 - x2\n", " dx = x1 - xW\n", " n = n + dx/dxt\n", " if x2>xW and x2" ] } ], "prompt_number": 29 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.4-3 Page Number 662" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Number of Trays in Stripping Tower\n", "import matplotlib.pylab as plt\n", "#Variable Declaration\n", "xe = np.array([0.000,0.130,0.258,0.411,0.581,0.780,1.000])\n", "ye = np.array([0.000,0.261,0.456,0.632,0.777,0.900,1.000])\n", "P= 101.3 #Total tower pressure in kPa\n", "F = 400.0 #Feed rate in kmol/hr\n", "xFA = 0.70 #Mole fraction of benzene in feed \n", "xFB = 0.30 #Mole fraction of toulene in feed\n", "W = 60.0 #Bottoms product rate in kmol/hr\n", "xWA = 0.10 #Mole fraction of benzene in bottoms\n", "\n", "#Calculations\n", "x = np.arange(0.,1.,0.01)\n", "\n", "f = interp1d(xe,ye, kind='cubic')\n", "y = f(x)\n", "plt.title('McCabe Thiele Diagram')\n", "plt.grid(True)\n", "plt.plot(x,y,'k-')\n", "plt.text(.05,0.6, 'Equilibrium Curve')\n", "plt.text(xFA+0.01,xFA-0.1, 'Feed Line')\n", "plt.text(xFA,xFA+0.2, 'q-Line')\n", "\n", "plt.plot(xW,xW,'ro')\n", "plt.annotate('$(x_W,y_W)$', xy=(xW,xW), xytext=(xW,xW-0.02))\n", "plt.xlabel('Liquid mole fraction, x')\n", "plt.ylabel('Vapor mole fraction, y')\n", "xWB = 1.- xWA\n", "D = F - W\n", "yDA = (F*xFA-W*xWA)/D\n", "plt.annotate('$(x_F,y_D)$', xy=(xFA,yDA), xytext=(xFA+0.02,yDA+0.02))\n", "plt.plot(xFA,yDA,'ro')\n", "plt.plot([0,1],[0,1])\n", "plt.plot([xFA,xFA],[0,1],'k-')\n", "plt.plot([xFA,xWA],[yDA,xWA],'k-')\n", "plt.plot(xWA,xWA,'bo')\n", "x1 = xFA\n", "y1 = yDA\n", "n = 0\n", "m = (yDA-xWA)/(xFA-xWA)\n", "c = yDA - m*xFA\n", "j = 0\n", "while x1>xW:\n", " y2 = y1\n", " ff = lambda x: y1 -f(x)\n", " sol = root(ff,0.2)\n", " x2 = sol.x[0]\n", " plt.text(x2, y2+0.02, str(n+1)) \n", " plt.plot([x1,x2],[y1,y2],'k-')\n", " if x2 > xW:\n", " n = n+1\n", " else:\n", " dxt = x1 - x2\n", " dx = x1 - xW\n", " n = n + dx/dxt\n", " if x2>xW and x2" ] } ], "prompt_number": 34 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.6-1 Page Number 670" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Enthalpy Concentration Plot for Benzene-Toluene\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "#Variable Declaration\n", "xe = np.array([0.000,0.130,0.258,0.411,0.581,0.780,1.000]) #Equillibrium liquid phase composition benzene toulene\n", "ye = np.array([0.000,0.261,0.456,0.632,0.777,0.900,1.000]) #Equillibrium vapor phase composition\n", "T = np.array([110.6,105.0,100.0,95.0,90.0,85.0,80.1]) #Saturation temperatures corresponding to equillibrium points\n", "Tb = np.array([80.1,110.6]) #Boiling point of benzene toulene resp in \u00b0C\n", "Cpl = np.array([138.0,167.5]) #Liquid heat capacity of benzene toulene resp kJ/kmol.K\n", "Cpg = np.array([96.3,138.2]) #Vapor heat capacity of benzene toulene resp kJ/kmol.K\n", "Lbd = np.array([30820,33330]) #Latent heat of benzene toulene resp kJ/kmol\n", "h = np.zeros(len(xe)) #Enthalpy of liquid in KJ/kmol\n", "H = np.zeros(len(xe)) #Enthalpy of vapor in KJ/kmol\n", "Tref = 80.1 #Reference temperature in \u00b0C\n", "#Calculations\n", "\n", "LbdA = Cpl[0]*(Tb[0]-Tref) + Lbd[0] - Cpg[0]*(Tb[0]-Tref)\n", "LbdB = Cpl[1]*(Tb[1]-Tref) + Lbd[1] - Cpg[1]*(Tb[1]-Tref)\n", "h = xe*Cpl[0]*(T-Tref)+(1.-xe)*Cpl[1]*(T-Tref)\n", "H = ye*(LbdA + Cpg[0]*(T-Tref)) + (1-ye)*(LbdB + Cpg[1]*(T-Tref))\n", "\n", "#Results\n", "print ' Enthalpy (kJ/kgmol) of '\n", "print ' Liquid Vapor '\n", "print ' h H '\n", "for i in range(len(h)):\n", " print ' %4.0f %5.0f'%(h[i],H[i])\n", "\n", "plt.plot(xe,h,'bo-',ye,H,'ro-')\n", "plt.ylabel('Enthalpy, kJ/kgmol')\n", "plt.xlabel('x, y')\n", "plt.title('Enthalpy concentration Diagram')\n", "plt.grid(True)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " Enthalpy (kJ/kgmol) of \n", " Liquid Vapor \n", " h H \n", " 5109 38439\n", " 4075 36504\n", " 3182 35042\n", " 2315 33737\n", " 1489 32625\n", " 708 31653\n", " 0 30820\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n/w8EP0yWEa19FQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 32 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.6-2 Page Number 674" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Distillation Using Enthalpy-Concentration Method\n", "import matplotlib.pylab as plt\n", "import numpy as np\n", "from scipy.interpolate import interp1d\n", "from scipy.optimize import root\n", "\n", "#Variable Declaration\n", " #Equillibrium liquid phase composition benzene toulene\n", "xe = np.array([0.000,0.130,0.258,0.411,0.581,0.780,1.000]) \n", " #Equillibrium vapor phase composition\n", "ye = np.array([0.000,0.261,0.456,0.632,0.777,0.900,1.000]) \n", " #Saturation temperatures corresponding to equillibrium points\n", "T = np.array([110.6,105.0,100.0,95.0,90.0,85.0,80.1]) \n", "Tb = np.array([80.1,110.6]) #Boiling point of benzene toulene resp in \u00b0C\n", "Cpl = np.array([138.0,167.5]) #Liquid heat capacity of benzene toulene resp kJ/kmol.K\n", "Cpg = np.array([96.3,138.2]) #Vapor heat capacity of benzene toulene resp kJ/kmol.K\n", "Lbd = np.array([30820,33330]) #Latent heat of benzene toulene resp kJ/kmolF = 100.\n", "xF = 0.45 #Feed mole fraction for benzene\n", "xD = 0.95 #Distillate mole fraction for benzene\n", "xW = 0.10 #Bottoms mole fraction for benzene\n", "Rm = 1.17 #Minimum reflux ratio\n", "lambdav = 32099. #Average Latent heat of vaporiztion kJ/kmol\n", "Cp = 159. #Average heat capacity kJ/kmol.K\n", "Tbb = 366.7 #Boiling point of feed in K\n", "Tf = 327.6 #Feed temperature in K\n", "Rmul = 1.5 #Number of times minimum reflux\n", "F = 100. #Feed rate to distillation, khmol/h\n", "\n", "#Calculations\n", "Tref = Tb[0]\n", "LbdA = Cpl[0]*(Tb[0]-Tref) + Lbd[0] - Cpg[0]*(Tb[0]-Tref)\n", "LbdB = Cpl[1]*(Tb[1]-Tref) + Lbd[1] - Cpg[1]*(Tb[1]-Tref)\n", "h = xe*Cpl[0]*(T-Tref)+(1.-xe)*Cpl[1]*(T-Tref)\n", "H = ye*(LbdA + Cpg[0]*(T-Tref)) + (1-ye)*(LbdB + Cpg[1]*(T-Tref))\n", "Hi = interp1d(ye,H,kind='cubic')\n", "hi = interp1d(xe,h,kind='cubic')\n", "yei = interp1d(xe,ye,kind='cubic')\n", "\n", "def LiquidH(T,x):\n", " return x*Cpl[0]*(T-Tref)+(1.-x)*Cpl[1]*(T-Tref)\n", "\n", "def VaporH(T,y):\n", " return y*(LbdA + Cpg[0]*(T-Tref)) + (1-y)*(LbdB + Cpg[1]*(T-Tref))\n", "\n", "R = Rm*Rmul\n", "\n", "x = np.arange(0.,1.,0.01)\n", "f = interp1d(xe,ye, kind='cubic')\n", "y = f(x)\n", "plt.title('McCabe Thiele Diagram')\n", "plt.grid(True)\n", "plt.plot(x,y,'k-')\n", "plt.text(.05, .6, 'Equilibrium Curve')\n", "plt.text(xF,xF-0.1, 'Feed Line')\n", "plt.text(xF+0.05,xF+0.1, 'q-Line')\n", "plt.text(xF+0.3,xF+0.3, 'UO Line')\n", "plt.text(xF-0.2,xF-0.2, 'LO Line')\n", "plt.plot(xD,xD,'ro')\n", "plt.plot(xW,xW,'ro')\n", "plt.annotate('$(x_D,y_D)$', xy=(xD,xD), xytext=(xD,xD-0.02))\n", "\n", "plt.annotate('$(x_W,y_W)$', xy=(xW,xW), xytext=(xW,xW-0.02))\n", "plt.xlabel('Liquid mole fraction, x')\n", "plt.ylabel('Vapor mole fraction, y')\n", "\n", "plt.plot([0,1,xF,xF],[0,1,xF,0])\n", "a = np.array([[1,1], [xD,xW]])\n", "b = np.array([F,F*xF])\n", "[D,W]= np.linalg.solve(a, b)\n", "L = R*D\n", "q = 1+ Cp*(Tbb-Tf)/lambdav\n", "V1 = L + D\n", "H1 = VaporH(82.3,xD)\n", "hD = LiquidH(81.1,xD)\n", "muol = R/(R+1)\n", "cuol = xD/(R+1)\n", "mql = q/(q - 1.)\n", "cql = xF - mql*xF\n", "plt.plot(xD,xD,'ro')\n", "plt.plot(xW,xW,'ro')\n", "a = np.array([[1,-mql], [1,-muol]])\n", "b = np.array([cql,cuol])\n", "[yi,xi] = np.linalg.solve(a, b)\n", "plt.plot([xF,xi],[xF,yi])\n", "xuol = np.arange(0.40,0.96,0.01)\n", "yuol = np.zeros(len(xuol))\n", "\n", "m = muol\n", "c = cuol\n", "for j in range(len(xuol)):\n", " xn = xuol[j]\n", " yn1 = m*xn + c\n", " er = 1.\n", " while er >=0.001:\n", " hn = hi(xn)\n", " Hn1 = Hi(yn1)\n", " Vn1 = (V1*H1-D*hi(xn)+L*hD)/(Hi(yn1)-hi(xn))\n", " Ln = Vn1 - D \n", " yn1c = Ln/Vn1*xn+D*xD/Vn1\n", " er = abs(yn1-yn1c)\n", " yn1 = yn1c\n", " yuol[j] = yn1\n", "plt.plot(xuol,yuol) \n", "Qc = V1*H1-L*hD-D*hD\n", "\n", "hF = LiquidH(54.5,xF)\n", "hW = hi(xW)\n", "Qr = D*hD+W*hW+Qc-F*hF\n", "\n", "mlol = (xW-yi)/(xW-xi)\n", "clol = yi - mlol*xi\n", "xlol = np.arange(0.1,0.52,0.02)\n", "ylol = np.zeros(len(xlol))\n", "m = mlol\n", "c = clol\n", "yW = yei(xW)\n", "HW = Hi(yW)\n", "hW = hi(xW)\n", "ym1 = yW\n", "Lm = Ln + q*F \n", "Vm1 = Vn1 - (1.-q)*F\n", "for j in range(len(ylol)):\n", " xm = xlol[j]\n", " ym1 = m*xm - c \n", " er = 1.\n", " while er >=0.001:\n", " hm = hi(xm)\n", " Hm1 = Hi(ym1)\n", " Vm1 = (W*(hm-hW)+Qr)/(Hm1-hm)\n", " Lm = Vm1 + W\n", " ym1c = Lm*xm/Vm1 - W*xW/Vm1\n", " er = abs(ym1-ym1c)\n", " ym1 = ym1c\n", " ylol[j] = ym1c\n", "plt.plot(xlol,ylol)\n", "\n", "fl = interp1d(xlol,ylol)\n", "fu = interp1d(xuol,yuol)\n", "\n", "ff = lambda x: f(x)-(mql*x+cql)\n", "sol = root(ff,0.52)\n", "xq = sol.x[0]\n", "yq = f(xq)\n", "\n", "x1 = xD\n", "y1 = xD\n", "n = 0\n", "j = 0\n", "while x1>xW:\n", " y2 = y1\n", " ff = lambda x: y1 -f(x)\n", " sol = root(ff,0.2)\n", " x2 = sol.x[0]\n", " plt.text(x2-0.02, y2+0.02, str(n+1))\n", " plt.plot([x1,x2],[y1,y2],'k-')\n", " if x2 > xW:\n", " n = n+1\n", " else:\n", " dxt = x1 - x2\n", " dx = x1 - xW\n", " n = n + dx/dxt\n", "\n", " if x2>xW and x2= xi:\n", " ff = lambda y: y - fu(x1)\n", " sol = root(ff,0.65)\n", " y2 = sol.x[0]\n", " elif x1 <= xi and x1 >=xW:\n", " ff = lambda y: y - fl(x1)\n", " sol = root(ff,0.2)\n", " y2 = sol.x[0]\n", " else:\n", " y2 = x1 \n", "\n", " plt.plot([x1,x2],[y1,y2],'k-')\n", " x1 = x2\n", " y1 = y2\n", "\n", "#Results\n", "print 'Vapor rate from reboiler %4.1f kmol/h'%Vm1\n", "print 'Bottoms product rate %4.1f kJ/h'%W\n", "print 'Distillate rate %4.1f kJ/h'%D\n", "print 'Condeser duty %8.2f kJ/h'%Qc\n", "print 'Reboiler duty %8.2f kJ/h'%Qr\n", "print \"Number of equilibrium stages including reboiler for required separation:\",round(n,1)\n", "print \"Number of equilibrium stages excluding reboiler for required separation:\",round(n-1,1)\n", "print 'Feed is introduced on %2d'%(ceil(n-j))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Vapor rate from reboiler 128.2 kmol/h\n", "Bottoms product rate 58.8 kJ/h\n", "Distillate rate 41.2 kJ/h\n", "Condeser duty 3524297.05 kJ/h\n", "Reboiler duty 4178128.14 kJ/h\n", "Number of equilibrium stages including reboiler for required separation: 10.9\n", "Number of equilibrium stages excluding reboiler for required separation: 9.9\n", "Feed is introduced on 6\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 52 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.7-1 Page Number 682" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Boiling Point of Multi-Component Liquid\n", "import numpy as np\n", "\n", "#Variable Declaration\n", "x = np.array([0.40,0.25,0.20,0.15]) #Feed composition in molfrac\n", "K1 = np.array([1.68,0.630,0.245,0.093]) #Values at 65 \u00b0C are taken from Fig 11.7-2\n", "K2 = np.array([1.86,0.710,0.2815,0.110]) #Values at 70 \u00b0C are taken from Fig 11.7-2\n", "\n", "#Calcualtion\n", "k = 2\n", "alpha = K1/K1[k]\n", "alpx = alpha*x\n", "s1 = s2 = 0.0\n", "for j in range(len(x)):\n", " s1 = s1 + alpx[j]\n", "\n", "Kc = 1./s1\n", "print \"Kc:\", round(Kc,4), \"This value corresponds to 69\u00b0C \"\n", "\n", "alpha = K2/K2[k]\n", "alpx = alpha*x\n", "print \"At 69\u00b0C the value calculated is not shown and corresponds to 70\u00b0C\"\n", "for j in range(len(x)):\n", " s2 = s2 + alpx[j]\n", "\n", "Kc = 1./s2\n", "\n", "#Results\n", "print \"Kc:\", round(Kc,4), \"This value corresponds to 70\u00b0C Hence converged\"\n", "print \"Bubble temperature is equal to 70 \u00b0C \"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Kc: 0.2745 This value corresponds to 69\u00b0C \n", "At 69\u00b0C the value calculated is not shown and corresponds to 70\u00b0C\n", "Kc: 0.2831 This value corresponds to 70\u00b0C Hence converged\n", "Bubble temperature is equal to 70 \u00b0C \n" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.7-2 Page Number 684" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Calculation of Top and Bottom Temeperature and Total Reflux\n", "import numpy as np\n", "from scipy.optimize import root\n", "\n", "#Variable Declaration\n", "Name = np.array(['A','B','C','D']) #Component Nomenclature C4,C5,C6,C7\n", "xF = np.array([0.40,0.25,0.20,0.15]) #Feed composition in molfrac\n", "\n", "xW = np.array([0.0011,0.0704,0.5068,0.4217]) #Bottoms composition in molfrac\n", "K993 = np.array([3.12,1.38,0.60,0.28]) #Values of K at 99.3 \u00b0C\n", "K670 = np.array([1.75,0.65,0.26,0.10]) #Values of K at 67.0 \u00b0C for first trial\n", "K132 = np.array([5.00,2.35,1.15,0.61]) #Values of K at 132.0 \u00b0C for first trial\n", "yD = np.zeros(4)\n", "xW = np.zeros(4)\n", "\n", "F = 100. #Molar feed rate to column, mol/h\n", "xBD = 0.90 #Fraction of B in Distillate\n", "xCW = 0.90 #Fraction of C in Bottoms\n", "hk = 2 #Heavy key index\n", "lk = 1 #Light key index \n", "q = 1.0 #Value of q as feed is saturated \n", "\n", "#Calculations\n", "mBD = F*xF[lk]*xBD\n", "mBW = F*xF[lk]-mBD\n", "mCW = F*xF[hk]*xCW\n", "mCD = F*xF[hk]-mCW\n", "\n", "#With assumption of no moles of D in Distillate and no moles of A in Bottoms\n", "mAD = F*xF[0]\n", "mDW = F*xF[3]\n", "\n", "#Calculate Flow rate of Distillate and Bottoms\n", "D = mAD+mBD+mCD\n", "W = mBW+mCW+mDW\n", "yD[0] = mAD/D\n", "yD[1] = mBD/D\n", "yD[2] = mCD/D\n", "xW[1] = mBW/W\n", "xW[2] = mCW/W\n", "xW[3] = mDW/W\n", "\n", "#Dew Point Calculations for Distillate with initial guess of 67\u00b0C\n", "alp67 = K670/K670[hk]\n", "alphalkD = alp67[lk]\n", "\n", "ybyalp = yD/alp67\n", "Syba = 0.0\n", "\n", "for j in range(len(yD)):\n", " Syba = Syba + ybyalp[j]\n", " \n", "\n", "x = ybyalp/Syba\n", "Sx = 0.0\n", "for j in range(len(xW)):\n", " Sx = Sx + x[j]\n", "\n", "#Bubble Point Calculations for Bottoms with initial guess of 132\u00b0C\n", "alp132 = K132/K132[hk]\n", "alpixi = xW*alp132\n", "Sxa = 0.0\n", "for j in range(len(yD)):\n", " Sxa = Sxa + alpixi[j]\n", "\n", "y = alpixi/Sxa\n", "Sy = 0.0\n", "for j in range(len(yD)):\n", " Sy = Sy + y[j]\n", "\n", "alphalkW = alp132[lk]\n", "\n", "alpavg = sqrt(alphalkD*alphalkW)\n", "\n", "Nm = log((yD[lk]/yD[hk])*(xW[hk]/xW[lk]))/log(alpavg)\n", "alpavA = sqrt(alp67[0]*alp132[0]) #Average relative volatility of Butane\n", "alpavD = sqrt(alp67[3]*alp132[3]) #Average relative volatility of Butane\n", "\n", "#Distribution of Componenet in Distillate and Bottoms\n", "\n", "DbyWA = alpavA**Nm*yD[hk]*D/(xW[hk]*W)\n", "DbyWD = alpavD**Nm*yD[hk]*D/(xW[hk]*W)\n", "\n", "mAW = xF[0]*F/(1.0+DbyWA)\n", "mAD = mAW*DbyWA\n", "mDW = xF[3]*F/(1.0+DbyWD)\n", "mDD = mDW*DbyWD\n", "\n", "#Revised Distillate and Bottoms Compositions\n", "D = mAD+mBD+mCD+mDD\n", "W = mAW+mBW+mCW+mDW\n", "yD[0] = mAD/D\n", "yD[1] = mBD/D\n", "yD[2] = mCD/D\n", "yD[3] = mDD/D\n", "\n", "xW[0] = mAW/W\n", "xW[1] = mBW/W\n", "xW[2] = mCW/W\n", "xW[3] = mDW/W\n", "\n", "#Dew Point Calculations for Distillate with revised compositions\n", "alphalkD = alp67[lk]\n", "\n", "ybyalp = yD/alp67\n", "Syba = 0.0\n", "\n", "for j in range(len(yD)):\n", " Syba = Syba + ybyalp[j]\n", " \n", "x = ybyalp/Syba\n", "Sx = 0.0\n", "for j in range(len(xW)):\n", " Sx = Sx + x[j]\n", "\n", "#Bubble Point Calculations for Bottoms with revised compositions \n", "alpixi = xW*alp132\n", "Sxa = 0.0\n", "for j in range(len(yD)):\n", " Sxa = Sxa + alpixi[j]\n", " \n", "y = alpixi/Sxa\n", "Sy = 0.0\n", "for j in range(len(yD)):\n", " Sy = Sy + y[j]\n", "\n", "#Results\n", "print \"For Part A\"\n", "print \"Distillate Compositions are:\"\n", "for i in range(len(yD)):\n", " print Name[i],\":\",round(yD[i],4)\n", "print \"Bottoms Compositions are:\"\n", "for i in range(len(xW)):\n", " print Name[i],\":\",round(xW[i],4)\n", "print \"Distillate and Bottoms rate are\", round(D,3), \"and\",round(W,3)\n", "\n", "print \"For Part B\"\n", "print \"Dew temperature for top product and Bubble temperature for Bottoms are:\\nguess values of 67 and 132 \u00b0C\"\n", "\n", "print \"For Part C\"\n", "print \"Minimum number of stages including reboiler are:\", round(Nm,3)\n", "print \"Minimum number of stages excluding reboiler are:\", round(Nm-1,3)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "For Part A\n", "Distillate Compositions are:\n", "A : 0.6197\n", "B : 0.3489\n", "C : 0.031\n", "D : 0.0004\n", "Bottoms Compositions are:\n", "A : 0.0011\n", "B : 0.0704\n", "C : 0.5068\n", "D : 0.4217\n", "Distillate and Bottoms rate are 64.483 and 35.517\n", "For Part B\n", "Dew temperature for top product and Bubble temperature for Bottoms are:\n", "guess values of 67 and 132 \u00b0C\n", "For Part C\n", "Minimum number of stages including reboiler are: 5.389\n", "Minimum number of stages excluding reboiler are: 4.389\n" ] } ], "prompt_number": 5 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 11.7-3 Page Number 687" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Minimum Reflux and Number of Stages at Operating Reflux\n", "import numpy as np\n", "from scipy.optimize import root\n", "\n", "#Variable Declaration\n", "xF = np.array([0.40,0.25,0.20,0.15]) #Feed composition in molfrac\n", "xD = np.array([0.6197,0.3489,0.0310,0.0004]) #Distillate composition in molfrac\n", "xW = np.array([0.0011,0.0704,0.5068,0.4217]) #Bottoms composition in molfrac\n", "K = np.array([3.12,1.38,0.60,0.28]) #Values of K at 99.3 \u00b0C\n", "\n", "hk = 2 #Heavy key index\n", "lk = 1 #Light key index \n", "q = 1.0 #Value of q as feed is saturated \n", "alavlk,D,W = 2.258,64.484,35.516 #From Example 11.7-2\n", "#Calculation\n", "al = K/K[hk]\n", "alxF = al*xF\n", "alxD = al*xD\n", "f = lambda x: alxF[0]/(al[0]-x)+ alxF[1]/(al[1]-x)+ alxF[2]/(al[2]-x)+ alxF[3]/(al[3]-x)\n", "sol = root(f,1.1)\n", "theta = sol.x[0]\n", "Rm = alxD[0]/(al[0]-theta)+ alxD[1]/(al[1]-theta)+ alxD[2]/(al[2]-theta)+ alxD[3]/(al[3]-theta) - 1.0\n", "R = 1.5*Rm\n", "ordiR = R/(1+R)\n", "Param = Rm/(1+Rm)\n", "#From Fig 11.7-3\n", "Nm = log((xD[lk]/xD[hk])*(xW[hk]/xW[lk]))/log(alavlk)\n", "NmbyN = 0.49 \n", "N = Nm/NmbyN\n", "ff = lambda Ne:log(Ne/(N-Ne))-0.206*log((xF[hk]/xF[lk])*(W/D)*(xW[lk]/xD[hk]))\n", "sol = root(ff,5)\n", "Ne = sol.x[0]\n", "#Results\n", "print \"For Part A \"\n", "print \"Minimum reflux is\",round(Rm,3)\n", "print \"For Part B\"\n", "print \"Number of Theoretical Stages including reboiler are\", round(N,1)\n", "print \"Number of Theoretical Stages excluding reboiler are\", round(N-1,1)\n", "print \"For Part C\"\n", "print \"Feed is introduce on tray number\", round(Ne,0),\"from top\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "For Part A \n", "Minimum reflux is 0.395\n", "For Part B\n", "Number of Theoretical Stages including reboiler are 11.0\n", "Number of Theoretical Stages excluding reboiler are 10.0\n", "For Part C\n", "Feed is introduce on tray number 6.0 from top\n" ] } ], "prompt_number": 39 } ], "metadata": {} } ] }