diff options
Diffstat (limited to 'Basic_Principles_And_Calculations_In_Chemical_Engineering')
44 files changed, 10281 insertions, 0 deletions
diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/README.txt b/Basic_Principles_And_Calculations_In_Chemical_Engineering/README.txt new file mode 100644 index 00000000..def5a27e --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/README.txt @@ -0,0 +1,10 @@ +Contributed By: Vaibhav Shah +Course: others +College/Institute/Organization: Indian Institute of Engineering Bombay +Department/Designation: System Administrator +Book Title: Basic Principles And Calculations In Chemical Engineering +Author: D. M. Himmelblau & J. B. Riggs +Publisher: PHI Learning Private Limited, New Delhi +Year of publication: 2004 +Isbn: 9788120338395 +Edition: 7th
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch1.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch1.ipynb new file mode 100644 index 00000000..947cfb01 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch1.ipynb @@ -0,0 +1,305 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 1 : Introduction" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 1.1 page no : 6\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Finding the density'''\n", + "\n", + "#let the total mass of mud be 100lbm\n", + "#variables\n", + "m_total=100.0; #lbm\n", + "#70% by wt of mud is sand(SiO2)and remaining is water\n", + "m_sand=0.7*m_total; #lbm\n", + "m_water=0.3*m_total; #lbm\n", + "rho_sand=165.0; #lbm/ft^3\n", + "rho_water=62.3; #lbm/ft^3\n", + "\n", + "#calculation\n", + "#rho=mass/volume\n", + "rho_mud=m_total/((m_sand/rho_sand)+(m_water/rho_water));\n", + "\n", + "#result\n", + "print \"The density of mud=\" ,rho_mud, \"lbm/ft^3\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The density of mud= 110.401675438 lbm/ft^3\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 1.2 page no : 8\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''\n", + "Calculate the shear stress at the surface of the inner cylinder\n", + "'''\n", + "import math\n", + "\n", + "# variables\n", + "D1=25.15 #mm\n", + "D2=27.62 #mm\n", + "dr=0.5*(D2-D1) #mm\n", + "f=10. #rpm\n", + "\n", + "# calculations\n", + "Vo=math.pi*D1*f/60. #mm/s\n", + "#Let D denote d/dr\n", + "DV=Vo/dr #s^-1\n", + "tow=0.005 #Nm\n", + "L=92.37 #mm\n", + "s=2*tow/D1**2/(math.pi)/L*(10**6) #N/m^2\n", + "\n", + "# result\n", + "print \"The stress at the surface of the inner cylinder is %f N/m^2\"%s " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The stress at the surface of the inner cylinder is 0.054481 N/m^2\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 1.3 page no : 15\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#problem on surface tension\n", + "# variablees\n", + "l=0.10; #m (length of sliding part)\n", + "f=0.00589; #N (pull due to 0.6 gm of mass)\n", + "\n", + "#calculation\n", + "f_onefilm=f/2; #N\n", + "#surface tension=(force for one film)/(length)\n", + "sigma=f_onefilm/l;\n", + "\n", + "# result\n", + "print \"The surface tension of fluid is\",sigma,\"N/m\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The surface tension of fluid is 0.02945 N/m\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 1.4 page no : 20\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Convert 327 miles/hr into ft/s\n", + "\n", + "# variables\n", + "V=327. #miles/hr\n", + "#1 mile = 5280 ft\n", + "#1 hour = 3600 sec\n", + "\n", + "# calculation\n", + "V1=V*5280/3600.0#ft/s\n", + "\n", + "# result\n", + "print \"327 miles/hr = %f ft/s\"%V1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "327 miles/hr = 479.600000 ft/s\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 1.5 page no : 21\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Convert 2.6 hours into seconds\n", + "\n", + "# variables\n", + "t=2.6 #hr\n", + "#1 hr = 3600 s\n", + "\n", + "# calculations\n", + "t1=2.6*3600 #s\n", + "\n", + "# result\n", + "print \"2.6 hours = %f seconds\"%t1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "2.6 hours = 9360.000000 seconds\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 1.6 page no : 24\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Calculate the acceleration in ft/min^2\n", + "\n", + "# variables\n", + "m=10. #lbm\n", + "F=3.5 #lbf\n", + "#1 lbf.s^2 = 32.2 lbm.ft\n", + "#1 min = 60 sec\n", + "\n", + "# calculations\n", + "a=F*32.2*60**2/m #ft/min^2\n", + "\n", + "# result\n", + "print \"The acceleration provided is %f ft/min^2\" % a" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The acceleration provided is 40572.000000 ft/min^2\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 1.7 page no : 24\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Calculate the wt of metallic aluminium deposited in an electrolytic cell\n", + "\n", + "# variables\n", + "I=50000. #Ampere or Coulumbs/sec\n", + "#1 hr = 3600 sec\n", + "I1=50000*3600. #C/hr\n", + "\n", + "#calculation\n", + "#96500 C = 1 gm.eq\n", + "#1 mole of aluminium = 3 gm.eq\n", + "#1 mole of aluminium = 27 gm\n", + "m=I1*(1.0/96500)*(27/3.0)/1000.0 #Kg/hr\n", + "\n", + "#result\n", + "print \"the wt of metallic aluminium deposited in an electrolytic cell is %f Kg/hr\"%m" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the wt of metallic aluminium deposited in an electrolytic cell is 16.787565 Kg/hr\n" + ] + } + ], + "prompt_number": 9 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch10.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch10.ipynb new file mode 100644 index 00000000..621beb27 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch10.ipynb @@ -0,0 +1,793 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 10 : Material Balances for Processes Involving Reaction" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 10.1 Page no. 264\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Reaction in which Fraction Conversion is specified\n", + "\n", + "# Variables \n", + "F = 100 # feed to the reactor-[g mol]\n", + "CH4 = 0.4*F # [g mol]\n", + "Cl2 = 0.5*F ; # [g mol]\n", + "N2= 0.1*F ; #[g mol]\n", + "\n", + "nio_CH4 = CH4 #[g mol CH4]\n", + "vi_CH4 = -1 # coefficint of CH4\n", + "\n", + "\n", + "# Calculation and Result\n", + "ex_CH4 = -(nio_CH4)/vi_CH4 # Max. extent of reaction based on CH4\n", + "\n", + "nio_Cl2 = Cl2 ; #[g mol Cl2]\n", + "vi_Cl2 = -1 ; # coefficint of Cl2\n", + "ex_Cl2 = -(nio_Cl2)/vi_Cl2 ; # Max. extent of reaction based on Cl2\n", + "\n", + "if (ex_Cl2 > ex_CH4 ):\n", + " print ' CH4 is limiting reactant '\n", + "else:\n", + " print ' (b) Cl2 is limiting reactant '\n", + "\n", + "cn_CH4 = 67/100.0 ; # percentage conversion of CH4\n", + "ex_r = (-cn_CH4)*CH4/vi_CH4 ; # extent of reaction\n", + "\n", + "print ' extent of reaction is %.1f g moles reacting '%ex_r\n", + "\n", + "n_un = 11 ; # Number of unknowns in the given problem\n", + "n_ie = 11 ; # Number of independent equations\n", + "d_o_f = n_un-n_ie ; # Number of degree of freedom\n", + "print ' Number of degree of freedom for the given system is %i '%d_o_f\n", + "\n", + "vi_CH3Cl = 1;\n", + "vi_HCl = 1;\n", + "vi_N2 = 0;\n", + "p_CH4 = CH4+(vi_CH4*ex_r); # [g mol]\n", + "p_Cl2 = Cl2+(vi_Cl2*ex_r); # [g mol]\n", + "p_CH3Cl = 0+(vi_CH3Cl*ex_r); # [g mol]\n", + "p_HCl = 0+(vi_HCl*ex_r); # [g mol]\n", + "p_N2 = N2+(vi_N2*ex_r); # [g mol]\n", + "\n", + "print 'Composition of product stream in %% g mol of products'\n", + "print 'Product Percentage g mol'\n", + "print 'CH4 %.1f%% g mol'%p_CH4\n", + "print 'Cl2 %.1f%% g mol'%p_Cl2\n", + "print 'CH3Cl %.1f%% g mol'%p_CH3Cl\n", + "print 'HCl %.1f%% g mol'%p_HCl\n", + "print 'N2 %.1f%% g mol'%p_N2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " CH4 is limiting reactant \n", + " extent of reaction is 26.8 g moles reacting \n", + " Number of degree of freedom for the given system is 0 \n", + "Composition of product stream in %% g mol of products\n", + "Product Percentage g mol\n", + "CH4 13.2% g mol\n", + "Cl2 23.2% g mol\n", + "CH3Cl 26.8% g mol\n", + "HCl 26.8% g mol\n", + "N2 10.0% g mol\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 10.2 Page no. 266\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# A reaction in which Fraction Conversion is to beCalculated\n", + "\n", + "# Variables \n", + "S = 5000. ; # Sulphur [lb]\n", + "CH4 = 80. ; # [%]\n", + "H2S = 20.; # [%]\n", + "\n", + "n_un = 11. ;\n", + "n_ie = 11. ;\n", + "\n", + "# Calculation and Result\n", + "d_o_f = n_un-n_ie ;\n", + "print 'Number of degree of freedom for the given system is %i '%d_o_f\n", + "\n", + "m_S = 32.0 #molecular wt. of S -[lb]\n", + "mol_S = S/32.0;\n", + "nio_S = 0 #[g mol S]\n", + "ni_S = mol_S ; #[g mol S]\n", + "vi_S = 3. # coefficint of S -from given reaction\n", + "ex_r = (ni_S-nio_S)/vi_S ; # Extent of reaction based on S\n", + "print ' Extent of reaction is %.1f g moles reacting '%ex_r\n", + "\n", + "vi_H2O = 2. ; # coefficint of H2O\n", + "vi_H2S = -2. ; # coefficint of H2S\n", + "vi_SO2 = -1. ; #coefficint of SO2\n", + "vi_CH4 = 0 ; #coefficint of CH4\n", + "P_H2O = 0+(vi_H2O*ex_r); # [lb mol]\n", + "P_H2S = P_H2O/10 ; #[lb mol]\n", + "P_SO2 = 3.*P_H2S ; #[lb mol]\n", + "\n", + "F = (P_H2S-vi_H2S*ex_r)/(H2S/100) ; # total feed-[lb mol]\n", + "F_SO2 = P_SO2-(vi_SO2*ex_r); # feed rate of SO2- [lb mol]\n", + "F_CH4 = (CH4/100.)*F+vi_CH4*ex_r ; #feed rate of CH4- [lb mol]\n", + "F_H2S = ((H2S/100.)*F) ; # feed rate of H2S-[lb mol]\n", + "\n", + "f_cn = -(vi_H2S*ex_r)/((H2S/100.)*F) # Fractional conversion of limiting reagent\n", + "\n", + "print '(1)Feed rate of H2S- %.1f lb mol'%F_H2S\n", + "print '(2)Feed rate of SO2- %.1f lb mol'%F_SO2\n", + "print '(3)Fractional conversion of limiting reagent- %.2f '%f_cn" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 \n", + " Extent of reaction is 52.1 g moles reacting \n", + "(1)Feed rate of H2S- 114.6 lb mol\n", + "(2)Feed rate of SO2- 83.3 lb mol\n", + "(3)Fractional conversion of limiting reagent- 0.91 \n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 10.3 Page no. 270\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Material Balances for Process in which two Simultaneous Reactions Occur\n", + "\n", + "# Variables \n", + "F = 1 #CH3OH -[gmol]\n", + "f_cn = 90. #[%]\n", + "vi_CH3OH = -1. #coefficint of CH3OH\n", + "\n", + "# Calculation and Result\n", + "ex_r1 = (-90./100)/vi_CH3OH # Extent of reaction based on CH3OH \n", + "print ' Extent of reaction 1 is %.2f g moles reacting '%ex_r1\n", + "\n", + "yld = 75. #[%]\n", + "ex_r2 = ex_r1-(F*(yld/100.0));\n", + "print ' Extent of reaction 2 is %.2f g moles reacting '%ex_r2\n", + "\n", + "f_O2 = 0.21 # mol. fraction of O2\n", + "f_N2 = 0.79 # mol. fraction of N2\n", + "n_O2 = 2*((1/2.0)*F) # entering oxygen -[g mol]\n", + "air = n_O2/f_O2 # Amount of air entering\n", + "n_N2 = air-n_O2 # entering nitrogen -[g mol]\n", + "\n", + "n_un = 11. # Number of unknowns in the given problem\n", + "n_ie = 11. # Number of independent equations\n", + "d_o_f = n_un-n_ie # Number of degree of freedom\n", + "print ' Number of degree of freedom for the given system is %i '%d_o_f\n", + "\n", + "v1_CH3OH = -1 #coefficint of CH3OH\n", + "v1_O2 = -1./2 #coefficint of O2\n", + "v1_CH2O = 1 ; #coefficint of CH2O\n", + "v1_H2O = 1 ; #coefficint of H2O\n", + "v1_CO = 0 ; #coefficient of CO\n", + "\n", + "#Reaction 2\n", + "v2_O2 = -1./2 #coefficint of O2\n", + "v2_CH2O = -1 #coefficint of CH2O\n", + "v2_H2O = 1 ; #coefficint of H2O\n", + "v2_CO = 1 ; #coefficient of CO\n", + "P = F+air +(v1_CH3OH+v1_O2+v1_CH2O+v1_H2O)*ex_r1 +(v2_O2+v2_CH2O+v2_H2O+v2_CO)*ex_r2 ;# Product -[g mol]\n", + "\n", + "no_CH3OH = F+(v1_CH3OH*ex_r1)+0 ; # [g mol]\n", + "no_O2 = n_O2+(v1_O2*ex_r1)+v2_O2*ex_r2 ; # [g mol]\n", + "no_CH2O = 0 + v1_CH2O*ex_r1 +v2_CH2O*ex_r2 ; #[g mol]\n", + "no_CO = 0+v1_CO*ex_r1 +v2_CO*ex_r2 ; #[g mol]\n", + "no_H2O = 0+v1_H2O*ex_r1+v2_H2O*ex_r2 ; # [g mol]\n", + "no_N2 = n_N2-0-0 ; # [g mol]\n", + "\n", + "\n", + "y_CH3OH = (no_CH3OH/P )*100 ; # mole %\n", + "y_O2 = (no_O2/P)*100 ; # mole %\n", + "y_CH2O = (no_CH2O/P)*100 ; # mole %\n", + "y_CO = (no_CO/P)*100 ; # mole %\n", + "y_H2O = (no_H2O/P)*100 ; # mole % \n", + "y_N2 = (no_N2/P )*100; # mole %\n", + "\n", + "print 'Composition of product'\n", + "print 'Component mole percent'\n", + "print ' CH3OH %.1f %%'%y_CH3OH\n", + "print ' O2 %.1f %%'%y_O2\n", + "print ' CH2O %.1f %%'%y_CH2O\n", + "print ' CO %.1f %%'%y_CO\n", + "print ' H2O %.1f %%'%y_H2O\n", + "print ' N2 %.1f %%'%y_N2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Extent of reaction 1 is 0.90 g moles reacting \n", + " Extent of reaction 2 is 0.15 g moles reacting \n", + " Number of degree of freedom for the given system is 0 \n", + "Composition of product\n", + "Component mole percent\n", + " CH3OH 1.6 %\n", + " O2 7.6 %\n", + " CH2O 11.9 %\n", + " CO 2.4 %\n", + " H2O 16.7 %\n", + " N2 59.8 %\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 10.4 Page no. 273\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Analysis of Bioreactor\n", + "from numpy import matrix\n", + "\n", + "# Variables \n", + "F = 4000. ; #[kg]\n", + "m_H2O = 18.02 ; # molecular masss of water\n", + "m_C6H12O6 = 180.1 ; # molecular mass of glucose\n", + "m_CO2 = 44. ; #molecular mass of CO2\n", + "m_C2H3CO2H = 72.03 ; # molecular mass of C2H3CO2H\n", + "m_C2H5OH = 46.05 ; # molecular mass of ethanol\n", + "\n", + "p_H2O = 88. ; # [%]\n", + "p_C6H12O6 = 12.; # [%] \n", + "\n", + "# Calculation & Result\n", + "ni_H2O = (F*p_H2O/100.)/m_H2O ; # initial moles of water\n", + "ni_C6H12O6 = (F*(p_C6H12O6/100.))/m_C6H12O6 ; # initial moles of glucose\n", + "\n", + "n_un = 9. \n", + "n_ie = 9. \n", + "d_o_f = n_un-n_ie\n", + "print 'Number of degree of freedom for the given system is %i '%d_o_f\n", + "\n", + "ur_C6H12O6 = 90. ; #[kg]\n", + "pr_CO2 = 120. ; #[kg]\n", + "nf_C6H12O6 = ur_C6H12O6/m_C6H12O6 ; # [kmoles]\n", + "nf_CO2 = pr_CO2/m_CO2 ; # [kmoles]\n", + "\n", + "\n", + "a = matrix([[-1,-1],[2,0]]); # matrix formed by coefficients of unknowns \n", + "b = matrix([[(nf_C6H12O6-ni_C6H12O6)],[nf_CO2]]); #matrix formed by constant\n", + "x = a**(-1)*b; #matrix formed by solution\n", + " \n", + "print ' Extent of reaction 1 is %.3f kg moles reacting '%x[0]\n", + "print ' Extent of reaction 2 is %.3f kg moles reacting '%x[1]\n", + "\n", + "nf_H2O = ni_H2O+0*x[0] +2*x[1]; \n", + "nf_C2H5OH = 0+2*x[0]+0*x[1];\n", + "nf_C2H3CO2H = 0+0*x[0]+2*x[1]\n", + "total_wt = m_H2O*nf_H2O + m_C6H12O6*nf_C6H12O6 + m_CO2*nf_CO2 + \\\n", + "m_C2H3CO2H*nf_C2H3CO2H + m_C2H5OH*nf_C2H5OH;\n", + "mp_C2H5OH = (m_C2H5OH*nf_C2H5OH*100)/total_wt \n", + "mp_C2H3CO2H = (m_C2H3CO2H*nf_C2H3CO2H*100)/total_wt\n", + "\n", + "print ' Mass percent of ethanol in broth at end of fermentation process is %.1f %%'%mp_C2H5OH\n", + "print ' Mass percent of propenoic acid in broth at end of fermentation process is %.1f %%'%mp_C2H3CO2H" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 \n", + " Extent of reaction 1 is 1.364 kg moles reacting \n", + " Extent of reaction 2 is 0.802 kg moles reacting \n", + " Mass percent of ethanol in broth at end of fermentation process is 3.1 %\n", + " Mass percent of propenoic acid in broth at end of fermentation process is 2.9 %\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 10.5 Page no. 279\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Solution using Elemental Balances\n", + "from numpy import matrix\n", + "\n", + "# Variables \n", + "\n", + "print '(a)Solution of Example 10.1 using element balance'\n", + "F = 100 # feed to the reactor-[g mol]\n", + "\n", + "CH4 = 0.4*F ; # [g mol]\n", + "Cl2 = 0.5*F ; # [g mol]\n", + "N2 = 0.1*F #[g mol]\n", + "\n", + "n_un = 10 # Number of unknowns in the given problem(excluding extent of reaction)\n", + "n_ie = 10 ; # Number of independent equations\n", + "d_o_f = n_un-n_ie # Number of degree of freedom\n", + "print ' Number of degree of freedom for the given system is %i '%d_o_f\n", + "\n", + "nio_CH4 = CH4 ; #[g mol CH4]\n", + "vi_CH4 = -1; # coefficint of CH4\n", + "\n", + "# Calculation and Result\n", + "ex_CH4 = -(nio_CH4)/vi_CH4 ; # Max. extent of reaction based on CH4\n", + "\n", + "\n", + "nio_Cl2 = Cl2 #[g mol Cl2]\n", + "vi_Cl2 = -1 # coefficint of Cl2\n", + "ex_Cl2 = -(nio_Cl2)/vi_Cl2 # Max. extent of reaction based on Cl2\n", + "\n", + "if (ex_Cl2 > ex_CH4 ): \n", + " print ' CH4 is limiting reactant '\n", + "else:\n", + " print ' (b) Cl2 is limiting reactant '\n", + "\n", + "cn_CH4 = 67.0/100 # percentage conversion of CH4(limiting reagent)\n", + "no_CH4 = CH4-(cn_CH4*CH4) ; #CH4 in product -[g mol]\n", + "\n", + "no_N2 = N2 #N2 in product -[g mol]\n", + "\n", + "C = CH4 ; #moles of CH4 = moles of C (by molecular formula)\n", + "H = 4*CH4 ; # moles of H = 4*moles of CH4 (by molecular formula)\n", + "Cl = 2*Cl2 ; # moles of Cl = 2* moles of Cl2 (by molecular formula)\n", + "\n", + "a = matrix([[0,0,1],[0,1,3],[2,1,1]]) # matrix formed by coefficients of unknowns \n", + "b = matrix([[C-no_CH4*1],[H-4*no_CH4],[Cl]]) ; #matrix formed by constant\n", + "x = a**(-1)*b ; # matrix of solution\n", + "\n", + "print 'Composition of product stream in %% g mol of products'\n", + "print 'Product Percentage g mol'\n", + "print 'CH4 %.1f%% g mol'%no_CH4\n", + "print 'Cl2 %.1f%% g mol'%x[0]\n", + "print 'CH3Cl %.1f%% g mol'%x[2]\n", + "print 'HCl %.1f%% g mol'%x[1]\n", + "print 'N2 %.1f%% g mol'%no_N2\n", + "\n", + "#(b)Solution of Example 10.3 using element balance\n", + "print '______________________________________________________________________________'\n", + "print '(b)Solution of Example 10.3 using element balance'\n", + "\n", + "F = 1 #CH3OH -[gmol]\n", + "yld = 75 #[%]\n", + "cnv = 90 ; #conversion of methanol-[%]\n", + "\n", + "f_O2 = 0.21 ; # mol. fraction of O2\n", + "f_N2 = 0.79 ; # mol. fraction of N2\n", + "n_O2 = 2*((1/2.0)*F) # entering oxygen -[g mol]\n", + "air = n_O2/f_O2 ; # Amount of air entering\n", + "n_N2 = air-n_O2 # entering nitrogen -[g mol]\n", + "\n", + "n_un = 9 # Number of unknowns in the given problem(excluding extent of reactions)\n", + "n_ie = 9 ; # Number of independent equations\n", + "d_o_f = n_un-n_ie # Number of degree of freedom\n", + "\n", + "print ' Number of degree of freedom for the given system is %i '%d_o_f\n", + "\n", + "no_N2 = n_N2 # inert ,terefore input = output\n", + "C = 1*F #moles of C = moles of CH3OH (by molecular formula)\n", + "H = 4*F ; #moles of H = 4*moles of CH3OH (by molecular formula)\n", + "O = 1*F +2*n_O2; # moles of O = 1*moles of CH3OH + O in air\n", + "no_CH2O = yld/100.0 #[g mol]\n", + "no_CH3OH = F-((cnv/100.0)*F) # [g mol]\n", + "\n", + "a = matrix([[0,0,1],[0,2,0],[2,1,1]]) # matrix formed by coefficients of unknowns \n", + "b = matrix([[(C-(no_CH3OH*1+no_CH2O*1))],[(H-(4*no_CH3OH+2*no_CH2O))],[(O-(no_CH3OH*1+no_CH2O*1))]]);\n", + "a = a.I\n", + "x = a * b ; # matrix of solution\n", + "\n", + "P = no_CH2O+no_CH3OH+no_N2+x[0]+x[1]+x[2];\n", + "\n", + "# Composition of product\n", + "y_CH3OH = (no_CH3OH/P )*100; # mole %\n", + "y_O2 = ((x[0])/P)*100; # mole %\n", + "y_CH2O = (no_CH2O/P)*100 ; # mole %\n", + "y_CO = (x[2]/P)*100 ; # mole %\n", + "y_H2O = (x[1]/P)*100 ; # mole % \n", + "y_N2 = (no_N2/P )*100; # mole %\n", + "\n", + "\n", + "print 'Composition of product'\n", + "print 'Component mole percent'\n", + "print ' CH3OH %.1f %%'%y_CH3OH\n", + "print ' O2 %.1f %%'%y_O2\n", + "print ' CH2O %.1f %%'%y_CH2O\n", + "print ' CO %.1f %%'%y_CO\n", + "print ' H2O %.1f %%'%y_H2O\n", + "print ' N2 %.1f %%'%y_N2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a)Solution of Example 10.1 using element balance\n", + " Number of degree of freedom for the given system is 0 \n", + " CH4 is limiting reactant \n", + "Composition of product stream in %% g mol of products\n", + "Product Percentage g mol\n", + "CH4 13.2% g mol\n", + "Cl2 23.2% g mol\n", + "CH3Cl 26.8% g mol\n", + "HCl 26.8% g mol\n", + "N2 10.0% g mol\n", + "______________________________________________________________________________\n", + "(b)Solution of Example 10.3 using element balance\n", + " Number of degree of freedom for the given system is 0 \n", + "Composition of product\n", + "Component mole percent\n", + " CH3OH 1.6 %\n", + " O2 7.6 %\n", + " CH2O 11.9 %\n", + " CO 2.4 %\n", + " H2O 16.7 %\n", + " N2 59.8 %\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 10.6 Page no. 281\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Use of Elemental Balance to Solve a Hydrocracking Problem\n", + "from numpy import matrix\n", + "\n", + "# Variables \n", + "P=100. ; #Product from the reactor-[g mol]\n", + "C3H8 = 0.195*P ; # [g mol]\n", + "C4H10 = 0.594*P ; # [g mol]\n", + "C5H12 = 0.211*P; # [g mol]\n", + "\n", + "n_un = 3 ; # Number of unknowns in the given problem(excluding extent of reaction)\n", + "n_ie = 3 ; # Number of independent equations\n", + "\n", + "# Calculation and Result\n", + "d_o_f = n_un-n_ie ; # Number of degree of freedom\n", + "print 'Number of degree of freedom for the given system is %i '%d_o_f\n", + "\n", + "C = C3H8*3+C4H10*4+C5H12*5 # moles of C on product side\n", + "H = C3H8*8+C4H10*10+C5H12*12 ; # moles of H on product side\n", + "\n", + "a = matrix([[8,0],[18,2]]) # matrix formed by coefficients of unknowns \n", + "b = matrix([[C],[H]]) ; #matrix formed by constant\n", + "a = a.I\n", + "x = a*b ; # matrix of solution\n", + "\n", + "R = x[1]/x[0] ; # Ratio of H2 consumed to C8H18 reacted = G/F\n", + "print ' Molar ratio of H2 consumed to C8H18 reacted is %.3f '%R" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 \n", + " Molar ratio of H2 consumed to C8H18 reacted is 0.992 \n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 10.7 Page no. 286\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Excesss Air\n", + "\n", + "# Variables \n", + "C3H8 = 20 #C3H8 burned in a test-[kg]\n", + "m_C3H8 = 44.09 # mol. wt . of 1 kmol C3H8\n", + "cf_O2 = 5 # coefficient of O2 in given reaction\n", + "air = 400 # Air given -[kg]\n", + "m_air = 29.0 # molecular wt. of 1kmol air-[kg]\n", + "O2p = 21 # percentage of O2 in air-[%]\n", + "p_CO2 = 44 # CO2 produced -[kg]\n", + "p_CO = 12 # CO produced -[kg]\n", + "\n", + "# Calculation \n", + "O2 = (air*O2p/100.0)/(m_air) # amount of entering O2-[k mol]\n", + "rqO2 = (C3H8*cf_O2)/(m_C3H8) # Required O2 for given reaction\n", + "ex_air = ((O2-rqO2)*100.0)/rqO2 ; # Excess air percent-[%]\n", + "\n", + "# Result\n", + "print 'Excess air percent is %.0f %%.'%ex_air" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Excess air percent is 28 %.\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 10.8 Page no. 287\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# A Fuel Cell to generate Electricity from Methane\n", + "\n", + "# Variables\n", + "F = 16. # feed of CH4 -[kg]\n", + "CH4p = 100. #[%]\n", + "m_CH4 = 16. ; # mass of kmol of CH4-[kg]\n", + "mol_CH4 = (F*CH4p/100)/m_CH4 #k moles of CH4 in feed-[kmol]\n", + "air = 300. ; # Air given -[kg]\n", + "m_air = 29. # molecular wt. of 1kmol air-[kg]\n", + "mol_air = air/m_air ; # kmoles of air-[kmol]\n", + "O2p = 21. # percentage of O2 in air-[%]\n", + "O2 = (mol_air*O2p/100) # amount of entering O2-[k mol]\n", + "N2 = mol_air-O2 ; # amount of entering N2-[k mol]\n", + "\n", + "n_un = 8. # Number of unknowns in the given problem(excluding extent of reactions)\n", + "n_ie = 8. # Number of independent equations\n", + "d_o_f = n_un-n_ie # Number of degree of freedom\n", + "print 'Number of degree of freedom for the given system is %i '%d_o_f\n", + "\n", + "# Product composition analysis using element balance of C,H,O and N\n", + "p_N2 = N2 # inert \n", + "C_in = 1*mol_CH4 ; # kmoles of carbon in input-[kmol]\n", + "H_in = 4*mol_CH4 # kmoles of hydrogen in input-[kmol]\n", + "O_in = 2*O2 ; # kmoles of oxygen in input-[kmol]\n", + "p_CO2 = C_in/1 ; #kmoles of CO2 in product obtained by carbon balance-[kmol]\n", + "p_H2O = H_in/2 ; #kmoles of H2O in product obtained by hydrogen balance-[kmol]\n", + "p_O2 = (O_in-(2*p_CO2+p_H2O))/2 #kmoles of O2 in product obtained by oxygen balance-[kmol]\n", + "p_CH4 = 0 # Complete reaction occurs\n", + "P = p_CH4 + p_N2+ p_CO2 + p_H2O + p_O2;\n", + "\n", + "y_N2 = p_N2*100/P ; #[mol %]\n", + "y_CO2 = p_CO2*100/P ; #[mol %]\n", + "y_H2O = p_H2O*100/P ; #[mol %]\n", + "y_O2 = p_O2*100/P ; #[mol %]\n", + "y_CH4 = p_CH4*100/P ; #[mol %]\n", + "\n", + "# Results\n", + "print 'Composition of product'\n", + "print 'Component mole percent'\n", + "print ' CH4 %.1f %%'%y_CH4\n", + "print ' O2 %.1f %%'%y_O2\n", + "print ' CO2 %.1f %%'%y_CO2\n", + "print ' H2O %.1f %%'%y_H2O\n", + "print ' N2 %.1f %%'%y_N2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 \n", + "Composition of product\n", + "Component mole percent\n", + " CH4 0.0 %\n", + " O2 1.5 %\n", + " CO2 8.8 %\n", + " H2O 17.6 %\n", + " N2 72.0 %\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 10.9 Page no. 290\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Combustion of Coal\n", + "\n", + "# Variables\n", + "F = 100. # feed of coal -[lb]\n", + "C = 83.05 #[%]\n", + "H = 4.45 #[%]\n", + "O = 3.36 ; # [%]\n", + "N = 1.08 # [%]\n", + "S = 0.70 #[%]\n", + "ash = 7.36 #[%]\n", + "H2O = 3.9 ; #[%]\n", + "w_C = 12. ; # mol. wt. of C\n", + "w_H = 1.008; #mol. wt. of H\n", + "w_O = 16. ; # mol. wt. of O\n", + "w_N = 14. ; # mol. wt. of N\n", + "w_S = 32. ; #mol. wt. of S\n", + "\n", + "CO2 = 15.4 #[%]\n", + "CO = 0.0 #[%]\n", + "O2 = 4.0 ; # [%]\n", + "N2 = 80.6 #[%]\n", + "ash_R = 86 #[%]\n", + "odr = 14 #[%]\n", + "\n", + "H2O_air = .0048 # [lb H2O/lb dry air]\n", + "m_air = 29. # mol. wt. of air\n", + "mf_O2 = 0.21 # mole fraction of O2 in air\n", + "mf_N2 = 0.79 #mole fraction of N2 in air\n", + "m_H2O = 18. # mol. wt. of H2O\n", + "\n", + "#Calculations\n", + "H_cl = (H2O*2)/m_H2O ; # lb mol of H in coal moisture\n", + "O_cl = H_cl/2. ; # lb mol of O in coal moisture\n", + "\n", + "H_air = (H2O_air*m_air )/m_H2O # lb mol of H per lb mol air\n", + "O_air = H_air/2. # lb mol of O per lb mol air \n", + "\n", + "# Ash balance to get refuse(R)\n", + "R = ash/(ash_R/100.) # Refuse-[lb]\n", + "\n", + "pub_cl = 14. # percentage of unburned coal in refuse-[%]\n", + "ub_cl = (14/100.)*R # amount of unburned coal in refuse\n", + "C_p = (C/(100-ash))*ub_cl # C in unburned coal-[lb]\n", + "H_p = (H/(100-ash))*ub_cl ; # H in unburned coal-[lb]\n", + "O_p = (O/(100-ash))*ub_cl ; # O in unburned coal-[lb]\n", + "N_p = (N/(100-ash))*ub_cl ; # N in unburned coal-[lb]\n", + "S_p = (S/(100-ash))*ub_cl ; # S in unburned coal-[lb]\n", + "mol_C = C_p/w_C; # lb mol of C\n", + "mol_H = H_p/w_H ; # lb mol of H\n", + "mol_N = N_p/w_N ; # lb mol of N\n", + "mol_O = O_p/w_O ; # lb mol of O\n", + "mol_S = S_p/w_S ; # lb mol of S \n", + "\n", + "\n", + "n_un = 4. # Number of unknowns in the given problem(excluding extent of reactions)\n", + "n_ie = 4. # Number of independent equations\n", + "d_o_f = n_un-n_ie # Number of degree of freedom\n", + "print 'Number of degree of freedom for the given system is %i '%d_o_f\n", + "\n", + "#Using element balance of C+S, N& H\n", + "P = (C/w_C + S/w_S - (mol_C+mol_S ))/.154 # mol of stack gas-[lb mol]\n", + "A = (2*P*.806 +2*mol_N-N/w_N)/(2*mf_N2) # mol of air -[lb mol]\n", + "W = (H/w_H +H_cl+H_air*A-mol_H)/2 # moles of exit water-[lb mol]\n", + "print ' Moles of stack gas(P) - %.1f lb mol'%P\n", + "print ' Moles of air (A) - %.1f lb mol '%A\n", + "print ' Moles of exit water(W) - %.1f lb mol '%W\n", + "\n", + "C_req = (C/w_C)/1\n", + "H_req = (H/w_H)/4 \n", + "N_req = 0 # inert\n", + "O_req = (O/w_O)/2 \n", + "S_req = (S/w_S)/1 \n", + "total_O2_req = C_req+H_req+N_req+O_req +S_req \n", + "O2_in = A*mf_O2 # O2 entering in air\n", + "ex_air = 100*((O2_in-total_O2_req)/total_O2_req)\n", + "\n", + "# Results\n", + "print ' Excess air is %.1f %%.'%ex_air" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 \n", + " Moles of stack gas(P) - 44.5 lb mol\n", + " Moles of air (A) - 45.4 lb mol \n", + " Moles of exit water(W) - 2.6 lb mol \n", + " Excess air is 16.8 %.\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch11.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch11.ipynb new file mode 100644 index 00000000..9592fff3 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch11.ipynb @@ -0,0 +1,498 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 11 : Material Balance Problems involving Multiple Units" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 11.1 Page no. 311\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determination of the Number of Independent Material Balance in a process with Multiple Units\n", + "\n", + "# Variables \n", + "\n", + "w_A1 = 1 #concentration of A in 1\n", + "w_B2 = 1 # concentration of B in 2\n", + "w_A3 = 0.8 # concentration of A in 3\n", + "w_B3 = 0.2 # concentration of B in 3\n", + "w_C4 = 1 # concentration of C in 4\n", + "w_A5 = 0.571 #concentration of A in 5\n", + "w_B5 = 0.143 #concentration of B in 5\n", + "w_C5 = 0.286 #concentration of C in 5\n", + "w_D6 = 1 # concentration of D in 6\n", + "w_A7 = 0.714 # concentration of A in 7\n", + "w_B7 = 0.286 # concentration of B in 7\n", + "w_B8 = 0.333 #concentration of B in 8\n", + "w_C8 = .667 #concentration of C in 8\n", + "\n", + "us1 = 2 # Species involved in unit 1\n", + "us2 = 3 ; # Species involved in unit 2\n", + "us3 = 4 ; # Species involved in unit 3\n", + "\n", + "# Caculations \n", + "total_sp = us1+us2+us3 # Total species in system\n", + "\n", + "# Results\n", + "print 'Number of possible equations are 9, they are as follows- '\n", + "print ' Subsystem 1'\n", + "print ' A: F1*w_A1+F2*0 = F3*w_A3 (a)'\n", + "print ' B:F1*0 + F2*w_B2 = F3*w_B3 (b)'\n", + "print ' Subsystem 2'\n", + "print ' A: F3*w_A3+F4*0 = F5*w_A5 (c)'\n", + "print ' B:F3*w_B3 + F4*0 = F5*w_B5 (d)'\n", + "print ' C: F3*0+F4*w_C4 = F5*w_C5 (e)'\n", + "print ' Subsystem 3'\n", + "print ' A: F5*w_A5+F6*0 = F7*w_A7+F8*0 (f)'\n", + "print ' B:F5*w_B5 + F6*0 = F7*0+F8*w_B8 (g)'\n", + "print ' C: F5*w_C5+F6*0 = F7*0+F8*w_C8 (h)'\n", + "print ' D:F5*w_C5+F6*0 = F7*0+F8*w_C8 (i)'\n", + "print ' The above equations do not form a unique set'\n", + "\n", + "# By inspection we can see that only 7 equations are independent \n", + "#Independent Equations are: \n", + "# Subsystem 1\n", + "#A: F1*w_A1+F2*0 = F3*w_A3 (a)\n", + "#B:F1*0 + F2*w_B2 = F3*w_B3 (b)\n", + "#Subsystem 2\n", + "#A: F3*w_A3+F4*0 = F5*w_A5 (c)\n", + "# C: F3*0+F4*w_C4 = F5*w_C5 (e)\n", + "# Subsystem 3\n", + "#A: F5*w_A5+F6*0 = F7*w_A7+F8*0 (f)\n", + "#B:F5*w_B5 + F6*0 = F7*0+F8*w_B8 (g)\n", + "#D:F5*w_C5+F6*0 = F7*0+F8*w_C8 (i)\n", + "\n", + "print ' Number of independent equations are 7 '" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of possible equations are 9, they are as follows- \n", + " Subsystem 1\n", + " A: F1*w_A1+F2*0 = F3*w_A3 (a)\n", + " B:F1*0 + F2*w_B2 = F3*w_B3 (b)\n", + " Subsystem 2\n", + " A: F3*w_A3+F4*0 = F5*w_A5 (c)\n", + " B:F3*w_B3 + F4*0 = F5*w_B5 (d)\n", + " C: F3*0+F4*w_C4 = F5*w_C5 (e)\n", + " Subsystem 3\n", + " A: F5*w_A5+F6*0 = F7*w_A7+F8*0 (f)\n", + " B:F5*w_B5 + F6*0 = F7*0+F8*w_B8 (g)\n", + " C: F5*w_C5+F6*0 = F7*0+F8*w_C8 (h)\n", + " D:F5*w_C5+F6*0 = F7*0+F8*w_C8 (i)\n", + " The above equations do not form a unique set\n", + " Number of independent equations are 7 \n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 11.2 Page no.315\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Material Balances for Multiple Units in which no Reaction occurs\n", + "\n", + "from numpy import matrix\n", + "\n", + "# Variables \n", + "\n", + "G = 1400 #[kg]\n", + "n_un = 16 # Number of unknowns in the given problem(excluding extent of reactions)\n", + "n_ie = 16 ; # Number of independent equations\n", + "d_o_f = n_un-n_ie # Number of degree of freedom\n", + "\n", + "print 'For unit 1 number of degree of freedom for the given system is %i .'%d_o_f\n", + "\n", + "o1_air = 0.995 ; # Mass fraction of air at out of unit 1 in A\n", + "i1_air = 0.95 ; # Mass fraction air at in of unit 1 in G\n", + "i1_wtr = 0.02; # Mass fraction water at in of unit 1 in G\n", + "F1_wtr = 0.81 ; # Mass fraction of water at out of unit 1 in F\n", + "o1_wtr = 0.005 ; # Mass fraction of water at out of unit 1 in A\n", + "o2_wtr = 0.96 ; # Mass fraction of water at out of unit 2 in B\n", + "o3_wtr = 0.01; # Mass fraction of water at out of unit 3 in D\n", + "i1_act = 0.03 ; # Mass fraction of acetone at in of unit 1 in G\n", + "F1_act = 0.19 ; # Mass fraction of acetone at out of unit 1 in F\n", + "o3_act = 0.99 ; # Mass fraction of acetone at out of unit 3 in D\n", + "o2_act = 0.04 ; # Mass fraction of acetone at out of unit 2 in B\n", + "\n", + "# Calculations \n", + "A = G*i1_air/o1_air ; #air-[kg]\n", + "F = G*i1_act/F1_act ; #[kg]\n", + "W = (F*F1_wtr+A*o1_wtr-G*i1_wtr)/1 #Pure water in -[kg]\n", + "\n", + "n_un = 9 ; # Number of unknowns in the given problem(excluding extent of reactions)\n", + "n_ie = 9 ; # Number of independent equations\n", + "d_o_f = n_un-n_ie \n", + "\n", + "print ' For unit 2 and 3 number of degree of freedom for the given system is %i .'%d_o_f\n", + "\n", + "a = matrix([[o3_act, o2_act],[o3_wtr, o2_wtr]]);\n", + "b = matrix([[F*F1_act],[F*F1_wtr]])\n", + "a = a.I\n", + "x = a*b \n", + "\n", + "# Results\n", + "print ' W-Pure water in to unit 1 - %.2f kg/hr'%W\n", + "print ' A-Air out of unit 1 - %.2f kg/hr'%A\n", + "print ' F-out of unit 1 - %.2f kg/hr'%F\n", + "print ' B-out of unit 2 - %.2f kg/hr'%x[1]\n", + "print ' D-out of unit 3 - %.2f kg/hr'%x[0]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "For unit 1 number of degree of freedom for the given system is 0 .\n", + " For unit 2 and 3 number of degree of freedom for the given system is 0 .\n", + " W-Pure water in to unit 1 - 157.74 kg/hr\n", + " A-Air out of unit 1 - 1336.68 kg/hr\n", + " F-out of unit 1 - 221.05 kg/hr\n", + " B-out of unit 2 - 186.15 kg/hr\n", + " D-out of unit 3 - 34.90 kg/hr\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 11.3 Page no. 318\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Material Balance for problems Involving Multiple units and Reactions\n", + "\n", + "from numpy import matrix\n", + "\n", + "# Variables \n", + "P = 6205. #[lb mol/hr]\n", + "amt_F = 560. ; #[bbl]\n", + "C_F = 0.50 ; # [mol fraction]\n", + "H2_F = 0.47 ; #[mol fraction]\n", + "S_F = 0.03 ; #[mol fraction]\n", + "\n", + "CH4_G = 0.96 ; #[mol fraction]\n", + "C2H2_G = 0.02 ; #[mol fraction]\n", + "CO2_G = 0.02 ; #[mol fraction]\n", + "\n", + "O2_A = 0.21 ; #[mol fraction]\n", + "N2_A = 0.79 ; #[mol fraction]\n", + "\n", + "# Analysis of air into Oil furnace(A1)\n", + "O2_A1 = 0.20 ; #[mol fraction]\n", + "N2_A1 = 0.76 ; #[mol fraction]\n", + "CO2_A1 = 0.04 ; #[mol fraction]\n", + "\n", + "#Stack gas(P) analysis\n", + "N2_P = .8493 ; #[mol fraction]\n", + "O2_P = .0413 ; #[mol fraction]\n", + "SO2_P = .0010 ; # [mol fraction]\n", + "CO2_P = .1084 ; #[mol fraction]\n", + "\n", + "# Degree of freedom analysis \n", + "n_un = 5; \n", + "n_ie = 5 ;\n", + "d_o_f = n_un-n_ie; # Number of degree of freedom\n", + "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n", + "\n", + "\n", + "# Calculations & Results\n", + "F = P* SO2_P/S_F ; # [lb mol/hr]\n", + "a = matrix([[2*CH4_G+C2H2_G, -1, 0, 0],[0, 0, N2_A, N2_A1],[CO2_G ,-.5, O2_A, O2_A1+CO2_A1], \n", + " [CH4_G+2*C2H2_G+CO2_G,0,0,CO2_A1]]);# matrix of coefficients\n", + "b = matrix([[-F*H2_F],[P*N2_P],[P*(O2_P+CO2_P+SO2_P)],[(P*CO2_P-F*C_F)]]); # matrix of constants\n", + "a = a.I\n", + "x = a*b \n", + "G = x[0]\n", + "m_F = 7.91\n", + "Fc = (F*m_F)/(7.578*42) # Fuel gas consumed -[bbl/hr]\n", + "time = amt_F/Fc ; # Time for which available fuel gas lasts-[hr]\n", + "\n", + " \n", + "print '(1) Fuel gas consumed(F) is %.2f bbl/hr .'%Fc\n", + "print '(2) Time for which available fuel gas lasts is %.0f hr .'%time\n", + "\n", + "# For increase in arsenic and mercury level\n", + "F_oil = Fc*42; #[gal/hr]\n", + "Em_ars2 = (3.96 *10**(-4))/1000.0 ; # [lb/gal]\n", + "Em_Hg2 = (5.92 *10**(-4))/1000.0 ; # [lb/gal]\n", + "ars_F = F_oil*Em_ars2 \n", + "Hg_F = F_oil*Em_Hg2 \n", + "G_gas = G*359 #[ft**3/hr]\n", + "Em_ars1 = (2.30 *10**(-4))/10**6 ; # [lb/ft**3]\n", + "Em_Hg1 = (1.34 *10**(-4))/10**6 ; # [lb/ft**3]\n", + "ars_G = G_gas*Em_ars1;\n", + "Hg_G = G_gas*Em_Hg1 ;\n", + "in_ars = ((ars_F-ars_G)/ars_G)*100 #[% increase in Arsenic emission]\n", + "in_Hg = ((Hg_F-Hg_G)/Hg_G)*100 #[% increase in Mercury emission]\n", + "\n", + "print '(3) Increase in Arsenic emission is %.1f %% .'%in_ars\n", + "print '(4) Increase in Mercury emission is %.1f %% .'%in_Hg" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 .\n", + "(1) Fuel gas consumed(F) is 5.14 bbl/hr .\n", + "(2) Time for which available fuel gas lasts is 109 hr .\n", + "(3) Increase in Arsenic emission is 107.4 % .\n", + "(4) Increase in Mercury emission is 432.3 % .\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 11.4 Page no. 322\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Analysis of Sugar Recovery Process involving Multiple Serial Units\n", + "# Solution fig E11.4\n", + "from numpy import matrix\n", + "\n", + "# Variables \n", + "M = 1000. ; #[lb]\n", + "F_s = 16/100. # Fraction of sugar in F\n", + "F_w = 25/100. # Fraction of water in F\n", + "F_p = 59/100. # Fraction of pulp in F\n", + "D_p = 80/100. # Fraction of pulp in D\n", + "E_s = 13/100. # Fraction of sugar in E\n", + "E_p = 14/100. # Fraction of pulp in E\n", + "G_p = 95/100. # Fraction of pulp in G\n", + "H_s = 15/100. # Fraction of sugar in H\n", + "K_s = 40/100. # Fraction of sugar in K\n", + "\n", + "# Calculations \n", + "K_w = 1 - K_s\n", + "K = M/K_s;\n", + "L = K_w*K;\n", + "\n", + "# For evaporator equations are \n", + "H_w = 1- H_s\n", + "H = K_s*K/H_s\n", + "J = H - K; \n", + "\n", + "# For screen equations are \n", + "E_w = 1 - (E_p + E_s) \n", + "\n", + "a1 = matrix([[1,-1],[E_p,-G_p]])\n", + "b1 = matrix([[H,],[0,]]) \n", + "a1 = a1.I\n", + "x1 = a1*b1\n", + "E = x1[0] \n", + "G = x1[1] \n", + "G_s = (E_s*E - H_s *H )/G\n", + "G_w = 1 -(G_s + G_p) \n", + "\n", + "a2 = matrix([[1,-1],[F_p,-D_p]]) # Matrix of coefficients of unknown\n", + "\n", + "F = 7818.93 \n", + "D = 1152.2634 \n", + "\n", + "D_s = (F_s*F - E_s*E )/D # By sugar balance\n", + "D_w = 1 -(D_s + D_p) # summation of wt. fraction is 1\n", + "\n", + "S_rec = M/(F*F_s) ; # Fraction of sugar recovered \n", + "\n", + "\n", + "# Results\n", + "print 'Flow streams and their respective compositions.'\n", + "print ' M = %.0f lb '%M\n", + "print ' Sugar: %.2f '%1\n", + "\n", + "print ' L = %.0f lb '%L\n", + "print ' Water: %.2f'%1\n", + "\n", + "print ' K = %.0f lb '%K\n", + "print ' Sugar: %.2f'%K_s\n", + "print ' Water: %.2f'%K_w\n", + "\n", + "print ' J = %.0f lb '%J\n", + "print ' Water: %.2f '%1\n", + "\n", + "print ' H = %.0f lb '%H\n", + "print ' Sugar: %.2f'%H_s\n", + "print ' Water: %.2f'%H_w\n", + "\n", + "print ' G = %.0f lb '%G\n", + "print ' Sugar: %.3f'%G_s\n", + "print ' Water: %.3f'%G_w\n", + "print ' Pulp : %.2f'%G_p\n", + "\n", + "print ' E = %.0f lb '%E\n", + "print ' Sugar: %.2f'%E_s\n", + "print ' Water: %.2f'%E_w\n", + "print ' Pulp : %.2f'%E_p\n", + "\n", + "print ' D = %.0f lb '%D\n", + "print ' Sugar: %.3f'%D_s\n", + "print ' Water: %.3f'%D_w\n", + "print ' Pulp : %.2f'%D_p\n", + "\n", + "print ' F = %.0f lb '%F\n", + "print ' Sugar: %.2f'%F_s\n", + "print ' Water: %.2f'%F_w\n", + "print ' Pulp : %.2f'%F_p" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Flow streams and their respective compositions.\n", + " M = 1000 lb \n", + " Sugar: 1.00 \n", + " L = 1500 lb \n", + " Water: 1.00\n", + " K = 2500 lb \n", + " Sugar: 0.40\n", + " Water: 0.60\n", + " J = 4167 lb \n", + " Water: 1.00 \n", + " H = 6667 lb \n", + " Sugar: 0.15\n", + " Water: 0.85\n", + " G = 1152 lb \n", + " Sugar: 0.014\n", + " Water: 0.036\n", + " Pulp : 0.95\n", + " E = 7819 lb \n", + " Sugar: 0.13\n", + " Water: 0.73\n", + " Pulp : 0.14\n", + " D = 1152 lb \n", + " Sugar: 0.204\n", + " Water: -0.004\n", + " Pulp : 0.80\n", + " F = 7819 lb \n", + " Sugar: 0.16\n", + " Water: 0.25\n", + " Pulp : 0.59\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 11.5 Page no.324\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Production of a Hormone in connected Reactor\n", + "\n", + "# Variables \n", + "F = 15. #[L/hr]\n", + "cs_in = 10. #Nutrient conc. input vessel - [g nutrient/L substrate]\n", + "V1 = 100. ; # [L]\n", + "V2 = 50. ; #[L]\n", + "Yxs = 0.2 ; # [cells/g]\n", + "umax = 0.4 ; #[hr** - 1]\n", + "Ks = 2. ; #[g/L] - Monod constant\n", + "\n", + "# Calculations\n", + "u1 = F/V1 #[hr** - 1] #[hr** - 1]\n", + "cs_out = (Ks * u1/umax)/(1 - (u1/umax)) \n", + "\n", + "x_out = Yxs * (cs_in - cs_out) #[g cells / L substrate]\n", + "\n", + "u2 = F/V2;\n", + "cs_out1 = (Ks * u2/umax)/(1 - (u2/umax)) #Nutrient conc. output vessel - [g nutrient/L substrate]\n", + "x_out1 = Yxs * (cs_in - cs_out1) #[g cells / L substrate]\n", + "\n", + "x_out2 = 1.73 # From eqn. (e),(f) and (g) - [g cells / L substrate]\n", + "\n", + "# Results\n", + "print 'g cells/L from option 1 is %.2f.'%x_out\n", + "print 'g cells/L from option 2 is %.2f.'%x_out2\n", + "print 'By comparing option 1 and option 2 the respective answers are essentially the same.'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "g cells/L from option 1 is 1.76.\n", + "g cells/L from option 2 is 1.73.\n", + "By comparing option 1 and option 2 the respective answers are essentially the same.\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch12.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch12.ipynb new file mode 100644 index 00000000..1d00a5b6 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch12.ipynb @@ -0,0 +1,368 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 12 : Recycle Bypass Purge and the Industrial Application of Material Balance" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 12.1 Page No.349\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from numpy import matrix\n", + "\t\t\t\n", + "# Variables \n", + "F = 10000. ;\t\t\t#[lb/hr]\n", + "\t\t\t\n", + "NaOH_F = 40./100 ;\t \t\t#[wt. fraction]\n", + "NaOH_P1 = 95./100 ;\t \t\t#[wt. fraction of NaOH filter cake]\n", + "NaOH_P2 = (0.05 * 45)/100 ;\t\t\t#[wt. fraction of NaOH in NaOH soln.]\n", + "H2O_P2 = (0.05 * 55)/100 ;\t\t\t#[wt. fraction of H2O in NaOH soln.]\n", + "NaOH_R = 45./100;\t\t\t#[wt. fraction]\n", + "NaOH_G = 50./100;\t\t\t#[wt. fraction]\n", + "\t\t\t\n", + "P = (NaOH_F * F)/(NaOH_P1 + NaOH_P2) ;\t\t\t#[lb/hr]\n", + "\t\t\t\n", + "W = F-P ;\t\t\t# [lb/hr]\n", + "\n", + "# Calculations & Results\t\n", + "a = matrix([[NaOH_G,-NaOH_R],[1,-1]]) \t\t\t# matrix formed of coefficients of unknown\n", + "b = matrix([[F*NaOH_F],[P]]);\t\t\t# matrix formed by constant\n", + "a = a.I\n", + "x = a*b ;\t\t\t# matrix of solutions . x(1) = G, x(2) = R\n", + "G = x[0] ;\t\t\t# [lb/hr]\n", + "R = x[1] ;\t\t\t# [lb/hr]\n", + " \n", + "print '(a) Flow rate of water removed by evaporator is %.1f lb/hr'%W\n", + "print 'The recycle rate of the process is %.1f lb/hr'%R\n", + "\n", + "\t\t\t\n", + "NaOH_H = 45./100 ;\t\t\t#[wt fraction]\n", + "H2O_H = 55./100 ;\t\t\t#[wt fraction]\n", + "\n", + "a1 = matrix([[NaOH_G,-NaOH_H],[NaOH_G,-H2O_H]]) ;\t\t\t# matrix formed of coefficients of unknown\n", + "b1 = matrix([[((NaOH_P1+NaOH_P2)* P)],[(H2O_P2) * P]]);\t\t\t# matrix formed by constant\n", + "x1 = a1**-1\n", + "x1 = x1*b1 ;\t\t\t# matrix of solutions nw_G = x1(1);H = x1(2)\n", + "nw_G1 = x1[0] ;\t\t\t# [lb/hr]\n", + "H = x1[1];\t\t\t# [lb/hr]\n", + "\n", + "nw_F = (NaOH_H * H + (NaOH_P1 + NaOH_P2) * P)/NaOH_F ;\t\t\t#[lb/hr]\n", + "print ' (b) Total feed rate when filterate is not recycled is %.1f lb/hr'%nw_F\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Flow rate of water removed by evaporator is 5886.9 lb/hr\n", + "The recycle rate of the process is 38868.9 lb/hr\n", + " (b) Total feed rate when filterate is not recycled is 53727.5 lb/hr\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 12.2 Page No.357\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "F_Bz = 100. ;\t\t\t# Fresh benzene feed / basis - [mol]\n", + "con_Bz = .95 ;\t\t\t# Fraction of conversion of benzene\n", + "sp_con = .20 ;\t\t\t# Fraction of single pass conversion\n", + "ex_H2 = .20 ;\t\t\t# Fraction of exces H2 used in fresh feed\n", + "R_Bz = 22.74 ;\t\t\t# Benzene in Recycle stream - [mol %]\n", + "R_H2 = 78.26 ;\t\t\t# H2 in Recycle stream - [mol %]\n", + "TLV_Bz = 0.5 ;\t\t\t# TLV value of benzene -[ppm]\n", + "TLV_C6H12 = 300. ;\t\t\t# TLV value of cyclohexane -[ppm]\n", + "TLV_H2 = 1000. ;\t\t\t# TLV value of H2 -[ppm]\n", + "\n", + "# Calculations\n", + "F_H2 = F_Bz*3*(1+ex_H2) ;\t\t\t# H2 in Feed - [mol]\n", + "F = F_Bz + F_H2 ;\t\t\t# Total feed - [mol] \n", + "\n", + "ex_r = con_Bz*F_Bz/(-(-1)) ;\t\t\t# Extent of reaction\n", + "\n", + "P_Bz = F_Bz -1*(ex_r) ;\t\t\t# Benzene in P ,by benzene balance - [mol]\n", + "P_H2 = F_H2 + -3*(ex_r) ;\t\t\t# H2 in P ,by H2 balance - [mol]\n", + "P_C6H12 = 0 + 1*(ex_r) ;\t\t\t# Cyclohexane in P ,by cyclohexane balance - [mol]\n", + "P = P_Bz + P_H2 + P_C6H12 ;\t\t\t# Total Product - [ mol]\n", + "\n", + "R = ((-(-ex_r))/(sp_con) - F_Bz)/(R_Bz/100.) ;\t\t\t# Recycle stream - [mol]\n", + "R_by_F = R/F ;\t\t\t# Ratio of R to F \n", + "\n", + "TLV = (P_Bz/P)*(1/TLV_Bz) + (P_H2/P)*(1./TLV_H2) + (P_C6H12/P)*(1/TLV_C6H12) ;\t\t\t# TLV (environmental index) \n", + "\n", + "# Results\n", + "print 'Ratio of R to F is %.2f .'%R_by_F\n", + "print ' TLV (environmental index) is %.3f .'%TLV\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Ratio of R to F is 3.58 .\n", + " TLV (environmental index) is 0.059 .\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 12.3 Page No.359\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "RR = 8.33 ;\t\t\t# Recycle ratio\n", + "F = 100. ;\t\t\t# Overall feed/basis - [lb]\n", + "F_g = 0.40 ;\t\t\t# Fraction of glucose in overall feed \n", + "F_w = 0.60 ;\t\t\t# Fraction of water in overall feed \n", + "F_dash_f = 0.04 ; \t\t\t# Fraction of fructose in feed to reactor\n", + "P = F \t\t\t# By overall balance -[lb]\n", + "R = P/RR ;\t\t\t# Recycle stream - [lb]\n", + "P_w = (F_w * F)/ P ;\t\t\t# Fraction of water in product(P), by overall water balance\n", + "R_w = P_w ;\t\t\t#Fraction of water in recycle (R), since both R and P has same composition\n", + "\n", + "# Calculations\t\t\n", + "F_dash = F +R ;\t\t\t# Feed to reactor ,by total balance -[lb]\n", + "R_f = (F_dash*F_dash_f)/R ;\t\t\t# Fraction of fructose in recycle stream \n", + "R_g = 1 - (R_f + R_w) ;\t\t\t# Fraction of glucose in recycle stream\n", + "F_dash_g = (F*F_g + R*R_g)/F_dash ;\t\t\t# Fraction of glucose i feed to reactor\n", + "\n", + "f_con = ((F_dash*F_dash_g) - (R + P)*R_g)/(F_dash*F_dash_g) ;\t\t\t# Fraction of conversion of glucose in reactor\n", + "\n", + "# Results\n", + "print 'Fraction of conversion of glucose in reactor is %.2f .'%f_con\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Fraction of conversion of glucose in reactor is 0.93 .\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 12.4 Page No.362\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "F = 100. ;\t\t\t# Overall feed/basis - [kg]\n", + "F_com = 0.10 ;\t\t\t# Mass fraction of component in fresh feed \n", + "F_w = 0.90 ;\t\t\t# Mass fraction of water in fresh feed \n", + "P_w = 0.10 ;\t\t\t# Mass fraction of water in product\n", + "P_com = 0.90 ;\t\t\t#Mass fraction of component in product\n", + "F_dash_com = 0.03 ;\t\t\t#Mass fraction of component in feed to reactor\n", + "W_w = 1. ;\t\t\t# Mass fraction of water in W(waste)\n", + "C_con = .40 ;\t\t\t# Fraction of conversion of component in reactor\n", + "\n", + "# Calculations\n", + "P = F_com*F/P_com ;\t\t\t#By component balance- Product - [kg]\n", + "W = F - P ;\t\t\t# By overall balance - waste(W)- [kg]\n", + "\n", + "Rw = (F*F_com - F*F_com*C_con)/C_con ;\t\t\t# Mass of component in recycle(R) - [kg]\n", + "F_dash = ( F*F_com + Rw )/F_dash_com ;\t\t\t# By component balance - feed to reactor(F') -[kg]\n", + "R = F_dash - F ;\t\t\t # Recycle(R) - By total balance -[kg]\n", + "w = Rw/R ;\t\t\t # Mass fraction of component in recycle(R) \n", + "\n", + "# Results\n", + "print 'Recycle(R) stream- %.0f kg '%R\n", + "print ' Mass fraction of component in recycle(R)- %.4f .'%w\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Recycle(R) stream- 733 kg \n", + " Mass fraction of component in recycle(R)- 0.0205 .\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 12.5 Page No.367\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "F = 100. \t\t\t# Overall feed/basis - [kg]\n", + "F_n_C5H12 = 0.80 ;\t\t\t# Fraction of n_C5H12 in overall feed \n", + "F_i_C5H12 = 0.20 ;\t\t\t# Fraction of i_C5H12in overall feed \n", + "S_i_C5H12 = 1. ;\t\t\t# Fraction of i_C5H12 in isopentane stream\n", + "P_n_C5H12 = .90 ;\t\t\t# Fraction of n_C5H12 in overall product\n", + "P_i_C5H12 = .10 ;\t\t\t# Fraction of i_C5H12 in overall product\n", + "\n", + "# Calculations\n", + "P = (F*F_n_C5H12)/P_n_C5H12 ;\t\t\t#Product Material Balance of n_C5H12 -[kg]\n", + "S = F - P ;\t\t\t# Isopentane stream (S) from overall material balance - [kg]\n", + "\n", + "from numpy import matrix\n", + "a = matrix([[1,-1],[F_n_C5H12,-1]]) ;\t\t\t# Matrix of coefficients of unknown \n", + "b = matrix([[S],[0]]) ;\t\t\t# Matrix of constants\n", + "a = a.I\n", + "x = a*b \t\t\t# Matrix of solutions, x(1) = x , x(2) = y\n", + "\n", + "xf = x[0]/F ;\t \t\t# Fraction of butane-free gas going to isopentane tower \n", + "\n", + "# Results\n", + "print 'Fraction of butane-free gas going to isopentane tower is %.3f .'%xf\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Fraction of butane-free gas going to isopentane tower is 0.556 .\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 12.6 Page No.369\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "F = 100. ;\t\t\t# Overall feed/basis - [mole]\n", + "F_H2 = 0.673 ;\t\t\t# Mole fraction of H2 in overall feed \n", + "F_CO = 0.325 ;\t\t\t# Mole fraction of i_C5H12in overall feed \n", + "F_CH4 = .002 ;\t\t\t# Mole fraction of CH4 in overall feed \n", + "E_CH3OH = 1. ;\t\t\t# Mole fraction of CH3OH in Exit(E)\n", + "\t\n", + "z = .032 ;\n", + "CO_con = .18 ;\t\t\t# Fraction of conversion of CO in reactor\n", + "\n", + "# Calculations\n", + "#By using eqn.(c) and (d)\n", + "P = F_CH4*F/z ;\t\t\t# Purge stream - [mole]\n", + "\n", + "# Using eqn.(a) , (b) and (c)\n", + "x_plus_y = 1 - z ;\t\t\t# x + y \n", + "E = (F_H2*F + F_CO*F + 3*F_CH4*F - P*(x_plus_y + 3*z ))/3 ;\t\t\t# Exit stream - [mole]\n", + "\n", + "# By using eqn. (d)\n", + "y = ( F_CO*F - E )/P ;\t\t\t# Mole fraction of CO \n", + "\n", + "# By using eqn. (a)\n", + "x = 1 - z - y ;\t\t\t# Mole fraction of H2 \n", + "\n", + "# Lastly by using eqn.(e)\n", + "R = ( F_CO*F - P*y - F_CO*F*CO_con )/(y*CO_con) ;\t\t\t# Recycle steam - [mole]\n", + "\n", + "# Results\n", + "print 'Moles of recycle(R) per mole of feed(F) - %.4f '%(R/F)\n", + "print ' Moles of CH3OH(E) per mole of feed(F) - %.4f '%(E/F)\n", + "print ' Moles of Purge(P) per mole of feed(F) - %.4f '%(P/F);\n", + "print ' Composition of Purge '\n", + "print ' Component Mole fraction '\n", + "print ' H2 %.3f '%x\n", + "print ' CO %.3f '%y\n", + "print ' CH4 %.3f '%z\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Moles of recycle(R) per mole of feed(F) - 7.0556 \n", + " Moles of CH3OH(E) per mole of feed(F) - 0.3125 \n", + " Moles of Purge(P) per mole of feed(F) - 0.0625 \n", + " Composition of Purge \n", + " Component Mole fraction \n", + " H2 0.768 \n", + " CO 0.200 \n", + " CH4 0.032 \n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch13.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch13.ipynb new file mode 100644 index 00000000..b72b411d --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch13.ipynb @@ -0,0 +1,426 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 13 : Ideal Gases" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 13.1 Page No. 404\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "m_CO2 = 40. ;\t\t\t# Mass of CO2-[kg]\n", + "mol_wt_CO2 = 44. ;\t\t\t# Molecular mass of 1kmol CO2 -[kg]\n", + "mol_V = 22.42 ;\t\t\t# Molar of ideal gas at standard condition-[cubic metre/kg mol]\n", + "\n", + "# Calculations\n", + "V_CO2 = (m_CO2 * mol_V)/(mol_wt_CO2);\t\t\t# volume of CO2-[cubic metre]\n", + "\n", + "# Results\n", + "print 'Volume occupied by 40 kg CO2 at standard condition is %.1f cubic metre.'%V_CO2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Volume occupied by 40 kg CO2 at standard condition is 20.4 cubic metre.\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 13.2 Page No. 405\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "p =1. ;\t\t\t# Pressure -[atm]\n", + "V = 22415. ;\t\t\t# Molar valume -[cubic centimetre/g mol]\n", + "T = 273.15 ;\t\t\t# Temperature-[K]\n", + "\n", + "# Calculations\n", + "R = (p*V/T);\t\t\t# Universal gas constant-[(cubic centimetre.atm)/(K.g mol)]\n", + "\n", + "# Results\n", + "print 'Universal gas constant is %.2f (cubic centimetre*atm)/(K*g mol). '%R\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Universal gas constant is 82.06 (cubic centimetre*atm)/(K*g mol). \n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 13.3 Page No.406\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "m_CO2 = 88. ;\t\t\t# Mass of CO2-[lb]\n", + "mol_wt_CO2 = 44. ;\t\t# Molecular mass of 1 lb mol CO2 -[lb]\n", + "mol_V = 359. ; \t\t\t# Molar volume-[cubic feet]\n", + "\n", + "# State 1-standard condition\n", + "P1 = 33.91 ; \t\t\t# Pressure -[ft of water]\n", + "T1 = 273. ;\t\t\t# Temperature-[K]\n", + "\n", + "# State 2\n", + "P2 = 32.2 ;\t\t\t# Pressure -[ft of water]\n", + "Tc = 15. ;\t\t\t # Temperature-[degree C]\n", + "T2 = Tc+273 ;\t\t\t# Temperature-[K]\n", + "\n", + "# Calculations\n", + "V1 = (m_CO2 * mol_V) / (mol_wt_CO2);\n", + "V2 = (V1 * T2 * P1) / (T1 * P2);\n", + "\n", + "# Results\n", + "print 'The volume occupied 88 lb of CO2 at given condition is %.0f cubic feet.'%V2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The volume occupied 88 lb of CO2 at given condition is 798 cubic feet.\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 13.4 Page No. 408\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "mol_wt_N2 = 28. ;\t# Molecular mass of 1 kg mol N2 -[kg]\n", + "mol_V = 22.42 ;\t\t# Molar of ideal gas at standard condition-[cubic metre/kg mol]\n", + "Tc = 27. ;\t\t\t# Temperature-[degree C]\n", + "T = Tc + 273. ;\t\t#Temperature-[K]\n", + "P = 100. ;\t\t\t#Pressure-[kPa]\n", + "\t\t\t\n", + "Ps = 101.3 ;\t\t# Pressure -[kPa]\n", + "Ts = 273. ;\t\t\t#Temperature-[K]\n", + "\n", + "# Calculations\n", + "V = (T * Ps * mol_V)/(Ts * P) ;\t\t\t# Volume occupied by N2-[cubic metre]\n", + "D_N2 = mol_wt_N2/V ;\t\t\t # Density of N2 at given condition-[kg/cubic metre]\n", + "\n", + "# Results\n", + "print ' Density of N2 at given condition is %.3f kg/cubic metre.'%D_N2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Density of N2 at given condition is 1.122 kg/cubic metre.\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 13.5 Page No. 409 \n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "mol_wt_N2 = 28. ;\t\t\t# Molecular mass of 1 lb mol N2 -[lb]\n", + "mol_wt_air = 29. ;\t\t\t# Molecular mass of 1 lb mol air -[lb]\n", + "mol_V = 359. ;\t\t\t # Molar volume of ideal gas-[cubic feet]\n", + "\t\n", + "Tf = 80. ;\t\t\t# Temperature-[degree F]\n", + "T = Tf + 460. ;\t\t#Temperature-[degree Rankine]\n", + "P = 745. ;\t\t\t#Pressure-[mm of Hg]\n", + "\n", + "Ps = 760. ;\t\t\t# Pressure -[mm of Hg]\n", + "Ts = 492. ;\t\t\t#Temperature-[degree Rankine]\n", + "\n", + "# Calculations\n", + "D_air = (Ts * P * mol_wt_air)/(T * Ps * mol_V) ;\t\t# Density of air at given condition-[lb/cubic feet]\n", + "D_N2 = (Ts * P * mol_wt_N2)/(T * Ps * mol_V) ;\t\t\t# Density of N2 at given condition-[lb/cubic feet]\n", + "sg_N2 = D_N2/D_air ;\t\t\t # Specific gravity of N2 compared to air at given condition \n", + "\n", + "# Results\n", + "print ' Specific gravity of N2 compared to air at given condition is %.3f .'%sg_N2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Specific gravity of N2 compared to air at given condition is 0.966 .\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 13.6 Page No. 414\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "F_gas = 1. ;\t\t\t # Flue gas [kg mol]\n", + "mf_CO2 = 14./100 ;\t\t\t# [mol fraction]\n", + "mf_O2 = 6./100 ;\t\t\t# [mol fraction]\n", + "mf_N2 = 80./100 ;\t\t\t# [mol fraction]\n", + "P = 765. ;\t\t\t #Pressure-[mm of Hg]\n", + "T = 400. ;\t\t\t # Temperature-[degree F]\n", + "\n", + "# Calculations\n", + "p_CO2 = P * mf_CO2 ;\t\t# Partial pressure of CO2-[mm of Hg]\n", + "p_O2 = P * mf_O2 ;\t\t\t# Partial pressure of O2-[mm of Hg]\n", + "p_N2 = P * mf_N2 ;\t\t\t# Partial pressure of N2-[mm of Hg]\n", + "\n", + "# Results\n", + "print ' Component pi(Partial pressure-[mm of Hg]) '\n", + "print ' CO2 %.1f mm of Hg '%p_CO2\n", + "print ' O2 %.1f mm of Hg '%p_O2\n", + "print ' N2 %.1f mm of Hg '%p_N2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Component pi(Partial pressure-[mm of Hg]) \n", + " CO2 107.1 mm of Hg \n", + " O2 45.9 mm of Hg \n", + " N2 612.0 mm of Hg \n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 13.7 Page no. 416\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\t\t\t# Example 13.7 Page no. 416\n", + "\t\t\t# Solution fig E13.7\n", + "\n", + "# Variables\n", + "G = 100. ;\t\t\t# Basis: Pyrolysis Gas-[lb mol] \n", + "ub_CO = 10./100 ;\t# fraction of CO left unburnt\n", + "ex_air = 40./100 ;\t# fraction of excess air\n", + "m_vol = 359. ;\t\t# molar volume of gas at std. cond.-[cubic feet]\n", + "Ts = 492. ;\t\t\t# Standard temperature -[degree Rankine]\n", + "Ps = 29.92 ;\t\t#Standard pressure -[in. Hg]\n", + "\n", + "# Calculations\n", + "# Analysis of entering gas of entering gas\n", + "Tf1 = 90. ;\t\t\t# Temperature of gas-[degree F]\n", + "T_gas = Tf1 + 460. ;\t#Temperature of gas-[degree Rankine]\n", + "P_gas = 35. ;\t\t\t#Pressure-[in. Hg]\n", + "CO2 = 6.4/100 ;\t\t\t# mol fraction of CO2\n", + "O2 = 0.1/100 ;\t\t\t# mol fraction of O2\n", + "CO = 39./100 ;\t\t\t# mol fraction of CO\n", + "H2 = 51.8/100 ;\t\t\t# mol fraction of H2\n", + "CH4 = 0.6/100 ;\t\t\t# mol fraction of CH4\n", + "N2 = 2.1/100 ;\t\t\t# mol fraction of N2\n", + "\n", + "# Analysis of entering air\n", + "Tf2 = 70. ;\t\t\t # Temperature of air -[degree F]\n", + "T_air = Tf2 + 460. ;\t#Temperature of air-[degree Rankine]\n", + "P_air = 29.4 ;\t\t\t#Pressure of air [in. Hg]\n", + "f_N2 = 79./100 ;\t\t\t# mol fraction of N2\n", + "f_O2 = 21./100 ;\t\t\t# mol fraction of O2\n", + "\n", + "\n", + "O2r_O2 = O2 * G ;\t\t\t# O2 required by O2-[lb mol]\n", + "O2r_CO = CO * G/2 ;\t\t\t# O2 required by CO-[lb mol]\n", + "O2r_H2 = H2 * G/2 ;\t\t\t# O2 required by H2-[lb mol]\n", + "O2r_CH4 = G * CH4 * 2 ;\t\t\t# O2 required by CH4-[lb mol]\n", + "O2r_total = O2r_O2 + O2r_CO + O2r_H2 + O2r_CH4 ;\t\t\t# Total O2 required-[lb mol]\n", + "ex_O2 = ex_air * O2r_total ;\t\t\t# Excess O2-[lb mol]\n", + "total_O2 = ex_O2 + O2r_total ;\t\t\t# Total amt of O2 in air-[lb mol]\n", + "total_N2 = total_O2 * (f_N2/f_O2);\t\t\t# Total amt of in air-[lb mol]\n", + "air = total_O2 + total_N2 ;\t\t\t# Total air entering -[lb mol]\n", + "\n", + "# Product analysis\n", + "P_CO = ub_CO * CO * G ;\t\t\t#Unburnt CO in P-[lb mol]\n", + "P_N2 = N2 * G + total_N2 ;\t\t\t# N2 in P-[lb mol]\n", + "P_CO2 = (CO2 + CO + CH4) * G - 1 * P_CO;\t\t\t#CO2 in P-[lb mol]\n", + "P_H2O = (H2 + 2 * CH4) * G ;\t\t\t# H2 in P-[lb mol]\n", + "P_O2 = (CO2 + O2 + 0.5 * CO) * G + total_O2 -P_CO2-0.5 * (P_H2O + P_CO);\t\t\t# O2 in P-[lb mol]\n", + "P = P_CO + P_N2 + P_CO2 + P_H2O + P_O2 ;\t\t\t# Product-[lb mol]\n", + "Tf3 = 400 ;\t\t\t# Temperature of product-[degree F]\n", + "T_prod = Tf3 + 460 ;\t\t\t#Temperature of product-[degree Rankine]\n", + "P_prod = 35 ;\t\t\t# Pressure of product -[in.Hg]\n", + "V_gas = (G * m_vol * T_gas * Ps)/(Ts * P_gas);\n", + "V_air = (air * m_vol * T_air * Ps)/(Ts * P_air);\n", + "V_prod = (P * m_vol * T_prod * Ps)/(Ts * P_prod);\n", + "air_ft3 = V_air/V_gas ;\t\t\t#Air supplied per ft**3 of gas entered-[cubic feet]\n", + "P_ft3 = V_prod/V_gas ;\t\t\t#Product gas produced per ft**3 of gas entered-[cubic feet]\n", + "\n", + "# Results\n", + "print ' Air supplied per ft**3 of gas entered %.2f cubic feet. '%air_ft3\n", + "print ' Product gas produced per ft**3 of gas entered %.2f cubic feet.'%P_ft3\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Air supplied per ft**3 of gas entered 3.57 cubic feet. \n", + " Product gas produced per ft**3 of gas entered 5.75 cubic feet.\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 13.8 Page No. 419\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "T1c = 15. ;\t\t\t # Temperature of F & P -[degree C] \n", + "T1 = 273. + T1c ;S\t# Temperature of F & P -[K] \n", + "P1 = 105. ;\t\t\t# Pressure of F & P -[kPa]\n", + "\n", + "# Calculations\n", + "# F analysis\n", + "F_CO2 = 1.2/100 ;\t\t\t# Volume fraction \n", + "F_odr = 98.8/100 ;\t\t\t# Volume fraction \n", + "\n", + "# P analysis\n", + "P_CO2 = 3.4/100 ;\t\t\t# Volume fraction \n", + "P_odr = 96.6/100 ;\t\t\t# Volume fraction \n", + " \n", + "Tc_CO2 = 7. ;\t\t\t#Temperature CO2 -[degree C] \n", + "T_CO2 = 273. + Tc_CO2 ;\t\t\t# Temperature CO2 -[K]\n", + "P_CO2 = 131. ;\t\t\t# Pressure of CO2 -[kPa]\n", + "CO2 = 0.0917 ;\t\t\t# Volume flow rate of CO2-[cubic metre/min]\n", + "# Convert given volume flow rate of CO2 at temperature of F & P\n", + "nw_CO2 = (CO2 * T1 * P_CO2)/(T_CO2 * P1) ;\t\t\t# volume flow rate of CO2 at temperature of F & P-[cubic metre]\n", + "\n", + "from numpy import matrix\n", + "a = matrix([[F_odr,-P_odr],[1, -1]]);\t\t\t# Matrix formed by coefficients of unknown\n", + "b = matrix([[0],[-nw_CO2]]) ;\t\t\t# Matrix formed by constants\n", + "a = a.I\n", + "x = a*b ;\t\t\t# matrix of solution, x(1) = F;x(2) = P\n", + "F = x[0] ;\t\t\t#Volume flow rate of entering gas-[cubic metre/min]\n", + "P = x[1] ;\t\t\t#Volume flow rate of product [cubic metre/min]\n", + "\n", + "# Results\n", + "print 'Volume flow rate of entering gas is %.2f cubic metre/min'%F\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Volume flow rate of entering gas is 5.17 cubic metre/min\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch14.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch14.ipynb new file mode 100644 index 00000000..dbfb8f2a --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch14.ipynb @@ -0,0 +1,190 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 14 : Real Gases Compressiblity" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 14.1 Page No. 442\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "T1f = 125. ;\t\t\t# Temperature of NH3 -[degree F] \n", + "T1 = 460. +T1f ;\t\t\t# Temperature NH3 -[degree Rankine] \n", + "Pg = 292. ;\t\t\t# Pressure of NH3 -[psig]\n", + "Pa = Pg+14.7 ;\t\t\t#Pressure of NH3 -[psia]\n", + "R = 10.73 ;\t\t\t#Universal gas constant-[(psia*cubic feet)/(lb mol*R)]\n", + "mw_NH3 = 17. ;\t\t# Molecular wt. 1 lb mol NH3-[lb]\n", + "n = 1/17. ;\t\t\t#[mol]\n", + "V_tank = 120. ;\t\t# Volume of tank-[cubic feet]\n", + "\n", + "# Calculations\n", + "V_id = (n*R*T1)/Pa ;\t# Specific volume of NH3 treating it ideal gas-[cubic feet/lb]\n", + "Tc = 729.9 ;\t\t\t#[degree R]\n", + "Pc = 1636. ;\t\t\t#[psia]\n", + "Tr = T1/Tc;\n", + "Pr = Pa/Pc;\n", + "\n", + "z_real = 0.855;\n", + "z_ideal = 1.;\n", + "V_real = V_id*z_real/z_ideal;\t\t\t# Specific volume of NH3 treating it real gas-[cubic feet/lb]\n", + "NH3 = V_tank/V_real ;\t\t\t # Actual amt. of NH3 in tank-[lb]\n", + "\n", + "# Results\n", + "print 'Actual amt. of NH3 in tank is %.0f lb. Therefore , boss is wrong.'%NH3\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Actual amt. of NH3 in tank is 117 lb. Therefore , boss is wrong.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 14.2 Page No. 444\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "Tc = 154.4 ;\t\t\t#[K]\n", + "Pc1 = 49.7 ;\t\t\t# [atm]\n", + "Pc = 101.3 * Pc1;\t\t#[kPa]\n", + "\n", + "T_O21 = -25 ;\t\t\t# Temperature-[degree C]\n", + "T_O2 = 273+T_O21;\t\t#Temperature -[K]\n", + "R = 8.134 ;\t\t\t # gas constant-[(cubic metre * kPa)/(kg mol * K)]\n", + "V_tank = 0.0284 ;\t\t# Volume of tank-[cubic metre]\n", + "mol_O2 = 32 ;\t\t\t# Kmol. wt. of O2-[kg]\n", + "m_O2 = 3.5 ;\t\t\t# Mass of liquid O2-[kg]\n", + "\n", + "# Calculations\n", + "V_sp = V_tank * mol_O2/m_O2 ;\t\t\t# Specific molar volume-[m**3/kg]\n", + "Vc = R * Tc/Pc ;\t\t\t # [cubic metre/kg mol]\n", + "Vr = V_sp/Vc;\n", + "Tr = T_O2/Tc;\n", + "\n", + "Pr = 1.43 ;\t\t\t# [kPa]\n", + "P_O2 = Pr * Pc ;\t# The pressure in the tank -[kPa]\n", + "\n", + "# Results\n", + "print 'The pressure in the tank is %.2f kPa.'%P_O2\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The pressure in the tank is 7199.49 kPa.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 14.3 Page No. 448\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "Tc = 100. ;\t\t\t# Temperature -[degree C] \n", + "T = 273 +Tc ;\t# Temperature -[K] \n", + "P = 90. ;\t\t# Pressure [atm]\n", + "R = 82.06 ;\t\t\t# gas constant-[(cubic centimetre * atm)/(g mol * K)]\n", + "Y_CH4 = 20./100 ;\t\t\t# [mole fraction]\n", + "Y_C2H4 = 30./100 ;\t\t\t# [mole fraction]\n", + "Y_N2 = 50./100 ;\t\t\t#[mole fraction]\n", + "\n", + "#Additional information from appendix D\n", + "Tc_CH4 = 191. ;\t\t\t#[K]\n", + "Pc_CH4 = 45.8 ;\t\t\t# [atm]\n", + "Tc_C2H4 = 283. ;\t\t#[K]\n", + "Pc_C2H4 = 50.5 ;\t\t# [atm]\n", + "Tc_N2 = 126. ;\t\t\t#[K]\n", + "Pc_N2 = 33.5 ;\t\t\t# [atm]\n", + "\n", + "# Calculations & Results\n", + "#(a)-Ideal gas law\n", + "V_sp1 = R * T/P ;\t\t\t# Molar volume-[cubic centimetre/g mol]\n", + " \n", + "print '(a) The volume per mole of mixture by ideal gas law is %.1f cubic centimetre/g mol.'%V_sp1\n", + "\n", + "\t\t\t#(b)\n", + "Pc_mix = Pc_CH4 * Y_CH4+Pc_C2H4 * Y_C2H4+Pc_N2 * Y_N2;\t\t\t# [atm]\n", + "Tc_mix = Tc_CH4 * Y_CH4+Tc_C2H4 * Y_C2H4+Tc_N2 * Y_N2 ;\t\t\t# [K]\n", + "Pr_mix = P/Pc_mix;\n", + "Tr_mix = T/Tc_mix;\n", + "\t\t\t# With 2 parameters(Pr_mix and Tr_mix) , you can find from figure 14.4b that z * Tr_mix = 1.91\n", + "z = 1.91/Tr_mix;\n", + "V_sp2 = z * R * T/P ;\t\t\t# Molar volume-[cubic centimetre/g mol]\n", + "print '(b) The volume per mole of mixture by treating it to be real gas is %.1f cubic centimetre/g mol.'%V_sp2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) The volume per mole of mixture by ideal gas law is 340.1 cubic centimetre/g mol.\n", + "(b) The volume per mole of mixture by treating it to be real gas is 324.1 cubic centimetre/g mol.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch15.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch15.ipynb new file mode 100644 index 00000000..c6c7dffb --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch15.ipynb @@ -0,0 +1,75 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 15 : Real Gases Equations of State" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 15.1 Page No. 464\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of Van der Walls Equation to Calculate a Temperature\n", + "\n", + "# variables\n", + "R = 82.06 # gas constant-[(cm**3 *atm)/(g mol *K)]\n", + "a = 9.24 *10**(6) ; #(atm) *(cm**3/g mol)**2\n", + "b = 90.7 ; # (cm**3)/(g mol)\n", + "m_C3H8 = 22.7 # Mass of propane-[kg]\n", + "mw_C3H8 = 44. ; # Mol. wt. of 1kmol propane-[kg]\n", + "V = 0.15 *10**(6) ; # Volume of cylinder -[cm**3]\n", + "pg = 4790. # Gauge pressure -[kPa]\n", + "\n", + "# Calculations\n", + "P = (pg +101.3)/101.3 # Pressure absolute-[atm abs]\n", + "n = (m_C3H8/mw_C3H8) *10**3 ; # Moles of propane\n", + "# Get T using Van der Waal's eqn. \n", + "T = ((P +((n**(2) *a/(V**(2))))) *(V-n *b))/(R *n) ;# Temperature of propane-[K]\n", + "\n", + "# Result\n", + "print 'Temperature of propane is %.0f K.'%T" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Temperature of propane is 384 K.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch16.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch16.ipynb new file mode 100644 index 00000000..37a79df4 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch16.ipynb @@ -0,0 +1,190 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 16 : Single Component Two Phase Systems" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 16.1 Page no. 486" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "# Variables\n", + "Tc = 972. ;\t\t\t#[degree C]\n", + "T = 273.+Tc ;\t\t\t#[K]\n", + "A = 8.799;\n", + "B = 1.615 * 10**4;\n", + "C = 0.;\n", + "mw = 26.98;\n", + "\n", + "# Calculations\n", + "# Use Antoine eqn. to get vapour pressure at 972 degree C\n", + "vP = math.exp(A-(B/(C+T))) ;\t\t\t# vapour pressure at 972 degree C-[mm Hg]\n", + "P = vP * 101.325/760 ;\t\t\t#[kPa]\n", + "# Use rate of vapourization(m) by given formula\n", + "m = 0.437 * (P * (mw**.5)/(T**0.5)) ;\t\t\t# Vapourization rate at 972 degree C-[g/(square centimetre * s)]\n", + "\n", + "# Results\n", + "print ' Vapourization rate at 972 degree C is %.1e g/(square centimetre)(s).'%m\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Vapourization rate at 972 degree C is 1.3e-04 g/(square centimetre)(s).\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 16.3 Page no. 494\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "T1 = 110. ;\t\t\t# Temperature of chlorobenzene - [degree C] \n", + "T1F = (9*T1)/(5) + 32 ;\t\t\t# Temperature of chlorobenzene - [degree F] \n", + "P1 = 400. ;\t\t\t#Pressure of chlorobenzene - [mm of Hg]\n", + "P1_psia = P1*14.7/760 ;\t\t\t#Pressure of chlorobenzene - [psia]\n", + "T2 = 205. ;\t\t\t# Temperature of chlorobenzene - [degree C] \n", + "T2F = (9.*T2)/(5) + 32 ;\t\t\t# Temperature of chlorobenzene - [degree F] \n", + "P2 = 5. ;\t\t\t#Pressure of chlorobenzene - [atm]\n", + "\n", + "# Calculations\n", + "P2_psia = P2*14.7 ;\t\t\t#Pressure of chlorobenzene - [psia]\n", + "\n", + "# Data from steam table\n", + "x1 = [.9487,3.72,11.525,29.8,67,247,680,1543,3094];\n", + "y1 = [100,150,200,250,300,400,500,600,700];\n", + "\n", + "x2 = [P1_psia,P2_psia];\n", + "y2 = [T1F,T2F];\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Results\n", + "plt.plot(x1,y1);\n", + "plt.plot(x2,y2);\n", + "plt.plot(x1,y1);\n", + "plt.plot(x2,y2);\n", + "plt.show()\n", + "vp1 = 150. ;\t\t\t# vapour pressure of chlorobenzene from cox chart prepared at 245 degree C\n", + "vp2 = 700. ;\t\t\t# vapour pressure of chlorobenzene from cox chart prepared at 359 degree C\n", + "\n", + "print 'Temperature Estimated vapour pressure of chlorobenzene from cox chart'\n", + "print ' 245 degree C %i psia'%vp1\n", + "print ' 359 degree C %i psia'%vp2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nU34WbyUAAAAASUVORK5CYII=\n", + "text": [ + "<matplotlib.figure.Figure at 0x2d83e10>" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Temperature Estimated vapour pressure of chlorobenzene from cox chart\n", + " 245 degree C 150 psia\n", + " 359 degree C 700 psia\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 16.4 Page no. 495\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "OP_Et = 400. ;\t\t\t#OSHA PEL of ethyl acetate -[ppm by volume]\n", + "OP_Mek = 200. ;\t\t\t#OSHA PEL of Methyl ethyl ketone [ppm by volume]\n", + "OP_Nba = 1.3 ;\t\t\t#OSHA PEL of n-butyl acetate [ppm by volume]\n", + "vp_Et = 96.9 ;\t\t\t# Vapour pressure of ethyl acetate obtained from CD-[mm of Hg]\n", + "vp_Mek = 94.8 ;\t\t\t# Vapour pressure of Methyl ethyl ketone obtained from CD-[mm of Hg]\n", + "vp_Nba = 20. ;\t\t\t# Vapour pressure of n-butyl acetate obtained from Perry-[mm of Hg]\n", + "\n", + "# Calculations\n", + "Chz_Et = vp_Et/OP_Et ;\t\t\t# Combined hazard criterion of ethyl acetate\n", + "Chz_Mek = vp_Mek/OP_Mek ;\t\t\t# Combined hazard criterion of Methyl ethyl ketone \n", + "Chz_Nba = vp_Nba/OP_Nba ;\t\t\t# Combined hazard criterion of n-butyl acetate\n", + "\n", + "# Results\n", + "print 'Combined hazard criterion of solvents in increasing order are :'\n", + "print 'Ethyl acetate : %.2f'%Chz_Et\n", + "print 'Methyl ethyl ketone : %.2f'%Chz_Mek\n", + "print 'n-butyl acetate : %.2f'%Chz_Nba\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Combined hazard criterion of solvents in increasing order are :\n", + "Ethyl acetate : 0.24\n", + "Methyl ethyl ketone : 0.47\n", + "n-butyl acetate : 15.38\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch17.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch17.ipynb new file mode 100644 index 00000000..0c482647 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch17.ipynb @@ -0,0 +1,326 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 17 : Two Phase Gas Liquid Systems Saturation Condensation and Vaporization" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 17.1 Page no. 511\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "F = 1. ;\t\t\t#H2C2O4- [mol]\n", + "ex_O2 = 248. ;\t\t#Excess air- [%]\n", + "f_C = 65/100. ;\t\t# Fraction of Carbon which convert to CO2\n", + "P = 101.3 ;\t\t\t# Atmospheric pressure-[kPa]\n", + "\n", + "# Calculations\n", + "O2_req = F*0.5 ;\t\t\t# O2 required by the above reaction-[mol]\n", + "O2_in = (1. + ex_O2*F/100)*0.5 ;\t\t\t# Mol. of O2 entering\n", + "\n", + "# Use Elemental balance moles of species in output \n", + "n_CO2 = f_C*2 ;\t\t\t# [mol]\n", + "n_H2O = (2*F)/2. ;\t\t# From 2H balance-[mol]\n", + "n_N2 = ((O2_in*0.79)/(0.21)) ;\t\t\t# From 2N balance-[mol]\n", + "n_CO = 2-n_CO2 ;\t\t\t # From C balance-[mol]\n", + "n_O2 = ((4 + O2_in*2)-(n_H2O + n_CO + 2*n_CO2))/2 ;\t\t\t# From O2 balance-[mol]\n", + "total_mol = n_CO2 + n_H2O + n_N2 + n_CO + n_O2 ;\t\t\t# Total moles in output stream-[mol]\n", + "y_H2O = n_H2O/total_mol ;\t# Mole fraction of H2O\n", + "pp_H2O = y_H2O*P ;\t\t\t# Partial pressure of H2O-[kPa]\n", + "\n", + "\n", + "# Results\n", + "print 'Partial pressure of H2O %.2f kPa.'%pp_H2O\n", + "print 'Use partial pressure of H2O to get dew point temperature T from steam table: T = 316.5 K'\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Partial pressure of H2O 9.10 kPa.\n", + "Use partial pressure of H2O to get dew point temperature T from steam table: T = 316.5 K\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 17.2 Page no. 517\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "gas = 1. ;\t\t\t# Entering gas-[g mol]\n", + "T = 26. ;\t\t\t# Temperature (for isothermal process)-[degree C]\n", + "vp = 99.7 ;\t\t\t# vapour pressure of benzene at 26 C-[mm of Hg]\n", + "\n", + "# Analysis of entering gas \n", + "f_C6H6 = 0.018 ;\t\t\t# Mol fraction of benzene\n", + "f_air = 0.982 ;\t\t\t# Mol fraction of air\n", + "mol_C6H6 = 0.018*gas ;\t\t# Moles of benzene-[g mol]\n", + "mol_air = 0.982*gas ;\t\t# Moles of air-[g mol]\n", + "\n", + "# Calculations\n", + "# Analysis of exit gas\n", + "C6H6_rec = 95./100 ;\t\t\t# Fraction of benzene recovered\n", + "C6H6_out = 1-C6H6_rec ;\t\t#Fraction of benzene in exit stream\n", + "C6H6_out = mol_C6H6*C6H6_out ;\t#Moles of benzene in exit stream-[g mol]\n", + "air_out = mol_air ;\t\t\t #Moles of air in exit stream-[g mol]\n", + "total_mol = C6H6_out+air_out ;\t# Total moles in exit stream\n", + "y_C6H6_out = C6H6_out/total_mol ;\t\t\t# Mole fraction of benzene in exit\n", + "P = vp/y_C6H6_out ;\t\t\t # Pressure total of exit\n", + "\n", + "# Results\n", + "print ' Pressure total at exit of compressor %.2e mm of Hg.'%P\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Pressure total at exit of compressor 1.09e+05 mm of Hg.\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 17.3 Page no. 519\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "ex_air = .4 ;\t\t\t# Fraction of excess air required\n", + "w_C = 12. ;\t\t\t # Mol. wt. of C-[g]\n", + "mol_C = 71./w_C ;\t\t#[kg mol]\n", + "w_H2 = 2.016 ;\t\t\t# Mol. wt. of H2 - [g] \n", + "mol_H2 = 5.6/w_H2;\n", + "air_O2 = 0.21;\t\t\t# Fraction of O2 in air\n", + "air_N2 = 0.79;\t\t\t# Fraction of N2 in air\n", + "\n", + "# Calculations\n", + "CO2_1 = 1. ;\t\t\t# By Eqn. (a) CO2 produced -[kg mol]\n", + "H2O_1 = 2. ;\t\t\t# By Eqn. (a) H2O produced -[kg mol]\n", + "Req_O2_1 = 2. ;\t\t\t# By Eqn. (a) -[kg mol]\n", + "ex_O2_1 = Req_O2_1*ex_air ;\t\t\t# Excess O2 required -[kg mol]\n", + "O2_1 = Req_O2_1 + ex_O2_1 ;\t\t\t # Total O2 required - [kg mol]\n", + "N2_1 = O2_1*(air_N2/air_O2) ;\t\t\t#Total N2 required - [kg mol]\n", + "Total_1 = CO2_1 + H2O_1 + N2_1 + ex_O2_1 ;\t\t\t# Total gas produced- [kg mol]\n", + "\n", + "CO2_2 = 1 ;\t\t\t# By Eqn. (a) CO2 produced -[kg mol]\n", + "H2O_2 = mol_H2/mol_C ;\t\t\t# By Eqn. (a) H2O produced -[kg mol]\n", + "Req_O2_2 = 1 + (mol_H2/mol_C)*(1./2) ;\t\t\t# By Eqn. (b) and (c) -[kg mol]\n", + "ex_O2_2 = Req_O2_2*ex_air ;\t\t\t# Excess O2 required -[kg mol]\n", + "O2_2 = Req_O2_2 + ex_O2_2; \t\t\t# Total O2 required - [kg mol]\n", + "N2_2 = O2_2*(air_N2/air_O2); \t\t\t#Total N2 required - [kg mol]\n", + "Total_2 = CO2_2 + H2O_2 + N2_2 + ex_O2_2 ;\t\t\t# Total gas produced- [kg mol]\n", + "\n", + "P = 100. ;\t\t\t# Total pressure -[kPa]\n", + "p1 = P*(H2O_1/Total_1) ;\t\t\t# Partial pressure of water vapour in natural gas - [kPa]\n", + "Eq_T1 = 52.5 ;\t\t\t# Equivalent temperature -[degree C]\n", + "p2 = P*(H2O_2/Total_2) ;\t\t\t# Partial pressure of water vapour in coal - [kPa]\n", + "Eq_T2 = 35 ;\t\t\t# Equivalent temperature -[degree C]\n", + "\n", + "# Results\n", + "print ' Natural gas Coal'\n", + "print ' ---------------------- --------------------'\n", + "print 'Partial pressure: %.1f kPa %.1f kPa'%(p1,p2 )\n", + "print 'Equivalent temperature: %.1f C %.1f C'%(Eq_T1,Eq_T2 );\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Natural gas Coal\n", + " ---------------------- --------------------\n", + "Partial pressure: 14.0 kPa 5.5 kPa\n", + "Equivalent temperature: 52.5 C 35.0 C\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 17.4 Page no. 522\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "F = 30. ;\t\t\t# Volume of initial gas-[m**3]\n", + "P_F = 98.6 ;\t\t\t# Pressure of gas-[kPa]\n", + "T_F = 273.+100 ;\t\t\t# Temperature of gas-[K]\n", + "P_p = 109. ;\t\t\t#[kPa]\n", + "T_p = 14.+273 ;\t\t\t# Temperature of gas-[K]\n", + "R = 8.314 ;\t\t\t# [(kPa*m**3)/(k mol*K)] \n", + "# Additional condition\n", + "vpW_30 = 4.24 ;\t\t\t#Vapour pressure-[kPa]\n", + "vpW_14 = 1.60 ;\t\t\t#Vapour pressure-[kPa]\n", + "n_F = (P_F*F)/(R*T_F) ;\t\t\t# Number of moles in F\n", + "\n", + "# Calculations\n", + "# Material balance to calculate P & W\n", + "P = (n_F*((P_F-vpW_30)/P_F))/((P_p-vpW_14)/P_p) ;\t\t\t# P from mat. bal. of air -[kg mol]\n", + "W = (n_F*(vpW_30/P_F))- P*(vpW_14/P_p); \t\t\t# W from mat. bal. of water -[kg mol]\n", + "iW = n_F*(vpW_30/P_F) ;\t\t\t# Initial amount of water -[kg mol]\n", + "fr_con = W/iW ;\t\t\t#Fraction of water condenseed \n", + "\n", + "# Results\n", + "print ' Fraction of water condenseed %.3f.'%fr_con\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Fraction of water condenseed 0.668.\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 17.5 Page no. 527\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "P = 100. ;\t\t\t# Pressure of air-[kPa]\n", + "T = 20. + 273 ;\t\t\t# Temperature of air-[K]\n", + "R = 8.314 ;\t\t\t# [(kPa*m**3)/(k mol*K)] \n", + "EOH = 6 ;\t\t\t# Amount of ethyl alcohol to evaporate-[kg]\n", + "mw_EOH = 46.07 ;\t\t\t# Mol.wt. of 1 k mol ethyl alcohol-[kg]\n", + "\t\t\t\n", + "# Calculations\n", + "# Additional data needed\n", + "vp_EOH = 5.93 ;\t\t\t# Partial pressure of alcohol at 20 C-[kPa]\n", + "vp_air = P-vp_EOH ;\t\t\t# Partial pressure of air at 20 C-[kPa]\n", + "n_EOH = EOH/mw_EOH ;\t\t\t#Moles of ethyl alcohol -[kg mol]\n", + "n_air = (n_EOH*vp_air)/vp_EOH ;\t\t\t# Moles of air -[kg mol]\n", + "V_air = n_air*R*T/P ;\t\t\t# Volume of air required\n", + "\n", + "# Results\n", + "print ' Volume of air required to evaporate 6 kg of ethyl alcohol is %.1f cubic metre . '%V_air\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Volume of air required to evaporate 6 kg of ethyl alcohol is 50.3 cubic metre . \n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 17.6 Page no. 529\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "# Variables\n", + "P = 760. ;\t\t\t# Pressure -[ mm of Hg]\n", + "vp = 40. ;\t\t\t# vapour pressure of n-heptane-[mm of Hg]\n", + "\n", + "# Calculations\n", + "K = 10**((math.log10(vp/P)-0.16)/1.25) ;\n", + "x = 0.5 ;\t\t\t# mole fraction after t_half\n", + "x0 = 1. ;\t\t\t# initial mole fraction \n", + "t_half = (math.log(x/x0))/(-K);\t\t\t# Time required to reduce the concentration to one-half-[min]\n", + "\n", + "# Results\n", + "print 'Time required to reduce the concentration to one-half is %.1f min. '%t_half\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Time required to reduce the concentration to one-half is 9.8 min. \n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch18.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch18.ipynb new file mode 100644 index 00000000..7e472aab --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch18.ipynb @@ -0,0 +1,281 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 18 : Two Phase Gas Liquid Systems Partial Saturation and Humidity" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 18.1 Page no.539\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n", + "# Variables\n", + "V = 1. ;\t\t\t# Volume of water vapour-[cubic metre]\n", + "rel_h = 43. ;\t\t\t# relative humidity -[%]\n", + "vp_H2O = 1.61 ;\t\t\t# vapour pressure of water at 94 F-[in. of Hg]\n", + "P_H2O = vp_H2O*(rel_h/100) ;\t\t\t# Pressure of water vapour in air-[in. of Hg]\n", + "P = 29.92 ;\t\t\t# [in of Hg]\n", + "T = 94+460. ;\t\t\t# Temperature -[Rankine]\n", + "Ts = 492. ;\t\t\t#Temperature std. -[Rankine]\n", + "mw_H2O = 18. ;\t\t\t# molecular mass of water -[lb]\n", + "\n", + "# Calculations\n", + "H2O = (5280**3*Ts*P_H2O*mw_H2O)/(T*P*359) ;\t\t\t#mass of H2O-[lb]\n", + "# The dew point is temperature at which water vapour in air first condense ,i.e at realative humidity 100 %, therefore\n", + "psat_H2O = P_H2O ;\t\t\t# Saturation pressure of H2O -[in. of Hg]\n", + "\n", + "# Results\n", + "print 'Saturation pressure of H2O %.3f in. of Hg'%psat_H2O\n", + "print 'Use saturation pressure of H2O to get dew point temperature T from steam table: T is about 68-69 F.'\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Saturation pressure of H2O 0.692 in. of Hg\n", + "Use saturation pressure of H2O to get dew point temperature T from steam table: T is about 68-69 F.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 18.2 Page no. 541\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "# Data from steam table\n", + "psat_H2O = 31.8 ;\t\t\t# Saturation pressure -[mm of Hg]\n", + "\n", + "#(c)\n", + "H = .0055 ;\t\t\t# Humidity\n", + "mw_H2O = 18. ;\t\t\t# Molecular wt. of water-[lb]\n", + "mw_air = 29. ;\t\t\t# Molecular wt. of air -[lb]\n", + "P = 750. ;\t\t\t# Pressure total -[mm of Hg]\n", + "\n", + "# Calculations\n", + "p_H2O = ((H*mw_air*P)/mw_H2O)/(1+(H*mw_air/mw_H2O)) ;\t\t\t# Partial pressure of water vapour in air-[mm of Hg]\n", + "#(a)\n", + "rel_H = (p_H2O/psat_H2O)*100 ;\t\t\t# relative humidity -[%]\n", + "#(b)\n", + "mol_H = (p_H2O)/(P-p_H2O) ;\t\t\t# Molal humidity\n", + "\n", + "# Results\n", + "print '(a)Relative humidity is %.0f%% .'%rel_H\n", + "print '(b)Molal humidity is %.1e '%mol_H\n", + "print '(c)Partial pressure of water vapour in air is %.1f mm of Hg.'%p_H2O\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a)Relative humidity is 21% .\n", + "(b)Molal humidity is 8.9e-03 \n", + "(c)Partial pressure of water vapour in air is 6.6 mm of Hg.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 18.3 Page No. 544\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "V_BDA = 1000. ;\t\t\t# Volume of bone dry air(BDA) at 20 C & 108.0 kPa\n", + "mol_V = 22.4 ;\t\t\t# Molar volume of gas at standard condition-[m**3]\n", + "T = 20+273. ;\t\t\t# Temperature of BDA-[K]\n", + "P = 108.0 ;\t\t\t#Pressure of BDA-[kPa]\n", + "Ts = 273. ;\t\t\t# Standard temperature-[K]\n", + "Ps = 101.3 ;\t\t\t#Standard pressure-[kPa]\n", + "W = 0.93 ;\t\t\t# [kg]\n", + "mw_W = 18. ;\t\t\t# mol. wt. of 1kmol water -[kg]\n", + "\n", + "# Calculations\n", + "mol_W = W/mw_W ;\t\t\t# amount of water vapour(W)-[kg mol]\n", + "mol_BDA = (V_BDA*Ts*P)/(T*Ps*mol_V) ;\t\t\t# amount of BDA-[kg mol]\n", + "p_H2O = (mol_W/(mol_W+mol_BDA))*P ;\t\t\t# Partial pressure of H2O-[kPa]\n", + "\n", + "# Get vapour pressure for water at 15 C , namely 1.70 kPa\n", + "psat_H2O = 1.70 ;\t\t\t#vapour pressure for water at 15 C-[kPa]\n", + "rel_H = (p_H2O/psat_H2O) ;\t\t\t#Fractional relative humidity-[]\n", + "\n", + "# Results\n", + "print '(a)Fractional relative humidity of original air was %.3f .'%rel_H\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a)Fractional relative humidity of original air was 0.074 .\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 18.4 Page no.545\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "F = 1000. ;\t\t\t# Volume of entering moist air at 22 C & 101.0 kPa\n", + "mol_V = 22.4 ;\t\t\t# Molar volume of gas at standard condition-[m**3]\n", + "T_in = 22.+273 ;\t\t\t# Temperature of entering moist air-[K]\n", + "P_in = 101.0 ;\t\t\t#Pressure of entering moist air -[kPa]\n", + "dp_in = 11.+273 ;\t\t\t# Dew point of entering air-[K]\n", + "Ts = 273. ;\t\t\t# Standard temperature-[K]\n", + "Ps = 101.3 ;\t\t\t#Standard pressure-[kPa]\n", + "T_out = 58.+273 ;\t\t\t# Temperature of exiting moist air-[K]\n", + "P_out = 98. ;\t\t\t#Pressure of exiting moist air -[kPa]\n", + "\n", + "# Additional vapour pressure data\n", + "psat_in = 1.31 ;\t\t\t#Vapour pressure of entering moist air -[kPa]\n", + "psat_out = 18.14 ;\t\t\t# Vapour pressure of exiting moist air -[kPa]\n", + "pBDA_in = P_in-psat_in ;\t\t\t# Pressure of entering dry air - [kPa]\n", + "pBDA_out = P_out - psat_out ;\t\t\t# Pressure of exiting dry air - [kPa]\n", + "\n", + "# Calculations\n", + "mol_F = (F*P_in*Ts)/(Ps*T_in*mol_V) ;\t\t\t# Moles of moist air entering-[kg mol]\n", + "mol_P = (mol_F*(pBDA_in/P_in))/(pBDA_out/P_out); \t\t\t#BDA balance- [kg mol]\n", + "mol_W = mol_P-mol_F ;\t\t\t# Total balance -[kg mol]\n", + "mw_BDA = 29. ;\t\t\t# Mol. wt. of dry air\n", + "mw_H2O = 18. ;\t\t\t# Mol. wt. of water vapour\n", + "m_BDA = (mol_F*pBDA_in/P_in)*mw_BDA ;\t\t\t# Mass of dry air entering-[kg]\n", + "m_H2O = (mol_F*psat_in/P_in)*mw_H2O ;\t\t\t# Mass of water vapour entering-[kg]\n", + "wa_in = m_BDA+m_H2O ;\t\t\t#Total wet air entering -[kg]\n", + "H2O_ad = mol_W*mw_H2O/wa_in ;\t\t\t#Water added to each kg of wet air entering the process-[kg]\n", + "\n", + "# Results\n", + "print 'Water added to each kg of wet air entering the process is %.3f kg.'%H2O_ad\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Water added to each kg of wet air entering the process is 0.132 kg.\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 18.5 Page No.547\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Variables\n", + "# Given data\n", + "#Basis: F = 29.76 lb mol\n", + "F = 29.76 ;\t\t\t# amount of entering moist air -[lb mol]\n", + "F_rh = 90/100. ;\t\t\t# Relative humidity\n", + "T_in = 100 + 460. ;\t\t\t# Temperature of entering moist air-[Rankine]\n", + "P_in = 29.76 ;\t\t\t#Pressure of entering moist air -[in. of Hg]\n", + "psat_in = 1.93 ;\t\t\t# Saturation pressure from steam table-[in. of Hg]\n", + "T_out = 120 + 460. ;\t\t\t# Temperature of exiting dry air-[Rankine]\n", + "P_out = 131.7 ;\t\t\t#Pressure of exiting dry air -[in. of Hg]\n", + "psat_out = 3.45 ;\t\t\t# Saturation pressure from steam table-[in. of Hg]\n", + "mol_V = 22.4 ;\t\t\t# Molar volume of gas at standard condition-[m**3]\n", + "mw_H2O = 18.02 ;\t\t\t# Mol. wt. of water -[lb]\n", + "mw_air = 29. ;\t\t\t# Mol. wt. of air -[lb]\n", + "p_H2O_in = F_rh*psat_in ;\t\t\t# Partial pressure of water vapour at inlet--[in. of Hg]\n", + "p_air_in = P_in-p_H2O_in ;\t\t\t# Partial pressure of air at inlet--[in. of Hg]\n", + "\n", + "# Calculations\n", + "# Assume condensation takes place , therefore output gas P is saturated,\n", + "P_rh = 1;\t\t\t# Relative humidity of output gas\n", + "p_H2O_out = P_rh*psat_out ;\t\t\t# Partial pressure of water vapour at outlet--[in. of Hg]\n", + "p_air_out = P_out-p_H2O_out ;\t\t\t# Partial pressure of air at outlet--[in. of Hg]\n", + "\n", + "# Get W and P from balance of air and water\n", + "P = (p_air_in*F/P_in)/(p_air_out/P_out) ;\t\t\t# From air balance-[ lb mol]\n", + "W = (p_H2O_in*F/P_in)-(P*p_H2O_out/P_out);\t\t\t# From water balance -[lb mol]\n", + "W_ton = (W*mw_H2O*2000)/(p_air_in*mw_air) ;\t\t\t# Moles of water condenses per ton dry air-[lb mol]\n", + "W_m = mw_H2O*W_ton ;\t\t\t# Mass of water condenses per ton dry air-[lb]\n", + "\n", + "# Results\n", + "# Since W is positive our assumption(condensation takes place ) is right .\n", + "print '(a) Yes water condense out during compression ,since W(%.3f lb mol) is positive our assumption(condensation takes place ) \\nis right .'%W\n", + "print '(b) Amount of water condenses per ton dry air is %.1f lb mol i.e %.0f lb water.'%(W_ton,W_m)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Yes water condense out during compression ,since W(0.983 lb mol) is positive our assumption(condensation takes place ) \n", + "is right .\n", + "(b) Amount of water condenses per ton dry air is 43.6 lb mol i.e 786 lb water.\n" + ] + } + ], + "prompt_number": 1 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch19.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch19.ipynb new file mode 100644 index 00000000..dc3cb7a9 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch19.ipynb @@ -0,0 +1,314 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 19 : The Phase Rule and Vapor Liquid Equilibria" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 19.1 Page No. 563\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the number of degrees to freedom'''\n", + "\n", + "# Use phase rule to get degree of freedom(F) = 2-P+C \n", + "# (a)\n", + "N1 = 1.;\n", + "P1 = 1. ;\t\t\t# Number of phases present\n", + "C1 = 1. ;\t\t\t#Number of components present\n", + "F1 = 2.-P1+C1 ;\t\t\t#Number of degree of freedom\n", + "print ' (a) Number of degree of freedom of pure benzene is %i.\\n Therefore %i additional \\\n", + "intensive variables must be specified to fix to fix the system.'%(F1,F1)\n", + "\n", + "\t\t\t# (b)\n", + "N2 = 1.;\n", + "P2 = 2. ;\t\t\t# Number of phases present\n", + "C2 = 1. ;\t\t\t#Number of components present\n", + "F2 = 2.-P2+C2 ;\t\t\t#Number of degree of freedom\n", + "print '(b) Number of degree of freedom of a mixture of ice and water only is %i.\\\n", + " \\nTherefore %i additional intensive variables must be specified to fix the system. '%(F2,F2)\n", + "\n", + "\t\t\t# (c)\n", + "N3 = 2.;\n", + "P3 = 2. ;\t\t\t# Number of phases present\n", + "C3 = 2. ;\t\t\t#Number of components present\n", + "F3 = 2.-P3+C3 ;\t\t\t#Number of degree of freedom\n", + "print '(c) Number of degree of freedom of a mixture of liquid benzene,benzene vapour and\\\n", + " helium gas is %i. \\nTherefore %i additional intensive variables must be specified to fix the system. '%(F3,F3)\n", + "\n", + "\t\t\t# (d)\n", + "N4 = 2.;\n", + "P4 = 2. ;\t\t\t# Number of phases present\n", + "C4 = 2. ;\t\t\t#Number of components present\n", + "F4 = 2.-P4+C4 ;\t\t\t#Number of degree of freedom\n", + "print '(d) Number of degree of freedom of a mixture of salt and water designed to achieve\\\n", + " a specific vapour pressure is %i. \\nTherefore %i additional intensive variables must be\\\n", + " specified to fix the system. '%(F4,F4)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " (a) Number of degree of freedom of pure benzene is 2.\n", + " Therefore 2 additional intensive variables must be specified to fix to fix the system.\n", + "(b) Number of degree of freedom of a mixture of ice and water only is 1. \n", + "Therefore 1 additional intensive variables must be specified to fix the system. \n", + "(c) Number of degree of freedom of a mixture of liquid benzene,benzene vapour and helium gas is 2. \n", + "Therefore 2 additional intensive variables must be specified to fix the system. \n", + "(d) Number of degree of freedom of a mixture of salt and water designed to achieve a specific vapour pressure is 2. \n", + "Therefore 2 additional intensive variables must be specified to fix the system. \n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 19.2 Page No.564\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the number of degrees to freedom'''\n", + "\n", + "# Use phase rule to get degree of freedom(F) = 2-P+C \n", + "# (a)\n", + "N1 = 5.;\n", + "P1 = 1.; \t\t\t# Number of phases present,here 1 gas \n", + "C1 = 3. ;\t\t\t#Number of independent components present,here 3 because 3 elements(C,O and H)\n", + "F1 = 2-P1+C1 ;\t\t\t#Number of degree of freedom\n", + "print ' (a) Number of degree of gas composed of CO,CO2,H2,H2O and CH4 is %i. \\n \\\n", + "Therefore %i additional intensive variables must be specified to fix the system. '%(F1,F1)\n", + "\n", + "# (b)\n", + "N2 = 4.;\n", + "P2 = 4. ;\t\t\t# Number of phases present,here 3 different solid phases and 1 gas phase\n", + "C2 = 3. ;\t\t\t#Number of components present, here 3 because 3 elements(Zn,O and C) ,you can also use method explained \n", + " #in Appendix L1\n", + "F2 = 2.-P2+C2 ;\t\t#Number of degree of freedom\n", + "print '(b) Number of degree of freedom of a mixture of ZnO(s), C(s) ,CO(g) and Zn(s) is %i. \\n \\\n", + "Therefore %i additional intensive variables must be specified to fix the system. '%(F2,F2)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " (a) Number of degree of gas composed of CO,CO2,H2,H2O and CH4 is 4. \n", + " Therefore 4 additional intensive variables must be specified to fix the system. \n", + "(b) Number of degree of freedom of a mixture of ZnO(s), C(s) ,CO(g) and Zn(s) is 1. \n", + " Therefore 1 additional intensive variables must be specified to fix the system. \n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 19.3 Page No :576" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Bubble point calculation'''\n", + "\n", + "from scipy.optimize import fsolve\n", + "import math\n", + "\n", + "# Variables\n", + "P_atm = 1. ;\t\t\t#[atm]\n", + "P = 760. ;\t\t\t#[mm of Hg]\n", + "x_1 = 4./100 ;\t\t\t# Mole fraction of hexane in liquid phase\n", + "# Constant A,B and C for Antoine eqn. of n_hexane \n", + "A1 = 15.8366;\n", + "B1 = 2697.55 ;\n", + "C1 = -48.784;\n", + "# Constant A,B and C for Antoine eqn. of n_octane\n", + "A2 = 15.9798;\n", + "B2 = 3127.60 ;\n", + "C2 = -63.633;\n", + "\n", + "# Calculations\n", + "# Solve for bubble point temperature by eqn. obtained by using Antoine equation\n", + "def f(T):\n", + " return math.exp(A1-(B1/(C1+T)))*x_1 + math.exp(A2-(B2/(C2+T)))*(1-x_1) - P\n", + "T = fsolve(f,390)[0] ;\t\t\t# Bubble point temperature \n", + "\n", + "print 'Bubble point temperature is %.1f K'%T\n", + "\n", + "# Composition of first vapour\n", + "# Get vapour pressure of hexane and octane from Perry, it is\n", + "vp_1 = 3114. ;\t\t\t# vapour pressure of hexane-[mm of Hg]\n", + "vp_2 = 661. ;\t\t\t# vapour pressure of octane-[mm of Hg]\n", + "y_1 = vp_1*x_1/P ;\t\t\t# Mole fraction of hexane in vapour phase\n", + "y_2 = 1- y_1 ;\t\t\t#Mole fraction of octane in vapour phase\n", + "\n", + "# Results\n", + "print ' Composition of first vapour. '\n", + "print 'Component Mole fraction. '\n", + "print 'n_hexane %.3f'%y_1\n", + "print ' n_octane %.3f'%y_2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Bubble point temperature is 393.6 K\n", + " Composition of first vapour. \n", + "Component Mole fraction. \n", + "n_hexane 0.164\n", + " n_octane 0.836\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 19.4 Page no. 577" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Calculating the fraction of liquid that will remain in equilibrium'''\n", + "\n", + "# Variables\n", + "# Basis : 100 g solution\n", + "F = 100. ;\t\t\t# Amount of solution-[g]\n", + "P_atm = 1. ;\t\t\t#[atm]\n", + "P = 760. ;\t\t\t# Total pressure -[mm of Hg]\n", + "wf_hex = 68.6/100 ;\t\t\t#Weight fraction of hexane in mixture\n", + "wf_tol = 31.4/100 ;\t\t\t#Weight fraction of toluene in mixture\n", + "mw_hex = 86.17 ;\t\t\t# Mol.wt. of hexane-[g]\n", + "mw_tol = 92.13 ;\t\t\t# Mol.wt. of toluene-[g]\n", + "\n", + "# Calculations\n", + "mol_hex = wf_hex *F/mw_hex ;\t\t\t# moles of hexane-[g mol]\n", + "mol_tol = wf_tol*F/mw_tol ;\t\t\t # moles of toluene-[g mol]\n", + "mol_total = mol_hex + mol_tol ;\t\t\t# Total moles in mixture-[g mol]\n", + "molf_hex = mol_hex/mol_total ;\t\t\t# Mole fraction of hexane \n", + "molf_tol = mol_tol/mol_total ;\t\t\t# Mole fraction of toluene \n", + "# Get vapour pressure of hexane and toluene at 80 deg. C from Perry, it is\n", + "vp_hex = 1020. ;\t\t\t# vapour pressure of hexane-[mm of Hg]\n", + "vp_tol = 290. ;\t\t\t# vapour pressure of toluene-[mm of Hg]\n", + "K_hex = vp_hex/P ;\t\t\t# K-value of hexane\n", + "K_tol = vp_tol/P ;\t\t\t# K-value of toluene\n", + "rec_K_hex = 1/K_hex ;\t\t\t# Reciprocal of K-value of hexane\n", + "rec_K_tol = 1/K_tol ;\t\t\t# Reciprocal of K-value of toluene\n", + "\n", + "# Let L/F = x, then use eqn. 19.11 to find x(L/F) \n", + "def g(x):\n", + " return (molf_hex)/(1-x*(1-rec_K_hex)) + (molf_tol)/(1-x*(1-rec_K_tol))-1\n", + "\n", + "x = fsolve(g,1)[0] ;\t\t\t# L/F value\n", + "\n", + "# Results\n", + "print ' Fraction of liquid(L/F) that will remain at equilibrium after vaporization is %.3f. '%x\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Fraction of liquid(L/F) that will remain at equilibrium after vaporization is 0.744. \n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 19.5 Page no. 578\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''Seperation of virus from a culture'''\n", + "\n", + "# Variables\n", + "Vo = 3.0 ;\t\t\t# Initial volume of the solution containing the culture and virus-[L]\n", + "Vp = 0.1 ;\t\t\t# Volume of the polymer solution added to the vessel -[L]\n", + "Kpc = 100. ;\t\t\t# Partition coefficient for virus(cp/cc) between two phases\n", + "\n", + "# Calculations\n", + "Vc = Vo ;\t\t\t# At equilibrium -[L]\n", + "cp_by_co = Vo/(Vp+(Vo/Kpc)) ;\t\t\t\n", + "Fr_rec = cp_by_co*(Vp/Vo) ;\t\t\n", + "\n", + "# Results\n", + "print ' Fraction of the initial virus in the culture phase that is recovered in the polymer phase is %.2f . '%Fr_rec\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Fraction of the initial virus in the culture phase that is recovered in the polymer phase is 0.77 . \n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch2.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch2.ipynb new file mode 100644 index 00000000..d803af44 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch2.ipynb @@ -0,0 +1,941 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 2 : Fluid statics" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.1 page no : 40\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# calculate specific weight of water\n", + "\n", + "# variables\n", + "g=32.2; #ft/s^2\n", + "rho_water=62.3; #lbm/ft^3\n", + "\n", + "# calculation\n", + "#specific weoight=(density)*(acceleration due to gravity)\n", + "specific_wt=rho_water*g; #lbm.ft/ft^3.s^2\n", + "\n", + "#1 lbf=32.2 lbm.ft/s^2\n", + "specific_wt=specific_wt/32.2; #lbf/ft^3\n", + "\n", + "# result\n", + "print \"Specific weight of water is\" ,specific_wt , \"lbf/ft^3\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Specific weight of water is 62.3 lbf/ft^3\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.2 page no : 40\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc pressure at depth of 304.9m\n", + "\n", + "# variables\n", + "d=304.9; #m\n", + "rho_water=1024.; #Kg/m^3\n", + "g=9.81; #m/s^2\n", + "p_atm=101.3; #KPa\n", + "\n", + "# calculation\n", + "#gauge pressure=(desity)*(acc. due to gravity)*(depth)\n", + "p_depth=p_atm+rho_water*g*d/1000.0; #KPa\n", + "\n", + "# result\n", + "print \"pressure at the depth is\" , (p_depth) , \"KPa\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "pressure at the depth is 3164.154656 KPa\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.3 page no : 41\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#gauge pressure=(density)*(acc. due to gravity)*(depth)\n", + "\n", + "# variables\n", + "rho_oil=55.; #lbm/ft^3\n", + "g=32.2; #ft/s^2\n", + "d=60.; #ft (depth of oil cylinder)\n", + "\n", + "# calculation and result\n", + "gauge_pressure=rho_oil*g*d/32.2; #lbf/ft^2\n", + "print \"Gauge pressure is\",\n", + "print gauge_pressure,\n", + "print \"lbf/ft^2\"\n", + "\n", + "#1 ft=12 in\n", + "gauge_pressure=gauge_pressure/144.0; #lbf/in^2\n", + "print \"Gauge pressure is\",\n", + "print gauge_pressure,\n", + "print \"lbf/in^2\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Gauge pressure is 3300.0 lbf/ft^2\n", + "Gauge pressure is 22.9166666667 lbf/in^2\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.4 page no : 42\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculate the pressures\n", + "import math\n", + "\n", + "# varirbles\n", + "#calc of density of air at a certain height\n", + "p_atm=14.7; #psia\n", + "T=289.; #K\n", + "\n", + "#P2=P1*exp^(-(acc. due to gravity)*(mass of air)*(height)/(universal gas const.)/(temp.))\n", + "g=9.81; #m/s^2\n", + "R=8314; #N.m^2/Kmol/K\n", + "\n", + "#for height of 1000 ft=304.8m\n", + "h=304.8; #m\n", + "p_1000=14.7*math.exp(-g*29*h/R/289);\n", + "print \"pressure at 1000ft is\",\n", + "print p_1000,\n", + "print \"psia\"\n", + "\n", + "#for height of 10000 ft=3048m\n", + "h=3048.; #m\n", + "p_10000=p_atm*math.exp(-g*29.*h/R/289.);\n", + "print \"pressure at 10000ft is\",\n", + "print p_10000,\n", + "print \"psia\"\n", + "\n", + "#for height of 100000 ft=30480m\n", + "h=30480.; #m\n", + "p_100000=14.7*math.exp(-g*29.*h/R/289.);\n", + "print \"pressure at 100000ft is\",\n", + "print p_100000,\n", + "print \"psia\"," + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "pressure at 1000ft is 14.1789512072 psia\n", + "pressure at 10000ft is 10.2467246829 psia\n", + "pressure at 100000ft is 0.398102276652 psia\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.5 page no : 42\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc pressuer at different heights considering on density change in air\n", + "\n", + "# variables\n", + "p_atm=14.7; #psia\n", + "g=9.81; #m/s^2\n", + "\n", + "#P2=P1*[1-(acc. due to gravity)*(mass of air)*(height)/(univ. gas const.)/(temp.)]\n", + "T=289.; #K\n", + "R=8314. #N.m^2/Kmol/K\n", + "\n", + "\n", + "# calculation and result\n", + "#for height of 1000ft=304.8m\n", + "h=304.8 #m\n", + "p_1000=p_atm*(1-g*29*h/R/T)\n", + "print \"pressure at 1000ft is\",\n", + "print p_1000,\n", + "print \"psia\"\n", + "\n", + "#for height of 10000ft=3048m\n", + "h=3048. #m\n", + "p_10000=p_atm*(1-g*29*h/R/T)\n", + "print \"pressure at 10000ft is\",\n", + "print p_10000,\n", + "print \"psia\"\n", + "\n", + "#for height of 100000ft=30480m\n", + "h=30480. #m\n", + "p_100000=p_atm*(1-g*29*h/R/T)\n", + "print \"pressure at 100000ft is\",\n", + "print p_100000,\n", + "print \"psia\"\n", + "\n", + "#NOTE that the pressure comes out to be negative at 100000ft justifying that density of air changes with altitude" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "pressure at 1000ft is 14.1694926079 psia\n", + "pressure at 10000ft is 9.39492607874 psia\n", + "pressure at 100000ft is -38.3507392126 psia\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.6 page no : 45\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# calculate the atmosphere\n", + "import math\n", + "\n", + "# variables\n", + "#calc atm pressure on a storage tank roof\n", + "p_atm=14.7; #psia\n", + "\n", + "#diameter of roof is 120ft\n", + "d_roof=120.; #ft\n", + "\n", + "# calculation\n", + "#force=(pressure)*(area)\n", + "f_roof=p_atm*(math.pi)*d_roof**2/4.*144; #lbf ;144 because 1ft=12inch\n", + "\n", + "# result\n", + "print \"Force exerted by atmosphere on the roof is\",\n", + "print f_roof,\n", + "print \"lbf\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Force exerted by atmosphere on the roof is 23940443.9848 lbf\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.7 page no : 45\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# calculate net pressure.\n", + "import math\n", + "\n", + "# variables\n", + "#calc atm pressure on a storage tank roof\n", + "p_atm=14.7; #psia\n", + "\n", + "#diameter of roof is 120ft\n", + "d_roof=120.; #ft\n", + "#force=(atm. pressure + gauge pressure)*(area)\n", + "#gauge pressure=(desity)*(acc. due to gravity)*(depth)\n", + "rho_water=62.3 #lbm/ft^3\n", + "g=32.2; #ft/s^2\n", + "\n", + "# calculation\n", + "#depth of water on roof=8 inch=o.667 ft\n", + "h=0.667; #ft\n", + "gauge_pressure=rho_water*g*h/32.2*(math.pi)*d_roof**2/4.; #lbf\n", + "\n", + "# result\n", + "print gauge_pressure" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "469965.799032\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.8 page no : 46\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc the total force on a lock gate\n", + "\n", + "# variables\n", + "#lock gate has water on one side and air on the other at atm. pressure\n", + "w=20.; #m (width of the lock gate)\n", + "h=10.; #m (height of the lock gate)\n", + "p_atm=1.; #atm\n", + "rho_water=1000.; #Kg/m^3\n", + "g=9.81 #m/s^2\n", + "\n", + "# calculation\n", + "#for a small strip of dx height at the depth of x on the lock gate\n", + "#net pressure on strip = (p_atm+(rho_water)*g*x) - p_atm\n", + "#thus, net pressure on strip = (rho_water)*g*x\n", + "#force on strip = (rho_water*g*x)*w.dx = (rho_water)*g*w*(x.dx)\n", + "#force on lock gate = integration of force on strip fromm h=0 to h=10\n", + "#integration(x.dx) = x^2/2\n", + "#for h=0 to h=10; integration (x.dx) = h^2/2\n", + "force_lockgate=(rho_water)*g*w*h**2/2;\n", + "\n", + "# result\n", + "print \"The net force on the lock gate is\",force_lockgate/10**6,\"MN\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The net force on the lock gate is 9.81 MN\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "example 2.9 page no : 49\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc thickness of an oil storage\n", + "sigma_tensile=20000. #lbf/in^2 (tensile stress is normally 1/4 rupture stress)\n", + "\n", + "#max pressure is observed at the bottom of the storage\n", + "p_max=22.9; #lbf/in^2\n", + "\n", + "#diameter of storaeg tank = 120ft =1440in\n", + "d=1440.; #in\n", + "\n", + "# calculation\n", + "t=(p_max)*d/sigma_tensile/2; #in\n", + "\n", + "# result\n", + "print \"Thichness of the storage tank is\",\n", + "print t,\n", + "print \"in\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Thichness of the storage tank is 0.8244 in\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.10 page no : 50\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc thickness of a storage tank\n", + "\n", + "# variables\n", + "p_working=250.0; #lbf/in^2\n", + "\n", + "#diameter of the cylinder = 10ft = 120in\n", + "d=120.0; #in\n", + "sigma_tensile=20000.; #lbf/in^2\n", + "\n", + "# calculation\n", + "t=p_working*d/sigma_tensile/2; #in\n", + "\n", + "# result\n", + "print \"Thichness of the storage tank is\",\n", + "print t,\n", + "print \"in\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Thichness of the storage tank is 0.75 in\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.11 page no : 53\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc payload of a helium balloon\n", + "import math\n", + "\n", + "# variables\n", + "p_atm=1.; #atm\n", + "T=293.; #K\n", + "d=3.; #m (diameter of the balloon)\n", + "\n", + "# calculation\n", + "#buoyant force=(density of air)*g*(volume of balloon)\n", + "#weight of balloon = (density of helium)*g*(volume of balloon)\n", + "#density for gases = PM/RT\n", + "#payload of balloon = buoyant force - weight\n", + "V_balloon=(math.pi)*d**3/6.; #m^3\n", + "R=8.2*10**(-2); #m^3.atm/mol/K\n", + "M_air=29.; #Kg/Kmol\n", + "M_he=4.; #Kg/Kmol\n", + "g=9.81; #m/s^2\n", + "payload=(V_balloon)*g*p_atm*(M_air-M_he)/R/T; #N\n", + "\n", + "# result\n", + "print \"Payload of the balloon is\",\n", + "print payload,\n", + "print \"N\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Payload of the balloon is 144.307841185 N\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.12 page no : 54\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#wooden block floating in two phase mix of water and gasoline\n", + "\n", + "# variables\n", + "#calc fraction of block in water\n", + "SG_wood=0.96; #Specific gravity\n", + "SG_gasoline=0.72;\n", + "\n", + "# calculation\n", + "#Let r be the ratio - V_water/V_wood\n", + "r=(SG_wood-SG_gasoline)/(1-SG_gasoline);\n", + "\n", + "# result\n", + "print \"Fraction of wood in water\",\n", + "print r" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Fraction of wood in water 0.857142857143\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.13 page no : 54\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc gauge pressure of cylinder in a manometer\n", + "\n", + "# variables\n", + "#height of water above pt.C = 2.5ft\n", + "rho_water=62.3; #lbm/ft^3;\n", + "h1=2.5; #ft\n", + "rho_gas=0.1; #lbm/ft^3\n", + "h2=0.5; #ft (height of gas)\n", + "g=32.2; #ft/s^2\n", + "\n", + "# calculation\n", + "gauge_pressure=((rho_water)*g*h1+(rho_gas)*g*h2)/144/32.2 #lbf/in^2\n", + "\n", + "# result\n", + "print \"Gauge pressure is\",\n", + "print gauge_pressure,\n", + "print \"lbf/in^2\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Gauge pressure is 1.08194444444 lbf/in^2\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.14 page no : 56\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc pressure diff between two tanks in a two liquid manometer\n", + "rho_water=62.3; #lbm/ft^3\n", + "SG_oil=1.1;\n", + "rho_oil=SG_oil*(rho_water);\n", + "g=32.2; #ft/s^2\n", + "h1_1=1.; #ft\n", + "h1_2=2.; #ft\n", + "h2_1=2.; #ft\n", + "h2_2=1.; #ft\n", + "\n", + "# calculation\n", + "p_diff=((rho_water)*g*(h1_1-h1_2)+(rho_oil)*g*(h2_1-h2_2))/32.2/144.0; #lbf/in^2\n", + "\n", + "# result\n", + "print \"The pressure difference is\",\n", + "print p_diff,\n", + "print \"lbf/in^2\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The pressure difference is 0.0432638888889 lbf/in^2\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.15 page no : 57\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc pressure of gauge through a spring piston system\n", + "\n", + "# variables\n", + "k=10000.; #N/m (spring constant)\n", + "x=0.025; #m (displacement in spring)\n", + "A=0.01; #m^2 (area of piston)\n", + "\n", + "# calculation\n", + "gauge_pressure=k*x/A/1000.; #KPa\n", + "\n", + "# result\n", + "print \"The gauge pressure is\",\n", + "print gauge_pressure,\n", + "print \"KPa\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The gauge pressure is 25.0 KPa\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.16 page no : 60\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc pressure diff at the mouth of the fire place\n", + "\n", + "# variables\n", + "g=32.2; #ft/s^2\n", + "h=20.; #ft (height of fireplace)\n", + "rho_air=0.075; #lbm/ft^3\n", + "T_air=293.0; #K (surrounding temperature)\n", + "T_fluegas=422.0; #K\n", + "\n", + "# calculation\n", + "p_diff=g*h*(rho_air)*(1-(T_air/T_fluegas))/32.2/144; #lbf/in^2\n", + "\n", + "# result\n", + "print \"The pressure difference is\",\n", + "print p_diff,\n", + "print \"lbf/in^2\"," + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The pressure difference is 0.00318424170616 lbf/in^2\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.17 page no : 64\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# calculate the gauge pressure at the bottom of the tank.\n", + "\n", + "# variables\n", + "rho_water=1000. #Kg/m^3\n", + "g=9.81; #m/s^2\n", + "h=5.; #m (depth of water)\n", + "\n", + "# calculation and result\n", + "#for elevator not accelerated\n", + "p_gauge=(rho_water)*g*h/1000.0; #KPa\n", + "print \"THe gauge pressure is\",\n", + "print p_gauge,\n", + "print \"KPa\"\n", + "\n", + "#for elevator accelerated at 5m/s^2 in upward direction\n", + "a=5.; #m/s^2\n", + "p_gauge=(rho_water)*(g+a)*h/1000.0; #KPa\n", + "print \"THe gauge pressure is\",\n", + "print p_gauge,\n", + "print \"KPa\"\n", + "\n", + "#for elevator accelerated at 5m/s^2 in downward direction\n", + "a=5.; #m/s^2\n", + "p_gauge=(rho_water)*(g-a)*h/1000.0; #KPa\n", + "print \"THe gauge pressure is\",\n", + "print p_gauge,\n", + "print \"KPa\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "THe gauge pressure is 49.05 KPa\n", + "THe gauge pressure is 74.05 KPa\n", + "THe gauge pressure is 24.05 KPa\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "example 2.18 page no : 65\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# calculate angle\n", + "import math\n", + "\n", + "# variables\n", + "#angle free surface makes with the horizontal in an accelerated body\n", + "a=1.; #ft/s^2\n", + "g=32.2; #ft/s^2\n", + "\n", + "# calculation\n", + "theta=math.atan(a/g); #radians\n", + "theta=theta*180./math.pi; #degrees\n", + "\n", + "# result\n", + "print \"The angle made by free surface with the horizontal is\",\n", + "print theta,\n", + "print \"degrees\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The angle made by free surface with the horizontal is 1.77880031567 degrees\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.19 page no : 66\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc the height to which liq in a cylinder rises when rotated\n", + "\n", + "import math\n", + "# variables\n", + "f=78/60.0; #rps\n", + "r=0.15; #m\n", + "g=9.81; #m/s^2\n", + "\n", + "# calculation\n", + "#omega=2*(%pi)*f\n", + "z=((2*(math.pi)*f)**2)*r**2/2/g; #m\n", + "\n", + "# result\n", + "print \"The liquid in the cylinder rises to a height of\",\n", + "print z,\n", + "print \"m\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The liquid in the cylinder rises to a height of 0.0765120708158 m\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " example 2.20 page no : 67\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calc thickness of liquid strip at the bottom of the industrial centrifuge\n", + "import math\n", + "\n", + "# variables\n", + "#Let difference between heights at bottom and top be d\n", + "d=20.; #in\n", + "r_a=14.; #in\n", + "f=1000/60.; #rps\n", + "g=32.2; #ft/s^2\n", + "\n", + "# calculation\n", + "r_b=((r_a)**2-2*(d)*g*12/(2*(math.pi)*f)**2)**0.5; #in\n", + "\n", + "# result\n", + "print \"The thickness of water strip at bottom of industrial centrifuge\",\n", + "print r_b,\n", + "print \"in\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The thickness of water strip at bottom of industrial centrifuge 13.9495728181 in\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch20.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch20.ipynb new file mode 100644 index 00000000..9286e99b --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch20.ipynb @@ -0,0 +1,166 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 20 : Liquid and Gases in Equilibrium with Solids" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 20.1 Page no. 594\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Fitting Adsorption Isotherms to Experimental Data\n", + "\n", + "%pylab inline\n", + "\n", + "from matplotlib import pyplot as plt\n", + "\n", + "# Variables\n", + "p_CO2 = [0,25,50,100,200,400,760] ;\t\t\t# Values of partial pressure of CO2 - [mm Hg]\n", + "y = [0,6.69*10**-2,9.24*10**-2,0.108,0.114,0.127,0.137] ;\t\t\t# adsorption of CO2 -[g adorbed / g seives]\n", + "\n", + "# Results\n", + "plt.plot(p_CO2,y);\n", + "plt.title('Figure E20.1 The Freundlich and Langmuir iotherms coincide for the adsorption of CO2 on 5A molecular seives');\n", + "plt.show()\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nlLBWq21ttibqT3v69GlcvHgRN9xwA9zd3eHu7o6xY8eanL5paOjQoUp9586dQ25ursnw2tpaTJ06\nFQ4ODli6dKnyvJOTk3K6oc758+fh7OzcYr1ipmuN6l+726VLF1RUVAAwXkf01FNPKa+/7jKC+qe3\nGiopKVFe/9NPPw0A8PLyQqdOnZRx8vLycOeddyrzDQ8Ph52dHU6dOtWmer29vU3qraqqQm1tLYqK\niuDv728ybvfu3ds0z4KCAvTq1avZ4c2to4YOHz6M8ePHw9fXF66urnjxxRdNTpm3NK+TJ0+abIN1\np6/a6+LFi5gxYwaCgoLg6uqKkSNH4vz58ybbS/0aOnfurNRQVFRkst907ty50eUj3bp1Mxnu6emp\nXPvauXNnAGh2/bSm4SUdLSkqKjJ5fwMDA1FUVNTiNM1tO8ePH0dRUZGyTbq7u2PhwoXK6Vig6fak\n/vwcHBxM1o2Dg4OyHkaPHo1Zs2bh8ccfh7e3N2bMmIHy8vJG88vPz4eHhwdcXV0bDTt58qTJ63V0\ndETXrl2b3R/r11b/Pc7Pz0fPnj2bnKa+httCly5dTLaFv7IfFxUVNdq+u3fvbvL+tWdbqK+l9qyt\n9ba0D9VtJ3Xbel3tdfvX1KlTMWbMGMTHx8Pf3x/PPfcc9Ho9ioqK4OHhAUdHR2W6wMBAk/evqW2s\n/nMajQZarbbV7RxAm5bX3P7Q1Lxae7+a4+7ujg4dOphcgtKQp6dnk/PS6/U4c+YMPD09leea+xxt\nqOH+EhgYCL1eb/J+N9xWLly40OS8wsLC4OPjA41Gg+joaDz11FP497//rQz//PPPMXnyZABAx44d\nMWnSpFZP7TfcPxu2JfXb5PrrXqPRICAgoMn9vqV9sqCgoE37fWt27dqFUaNGoVu3bnBzc8OyZcsa\nfca1tO8+++yzCA4Oxm233YZevXph0aJFANCmNriOs7Mz7rjjDqSkpAAA1qxZg/vuu0+Zz65du0zm\n89VXXynv+9dff420tDQEBQUhJiYGmZmZLb7ev9zPqZeXF+zs7JCfn688V///dTvoxYsXleeKi4tN\n5lH/5hJPT0907twZOTk5StgqLS1tFCLbSkSQmJiI06dP4+uvv0bHjh2VYREREdi3b5/y+MKFCzh6\n9Gird/1d6ZthAgMDsXz5cpPAfeHCBQwdOrRd82lYZ2BgINLT003me/HiReUuzfrvkcFgwOnTp9u0\nHF9f30Y7bFsvlg8ICMCRI0faNG5LZs6cifDwcBw5cgTnz5/HG2+80eaubXx9fU2u6W3v9b11Fi9e\njMOHDyMrKwvnz5/HTz/91OYbjPz8/FBQUKA8rqysbNTwtIejo6NJg99wn2uoPdu0n5+fyR2zJ06c\ngJ+fX7PzaWneAQEB6NGjh8k2WVZWho0bNyrTtlZba8OfeOIJ/Prrr8jJycHhw4ebvKs5ICAAZ8+e\nxfnz5xsNa/h6L1y4gJKSkkZfyFoTGBjYpm5h/Pz8TNrQixcvmmwLLe3HrfH392+0bx4/ftzktfzV\n9d1Qe+ptaR/y9fVVpq1fe109dnZ2eOWVV3DgwAHs2LEDGzduxKpVq+Dv74+zZ8+afHE7ceJEo/DZ\nUP33oLa2FgUFBS1u53X8/PxaXV5bteX9ak6XLl0QHR1tEuYauuWWW7Bp0yaTdQoYg8R1112nfOa0\n9DnaUFPtg52dnUkINIeCggJs3boVn3/+OXx9feHr64t//vOfSEtLa1fb2Vz73HDdiwjy8/ObXPfN\nbeN+fn4ICAjA0aNHm1xGe9rpe++9F5MmTUJBQQFKS0vx6KOPNvqMa2m7dHJywjvvvIOjR48iNTUV\n7777LrZu3YrAwMBW2+D6EhISkJKSgp07d6KqqgqjRo1S1sHIkSNN5lNeXq5coxoVFYX169fj9OnT\nmDRpEqZMmdJsrYAZwmnHjh0xefJkJCUlobKyEocOHcIXX3yhvCAvLy/4+/vjiy++gMFgwGeffdbs\nGwUYby54+OGHMXv2bCUcFRYWYvPmzZdV38yZM3Ho0CGkpqbiuuuuMxl255134rfffsO6detQVVWF\n5ORk9O/fH717925yXgaDAVVVVdDr9TAYDKiurjbb3cP1Q8yjjz6KBQsWICcnB4DxaG79C4sv16OP\nPooXXnhBCV+nT59GamoqAKB3796oqqpCWloaampq8Prrr6O6urpN842OjoadnR0++OAD1NTUYN26\ndfjvf//bpmn/9re/4eWXX8aRI0cgIti/fz/Onj3b5LgthbyKigo4OzujS5cuOHToED7++OMWl1t/\nfU+ZMgUffPABCgsLce7cObz55put1q3T6VBVVaX86fV6VFRUoHPnznB1dcXZs2dNLlhv7TXExcXh\nm2++wc6dO6HT6ZCUlPSXjtD3798fa9asgV6vx6+//oqvv/66xYarPctKSEjA66+/jjNnzuDMmTN4\n9dVXlQvmvb29UVJSYvJlsqV5Dx48GM7OznjrrbdQWVkJg8GA3377Tbnrtrlp6z/f0vx//fVX7Nq1\nCzU1NejSpQscHBya/GD19fXF2LFj8dhjj6G0tBQ1NTVKv64JCQlYsWIF9u3bh+rqarzwwgsYOnRo\nk0fYW6rljjvuwMmTJ7FkyRJUV1ejvLwcWVlZjcaLi4vDxo0b8csvv0Cn0+GVV14x+RBqaT9uzbhx\n43D48GGkpKRAr9dj7dq1OHToEMaPH9+m1wAY3+OW2vCG2lNvS/tQ9+7dERUVhfnz56OmpgY///yz\n8gEKGG/q/N///geDwQBnZ2fY29ujY8eO0Gq1GDZsGObNm4fq6mrs378fn332Ge6///4W6969ezf+\n85//QK/X4/3334eDg4MS1lpaBwEBAZe1vKa09n619l699dZbWLlyJd555x0lsO3btw8JCQkAjEeb\ntVot7r77bhw/fhw1NTX47rvv8NRTTyE5OVk5i9jS52hDCQkJeO+995CXl4eKigq88MILiI+PR4cO\nzceN5l5H3VlbEUFWVhY++OADTJw4EYDxZq7Q0FAcPnwY+/btU25m1mq1ypG9v+Luu+/Gt99+i61b\nt6KmpgaLFy+Gg4MDhg0b1mjclrbx++67D1u2bMG//vUv6PV6lJSUKAfF+vfvj3Xr1qGyshJHjhwx\nuTmqoYqKCri7u6NTp07IysrCV1991a4vit9++63yOevi4oKOHTuiY8eO7W6Dx40bh+PHj2P+/PmI\nj49Xnh8/fjwOHz6M1atXo6amBjU1Nfjvf/+LQ4cOoaamBl9++SXOnz+vdP3Z0hcc4C+E0/orZenS\npTh//jx8fHwwbdo0JCQkmJxO/uSTT/D222/D09MTOTk5GD58uMl8Gq7gRYsWITg4GEOHDlXuoGvu\nDnqNRoOdO3ea9PPp7OyM3bt34/jx41i+fDn27dsHHx8fZVjdhuvp6Ymvv/4aL774Ijw8PPDrr78q\ndzECxv5Kx40bpzx+7bXX0KVLFyxatAirV69G586d8cYbb7S6ntpyNKn+eJMmTcJzzz2H+Ph4uLq6\nom/fvvjuu+9aXEZbnn/qqacQGxuL2267DS4uLoiOjlY+HF1dXfH3v/8df/vb36DVauHk5GRyiqCp\n11H3uFOnTli3bh1WrlyJrl274p///Cfi4uLaVOPTTz+NKVOm4LbbboOrqysefvhh5U7/ltZRQ++8\n8w6++uoruLi44JFHHkF8fLzJuC3N6+GHH8aYMWMQGRmJqKgoxMXFtbrTjxs3Dl26dFH+Xn31Vcye\nPRuVlZXw9PTEsGHDMHbs2GbXWcMaIiIi8OGHHyI+Ph5+fn5wdnZGt27dlA+CltZ/U49fe+01HD16\nFO7u7khKSlJOvbRl2ta89NJLiIqKQr9+/dCvXz9ERUXhpZdeAgCEhoYiISEBPXv2hIeHh3K3fnPL\n69ixIzZu3Ii9e/eiZ8+e8PLywiOPPKKE27bsPy3Nv6ysDI888gg8PDwQFBQET0/PZjsr/+KLL2Bv\nb4/Q0FB4e3vjgw8+AADcfPPNeO211xAXFwc/Pz8cO3bMpJ1oay3Ozs74/vvv8c0338DX1xe9e/dG\nRkZGo+kiIiLw0Ucf4d5774Wfnx88PDxM9sWW9uOm1K/Hw8MDGzduxOLFi+Hp6Yl33nkHGzduVO7k\nbjh+U+bNm4fXX38d7u7uePfdd1udpj31trYPffXVV9i1axc8PDzw6quvYtq0acqw4uJi3H333XB1\ndUV4eDhiYmKUL00pKSnIy8uDn58fJk+ejFdffRWjR49Wam/qPZs4cSLWrl0LDw8PfPnll1i3bp3y\ngdraOric5TWltfertTML0dHR2Lp1K7Zu3YpevXqha9eumDFjBu644w4AxrZ7y5YtCAgIwJAhQ+Dq\n6opnnnkGCxYswNy5cwGg1c/Rhh566CFMnToVI0aMQM+ePdGlSxeTu7/bc3Zl7dq1CAkJgYuLC6ZN\nm4Z58+Yp7+mqVavw2GOPoVu3bsqft7c3Hn30UeVu+LZobv/t06cPVq9ejSeeeAJeXl749ttv8c03\n38DOzq7RPFraxgMCApCWlobFixeja9euGDBggNLzw5w5c9CpUyd4e3vjwQcfxP3339/s59bf//53\nvPLKK3BxccFrr73WqNvL1vbb3Nxc3HrrrXB2dsawYcPw+OOPY+TIkejQoUO72uBOnTph8uTJ+OGH\nH3Dvvfcqzzs5OWHz5s1Ys2YN/P394evri3nz5kGn0wEw9ubRo0cPuLq6Yvny5fjyyy9brFcj5rqA\nsp7nnnsOf/75J1asWGHuWRNdE+q+JR85cqTN1+8SkXkkJyfjyJEj+OKLLyxdCtE16S+f1geA33//\nHfv371cOvX/22WcmfQTStSM9PR2hoaEICQlRLriu79ChQ4iOjoaDg0OT/ZwZDAYMGDAAEyZMuBrl\nWpVvvvkGFy9exIULF/DMM8+gX79+DKZEFnAFjtkQUTuYJZyWl5cjLi4OTk5OiI+PxzPPPIPY2Fhz\nzJpUxGAsRsDBAAAgAElEQVQwYNasWUhPT0dOTg5SUlJw8OBBk3G6du2KDz/8EM8880yT81iyZAnC\nw8Nt9heYWpKamqp0bH/06FGTU8dEdPW05UY8Irpyrshpfbo27dy5E8nJycpP49XdWPT88883Gjc5\nORlOTk7KdU2A8e7L6dOn48UXX8S7776Lb7755uoUTkRERFbDLEdOiQBjrwoN+7ttqW/WhubMmYO3\n3367xbs6iYiIyLY1vu2M6DL9ldNgGzduRLdu3TBgwADlDmZzL4OI6FrGE6WkFjxERWbj7+/f6McY\n2trx9I4dO5CamooePXogISEBW7duxQMPPNDkuHV9lFrz3/z58y1eA+tknWquUw01qqlOIjVhOCWz\niYqKQm5uLvLy8qDT6bB27dpmb4xr2FguWLAA+fn5Sh+So0ePbldfdURERGQbeFqfzMbOzg5Lly7F\nmDFjYDAYkJiYiLCwMCxbtgwAMGPGDBQXF2PQoEEoKytDhw4dsGTJEuTk5MDJyclkXjx9T0QEVFYC\nZ88C7fy1XCJVYzglsxo7dizGjh1r8tyMGTOU//v4+Jic+m/KyJEjMXLkyCtS39USExNj6RLahHWa\nF+s0HzXUCFx+nSLAmTNAYWHzfwUFwIULwODBwPbt5q2byJqxKylSFY1Gw+uniMiqVVcDRUXNB87C\nQuDkSaBLF+MR0YZ/Wu2l/3t6AuY4kcS2k9SE4ZRUhQ0sEVmKCHDuXPOBs+7v/HnAx6fpsFn35+dn\nDKdXC9tOUhOGU1IVNrBEdCXU1BiPZjYXOAsLjUdD7e2bD5x1f926AdbWXTPbTlIThlNSFTawRNQe\nIkBZWfOBs+6vpATw9m4+cNb9Nbh3UzXYdpKaMJySqrCBJaI6ej1QXNzyTUWFhcZrNlsLnd7egJ0N\n3yLMtpPUhOGUVIUNLNG1oby89dB5+jTQtWvLoVOrBVxcLP1qLI9tJ6kJwympChtYInUzGIA//2y9\nCyW9vuXA6e9vvOnI3t7Sr0gd2HaSmjCckqqwgSWyXhcvttx9UmEhcOoU4ObWfNdJdX9ububpQomM\n2HaSmjCckqqwgSW6+mprm+4wvuENRpWVxi6SWrqb3dcXuO46S7+iaw/bTlIThlNSFTawROZVVWXa\nYXxTd7SfPGm8S72l7pP8/Y3Xf/Jop3Vi20lqwnBKqsIGlqhtRIy/yd5aF0plZZeOdjb35+cHdO5s\n6VdEfwXbTlIThlNSFTawRIBO1/zPY9bvMN7BofUulLy8rK/DeDI/tp2kJgynpCpsYMmWiQClpa13\noXTuXNs6jHd0tPQrImvBtpPUhOGUVIUNLKmVXm/685jN/XXs2HL3SXU/j9mxo6VfEakJ205SE4ZT\nUhU2sGSNRIBjx4A//mj+jvYzZ4yn0FvrQsnZ2dKvhmwR205SE4ZTUhU2sGQNRIDDh4GMDOCnn4z/\najRA797N39Hu42PbP49J1o1tJ6kJwympChtYsgQR4ODBS0H0p5+ATp2AmBhg5Ejjvz17shslsl5s\nO0lNGE5JVdjA0tVQWwvk5FwKotu2AV26XAqiI0cCQUEMo6QebDtJTRhOSVXYwNKVUFsL/O9/xiBa\n9+fmZgyhdX/du1u6SqLLx7aT1IThlFSFDSyZg8EA7N9/6TT99u3GXzeqf2RUq7V0lUTmw7aT1ITh\nlFSFDSxdDr0e2Lv30lHR7duN/YTWBdGRI42/gkRkq9h2kpownJKqsIGlttDrgT17Lh0Z/eUX4x3z\ndUdGR4ww3j1PdK1g20lqwnBKqsIGlppSUwPs3n3pBqYdO4DAwEtHRkeMMHZcT3StYttJasJfVCaz\nS09PR2hoKEJCQrBo0aJGww8dOoTo6Gg4ODhg8eLFyvP5+fkYNWoUIiIicP311+ODDz64mmWTiuh0\nxqOhCxYAt91mvF700UeNv8D08MPA0aPGG5w+/BC46y4GUyIiNeGRUzIrg8GAPn36YMuWLfD398eg\nQYOQkpKCsLAwZZzTp0/j+PHjWL9+Pdzd3TF37lwAQHFxMYqLi9G/f39UVFTghhtuwPr1602m5bf/\na1N1NZCVdenI6K5dQEjIpdP0N90EeHhYukoi68W2k9SEv1dCZpWVlYXg4GAEBQUBAOLj47FhwwaT\ngOnl5QUvLy98++23JtP6+PjA5/9dCOjk5ISwsDAUFRWZTEvXhqoqYwCtC6NZWUBoqDGIPvUUcOON\ngLu7paskIqIrgeGUzKqwsBABAQHKY61Wi127drV7Pnl5ecjOzsaQIUMaDUtKSlL+HxMTg5iYmMsp\nlaxIZSWwc+elG5h27wYiIoxHRp95Bhg+HHB1tXSVROqRkZGBjIwMS5dBdFkYTsmsNGb4yZyKigrc\nddddWLJkCZycnBoNrx9OSZ0uXDCG0bojo9nZQN++xiOj8+YZw6izs6WrJFKvhl/ck5OTLVcMUTsx\nnJJZ+fv7Iz8/X3mcn58PbTt6M6+pqUFcXBzuv/9+TJo06UqUSBZQUWG8ganuyOj+/UD//sYjo6+8\nAkRHA018DyEiomsQwymZVVRUFHJzc5GXlwc/Pz+sXbsWKSkpTY7b8OJ8EUFiYiLCw8Mxe/bsq1Eu\nXSFlZcYwWndk9LffgIEDjUdGX3vNGEa7dLF0lUREZI14tz6Z3aZNmzB79mwYDAYkJiZi3rx5WLZs\nGQBgxowZKC4uxqBBg1BWVoYOHTrA2dkZOTk52Lt3L0aMGIF+/foplwcsXLgQt99+uzJv3nFqnc6f\nN/7qUt0vMOXkAIMGXfr1paFDgc6dLV0l0bWLbSepCcMpqQobWOtw7tylMJqRARw+DAwefKlrp8GD\nAQcHS1dJRHXYdpKaMJySqrCBtYySEmMYrTtNf+SI8dR83ZHRQYOA666zdJVE1By2naQmDKekKmxg\nr47Tp4Ft2y4dGc3LA4YNu3Rk9IYbgE6dLFwkEbUZ205SE4ZTUhU2sFfGqVPGMFp3ZDQ/39idU91v\n0w8cCNjbW7pKIrpcbDtJTRhOSVXYwP51IsCJE8COHZeOjhYVGX8CtO40/YABgB378iCyGWw7SU0Y\nTklV2MC2X00NsHevMYz+8ovx35oa45HRG280Hh2NjAQ6drR0pUR0pbDtJDVhOCVVYQPburNnjb++\nVBdGd+8GevQwXjM6fLjx3549ATP8mBcRqQTbTlIThlNSFTawpkSA3NxLR0R/+QUoKDB25VQXRocM\nAdzcLF0pEVkS205SE4ZTUpVrvYGtrDQeCa0Lozt2GH9pqe6I6PDhxt+o5/WiRFTftd52krownJKq\nXGsNbHGx6bWi+/cD4eGXwuiwYYBWa+kqicjaXWttJ6kbwympii03sAYDcOCAaRg9d87Y2X1dGB00\nCHB0tHSlRKQ2ttx2ku1hOCVVsaUGtrwc2LXrUhjdtQvw9ja9cSk0FOjQwdKVEpHa2VLbSbaP4ZRU\nRa0NbF3fovVvXMrNNfYnWhdGo6MBLy9LV0pEtkitbSddmxhOSVXU0sDW9S1aP4waDKY3Lg0YwN+j\nJ6KrQy1tJxHAcEoqo4YG9v/+D5gzx9i3aP0w2qMH+xYlIstQQ9tJVIfhlFTF2hvY778Hpk4Ftm8H\nQkIsXQ0RkZG1t51E9bE3RCIzOXQIuO8+4N//ZjAlIiK6XLwPmMgMSkqA8eOBRYuAESMsXQ0REZF6\n8bQ+qYo1nprS6YBbbwWGDjWGUyIia2ONbSdRcxhOSVWsrYEVAf72N+OR03Xr2CcpEVkna2s7iVrC\na06J/oJ33gH27DHeAMVgSkRE9NcxnBJdptRUYMkSIDMTcHKydDVERES2geGU6DLs3QskJgJpaYBW\na+lqiIiIbAdPRBK108mTQGws8NFHwKBBlq6GiIjItjCcklmlp6cjNDQUISEhWNTEreuHDh1CdHQ0\nHBwcsHjx4nZNaw0qK4FJk4CHHwamTLF0NURERLaHd+uT2RgMBvTp0wdbtmyBv78/Bg0ahJSUFISF\nhSnjnD59GsePH8f69evh7u6OuXPntnlawLJ3nNbWAgkJgJ0dsHo1f4qUiNSDd+uTmvDIKZlNVlYW\ngoODERQUBHt7e8THx2PDhg0m43h5eSEqKgr29vbtntbSkpOB/Hzg008ZTImIiK4U3hBFZlNYWIiA\ngADlsVarxa5du8w+bVJSkvL/mJgYxMTEXFa97ZGSAnz+ObBrF+DgcMUXR0T0l2RkZCAjI8PSZRBd\nFoZTMhvNXzic2J5p64fTqyEzE3jqKeCHHwBv76u6aCKiy9Lwi3tycrLliiFqJ57WJ7Px9/dHfn6+\n8jg/Px/aNvaz9FemvZKOHwcmTwZWrAD69rV0NURERLaP4ZTMJioqCrm5ucjLy4NOp8PatWsRGxvb\n5LgNL8xvz7RXS3k5MGEC8P/9f8Add1i0FCIiomsGT+uT2djZ2WHp0qUYM2YMDAYDEhMTERYWhmXL\nlgEAZsyYgeLiYgwaNAhlZWXo0KEDlixZgpycHDg5OTU5raUYDMY786Ojjaf0iYiI6OpgV1KkKler\nO5S5c42/ApWeDjToWICISHXYlRSpCY+cEjXwySfAxo3GG6EYTImIiK4uHjklVbnS3/5//BGIjwd+\n/hkICbliiyEiuqp45JTUhDdEEf0/hw8bg+maNQymRERElsJwSgTg7FnjnflvvAGMGmXpaoiIiK5d\nPK1PqnIlTk3V1AC33w707w8sXmzWWRMRWQWe1ic1YTglVTF3AysCPPooUFQErF8PdOxotlkTEVkN\nhlNSE96tT9e0778Htm0DsrIYTImIiKwBrzmla9p33wFTpwLOzpauhIiIiACGU7rGbd3KG6CIiIis\nCa85JVUx53VTJSVAz57AmTPsbJ+IbBuvOSU14ZFTumZlZAA33shgSkREZE0YTumatXUrMHq0pasg\nIiKi+hhO6ZrFcEpERGR9GE7pmlRUBPz5JxAZaelKiIiIqD6GU7om/fgjEBMDdOAeQEREZFX40UzX\nJJ7SJyIisk4Mp3RNYv+mRERE1onhlK45x44BlZVAWJilKyEiIqKGGE7pmvPjj8ZT+hqNpSshIiKi\nhhhO6ZrD602JiIisF3++lFTlr/4Enwjg7w/8/LPxp0uJiK4F/PlSUhMeOaVryu+/A506AT16WLoS\nIiIiagrDKV1T6k7p83pTIiIi68RwSmaVnp6O0NBQhISEYNGiRU2O8+STTyIkJASRkZHIzs5Wnl+4\ncCEiIiLQt29f3HvvvaiurjZ7fexCioiIyLoxnJLZGAwGzJo1C+np6cjJyUFKSgoOHjxoMk5aWhqO\nHDmC3NxcLF++HDNnzgQA5OXl4ZNPPsGePXvwv//9DwaDAWvWrDFrfbW1xjv1GU6JiIisF8MpmU1W\nVhaCg4MRFBQEe3t7xMfHY8OGDSbjpKamYtq0aQCAIUOGoLS0FKdOnYKLiwvs7e1x8eJF6PV6XLx4\nEf7+/matb/9+wNMT0GrNOlsiIiIyIztLF0C2o7CwEAEBAcpjrVaLXbt2tTpOYWEhBg4ciLlz5yIw\nMBCdO3fGmDFjcMsttzS5nKSkJOX/MTExiImJaVN9df2bEhHZuoyMDGRkZFi6DKLLwnBKZqNp411G\nTXVncvToUbz//vvIy8uDq6sr7r77bnz55Ze47777Go1bP5y2x9atwAMPXNakRESq0vCLe3JysuWK\nIWonntYns/H390d+fr7yOD8/H9oG59AbjlNQUAB/f3/8+uuvGDZsGLp27Qo7OztMnjwZO3bsMFtt\nej2wfTvQxoOsREREZCEMp2Q2UVFRyM3NRV5eHnQ6HdauXYvY2FiTcWJjY7Fq1SoAQGZmJtzc3ODt\n7Y0+ffogMzMTlZWVEBFs2bIF4eHhZqtt926ge3fAy8tssyQiIqIrgKf1yWzs7OywdOlSjBkzBgaD\nAYmJiQgLC8OyZcsAADNmzMC4ceOQlpaG4OBgODo6YsWKFQCA/v3744EHHkBUVBQ6dOiAgQMH4pFH\nHjFbbexCioiISB3486WkKpf7E3y33go88QTQ4EAuEdE1gT9fSmrCcEqqcjkNbHW1sQup/HzAze0K\nFUZEZMUYTklNeM0p2bzMTCAsjMGUiIhIDRhOyeZt3cr+TYmIiNSC4ZRsHjvfJyIiUg9ec0qq0t7r\npi5cALy9gVOnAEfHK1gYEZEV4zWnpCY8cko27ZdfgIEDGUyJiIjUguGUbBr7NyUiIlIXhlOyabwZ\nioiISF14zSmpSnuumyotBQICgDNngOuuu8KFERFZMV5zSmrCI6dks7ZtA4YOZTAlIiJSE4ZTslk8\npU9ERKQ+DKdksxhOiYiI1IfXnJKqtPW6qdOngeBgoKQEsLO7CoUREVkxXnNKasIjp2STMjKAm25i\nMCUiIlIbhlOySTylT0REpE4Mp2ST9u4FBg2ydBVERETUXgynZJNOngT8/S1dBREREbUXb4giVWnL\nRf0iQOfOwLlzxn+JiK51vCGK1IRHTsnmnDsHODgwmBIREakRwynZnKIiwNfX0lUQERHR5WA4JZtz\n8iTDKRERkVoxnJLNOXkS8POzdBVERER0ORhOyebwyCkREZF6MZySWaWnpyM0NBQhISFYtGhRk+M8\n+eSTCAkJQWRkJLKzs5XnS0tLcddddyEsLAzh4eHIzMy8rBoYTomIiNSL4ZTMxmAwYNasWUhPT0dO\nTg5SUlJw8OBBk3HS0tJw5MgR5ObmYvny5Zg5c6Yy7KmnnsK4ceNw8OBB7N+/H2FhYZdVB8MpERGR\nejGcktlkZWUhODgYQUFBsLe3R3x8PDZs2GAyTmpqKqZNmwYAGDJkCEpLS3Hq1CmcP38e27dvx0MP\nPQQAsLOzg6ur62XVwXBKRESkXnaWLoBsR2FhIQICApTHWq0Wu3btanWcgoICdOzYEV5eXnjwwQex\nb98+3HDDDViyZAm6dOnSaDlJSUnK/2NiYhATE2MynOGUiK51GRkZyMjIsHQZRJeF4ZTMRqPRtGm8\nhr9SotFooNfrsWfPHixduhSDBg3C7Nmz8eabb+LVV19tNH39cNp43uznlIio4Rf35ORkyxVD1E48\nrU9m4+/vj/z8fOVxfn4+tFpti+MUFBTA398fWq0WWq0WgwYNAgDcdddd2LNnT7trKC83/uvsfBkv\ngIiIiCyO4ZTMJioqCrm5ucjLy4NOp8PatWsRGxtrMk5sbCxWrVoFAMjMzISbmxu8vb3h4+ODgIAA\nHD58GACwZcsWREREtLuGuj5O23gQl4iIiKwMT+uT2djZ2WHp0qUYM2YMDAYDEhMTERYWhmXLlgEA\nZsyYgXHjxiEtLQ3BwcFwdHTEihUrlOk//PBD3HfffdDpdOjVq5fJsLbi9aZERETqppGGFwASWTGN\nRtPomtX6UlKA9euBtWuvYlFERFautbaTyJrwtD7ZFB45JSIiUjeGU7IpDKdERETqxnBKNoXhlIiI\nSN0YTsmmMJwSERGpG8Mp2RR2wE9ERKRuDKdkU3jklIiISN0YTslmVFYCVVWAh4elKyEiIqLLxXBK\nNuPkScDHh78ORUREpGYMp2QzeEqfiIhI/RhOyWYwnBIREakfwynZDIZTIiIi9WM4JZvBcEpERKR+\nDKdkMxhOiYiI1I/hlGwGO+AnIiJSP4ZTshknTwJ+fpaugoiIiP4KhlOyGTytT0REpH4aERFLF0HU\nVhqNBk1tsjod4ORk/IWoDvzKRURkorm2k8ga8WOcbMKpU4CXF4MpERGR2vGjnGwCT+kTERHZBoZT\nsgkMp0RERLaB4ZRsAsMpERGRbWA4JZvAcEpERGQbGE7JJrADfiIiItvAcEpmlZ6ejtDQUISEhGDR\nokVNjvPkk08iJCQEkZGRyM7ONhlmMBgwYMAATJgwoV3LZQf8REREtoHhlMzGYDBg1qxZSE9PR05O\nDlJSUnDw4EGTcdLS0nDkyBHk5uZi+fLlmDlzpsnwJUuWIDw8HBqNpl3L5ml9IiIi28BwSmaTlZWF\n4OBgBAUFwd7eHvHx8diwYYPJOKmpqZg2bRoAYMiQISgtLcWpU6cAAAUFBUhLS8Pf/va3dncWzXBK\nRERkG+wsXQDZjsLCQgQEBCiPtVotdu3a1eo4hYWF8Pb2xpw5c/D222+jrKysxeUkJSUp/4+JicFN\nN8Xg9GnA29s8r4OISO0yMjKQkZFh6TKILgvDKZlNW0/FNzwqKiLYuHEjunXrhgEDBrTaoNYPpwBQ\nXAy4uwP29u2plojIdsXExCAmJkZ5nJycbLliiNqJp/XJbPz9/ZGfn688zs/Ph1arbXGcgoIC+Pv7\nY8eOHUhNTUWPHj2QkJCArVu34oEHHmjTcnlKn4iIyHYwnJLZREVFITc3F3l5edDpdFi7di1iY2NN\nxomNjcWqVasAAJmZmXBzc4OPjw8WLFiA/Px8HDt2DGvWrMHo0aOV8VrDcEpERGQ7eFqfzMbOzg5L\nly7FmDFjYDAYkJiYiLCwMCxbtgwAMGPGDIwbNw5paWkIDg6Go6MjVqxY0eS82nO3PsMpERGR7dBI\ne2+LJrIgjUbT6JrV114DqqqAN96wUFFERFauqbaTyFrxtD6pHo+cEhER2Q6GU1I9hlMiIiLbwXBK\nqsdwSkREZDsYTkn1GE6JiIhsB2+IIlVpeFG/CODgAJw/b/yXiIga4w1RpCY8ckqqdvYs0KULgykR\nEZGtYDglVeMpfSIiItvCcEqqVlQE+PlZugoiIiIyF4ZTUjUeOSUiIrItDKekagynREREtoXhlFSN\n4ZSIiMi2MJySqjGcEhER2RaGU1I1hlMiIiLbwnBKqsZwSkREZFsYTkm1RBhOiYiIbA3DKalWeTmg\n0QDOzpauhIiIiMyF4ZRUix3wExER2R6GU1ItntInIiKyPQynpFoMp0RERLaH4ZRUi+GUiIjI9jCc\nkmoxnBIREdkehlNSLYZTIiIi28NwSqrFcEpERGR7GE7J7NLT0xEaGoqQkBAsWrSoyXGefPJJhISE\nIDIyEtnZ2QCA/Px8jBo1ChEREbj++uvxwQcftLgchlMiIiLbw3BKZmUwGDBr1iykp6cjJycHKSkp\nOHjwoMk4aWlpOHLkCHJzc7F8+XLMnDkTAGBvb4/33nsPBw4cQGZmJj766KNG09Z38iT7OSUiIrI1\nDKdkVllZWQgODkZQUBDs7e0RHx+PDRs2mIyTmpqKadOmAQCGDBmC0tJSnDp1Cj4+Pujfvz8AwMnJ\nCWFhYSgqKmpyORcvAtXVgJvblX09REREdHXZWboAsi2FhYUICAhQHmu1WuzatavVcQoKCuDt7a08\nl5eXh+zsbAwZMqTRMpKSknDuHODgAPz0UwxiYmLM/0KIiFQsIyMDGRkZli6D6LIwnJJZaTSaNo0n\nIs1OV1FRgbvuugtLliyBk5NTo2mTkpLw88/Af/8LMJcSETUWE2P6xT05OdlyxRC1E0/rk1n5+/sj\nPz9feZyfnw+tVtviOAUFBfD39wcA1NTUIC4uDvfffz8mTZrU7HJ4MxQREZFtYjgls4qKikJubi7y\n8vKg0+mwdu1axMbGmowTGxuLVatWAQAyMzPh5uYGb29viAgSExMRHh6O2bNnt7gchlMiIiLbxNP6\nZFZ2dnZYunQpxowZA4PBgMTERISFhWHZsmUAgBkzZmDcuHFIS0tDcHAwHB0dsWLFCgDAL7/8gtWr\nV6Nfv34YMGAAAGDhwoW4/fbbGy2H4ZSIiMg2aaThxX9EVkyj0UBEMH06MGIE8NBDlq6IiMj61bWd\nRGrA0/qkSuzjlIiIyDYxnJIq8bQ+ERGRbWI4JVUqKmI4JSIiskW85pRURaPRoLpa4OQEVFUBHfj1\nioioVbzmlNSEH+2kOsXFQLduDKZERES2iB/vpDq83pSIiMh2MZyS6jCcEhER2S6GU1IdhlMiIiLb\nxXBKqsNwSkREZLsYTkl12AE/ERGR7WI4JdXhkVMiIiLbxXBKqsMO+ImIiGwXwympDo+cEhER2S7+\nQhSpikajgZ2doLISsLOzdDVEROrAX4giNeGRU1IdDw8GUyIiIlvFcEqqw1P6REREtovhlFSH4ZSI\niMh2MZyS6rCPUyIiItvFcEqqwyOnREREtovhlFSH4ZSIiMh2MZyS6jCcEhER2S6GU1IdhlMiIiLb\nxXBKZpWeno7Q0FCEhIRg0aJFTY7z5JNPIiQkBJGRkcjOzm7XtIA6wmlGRoalS2gT1mlerNN81FAj\noJ46idSE4ZTMxmAwYNasWUhPT0dOTg5SUlJw8OBBk3HS0tJw5MgR5ObmYvny5Zg5c2abp63j43PF\nX8pfppYPLNZpXqzTfNRQI6CeOonUhOGUzCYrKwvBwcEICgqCvb094uPjsWHDBpNxUlNTMW3aNADA\nkCFDUFpaiuLi4jZNW8fB4Yq/FCIiIrIQhlMym8LCQgQEBCiPtVotCgsL2zROUVFRq9MSERGR7eMv\nlJPZaDSaNo0nIldlOZaWnJxs6RLahHWaF+s0HzXUCKinTiK1YDgls/H390d+fr7yOD8/H1qttsVx\nCgoKoNVqUVNT0+q0wF8PtkRERGTdeFqfzCYqKgq5ubnIy8uDTqfD2rVrERsbazJObGwsVq1aBQDI\nzMyEm5sbvL292zQtERER2T4eOSWzsbOzw9KlSzFmzBgYDAYkJiYiLCwMy5YtAwDMmDED48aNQ1pa\nGoKDg+Ho6IgVK1a0OC0RERFdY4RIJTZt2iR9+vSR4OBgefPNNy1ay4MPPijdunWT66+/XnmupKRE\nbrnlFgkJCZFbb71Vzp07pwxbsGCBBAcHS58+feS77767KjWeOHFCYmJiJDw8XCIiImTJkiVWWWdl\nZaUMHjxYIiMjJSwsTJ5//nmrrLOOXq+X/v37y/jx4622zu7du0vfvn2lf//+MmjQIKut89y5cxIX\nFyehoaESFhYmmZmZVlXnoUOHpH///sqfi4uLLFmyxKpqrL/c8PBwuf766yUhIUGqqqqssk6itmA4\nJVXQ6/XSq1cvOXbsmOh0OomMjJScnByL1bNt2zbZs2ePSTh99tlnZdGiRSIi8uabb8pzzz0nIiIH\nDv1jr2cAAAUVSURBVByQyMhI0el0cuzYMenVq5cYDIYrXuPJkyclOztbRETKy8uld+/ekpOTY3V1\niohcuHBBRERqampkyJAhsn37dqusU0Rk8eLFcu+998qECRNExPredxGRoKAgKSkpMXnOGut84IEH\n5NNPPxUR43tfWlpqlXWKiBgMBvHx8ZETJ05YXY3Hjh2THj16SFVVlYiITJkyRVauXGl1dRK1FcMp\nqcKOHTtkzJgxyuOFCxfKwoULLViR8QOhfjjt06ePFBcXi4gxGPbp00dEjEco6h/pHTNmjOzcufPq\nFisiEydOlO+//96q67xw4YJERUXJb7/9ZpV15ufny8033yxbt25VjpxaY51BQUFy5swZk+esrc7S\n0lLp0aNHo+etrc463333ndx4441WWWNJSYn07t1bzp49KzU1NTJ+/HjZvHmz1dVJ1Fa8IYpUoS19\nqFraqVOn4O3tDQDw9vbGqVOnAABFRUUmPQ9Yova8vDxkZ2djyJAhVllnbW0t+vfvD29vb4waNQoR\nERFWWeecOXPw9ttvo0OHS02nNdap0Whwyy23ICoqCp988olV1nns2DF4eXnhwQcfxMCBA/Hwww/j\nwoULVldnnTVr1iAhIQGA9a1LDw8PzJ07F4GBgfDz84ObmxtuvfVWq6uTqK0YTkkV1NK3aR2NRtNi\nzVfz9VRUVCAuLg5LliyBs7Nzozqsoc4OHTpg7969KCgowLZt2/Djjz82qsPSdW7cuBHdunXDgAED\nmu3SzBrqBIBffvkF2dnZ2LRpEz766CNs3769UR2WrlOv12PPnj147LHHsGfPHjg6OuLNN99sVIel\n6wQAnU6Hb775BnfffXeTNVi6xqNHj+L9999HXl4eioqKUFFRgdWrVzeqw9J1ErUVwympQlv6ULU0\nb29vFBcXAwBOnjyJbt26AWi6b1d/f/+rUlNNTQ3i4uIwdepUTJo0yWrrrOPq6oo77rgDu3fvtro6\nd+zYgdTUVPTo0QMJCQnYunUrpk6danV1AoCvry8AwMvLC3feeSeysrKsrk6tVgutVotBgwYBAO66\n6y7s2bMHPj4+VlUnAGzatAk33HADvLy8AFjfPvTrr79i2LBh6Nq1K+zs7DB58mTs3LnTKtclUVsw\nnJIqqKEf1NjYWHz++ecAgM8//1wJg7GxsVizZg10Oh2OHTuG3NxcDB48+IrXIyJITExEeHg4Zs+e\nbbV1njlzBqWlpQCAyspKfP/99xgwYIDV1blgwQLk5+fj2LFjWLNmDUaPHo0vvvjC6uq8ePEiysvL\nAQAXLlzA5s2b0bdvX6ur08fHBwEBATh8+DAAYMuWLYiIiMCECROsqk4ASElJUU7p19ViTTWGhoYi\nMzMTlZWVEBFs2bIF4eHhVrkuidrEwte8ErVZWlqa9O7dW3r16iULFiywaC3x8fHi6+sr9vb2otVq\n5bPPPpOSkhK5+eabm+y25Y033pBevXpJnz59JD09/arUuH37dtFoNBIZGal0hbNp0yarq3P//v0y\nYMAAiYyMlL59+8pbb70lImJ1ddaXkZGh3K1vbXX+8ccfEhkZKZGRkRIREaHsK9ZWp4jI3r17JSoq\nSvr16yd33nmnlJaWWl2dFRUV0rVrVykrK1Oes7YaRUQWLVqkdCX1wAMPiE6ns8o6idpCI8LfgyQi\nIiIi68DT+kRERERkNRhOiYiIiMhqMJwSERERkdVgOCUiIiIiq8FwSkRERERWg+GUiIiIiKzG/w8p\nc1U4iFUHtQAAAABJRU5ErkJggg==\n", + "text": [ + "<matplotlib.figure.Figure at 0x1c0f410>" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 20.2 page no. 596\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Seperation of Biochemicals by Solvent Extraction\n", + "\n", + "# Variables\n", + "G = 1000.0 ;\t\t\t# Volume of solution - [L]\n", + "S_ad = 1.56 ;\t\t\t# amount of Steptomycin adsorbed per gram resin-[g strep./g resin]\n", + "cn_S = 6. ;\t\t\t# Concentration of streptomycin solution-[g/L]\n", + "\n", + "# Calculations\n", + "# Assume equilibrium occurs so that total(max) amount of streptomycin is adsorbed \n", + "max_S = cn_S*G ;\t\t\t# Maximum streptomycin adsorbed-[g]\n", + "#Use streptomycin balance to get amount of resin required \n", + "R = max_S/S_ad ;\t\t\t#Amount of resin required to adsorb required amount of streptomycin\n", + "\n", + "# Results\n", + "print 'Amount of resin required to adsorb required amount of streptomycin is %.0f g . '%R\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Amount of resin required to adsorb required amount of streptomycin is 3846 g . \n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 20.3 page no. 596\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Combination of an Adsorption Isotherm with a Meterial Balance\n", + "\n", + "# Variables\n", + "G = 1000. ;\t\t\t# Volume of solution - [L]\n", + "x = [19.2,17.2,12.6,8.6,3.4,1.4] ;\t\t\t# concentration of solute- [g/L] \n", + "ac = [0,0.01,0.04,0.08,0.20,0.40] ;\t\t\t# Activated charcoal added-[g/1000g sol] \n", + "# Assume all concentration can be treated as g solute/1000 g sol.\n", + "\n", + "# Calculations\n", + "y2 = (x[0]-x[1])/ac[1] ;\t\t\t# -[ g solute/g carbon]\n", + "y3 = (x[0]-x[2])/ac[2] ;\t\t\t# -[ g solute/g carbon]\n", + "y4 = (x[0]-x[3])/ac[3] ;\t\t\t# -[ g solute/g carbon]\n", + "y5 = (x[0]-x[4])/ac[4] ;\t\t\t# -[ g solute/g carbon]\n", + "y6 = (x[0]-x[5])/ac[5] ;\t\t\t# -[ g solute/g carbon]\n", + "\n", + "# Use polymath to get Freundlich isotherm to bo y= 37.919*x**(0.583)\n", + "y = 37.919*x[5]**(0.583) ;\t\t\t#From Freundlich isotherm\n", + "A_by_G = (x[0]-x[5])/y ;\t\t\t#Minimum mss of activated carbon required- [g carbon/1000 g sol.]\n", + "\n", + "# Results\n", + "print 'Minimum mass of activated carbon required is %.2f g carbon/1000 g sol. '%A_by_G\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Minimum mass of activated carbon required is 0.39 g carbon/1000 g sol. \n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch21.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch21.ipynb new file mode 100644 index 00000000..741dcc7d --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch21.ipynb @@ -0,0 +1,246 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 21 : Energy Terminology Concepts and Units" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 21.1 Page no : 616" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of Mechanical work by a gas on a piston showing how the path affects the value of the work\n", + "\n", + "from scipy.integrate import quad\n", + "\n", + "# Variables\n", + "V1 = 0.1 ;\t\t\t# Volume of gas initially -[cubic metres]\n", + "V2 = 0.2 ;\t\t\t# Volume of gas finally -[cubic metres]\n", + "T1 = 300 ;\t\t\t# Temperature of gas initially -[K]\n", + "P1 = 200 ;\t\t\t# Pressure of gas finally -[kPa]\n", + "R = 8.314 ;\t\t\t# Universal gas constant \n", + "n = (P1*V1)/(T1*R) ;\t\t\t# Moles of gas taken-[kg mol]\n", + "#You are asked to calculate work by eqn. 21.1 , but you do not know the F(force) exerted by gas , so write F = P.A, multiply divide A and eqn 21.1 reduces to W= integate(P.dv)\n", + "\n", + "# Calculations and Results\n", + "# Isobaric process see fig E21.1b to see the path followed\n", + "def f(V):\n", + " return -(P1)\n", + "W= quad(f,V1,V2)[0] ;\t\t\t# Work done by gas on piston -[kJ]\n", + "print ' (a)Work done by gas on piston for isobaric process is %.0f kJ . ',W\n", + "\n", + "def f1(V):\n", + " return -(T1*R*n/V)\n", + "W= quad(f1,V1,V2)[0] ;\t\t\t# Work done by gas on piston -[kJ]\n", + "print '(b)Work done by gas on piston for isothermal process is %.2f kJ . ',W\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " (a)Work done by gas on piston for isobaric process is %.0f kJ . -20.0\n", + "(b)Work done by gas on piston for isothermal process is %.2f kJ . -13.8629436112\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 21.2 page no. 624\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of Specific Kinetic energy for a Flowing fluid\n", + "\n", + "# Variables\n", + "id_ = 3. ;\t\t\t# Internal diameter of tube-[cm]\n", + "Vf = 0.001 ;\t\t\t# Volume flow rate of water in tube-[cubic meter/s]\n", + "rho = 1000. ;\t\t\t# Assumed density of water-[kg/cubic meter] \n", + "\n", + "# Calculations\n", + "rad = id_/2. ;\t\t\t# Radius of tube -[ cm]\n", + "a = 3.14*rad**2 ;\t\t\t# Area of flow of tube -[squqre centimeter]\n", + "v = Vf*(100)**2/a ;\t\t\t# Velocity of water in tube - [m/s]\n", + "KE = v**2/2. ;\t\t\t# Specific(mass=1kg) kinetic energy of water in tube -[J/kg]\n", + "\n", + "# Results\n", + "print 'Specific kinetic energy of water in tube is %.2f J/kg . '%KE\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Specific kinetic energy of water in tube is 1.00 J/kg . \n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 21.3 page no. 626\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of potential Energy change of water\n", + "\n", + "# Variables\n", + "# Let water level in first reservoir be the reference plane\n", + "h = 40. ;\t\t\t# Difference of water-[ft]\n", + "g = 32.2 ;\t\t\t# acceleration due to gravity-[ft/square second]\n", + "\n", + "# Calculations\n", + "PE=g*h/(32.2*778.2) ;\t\t\t#\t\t\t# Specific(mass=1kg) potential energy of water -[Btu/lbm]\n", + "\n", + "# Results\n", + "print 'Specific potential energy of water is %.4f Btu/lbm . '%PE\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Specific potential energy of water is 0.0514 Btu/lbm . \n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 21.4 page no : 629" + ] + }, + { + "cell_type": "code", + "collapsed": true, + "input": [ + "# Calculation of an internal energy change using the heat capacity\n", + "\n", + "# Variables\n", + "#Constant volume process \n", + "mol_air = 10. ;\t\t\t# Moles of air-[kg mol]\n", + "T1 = 60.+273 ;\t\t\t# Initial temperature of air-[K]\n", + "T2 = 30.+273 ;\t\t\t# final temperature of air-[K]\n", + "# Additional data needed\n", + "Cv = 2.1*10.**4 ; \t\t\t# Specific heat capacity of air at constant volume-[J/(kg mol*C)]\n", + "\n", + "# Calculations\n", + "def f(T):\n", + " return mol_air*Cv\n", + "del_U = quad(f,T1,T2)[0] ;\t\t\t#Change in internal energy-[J]\n", + "\n", + "# Results\n", + "print 'Change in internal energy is %.1e J . '%del_U\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Change in internal energy is -6.3e+06 J . \n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 21.7 page no : 633" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of Enthalpy change\n", + "\n", + "# Variables\n", + "#Constant pressure process \n", + "mol_air = 10. ;\t\t\t# Moles of air-[kg mol]\n", + "T1 = 60+273 ;\t\t\t# Initial temperature of air-[K]\n", + "T2 = 30+273 ;\t\t\t# final temperature of air-[K]\n", + "\n", + "# Calculations\n", + "# Additional data needed\n", + "Cp = 2.9*10**4 ;\t\t\t# Specific heat capacity of air at constant pressure-[J/(kg mol*C)]\n", + "# Use eqn. 21.11 for del_H\n", + "def f(T):\n", + " return mol_air*Cp\n", + "\n", + "del_H = quad(f,T1,T2)[0] ;\t\t\t#Change in enthalpy-[J]\n", + "print 'Change in enthalpy is %.1e J . '%del_H\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Change in enthalpy is -8.7e+06 J . \n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch22.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch22.ipynb new file mode 100644 index 00000000..01acfa93 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch22.ipynb @@ -0,0 +1,292 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 22 : Introduction to Energy Balances for Process without Reaction" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 22.1 page no. 651\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of the energy balance to a closed system\n", + "\n", + "# Variables\n", + "#Assume that properties of water can be used to substitute properties of solution\n", + "# Given\n", + "V = 1.673 ;\t\t\t# Volume of closed vessel-[cubic metre]\n", + "m = 1. ;\t\t\t# mass of saturated liquid vaporized-[kg]\n", + "Pi = 1. ;\t\t\t# Initial pressure -[atm]\n", + "Ti = 10. ;\t\t\t# Initial temperature -[degree C]\n", + "Pf = 1. ;\t\t\t# final pressure -[atm]\n", + "Tf = 100. ;\t\t\t# final temperature -[degree C]\n", + "\n", + "# Use steam table to obtain additional information at given condition\n", + "Ui = 35. ;\t\t\t# Initial enthalpy-[kJ/kg]\n", + "Uf = 2506.0 ;\t\t\t# Final enthalpy -[kJ/kg]\n", + "\n", + "# Calculations\n", + "# Use eqn. 22.2 after modifiying it using given conditions(W = 0,del_KE = 0 and del_PE = 0 )\n", + "Q = m*(Uf - Ui) ;\t\t\t# Heat transferred to the vessel - [kJ]\n", + "\n", + "# Results\n", + "print 'Heat transferred to the vessel is %.1f kJ . '%Q\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat transferred to the vessel is 2471.0 kJ . \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 22.2 page no. 652\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of U using American engineering units\n", + "\n", + "# Variables\n", + "# Given\n", + "T1 = 80. ;\t\t\t# Initial temperature -[degree F]\n", + "T1 = 40. ;\t\t\t# final temperature -[degree F]\n", + "\n", + "# Additional data obtained from steam table at given temperatures and corresponding vapour pressures\n", + "p1 = 0.5067 ;\t\t\t# Initial saturation pressure-[psia]\n", + "p2 = 0.1217 ;\t\t\t# Final saturation pressure-[psia]\n", + "V1 = 0.01607 ;\t\t\t# Initial specific volume - [cubic feet/lb]\n", + "V2 = 0.01602 ;\t\t\t# Final specific volume - [cubic feet/lb]\n", + "H1 = 48.02 ;\t\t\t#Initial specific enthalpy -[Btu/lb]\n", + "H2 = 8.05 ;\t\t\t# Final specific enthalpy -[Btu/lb]\n", + "\n", + "# Calculations\n", + "del_P = p2 - p1 ;\t\t\t# Change in pressure -[psia]\n", + "del_V = V2 - V1 ;\t\t\t# Change in specific volume -[cubic feet/lb]\n", + "del_H = H2 - H1 ;\t\t\t# Change in specific enthalpy -[Btu/lb]\n", + "del_pV = p2*144*V2/778. - p1*144*V1/778. ;\t\t\t# Change in pv-[Btu]\n", + "del_U = del_H - del_pV ;\t\t\t# Change in specific internal energy - [Btu/lb]\n", + "del_E = del_U ;\t\t\t# Change in specific total energy(since KE=0,PE=0 and W=0) -[Btu/lb]\n", + "\n", + "# Results\n", + "print 'Change in pressure is %.3f psia . '%del_P\n", + "print 'Change in specific volume is %.5f cubic feet/lb (negligible value) . '%del_V\n", + "print 'Change in specific enthalpy is %.2f Btu/lb . '%del_H\n", + "print 'Change in specific internal energy is %.2f Btu/lb . '%del_U\n", + "print 'Change in specific total energy is %.2f Btu/lb . '%del_E\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Change in pressure is -0.385 psia . \n", + "Change in specific volume is -0.00005 cubic feet/lb (negligible value) . \n", + "Change in specific enthalpy is -39.97 Btu/lb . \n", + "Change in specific internal energy is -39.97 Btu/lb . \n", + "Change in specific total energy is -39.97 Btu/lb . \n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 22.3 page no. 662\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# use of the general energy balance to analyze an open , unsteady-state system\n", + "\n", + "# Variables\n", + "#Lets take tank to be system\n", + "# Given\n", + "T = 600. ; \t\t\t# Temperature of steam -[K]\n", + "P = 1000. ;\t\t\t# Pressure of steam -[kPa]\n", + "\n", + "# Calculations\n", + "# Additional data for steam obtained from CD database at T and P\n", + "U = 2837.73 ;\t\t\t# Specific internal energy-[kJ/kg]\n", + "H = 3109.44 ;\t\t\t# Specific enthalpy -[kJ/kg]\n", + "V = 0.271 ;\t\t\t# Specific volume -[cubic metre/kg]\n", + "# By the reduced equation \n", + "Ut2 = H ;\t\t\t# Internal energy at final temperature-[kJ/kg]\n", + "\n", + "# Results\n", + "print 'The specific internal energy at final temperature is %.2f kJ/kg. Now use two properties\\\n", + "of the steam (P = %i kPa and Ut2 = %.2f kJ/kg) to find final temperature (T) from steam table. \\\n", + "From steam table we get T = 764 K.'%(Ut2,P,Ut2)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The specific internal energy at final temperature is 3109.44 kJ/kg. Now use two propertiesof the steam (P = 1000 kPa and Ut2 = 3109.44 kJ/kg) to find final temperature (T) from steam table. From steam table we get T = 764 K.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 22.4 page no. 669\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# application of the energy balance to a open, steady-state system, a heat exchanger\n", + "\n", + "# Variables\n", + "# Take milk plus water in tank to be system\n", + "# Given\n", + "T1_water = 70. ;\t\t\t# Temperature of entering water -[degree C]\n", + "T2_water = 35. ;\t\t\t# Temperature of exiting water -[degree C]\n", + "T1_milk = 15. ;\t\t\t#Temperature of entering milk -[degree C]\n", + "T2_milk = 25. ;\t\t\t#Temperature of exiting milk -[degree C]\n", + "\n", + "# Get additional data from steam table for water and milk,assuming milk to have same properties as that of water.\n", + "H_15 = 62.01 ;\t\t\t#Change in specific internal energy-[kJ/kg]\n", + "H_25 = 103.86 ;\t\t\t#Change in specific internal energy-[kJ/kg]\n", + "H_35 = 146.69 ;\t\t\t#Change in specific internal energy-[kJ/kg]\n", + "H_70 = 293.10 ;\t\t\t#Change in specific internal energy-[kJ/kg]\n", + "\n", + "# Assumptions to simplify Equation 22.8 are:\n", + "print 'Assumptions to simplify Equation 22.8 are:'\n", + "print '1. Change in KE and PE of system = 0.'\n", + "print '2. Q = 0 ,because of way we picked the system,it is is well insulated.'\n", + "print '3. W = 0,work done by or on the system.'\n", + "\n", + "# Calculations\n", + "#Basis m_milk = 1 kg/min , to directly get the answer .\n", + "m_milk = 1 ;\t\t\t# Mass flow rate of milk-[kg/min]\n", + "# By applying above assumtions eqn. 22.8 reduces to del_H = 0 .Using it get m_water-\n", + "m_water = (m_milk*(H_15 - H_25))/(H_35 - H_70) ; \t\t\t# Mass flow rate of water-[kg/min]\n", + "m_ratio = m_water/m_milk ;\t\t\t# Mass flow rate of water per kg/min of milk-[kg/min]\n", + "\n", + "# Results\n", + "print 'Mass flow rate of water per kg/min of milk is %.2f (kg water/min )/(kg milk/min).'%m_ratio\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Assumptions to simplify Equation 22.8 are:\n", + "1. Change in KE and PE of system = 0.\n", + "2. Q = 0 ,because of way we picked the system,it is is well insulated.\n", + "3. W = 0,work done by or on the system.\n", + "Mass flow rate of water per kg/min of milk is 0.29 (kg water/min )/(kg milk/min).\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 22.5 page no. 670\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of power needed to pump water in an open, steady state system\n", + "\n", + "# Variables\n", + "# Take pipe between initial and final level of water\n", + "# Given\n", + "h_in = -20. ;\t\t\t# Depth of water below ground-[ft]\n", + "h_out = 5. ;\t\t\t# Height of water level above ground-[ft]\n", + "h = h_out - h_in ;\t\t\t# Total height to which water is pumped-[ft]\n", + "V = 0.50 ;\t\t\t# Volume flow rate of water - [cubic feet/s]\n", + "ef = 100.; \t\t\t# Efficiency of pump - [%] \n", + "g = 32.2; \t\t\t# Acceleration due to gravity -[ft/square second] \n", + "gc = 32.2 ;\t\t\t#[(ft*lbm)/(second square*lbf)]\n", + "\n", + "M = V * 62.4 ;\t\t\t# mass flow rate - [lbm/s]\n", + "PE_in = 0 ;\t\t\t# Treating initial water level to be reference level\n", + "\n", + "# Calculations\n", + "PE_out = (M*g*h*1.055)/(gc*778.2) ;\t\t\t# PE of discharged water -[lbm*(square feet/square second)]\n", + "W = PE_out - PE_in ;\t\t\t#Work done on system = power delivered by pump, (since we are using mass flow rate and pump efficiency is 100 % , so W = Power) -[kW]\n", + "\n", + "# Results\n", + "print 'The electric power required by the pump is %.2f kW. '%W\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The electric power required by the pump is 1.06 kW. \n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch23.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch23.ipynb new file mode 100644 index 00000000..6773ceb9 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch23.ipynb @@ -0,0 +1,538 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "\n", + "Chapter 23 : Calculation of Enthalpy Changes" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 23.1 Page no. 686\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Graph that showing the heat of vaporization of water\n", + "\n", + "%pylab inline\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Variables\n", + "# Given\n", + "x_Tl = [90,92,97,100] ;\t\t\t# Temperature of saturated liquid- [degree C]\n", + "x_Tg = [100,102,107,110] ;\t\t\t# Temperature of saturated vapour- [degree C]\n", + "y_Hl = [376.9,385.3,406.3,418.6] ;\t\t\t# Enthalpy change of saturated liquid -[kJ/kg]\n", + "y_Hg = [2256.44,2251.2,2237.9,2229.86] ;\t\t\t# Enthalpy change of saturated vapour -[kJ/kg]\n", + "\n", + "# Results\n", + "plot(x_Tl,y_Hl,x_Tg,y_Hg);\n", + "show()\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\ngg==\n", + "text": [ + "<matplotlib.figure.Figure at 0x33aa350>" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 23.2 page no. 687\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# comparison of various sources to estimate the heat of vaporization\n", + "\n", + "import math\n", + "\n", + "# Variables\n", + "# Basis : 1 g mol\n", + "R = 8.314 * 10**-3 ;\t\t\t# Ideal gas constant -[kJ/(g mol * K)]\n", + "Hv = 30.20 ;\t\t\t# Experimental value of heat of vaporization of acetone -[kJ/g] \n", + "\n", + "# additional needed data for acetone from Appendix D\n", + "T = 329.2 ;\t\t\t# Normal boiling point of acetone - [K]\n", + "Tc = 508.0 ;\t\t\t# Critical temperature of acetone - [K]\n", + "Pc = 47.0 ;\t\t\t# Critical presure of acetone -[atm]\n", + "\n", + "# Calculations and Results\n", + "Tbc = T/Tc ;\t\t\t# variable required in etimation equations\n", + "lnPc = math.log(Pc) ;\t\t\t# variable required in etimation equations\n", + "\n", + "B = 2940.46 ;\n", + "C = -35.93 ;\n", + "\n", + "del_Hv1 = (R*B*T**2)/((C+T)**2) ;\t\t\t#Heat of vapourization -[kJ/g]\n", + "d1 = (abs(Hv - del_Hv1)*100)/Hv ;\t\t\t# differece of experimental and calculated value -[%]\n", + "print '(a) Heat of vapourization of acetone is %.2f kJ/g mol. And differece of experimental and calculated value is %.1f %% . '%(del_Hv1,d1);\n", + "\n", + "del_Hv2 = R*T*((3.978*Tbc - 3.938 +1.555*lnPc)/(1.07 - Tbc)) ;\t\t\t#Heat of vapourization -[kJ/g]\n", + "d2 = (abs(Hv - del_Hv2)*100)/Hv ;\t\t\t# differece of experimental and calculated value -[%]\n", + "print ' (b) Heat of vapourization of acetone is %.2f kJ/g mol. And differece of experimental and calculated value is %.1f %% . '%(del_Hv2,d2);\n", + "\n", + "\n", + "del_Hv3 = 1.093*R*Tc*((Tbc*(lnPc-1))/(0.93-Tbc)) ;\t\t\t#Heat of vapourization -[kJ/g]\n", + "d3 = (abs(Hv - del_Hv3)*100)/Hv ;\t\t\t# differece of experimental and calculated value -[%]\n", + "print ' (c) Heat of vapourization of acetone is %.2f kJ/g mol. And differece of experimental and calculated value is %.1f %% . '%(del_Hv3,d3);\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Heat of vapourization of acetone is 30.80 kJ/g mol. And differece of experimental and calculated value is 2.0 % . \n", + " (b) Heat of vapourization of acetone is 30.01 kJ/g mol. And differece of experimental and calculated value is 0.6 % . \n", + " (c) Heat of vapourization of acetone is 30.24 kJ/g mol. And differece of experimental and calculated value is 0.1 % . \n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "\n", + "Example 23.3 Page no. 693\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Conversion of units in a heat capacity equation\n", + "\n", + "# Variables\n", + "c = 2.675*10**4 #*.4536)/(1055*1.8) ;\n", + "d = 42.27#*.4536)/(1055*1.8) ;\n", + "e = 1.425*10**-2#*.4536)/(1055*1.8) ;\n", + "# Calculations\n", + "#Now convert Tk (Temperature in K) to TF (temperature in F) to get answer of form x + yT - zT**2,where\n", + "x = c + d*460/1.8 - e*((460/1.8)**2) ;\n", + "y = d/1.8;\n", + "z = e/(1.8*1.8) ;\n", + "\n", + "# Results\n", + "print 'The required answer is %.2e + (%.2e)T - (%.3e) T**2 Btu/(lb mol*F) , where T is in degree F . '%(x,y,z)\n", + "\n", + "print \"Note answer in textbook seems wrong by order of 10^-3\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The required answer is 3.66e+04 + (2.35e+01)T - (4.398e-03) T**2 Btu/(lb mol*F) , where T is in degree F . \n", + "Note answer in textbook seems wrong by order of 10^-3\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 23.4 page no. 694\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Fitting Heat Capacity Equation to Heat Capacity Data\n", + "\n", + "\n", + "# Variables\n", + "# Take all 18 experimenta data in an array Cp\n", + "Cpi = [39.87,39.85,39.90,45.16,45.23,45.17,50.72,51.03,50.90,56.85,56.80,57.02,63.01,63.09,63.14,69.52,69.68,69.63] ;\t\t\t# Array of Cpi(Heat capacity) values\n", + "# Take corresponding temperatures in array T\n", + "Ti = [300,300,300,400,400,400,500,500,500,600,600,600,700,700,700,800,800,800] ;\t\t\t# array of Ti\n", + "Ti_sqr = [300**2,300**2,300**2,400**2,400**2,400**2,500**2,500**2,500**2,600**2,600**2,600**2,700**2,700**2,700**2,800**2,800**2,800**2] ;\t\t\t# array of Ti**2\n", + "Ti_cub = [300**3,300**3,300**3,400**3,400**3,400**3,500**3,500**3,500**3,600**3,600**3,600**3,700**3,700**3,700**3,800**3,800**3,800**3];\t\t\t# array of Ti**3\n", + "Ti_qd = [300**4,300**4,300**4,400**4,400**4,400**4,500**4,500**4,500**4,600**4,600**4,600**4,700**4,700**4,700**4,800**4,800**4,800**4];\t\t\t# array of Ti**4\n", + "Cpi_Ti = [39.87*300,39.85*300,39.90*300,45.16*400,45.23*400,45.17*400,50.72*500,51.03*500,50.90*500,56.85*600,56.80*600,57.02*600,63.01*700,63.09*700,63.14*700,69.52*800,69.68*800,69.63*800] ;\t\t\t# Array of Cpi(Heat capacity)*Ti values\n", + "Cpi_Ti_sqr = [39.87*300**2,39.85*300**2,39.90*300**2,45.16*400**2,45.23*400**2,45.17*400**2,50.72*500**2,51.03*500**2,50.90*500**2,56.85*600**2,56.80*600**2,57.02*600**2,63.01*700**2,63.09*700**2,63.14*700**2,69.52*800**2,69.68*800**2,69.63*800**2] ;\t\t\t# Array of Cpi(Heat capacity)*Ti**2 values\n", + "\n", + "n = 18. ;\t\t\t# Number of data\n", + "# Calculations\n", + "\n", + "from numpy import matrix\n", + "# Solve equations (a),(b) & (c) simultaneously using matrix\n", + "a = matrix([[n,sum(Ti),sum(Ti_sqr)],[sum(Ti),sum(Ti_sqr),sum(Ti_cub)],[sum(Ti_sqr),sum(Ti_cub),sum(Ti_qd)]]) ;\t\t\t# Matrix of coefficients of unknown\n", + "b = matrix([[sum(Cpi)],[sum(Cpi_Ti)],[sum(Cpi_Ti_sqr)]]) ;\t\t\t# Matrix of constants\n", + "x = (a)**-1 * b ;\t\t\t# Matrix of solutions a = x(1), b = x(2) , c = x(3) \n", + "\n", + "# Results\n", + "print 'The solution is Cp = %.2f + %.3e T + %.2e T**2 .Therefore coefficients are as follows :'%(x[0],x[1],x[2])\n", + "print ' a = %.2f. b = %.3e . c = %.2e .'%(x[0],x[1],x[2])\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The solution is Cp = 25.44 + 4.371e-02 T + 1.44e-05 T**2 .Therefore coefficients are as follows :\n", + " a = 25.44. b = 4.371e-02 . c = 1.44e-05 .\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 23.5 page no : 695" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of H for a gas mixture using heat capacity equation for each component\n", + "\n", + "from scipy.integrate import quad\n", + "# Variables\n", + "# Basis : 1 g mol of gas\n", + "#Given\n", + "T1 = 550. ;\t\t\t# Initial temperature - [degree F]\n", + "T2 = 200. ;\t\t\t# Final temperature - [degree F]\n", + "CO2 = 9.2/100 ;\t\t\t# Mole fraction \n", + "CO = 1.5/100 ;\t\t\t# Mole fraction \n", + "O2 = 7.3/100 ;\t\t\t# Mole fraction \n", + "N2 = 82.0/100 ;\t\t\t#Mole fraction \n", + "\n", + "# Calculations\n", + "# Additional data needed :\n", + "a_N2 = 6.895;\t\t\t# constant\n", + "b_N2 = 0.7624*10**-3;\t\t\t# coefficient of T\n", + "c_N2 = -0.7009*10**-7;\t\t\t# coefficient of square T\n", + "a_O2 = 7.104 ;\t\t\t# constant\n", + "b_O2 = (0.7851*10**-3);\t\t\t# coefficient of T\n", + "c_O2 = (-0.5528*10**-7); \t\t\t# coefficient of square T\n", + "a_CO2 = 8.448;\t\t\t# constant\n", + "b_CO2 = 5.757*10**-3;\t\t\t# coefficient of T\n", + "c_CO2 = -21.59*10**-7;\t\t\t# coefficient of square T\n", + "d_CO2 = 3.059*10**-10;\t\t\t# coefficient of cubic T\n", + "a_CO = 6.865 ;\t\t\t# constant\n", + "b_CO = 0.8024*10**-3;\t\t\t# coefficient of T\n", + "c_CO = -0.7367*10**-7; \t\t\t# coefficient of square T\n", + "\n", + "# New coefficients after multiplying mole fraction of each component\n", + "a1_N2 = 6.895*N2 ;\t\t\t# constant\n", + "b1_N2 = N2*0.7624*10**-3; \t\t\t# coefficient of T\n", + "c1_N2 = (-0.7009*10**-7)*N2; \t\t\t# coefficient of square T \n", + "a1_O2 = 7.104*O2 ;\t\t\t# constant\n", + "b1_O2 = (0.7851*10**-3)*O2;\t\t\t# coefficient of T\n", + "c1_O2 = (-0.5528*10**-7)*O2; \t\t\t# coefficient of square T\n", + "a1_CO2 = 8.448*CO2;\t\t\t# constant\n", + "b1_CO2 = (5.757*10**-3)*CO2;\t\t\t# coefficient of T\n", + "c1_CO2 = (-21.59*10**-7)*CO2; \t\t\t# coefficient of square T\n", + "d1_CO2 = (3.059*10**-10)*CO2; \t\t\t# coefficient of cubic T\n", + "a1_CO = 6.865*CO;\t\t\t# constant\n", + "b1_CO = (0.8024*10**-3)*CO;\t\t\t# coefficient of T\n", + "c1_CO = (-0.7367*10**-7)*CO; \t\t\t# coefficient of square T\n", + "\n", + "# Get net coefficients of T , square T and cubic T by adding them\n", + "a_net = a1_N2+a1_CO2+a1_CO+a1_O2; \t\t\t#Net constant\n", + "b_net = b1_N2+b1_CO2+b1_CO+b1_O2; \t\t\t#Net coefficient of T\n", + "c_net = c1_N2+c1_CO2+c1_CO+c1_O2 ;\t\t\t#Net coefficient of square T\n", + "d_net = d1_CO2;\t\t\t#Net coefficient of cubic T\n", + "\n", + "def f(T):\n", + " return (a_net )+( b_net*T) + (c_net*(T**2)) + (d_net*(T**3))\n", + " \n", + "del_H = quad(f,T1,T2)[0] \t\t\t# Change in enthalpy of gas over given range-[Btu/lb mol gas]\n", + "\n", + "# Results\n", + "print ' Change in enthalpy of gas over given range is %.0f Btu/lb mol gas . '%del_H\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Change in enthalpy of gas over given range is -2616 Btu/lb mol gas . \n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 23.6 page no. 700 \n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the Change in Enthalpy for a Gas using Tabulated Enthalpy Values\n", + "\n", + "\n", + "# Solution \n", + "#Given\n", + "N2 = 1. ;\t\t\t# Moles of N2 - [kg mol]\n", + "P = 100. ;\t\t\t# Pressure of gas - [kPa] \n", + "T1 = 18. ;\t\t\t# Initial temperature - [degree C]\n", + "T2 = 1100. ;\t\t\t# Final temperature - [degree C]\n", + "\n", + "# Calculations\n", + "# In the book it is mentioned to use tables in Appendix D6 to calculate enthalpy change, we get \n", + "H_T1 = 0.524;\t\t\t# Initial enthalpy -[kJ/kg mol]\n", + "H_T2 = 34.715 ;\t\t\t# Final enthalpy - [kJ/kg mol]\n", + "del_H = H_T2 - H_T1 ;\t\t\t# Change in enthalpy - [kJ/kg]\n", + "\n", + "# Results\n", + "print ' Change in enthalpy of N2 over given range is %.3f kJ/kg mol N2 . '%del_H\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Change in enthalpy of N2 over given range is 34.191 kJ/kg mol N2 . \n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 23.7 page no. 701\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Use of Steam Tables to Calculate Change in Enthalpy\n", + "\n", + "# Solution Fig.E23.7\n", + "\n", + "# Variables\n", + "#Given\n", + "T1 = 640. ;\t\t\t# Initial temperature -[degree F]\n", + "T2 = 480. ;\t\t\t# Final temperature -[degree F]\n", + "P1 = 92. ;\t\t\t# Initial pressure -[psia]\n", + "P2 = 52. ;\t\t\t# Final pressure - [psia]\n", + "\n", + "\n", + "#From steam table\n", + "#At 90 psia\n", + "H1_600 = 1328.7 ;\t\t\t#H at 90 psia and 600 F-[Btu/lb]\n", + "H1_700 = 1378.1 ;\t\t\t#H at 90 psia and 700 F-[Btu/lb]\n", + "H2_600 = 1328.4 ;\t\t\t#H at 95 psia and 600 F-[Btu/lb]\n", + "H2_700 = 1377.8 ;\t\t\t#H at 95 psia and 700 F-[Btu/lb]\n", + "\n", + "# Calculations\n", + "H3_600 = H1_600+ ((H2_600-H1_600)/(95.-90))*(92-90);\t\t\t#H at 92 psia and 600 F-[Btu/lb]\n", + "H3_700 = H1_700+ ((H2_700-H1_700)/(95.-90))*(92-90);\t\t\t#H at 92 psia and 700 F-[Btu/lb]\n", + "H3_640 = H3_600+((H3_700-H3_600)/(700.-600))*(640-600);\t\t\t#H at 92 psia and 640 F-[Btu/lb]\n", + "\n", + "H1_450 = 1258.7 ;\t\t\t#H at 50 psia and 450 F-[Btu/lb]\n", + "H1_500 = 1282.6 ;\t\t\t#H at 50 psia and 500 F-[Btu/lb]\n", + "H2_450 = 1258.2 ;\t\t\t#H at 55 psia and 450 F-[Btu/lb]\n", + "H2_500 = 1282.2 ;\t\t\t#H at 55 psia and 500 F-[Btu/lb]\n", + "H3_450 = H1_450+ ((H2_450-H1_450)/(55.-50))*(52-50) ;\t\t\t#H at 52 psia and 450 F-[Btu/lb]\n", + "H3_500 = H1_500+ ((H2_500-H1_500)/(55.-50))*(52-50);\t\t\t#H at 52 psia and 500 F-[Btu/lb]\n", + "H3_480 = H3_450+((H3_500-H3_450)/(500.-450))*(480-450);\t\t\t# H at 52 psia and 480 F-[Btu/lb]\n", + "del_H = H3_480 - H3_640;\t\t\t# Change in enthalpy - [Btu/lb]\n", + "\n", + "# Results\n", + "print 'Change in enthalpy is %.1f Btu/lb .'%del_H\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Change in enthalpy is -75.5 Btu/lb .\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 23.8 page no. 702\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Use of Steam Table when a Phase Change is involved to Calculate the final State of Water\n", + "\n", + "\n", + "# Solution \n", + "\n", + "# Variables\n", + "W = 4. ;\t\t\t# Mass of water -[kg]\n", + "Ti= 27.+273 ;\t\t\t# Initial temperature -[K]\n", + "Pi = 200. ;\t\t\t# Initial pressure -[kPa]\n", + "Pf = Pi ;\t\t\t# Final pressure -[kPa]\n", + "V1 = 0.001004 ;\t\t\t# Specific volume at Ti -[cubic metre/kg]\n", + "V2 = 1000. * V1 ;\t\t\t#Specific volume at final temperature(Tf) from given condition in problem - [cubic metre/kg]\n", + "va = 0.9024 ;\t\t\t# Specific volume -[cubic metre/kg]\n", + "Ta = 400. ;\t\t\t# [K]\n", + "vb = 1.025 ;\t\t\t# Specific volume -[cubic metre/kg]\n", + "Tb = 450. ;\t\t\t#[K]\n", + "vf = V2 ;\t\t\t# Final specific volume -[cubic metre/kg]\n", + " \n", + "# Calculations\n", + "m=(Tb - Ta)/(vb - va);\t\t\t# slope \n", + "Tf=Ta + m*(vf - va) ;\t\t\t# Final temperature - [K]\n", + "\n", + "# Results\n", + "print ' Final temperature is %.0f K.'%Tf\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Final temperature is 441 K.\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 23.9 page no. 704\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculate Enthalpy Difference betwee two States by Pressure Enthalpy Chart for Butane\n", + "\n", + "\n", + "# Solution \n", + "\n", + "# Variables\n", + "mv = 1. ;\t\t\t# Mass of saturated vapour - [lb]\n", + "P1 = 2. ;\t\t\t# Initial pressure -[atm]\n", + "P2 = 20. ;\t\t\t# Final pressure -[atm]\n", + "H_2 = 179. ;\t\t\t# Specific enthalpy at 2 atm - [Btu/lb]\n", + "H_20 = 233. ;\t\t\t# Specific enthalpy at 20 atm - [Btu/lb]\n", + "V_2 = 3.00 ;\t\t\t# Specific volume at 2 atm - [cubic feet/lb]\n", + "V_20 = 0.30 ;\t\t\t# Specific volume at 20 atm - [cubic feet/lb]\n", + "T_2 = 72. ;\t\t\t# Temperature at 2 atm -[degree F]\n", + "T_20 = 239. ;\t\t\t# Temperature at 20 atm -[degree F]\n", + "\n", + "# Calculations\n", + "del_H = H_20 - H_2 ;\t\t\t# Change in specific enthalpy -[Btu/lb] \n", + "del_V = V_20 - V_2 ;\t\t\t# Change in specific volume -[cubic feet/lb] \n", + "del_T = T_20 - T_2 ;\t\t\t# Change in temperature -[degree F]\n", + "\n", + "# Results\n", + "print '(a) Change in specific enthalpy is %.0f Btu/lb.'%del_H\n", + "print ' (b) Change in specific volume is %.2f cubic feet/lb.'%del_V\n", + "print ' (c) Change in temperature is %.1f degree F.'%del_T\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Change in specific enthalpy is 54 Btu/lb.\n", + " (b) Change in specific volume is -2.70 cubic feet/lb.\n", + " (c) Change in temperature is 167.0 degree F.\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 9 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch24.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch24.ipynb new file mode 100644 index 00000000..00a323af --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch24.ipynb @@ -0,0 +1,557 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 24 : Applications of Energy Balances in the Absence of Chemical Reactions" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 24.1 page no. 720\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# simplification of the general energy balance\n", + "\n", + "# Solution Fig. E24.1\n", + "\n", + "# Assumptions to be made in eqn. 24.1 in following segment \n", + "print 'Assumptions to be made in eqn. 24.1 in following segments are:'\n", + "#(a)- 1 to 5\n", + "print '(a)- 1 to 5.'\n", + "print ' 1. Change in potential energy(del_PE) = 0(no change in level) .'\n", + "print ' 2. Probably change in kinetic energy(del_KE)=0 .'\n", + "print ' 3. Change in energy = 0 (process appears to be steady).'\n", + "print ' Result : Q + W = del_H.'\n", + "\n", + "#(b) 4 to 5\n", + "print '(b) 4 to 5.'\n", + "print ' 1. Q = W = 0 '\n", + "print ' 2. Probably change in kinetic energy(del_KE)=0.'\n", + "print ' 3. Change in energy = 0 (process appears to be steady).'\n", + "print ' Result : del_H = -del_PE . '\n", + "\n", + "#(c) 3 to 4\n", + "print '(c) 3 to 4.'\n", + "print ' 1. Q = W = 0 '\n", + "print ' 2. Probably change in kinetic energy(del_KE)=0.'\n", + "print ' 3. Change in energy = 0 (process appears to be steady).'\n", + "print ' Result : del_H = -del_PE . '\n", + "\n", + "#(d) 3 to 5\n", + "print '(d) 3 to 5.'\n", + "print ' 1. Q = W = 0 '\n", + "print ' 2. Probably change in kinetic energy(del_KE)=0.'\n", + "print ' 3. Change in energy = 0 (process appears to be steady).'\n", + "print ' 4. Change in potential energy(del_PE) = 0(no change in level) .'\n", + "print ' Result : del_H = 0 . '\n", + "\n", + "#(e)- 1 to 3\n", + "print '(e) 1 to 3.'\n", + "print ' 1. Change in potential energy(del_PE) = 0(no change in level) .'\n", + "print ' 2. Probably change in kinetic energy(del_KE)=0 .'\n", + "print ' 3. Change in energy = 0 (process appears to be steady).'\n", + "print ' Result : Q + W = del_H.'\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Assumptions to be made in eqn. 24.1 in following segments are:\n", + "(a)- 1 to 5.\n", + " 1. Change in potential energy(del_PE) = 0(no change in level) .\n", + " 2. Probably change in kinetic energy(del_KE)=0 .\n", + " 3. Change in energy = 0 (process appears to be steady).\n", + " Result : Q + W = del_H.\n", + "(b) 4 to 5.\n", + " 1. Q = W = 0 \n", + " 2. Probably change in kinetic energy(del_KE)=0.\n", + " 3. Change in energy = 0 (process appears to be steady).\n", + " Result : del_H = -del_PE . \n", + "(c) 3 to 4.\n", + " 1. Q = W = 0 \n", + " 2. Probably change in kinetic energy(del_KE)=0.\n", + " 3. Change in energy = 0 (process appears to be steady).\n", + " Result : del_H = -del_PE . \n", + "(d) 3 to 5.\n", + " 1. Q = W = 0 \n", + " 2. Probably change in kinetic energy(del_KE)=0.\n", + " 3. Change in energy = 0 (process appears to be steady).\n", + " 4. Change in potential energy(del_PE) = 0(no change in level) .\n", + " Result : del_H = 0 . \n", + "(e) 1 to 3.\n", + " 1. Change in potential energy(del_PE) = 0(no change in level) .\n", + " 2. Probably change in kinetic energy(del_KE)=0 .\n", + " 3. Change in energy = 0 (process appears to be steady).\n", + " Result : Q + W = del_H.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 24.3 page no. 728\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of the energy balance.\n", + "\n", + "# Variables\n", + "# Given\n", + "m_CO2 = 10. ;\t\t\t# mass of CO2 - [lb]\n", + "Ti_CO2 = 80. ;\t\t\t# Initial temperature of CO2 - [degree F]\n", + "Vi = 4.0 ;\t\t\t# Initial volume of CO2-[cubic feet]\n", + "f_CO2 = 40./100 ;\t\t\t# Fraction of CO2 that convert to liquid finally \n", + "s_Vi = Vi /m_CO2 ;\t\t\t# Initial specific volume of CO2 - [cubic feet/lb]\n", + "s_Vf = s_Vi ;\t\t\t# Constant volume -[cubic feet/lb]\n", + "Pi = 300. ;\t\t\t# Intial pressure - [psia]\n", + "del_Hi = 160. ;\t\t\t# Intial change in specific enthalpy - [Btu/lb]\n", + "# Now again use chart to get fnal condition fixed by constant volume line and quality 0.6 , according to book it is \n", + "del_Hf = 81. ;\t\t\t# Final change in specific enthalpy - [Btu/lb]\n", + "Pf = 140. ;\t\t\t#Final pressure - [psia]\n", + "\n", + "# Calculations\n", + "Q = ((del_Hf - del_Hi) - (Pf * s_Vf * 144/778.2 - Pi * s_Vi * 144/778.2))*m_CO2 ;\t\t\t# Heat removed from the extinguisher -[Btu]\n", + "\n", + "# Results\n", + "print ' Heat removed from the extinguisher is %i Btu .'%Q\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Heat removed from the extinguisher is -671 Btu .\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 24.4 page no. 730" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of the energy balance to plasma etching.\n", + "\n", + "from scipy.optimize import fsolve\n", + "\n", + "# Pick the system as gas plus heater \n", + "# Given\n", + "Pi = 1.5 ;\t\t\t# Intial pressure - [Pa]\n", + "Vi = 2*10**-3 ;\t\t\t# Initial volume of gas - [cubic metre]\n", + "Ti = 300 ;\t\t\t# Initial temperature - [K]\n", + "W = 480 ;\t\t\t# Work done by heater on system\n", + "t = 5 ;\t\t\t# Time for which current is supplied -[ min]\n", + "m_ht = 12 ;\t\t\t# Mass of the heater - [g]\n", + "C_ht = 0.35 ;\t\t\t# Heat capacity of heater - [ J/gK]\n", + "R = 8.314 ;\t\t\t# Ideal gas constant - [(Pa*cubic metre)/(g mol* K)]\n", + "\n", + "# It is assumed that heat transfer across system boundary for this short time is negligible , therefore Q = 0\n", + "# Using the above assumption the equation reduces to del_U = W, therefore \n", + "del_U = W ;\t\t\t# Change in nternal energy - [J]\n", + "\n", + "# Calculations\n", + "# Gas is assumed to be ideal, therefore get n by using pv = nRT\n", + "n = (Pi*Vi)/(R*Ti) ;\t\t\t# Number of moles of argon gas -[g mol]\n", + "Cp = (5./2)* R ;\t\t\t# Specific heat capacity of argon gas at constant pressure - [ J/gK]\n", + "Cv = Cp - R ;\t\t\t# Specific heat capacity of argon gas at constant volume - [ J/gK]\n", + "\n", + "def f(Tf):\n", + " return m_ht*C_ht*(Tf - Ti) + n*Cv*(Tf - Ti) - del_U\n", + " \n", + "Tf=fsolve(f,400) ;\t\t\t# Final temperature -[K] \n", + "\n", + "# Results\n", + "print ' Final temperature of gas is %.0f K .'%Tf\n", + " \n", + "Pf = (Tf/Ti)*Pi ;\t\t\t# Final pressure - [Pa]\n", + "print ' Final pressure in chamber is %.2f Pa .'%Pf\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Final temperature of gas is 414 K .\n", + " Final pressure in chamber is 2.07 Pa .\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 24.5 page no. 732\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Energy balance applied to a batch process\n", + "\n", + "# Variables\n", + "# Pick the system as shown in above figure of book\n", + "# Given\n", + "m_water = 10. ;\t\t\t# Mass of water - [lb]\n", + "T_water = 35. ;\t\t\t# Temperature of water - [degree F]\n", + "m_ice = 4. ;\t\t\t# Mass of ice - [lb]\n", + "T_ice = 32. ;\t\t\t# Temperature of ice - [degree F]\n", + "m_stm = 6. ;\t\t\t# Initial mass of steam -[lb]\n", + "T_stm = 250. ;\t\t\t# Temperature of stm - [degree F]\n", + "p = 20. ;\t\t\t# Pressure of system -[psia]\n", + "\n", + "m_total = m_water + m_ice + m_stm ;\t\t\t# Mass of H2O in three phases initially -[lb]\n", + "\n", + "U_ice = -143.6 ;\t\t\t# Specific internal energy of ice -[Btu/lb]\n", + "U_water = 3.025 ;\t\t\t# Specific internal energy of water -[Btu/lb]\n", + "U_stm = 1092.25 ;\t\t\t# Specific internal energy of steam -[Btu/lb]\n", + "V_water = 0.0162 ;\t\t\t# Specific volume of water -[cubic feet/lb]\n", + "V_stm = 20.80 ;\t\t\t# Specific volume of steam -[cubic feet/lb]\n", + "V_total = m_stm*V_stm ;\t\t\t#Total volume of container ignoring volume of water and ice as they are neglgible\n", + "\n", + "# Calculations\n", + "V_sys = V_total/m_total ;\t\t\t# Specific volume of system -[cubic feet/lb]\n", + "U_sys =(m_water*U_water + m_ice*U_ice + m_stm*U_stm)/m_total ;\t\t\t# Final specific internal energy of system -[Btu/lb]\n", + "\n", + "T1 = 190 ;\t\t\t# assumed temperature\n", + "U1 = [157.17,1071.83] ;\t\t\t#specific internal energy of liquid and vapour respetively -[Btu/lb]\n", + "V1 = [0.0165,41.01] ;\t\t\t# Specific volume of liquid and vapour respetively -[cubic feet/lb]\n", + "x1 = V_sys/V1[1] ;\t\t\t# Quality of vapour\n", + "U1_sys = (1-x1)*U1[0] + x1*U1[1] \t\t\t# Specific internal energy of system at T1-[Btu/lb] \n", + "\n", + "T2 = 200. ;\t\t\t# assumed temperature\n", + "U2 = [168.11, 1073.96];\t\t\t# specific internal energy of liquid and vapour respetively -[Btu/lb]\n", + "V2 = [0.017, 33.601] ;\t\t\t# Specific volume of liquid and vapour respetively -[cubic feet/lb]\n", + "x2 = V_sys/V2[1] ; \t\t\t# Quality of vapour\n", + "U2_sys = (1-x2)*U2[0] + x2*U2[1] ;\t\t\t# Specific internal energy of system at T2-[Btu/lb] \n", + "\n", + "# Results\n", + "# Check whether assumption is right\n", + "if (U_sys > U1_sys ):\n", + " if ( U_sys <U2_sys):\n", + " print 'Assumption is right, now find exact temperature by interpolation between 2 assumed temperatures.'\n", + " else:\n", + " print 'Assumption is wrong, assume different T2.'\n", + "else:\n", + " print 'Assumption is wrong,assume different T1.'\n", + "\n", + "# Interpolation, to get final temperature corresponding to U_sys\n", + "T_sys = T1 + ((T2 - T1)*(U_sys - U1_sys))/(U2_sys - U1_sys)\n", + "\n", + "print ' The final temperature obtained by interpolation between 2 assumed temperatures is %.2f degree F.'%T_sys\n", + " \n", + "# Now obtain specific volume of vapour data at final temperature from steam table and use it to calculate x(quality) , according to book it is\n", + "V_vap = 39.35 ;\t\t\t#specific volume of vapour data at final temperature -[cubic feet/lb]\n", + "x = V_sys /V_vap ;\t\t\t# Quality of gas at final temperature\n", + " \n", + " \t\t\t#Final state\n", + "Vap = m_total*x ;\t\t\t# Mass of vapour at final state - [lb]\n", + "stm_con = m_stm - Vap ;\t\t\t# Mass of steam condenses - [lb]\n", + "\n", + "print 'Therefore, mass of steam condenses is %.2f lb.'%stm_con\n", + "\n", + "print \"Answer is wrong in book.\"\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Assumption is right, now find exact temperature by interpolation between 2 assumed temperatures.\n", + " The final temperature obtained by interpolation between 2 assumed temperatures is 191.03 degree F.\n", + "Therefore, mass of steam condenses is 2.83 lb.\n", + "Answer is wrong in book.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 24.6 page no : 736" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# application of the energy balance to pumping water\n", + "\n", + "from scipy.optimize import fsolve\n", + "\n", + "# Variables\n", + "# Pick the system as shown in above figure of book\n", + "# Given\n", + "h1 = -15 ;\t\t\t# Initial level of water from ground level -[ft]\n", + "h2 = 165 ;\t\t\t#Final level of water from ground level -[ft]\n", + "V_rate = 200 ;\t\t\t# Volume flow rate of water - [gal/hr]\n", + "Q1 = 30000 ;\t\t\t# Heat input by heater - [Btu/hr]\n", + "Q2 = 25000 ;\t\t\t# Heat lost by system -[Btu/hr]\n", + "T1 = 35 ;\t\t\t# Initial temperature of water - [degree F]\n", + "g = 32.2 ;\t\t\t# Acceleration due to gravity - [ft/ square second]\n", + "p_pump = 2 ;\t\t\t# Power of pump -[hp]\n", + "f_w = 55./100 ;\t\t\t# Fraction of rated horsepower that i used in pumping water \n", + "Cp = 1 ;\t\t\t# Specific heat capacity of water - [Btu/lb*F]\n", + "\n", + "# Calculations\n", + "m = V_rate * 8.33 ;\t\t\t# Total mass of water pumped -[lb]\n", + "del_PE = (m* g *(h2 - h1))/(32.2*778) ;\t\t\t# Change in PE - [Btu/hr]\n", + "Q = Q1 - Q2 ;\t\t\t# Net heat exchange -[Btu/hr]\n", + "W = 2* f_w * 60 * 33000/778 ;\t\t\t# Work on system - [Btu/hr]\n", + "del_H = Q + W - del_PE ;\t\t\t# By using reduced energy balance - [Btu/hr]\n", + "\t\t\t# Also del_H = m* Cp * (T2 - T1), all is known except T2 , solve for T2\n", + "def f(T2):\n", + " return m*Cp*(T2-T1) - del_H\n", + " \n", + "T2 = fsolve(f,40)[0] ;\t\t\t# Boiling point temperature \n", + "\n", + "# Results\n", + "print ' Final temperature of water that enters storage tank is %.1f degree F .'%T2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Final temperature of water that enters storage tank is 39.5 degree F .\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "/usr/lib/python2.7/dist-packages/scipy/optimize/minpack.py:227: RuntimeWarning: The iteration is not making good progress, as measured by the \n", + " improvement from the last ten iterations.\n", + " warnings.warn(msg, RuntimeWarning)\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 24.7 page no. 738\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# application of the energy balance, to heat a biomass.\n", + "\n", + "# Variables\n", + "# Pick the system as shown in above figure of book\n", + "# Given\n", + "T_stm = 250 + 273 ;\t\t\t# Temperature of entering steam - [K ]\n", + "Q_loss = -1.5 ;\t\t\t# Rate of heat loss from system - [kJ/s ]\n", + "T_mi = 20 + 273 ;\t\t\t#Temperature of entering material -[K ]\n", + "T_mf = 100 + 273 ;\t\t\t# Temperature of material after heating - [K]\n", + "m_m = 150 ;\t\t\t# Mass of charged material - [kg]\n", + "Cp_m = 3.26 ;\t\t\t# Average heat capacity of material - [ J/(g*K)]\n", + "\n", + "# Calculations\n", + "del_U = m_m*Cp_m*(T_mf - T_mi) ;\t\t\t# Change in enthalpy of system , because del_(pV) = 0 for liquid and solid charge -[kJ]\n", + "Q_loss_total = Q_loss * 3600; \t\t\t# Total heat loss by system n 1 hour - [kJ]\n", + "# We need the value of specific change in enthalpy value of saturated steam(del_H_steam), according to book we can obtain this value from steam table, it's value is -1701 kJ/kg\n", + "del_H_steam = -1701 ;\t\t\t# Specific change in enthalpy value of saturated steam -[kJ/kg]\n", + "# Get mass of steam per kg charge from reduced energy balance(eqn. (b))\n", + "m_stm_total = (del_U - Q_loss_total)/(-del_H_steam) ;\t\t\t# Total mass of stea used - [kg]\n", + "m_stm = m_stm_total/m_m ;\t\t\t# Mass of steam used per kg of charge - [kg]\n", + "\n", + "# Results\n", + "print ' Mass of steam used per kg of charge is %.3f kg .'%m_stm\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Mass of steam used per kg of charge is 0.174 kg .\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 24.8 page no. 741\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Sterilization of a Fermentation Medium\n", + "\n", + "# Pick the system of whole process as shown in above figure of book\n", + "# Given\n", + "Q = 1.63 ;\t\t\t# Heat loss from the process - [ kW ]\n", + "m_bm = 150 ;\t\t\t# Mass flow rate of biological media into the sterlizer -[kg/min]\n", + "T_bm = 50 +273 ;\t\t\t# Temperature of biological media into the sterlizer - [K]\n", + "T_sm = 75 + 273 ;\t\t\t# Temperature of sterlize media out of the sterlizer - [K]\n", + "P_ss = 300 ;\t\t\t# Pressure of satureted steam entering the steam heater - [kPa]\n", + "P_sc = 300 ;\t\t\t# Pressure of satureted condensate exiting the steam heater - [kPa]\n", + "\n", + "H_w1 = 207.5 ;\t\t\t# Change in specific enthalpy of water at 50 degree C - [kJ/kg]\n", + "H_w2 = 310.3 ;\t\t\t# Change in specific enthalpy of water at 75 degree C - [kJ/kg]\n", + "H_ss = 2724.9 ;\t\t\t#Change in specific enthalpy of satureted steam entering the steam heater at 300 kPa - [kJ/kg]\n", + "H_sc = 561.2 ;\t\t\t#Change in specific enthalpy of satureted condensate exiting the steam heater at 300 kPa - [kJ/kg]\n", + "\n", + "# Calculations\n", + "m_sm = m_bm ;\t\t\t# By material balance -[kg/min]\n", + "m_stm = (Q*60 - m_sm*H_w2 + m_bm * H_w1 )/(H_sc - H_ss ) ;\t\t\t# Mass flow rate of steam entering the steam heater - [kg/min]\n", + "\n", + "# Results\n", + "print ' Mass flow rate of steam entering the steam heater is %.2f kg steam/min .'%m_stm\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Mass flow rate of steam entering the steam heater is 7.08 kg steam/min .\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 24.9 page no. 742\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Use of combined meterial and energy balances to solve a distillation problem.\n", + "\n", + "# Variables\n", + "F = 20000 ;\t\t\t# Feed rate of saturated liquid - [kg/h]\n", + "F_Bz = 0.5 ;\t\t\t# Fraction of benzene in feed\n", + "F_Tol = 0.5 ;\t\t\t# Fraction of toluene in feed\n", + "D_Bz = 0.98 ;\t\t\t# Fraction of benzene in distillate\n", + "D_Tol = 0.02 ;\t\t\t# Fraction of toluene in distillate\n", + "B_Bz = 0.04 ;\t\t\t# Fraction of benzene in bottoms\n", + "B_Tol = 0.96 ;\t\t\t# Fraction of toluene in bottoms\n", + "R_by_D = 4.0 ;\t\t\t# Recycle ratio \n", + "\n", + "# Calculations\n", + "from numpy import matrix\n", + "a = matrix([[1,1],[B_Bz,D_Bz]]) ;\t\t\t# Matrix formed by coefficients of unknown\n", + "b = matrix([[F],[F_Bz*F]]) ;\t\t\t# Matrix formed by contants\n", + "a = a.I\n", + "x = a*b ;\t\t\t# Matrix of solutions \n", + "B = x[0] ;\t\t\t# Bottoms - [kg/h]\n", + "D = x[1] ;\t\t\t#Distillate - [kg/h]\n", + "R = D * R_by_D ;\t\t\t# Recycle - [kg/h]\n", + "V = R + D ;\t\t\t# Overhead vapour - [kg/h]\n", + "\n", + "# For energy balance\n", + "# According to book additional data obtained from the fig.E24.9b are\n", + "H_F = 165 ;\t\t\t# Change in enthalpy of F - [kJ/kg]\n", + "H_B = 205 ;\t\t\t# Change in enthalpy of B - [kJ/kg]\n", + "H_D = 100 ;\t\t\t# Change in enthalpy of D - [kJ/kg]\n", + "H_R = 100 ;\t\t\t# Change in enthalpy of R - [kJ/kg]\n", + "H_V = 540 ;\t\t\t# Change in enthalpy of V - [kJ/kg]\n", + "\n", + "Qc = R*H_R + D*H_D - V*H_V ;\t\t\t# The heat duty in the condenser - [kJ]\n", + "Qr = D*H_D + B*H_B - F*H_F - Qc;\t\t\t# The heat duty to the reboiler - [kJ]\n", + "\n", + "# Results\n", + "print ' Ditillate (D) %.2e kg/h.'%D\n", + "print ' Bottoms (B) %.2e kg/h.'%B\n", + "print ' The heat duty in the condenser (Qc) %.2e kJ/h.'%Qc\n", + "print ' The heat duty to the reboiler (Qr) %.2e kJ/h.'%Qr\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Ditillate (D) 9.79e+03 kg/h.\n", + " Bottoms (B) 1.02e+04 kg/h.\n", + " The heat duty in the condenser (Qc) -2.15e+07 kJ/h.\n", + " The heat duty to the reboiler (Qr) 2.13e+07 kJ/h.\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch25.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch25.ipynb new file mode 100644 index 00000000..66cbaa91 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch25.ipynb @@ -0,0 +1,610 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 25 : Energy Balances How to Account for Chemical Reaction" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 25.1 page no. 766\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Determination of a heat of formation from heat transfer measurements\n", + "\n", + "# Variables\n", + "Qa = -393.51 ;\t\t\t# Heat of reaction of reaction (a) - [kJ/g mol C] \n", + "Qb = -282.99 ;\t\t\t# Heat of reaction of reaction (b) - [kJ/g mol CO] \n", + "del_Ha = Qa ;\t\t\t# Change in enthalpy of reaction A - [kJ/g mol C]\n", + "del_Hb = Qb ;\t\t\t# Change in enthalpy of reaction B - [kJ/g mol CO]\n", + "\n", + "# Calculations\t\n", + "del_Hfc = del_Ha - del_Hb ;\t\t\t# Standard heat of formation of CO - [kJ/g mol C]\n", + "\n", + "# Results\n", + "print 'Standard heat of formation of CO is %.2f kJ/g mol C.'%del_Hfc\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Standard heat of formation of CO is -110.52 kJ/g mol C.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 25.2 page no. 767\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Retrival of heats of formation from reference data.\n", + "\n", + "# Variables\n", + "H_H2 = 0 ;\t\t\t# Standard heat of formation of H2 -[kJ/ g mol H2]\n", + "H_Cl2 = 0 ;\t\t\t# Standard heat of formation of Cl2 -[kJ/ g mol Cl2]\n", + "H_HCl = -92.311 ;\t\t\t# Standard heat of formation of HCl -[kJ/ g mol HCl]\n", + "\n", + "# Calculations\n", + "H_f = 1*H_HCl - (1./2)*(H_H2 + H_Cl2) ; \t\t\t# Standard heat of formation of HCl by reaction - [kJ/ g mol HCl]\n", + "\n", + "# Results\n", + "print 'Standard heat of formation of HCl(g) is %.3f kJ/g mol HCl.'%H_f\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Standard heat of formation of HCl(g) is -92.311 kJ/g mol HCl.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 25.3 page no. 771\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the standard heat of reaction from the standard heats of formation.\n", + "\n", + "# Variables\n", + "H_fNH3 = -46.191 ;\t\t\t# Standard heat of formation of NH3 -[kJ/ g mol]\n", + "H_fO2 = 0 ;\t\t\t#Standard heat of formation of O2 -[kJ/ g mol]\n", + "H_fNO = 90.374 ;\t\t\t# Standard heat of formation of NO -[kJ/ g mol]\n", + "H_fH2O = -241.826 ;\t\t\t# Standard heat of formation of H2O -[kJ/ g mol]\n", + "\n", + "# Calculations\n", + "H_rxn = ((4*H_fNO + 6*H_fH2O) - (4*H_fNH3 + 5*H_fO2))/4. ;\t\t\t# Heat of above reaction-[kJ/ g mol NH3]\n", + "\n", + "# Results\n", + "print 'Heat of above reaction is %.3f kJ/g mol NH3.'%H_rxn\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat of above reaction is -226.174 kJ/g mol NH3.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 25.4 page no. 773\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# calculation of the heat of reaction at a temparature different from the standard conditions.\n", + "\n", + "# Variables\n", + "P1 = 1. ;\t\t\t# Initial pressure - [atm]\n", + "P2 = 1. ;\t\t\t# Final pressure - [atm]\n", + "T1 = 500. ;\t\t\t# Initial temperature -[degree C]\n", + "T2 = 500. ;\t\t\t# Final temperature -[degree C]\n", + "\n", + "m_CO2 = 1. ;\t\t\t# Moles of CO2 - [ g mol]\n", + "m_H2 = 4. ;\t\t\t# Moles of H2 - [ g mol]\n", + "m_H2O = 2. ;\t\t\t# Moles of H2O - [ g mol]\n", + "m_CH4 = 1. ;\t\t\t# Moles of CH4 - [ g mol]\n", + "\n", + "H_fCO2 = -393.250 ;\t\t\t# Heat of formation of CO2 - [kJ/g mol] \n", + "H_fH2 = 0. ;\t\t\t# Heat of formation of H2 - [kJ/g mol] \n", + "H_fH2O = -241.835 ;\t\t\t# Heat of formation of H2O - [kJ/g mol] \n", + "H_fCH4 = -74.848 ;\t\t\t# Heat of formation of CH4 - [kJ/g mol] \n", + "\n", + "H_CO2 = 21.425 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of CO2 - [kJ/g mol] \n", + "H_H2 = 13.834 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of H2 - [kJ/g mol] \n", + "H_H2O = 17.010 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of H2O - [kJ/g mol] \n", + "H_CH4 = 23.126 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of CH4 - [kJ/g mol] \n", + "\n", + "# Calculations\n", + "H_rxn_25 = (m_CH4*H_fCH4 + m_H2O*H_fH2O) - (m_CO2*H_fCO2 + m_H2*H_fH2) ;\t\t\t# Heat of reaction at 25 C\n", + "sum_H_rct = m_CO2*H_CO2 + m_H2*H_H2 ;\t\t\t# sum of heat of formation of reactant - [kJ]\n", + "sum_H_pdt = m_CH4*H_CH4 + m_H2O*H_H2O ;\t\t\t#sum of heat of formation of product - [kJ]\n", + "# Heat of above reaction is calculated by eqn. 25.4\n", + "H_rxn_500 = sum_H_pdt - sum_H_rct + H_rxn_25 ;\t\t\t# Heat of reaction at 500 C\n", + "\n", + "# Results\n", + "print 'Heat of above reaction at 500 degree C and 1 atm is %.1f kJ.'%H_rxn_500\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat of above reaction at 500 degree C and 1 atm is -184.9 kJ.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 25.5 page no. 775\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the Heat Transfer using Heat of Reaction in a Process in\n", + "\n", + "# Variables\n", + "m_CO2 = 1. ;\t\t\t# Moles of CO2 - [ g mol]\n", + "m_H2 = 4. ;\t\t\t# Moles of H2 - [ g mol]\n", + "m_H2O = 2. ;\t\t\t# Moles of H2O - [ g mol]\n", + "m_CH4 = 1. ;\t\t\t# Moles of CH4 - [ g mol]\n", + "P1 = 1. ;\t\t\t# Initial pressure - [atm]\n", + "P2 = 1. ;\t\t\t# Final pressure - [atm] \n", + "\n", + "T1_CO2 = 800. ;\t\t\t# Initial temperature of entering CO2 -[K]\n", + "T1_H2 = 298. ;\t\t\t# Initial temperature of entering H2 -[K]\n", + "T2 = 1000. ;\t\t\t# Temperature of exiting product - [K]\n", + "\n", + "m1_CO2 = 1. ;\t\t\t# Moles of entering CO2 - [ g mol]\n", + "m1_H2 = 4. ;\t\t\t# Moles of entering H2 - [ g mol]\n", + "f_con = 70./100 ;\t\t\t# Fractional conversion of CO2 \n", + "m2_H2O = 2*f_con ;\t\t\t# Moles of H2O in product - [ g mol]\n", + "m2_CH4 = 1*f_con ;\t\t\t# Moles of CH4 in product - [ g mol]\n", + "m2_CO2 = m1_CO2*(1-f_con) ;\t\t\t# Moles of CO2 in product - [ g mol]\n", + "m2_H2 = m1_H2*(1-f_con) ;\t\t\t# Moles of CO2 in product - [ g mol]\n", + "\n", + "H_fCO2 = -393.250 ;\t\t\t# Heat of formation of CO2 - [kJ/g mol] \n", + "H_fH2 = 0 ;\t\t\t# Heat of formation of H2 - [kJ/g mol] \n", + "H_fH2O = -241.835 ;\t\t\t# Heat of formation of H2O - [kJ/g mol] \n", + "H_fCH4 = -74.848 ;\t\t\t# Heat of formation of CH4 - [kJ/g mol] \n", + "\n", + "H1_CO2 = 22.798 ;\t\t\t# Change in enthalpy during temperature change from 298K to 800 K of CO2 - [kJ/g mol] \n", + "H1_H2 = 0 ;\t\t\t# Change in enthalpy during temperature change from 298K to 298 K of H2 - [kJ/g mol] \n", + "H2_H2O = 25.986 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1000 K of H2O - [kJ/g mol] \n", + "H2_CH4 = 38.325 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1000 K of CH4 - [kJ/g mol] \n", + "H2_CO2 = 33.396; \t\t\t# Change in enthalpy during temperature change from 298K to 1000 K of CO2 - [kJ/g mol] \n", + "H2_H2 = 20.620; \t\t\t# Change in enthalpy during temperature change from 298K to 1000 K of H2 - [kJ/g mol] \n", + "\n", + "# Calculations\n", + "H_rxn_25 = (m_CH4*H_fCH4 + m_H2O*H_fH2O) - (m_CO2*H_fCO2 + m_H2*H_fH2) ;\t\t\t# Standard heat of reaction at 25 C-[kJ]\n", + "H_rxn_ac = f_con*H_rxn_25 ;\t\t\t# Heat of reaction actual - [kJ]\n", + "sum_H_rct = m1_CO2*H1_CO2 + m1_H2*H1_H2 ;\t\t\t# sum of heat of formation of reactant - [kJ]\n", + "sum_H_pdt = m2_CH4*H2_CH4 + m2_H2O*H2_H2O + m2_CO2*H2_CO2 + m2_H2*H2_H2 ;\t\t\t#sum of heat of formation of product - [kJ]\n", + "H_rxn = sum_H_pdt - sum_H_rct + H_rxn_ac ;\t\t\t# Heat of reaction -[kJ/ g mol CO2]\n", + "\n", + "Q = H_rxn ;\t\t\t# Heat transfer to/from the reactor - [kJ]\n", + "\n", + "# Results\n", + "print 'Heat transfer to/from the reactor is %.3f kJ.Since Q is negative , the reactor losses heat.'%Q\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat transfer to/from the reactor is -40.515 kJ.Since Q is negative , the reactor losses heat.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 25.6 page no. 776\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the enthalpy change in anerobic culture.\n", + "\n", + "# Variables\n", + "H_EtOH =-1330.51 ;\t\t\t# Change in enthalpy of ethanol -[kJ/g mol]\n", + "H_Ac = -887.01 ;\t\t\t# Change in enthalpy of acetate -[kJ/g mol]\n", + "H_Fr = -221.75 ;\t\t\t# Change in enthalpy of formate -[kJ/g mol]\n", + "H_Lc = -1330.51 ;\t\t\t# Change in enthalpy of lactate -[kJ/g mol]\n", + "H_Mn = -2882.78 ;\t\t\t# Change in enthalpy of mannitol -[kJ/g mol]\n", + "mol_EtOH =1.29 ;\t\t\t#ethanol produced / g mol mannitol -[g mol]\n", + "mol_Ac = 0.22 ; \t\t\t#acetate produced / g mol mannitol -[g mol]\n", + "mol_Fr = 1.6 ; \t\t\t#formate produced / g mol mannitol-[g mol]\n", + "mol_Lc = 0.4 ;\t\t\t#lactate produced / g mol mannitol-[g mol]\n", + "mol_Mn = 1.0 ;\t\t\t#mannitol produced / g mol mannitol-[g mol]\n", + "B_growth = 40.5 ;\t\t\t# Biomass growth -[g cells/g mol mannitol]\n", + "\n", + "# Calculations and Results\n", + "del_H1 = H_EtOH*mol_EtOH +H_Ac*mol_Ac + H_Fr*mol_Fr + H_Lc*mol_Lc - H_Mn*mol_Mn ;\t\t\t# Net enthalpy change for several products (metabolites) per g mol mannitol consumed -[kJ]\n", + "printnt ' (a) Net enthalpy change for several products (metabolites) per g mol mannitol consumed is %.2f kJ.'%del_H1\n", + "\n", + "\t\t\t#(b)\n", + "del_H2 = del_H1 / B_growth ;\t\t\t#Net enthalpy change for several products (metabolites) per g cells produced-[kJ]\n", + "print ' (b) Net enthalpy change for several products (metabolites) per g cells produced is %.2f kJ.'%del_H2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " (a) Net enthalpy change for several products (metabolites) per g mol mannitol consumed is 84.28 kJ.\n", + " (b) Net enthalpy change for several products (metabolites) per g cells produced is 2.08 kJ.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 25.7 page no. 777\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Green Chemistry Examining Alternate Processes\n", + "\n", + "\n", + "# Solution \n", + "\n", + "# Variables\n", + "H_Cb = -26. ;\t\t\t#Standard heat of formation of carbaryl(C12H11O2N) -[kJ/ g mol]\n", + "H_HCl = -92.311 ;\t\t\t#Standard heat of formation of HCl -[kJ/ g mol]\n", + "H_Ma = -20.0 ;\t\t\t#Standard heat of formation of methyl amine(CH3NH2) -[kJ/ g mol]\n", + "H_Mi = -9*10**4 ;\t\t\t#Standard heat of formation of methyl isocynate(C2H3NO) -[kJ/ g mol]\n", + "H_Nc = -17.9 ;\t\t\t#Standard heat of formation of 1-Napthalenyl chloroformate(C11H7O2Cl) -[kJ/ g mol]\n", + "H_N = 30.9 ;\t\t\t#Standard heat of formation of napthol(C10H8O) -[kJ/ g mol]\n", + "H_P = -221.85 ;\t\t\t#Standard heat of formation of phosgene(COCl2) -[kJ/ g mol]\n", + "\n", + "# Calculations\n", + "H_rxn_a = (2*H_HCl + 1*H_Mi) - (1*(H_Ma) + 1*H_P ) ;\t\t\t# Heat of reaction (A)-[kJ]\n", + "H_rxn_b = (1*H_Cb ) - (1*(H_Mi) + 1*H_N ) ;\t\t\t# Heat of reaction (B)-[kJ]\n", + "H_rxn_c = (1*H_Nc) - (1*(H_N) + 1*H_P ) ;\t\t\t# Heat of reaction (C)-[kJ]\n", + "H_rxn_d = (1*H_Cb + 1*H_HCl) - (1*(H_Nc) + 1*H_Ma ) ;\t\t\t# Heat of reaction (D)-[kJ]\n", + "\n", + "# Results\n", + "#Bhopal Process\n", + "print ' Bhopal process .'\n", + "print ' (a) Heat of reaction (A) is %.1e kJ.'%H_rxn_a\n", + "print ' (b) Heat of reaction (B) is %.1e kJ.'%H_rxn_b\n", + "\n", + "#Alternate process\n", + "print ' Alternate process .'\n", + "print ' (c) Heat of reaction (C) is %.2f kJ.'%H_rxn_c\n", + "print ' (d) Heat of reaction (D) is %.2f kJ.'%H_rxn_d\n", + "print ' The above data show that capital cost of Bhopal process could be higher than alternate process.'\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Bhopal process .\n", + " (a) Heat of reaction (A) is -9.0e+04 kJ.\n", + " (b) Heat of reaction (B) is 9.0e+04 kJ.\n", + " Alternate process .\n", + " (c) Heat of reaction (C) is 173.05 kJ.\n", + " (d) Heat of reaction (D) is -80.41 kJ.\n", + " The above data show that capital cost of Bhopal process could be higher than alternate process.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 25.8 page no. 782\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the Heat of Reaction at a Tempera-\n", + "\n", + "#ture different from the Standard Conditions with Heat of Formation Merged\n", + "#with Sensible Heat\n", + "# Variables\n", + "P1 = 1. ;\t\t\t# Initial pressure - [atm]\n", + "P2 = 1. ;\t\t\t# Final pressure - [atm]\n", + "T1 = 500. ;\t\t\t# Initial temperature -[degree C]\n", + "T2 = 500. ;\t\t\t# Final temperature -[degree C]\n", + "\n", + "m_CO2 = 1. ;\t\t\t# Moles of CO2 - [ g mol]\n", + "m_H2 = 4. ;\t\t\t# Moles of H2 - [ g mol]\n", + "m_H2O = 2. ;\t\t\t# Moles of H2O - [ g mol]\n", + "m_CH4 = 1. ;\t\t\t# Moles of CH4 - [ g mol]\n", + "\n", + "H_fCO2 = -393.250; \t\t\t# Heat of formation of CO2 - [kJ/g mol] \n", + "H_fH2 = 0 ;\t\t\t# Heat of formation of H2 - [kJ/g mol] \n", + "H_fH2O = -241.835 ;\t\t\t# Heat of formation of H2O - [kJ/g mol] \n", + "H_fCH4 = -74.848 ;\t\t\t# Heat of formation of CH4 - [kJ/g mol] \n", + "\n", + "H_CO2 = 21.425 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of CO2 - [kJ/g mol] \n", + "H_H2 = 13.834 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of H2 - [kJ/g mol] \n", + "H_H2O = 17.010 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of H2O - [kJ/g mol] \n", + "H_CH4 = 23.126 ;\t\t\t# Change in enthalpy during temperature change from 25 to 500 degree C of CH4 - [kJ/g mol] \n", + "\n", + "# Calculations\n", + "H_in = (H_fCO2 + H_CO2)*m_CO2 + (H_fH2 + H_H2)*m_H2 ;\t\t\t# Enthalpy change for inputs -[kJ]\n", + "H_out = (H_fH2O + H_H2O)*m_H2O + (H_fCH4 + H_CH4)*m_CH4 ; \t\t\t# Enthalpy change for outputs -[kJ]\n", + "del_H = H_out - H_in ;\t\t\t# Net enthalpy change of process -[kJ]\n", + "\n", + "# Results\n", + "print 'Heat of above reaction at 500 degree C and 1 atm is %.1f kJ.'%del_H\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat of above reaction at 500 degree C and 1 atm is -184.9 kJ.\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 25.9 page no. 783\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the Heat Transfer when Reactants enter and Products leave at Different Temperatures\n", + "\n", + "# Solution \n", + "\n", + "# Variables\n", + "m_CO = 1. ;\t\t\t# Moles of CO input- [g mol]\n", + "m1_O2 = 1.5 ;\t\t\t# Moles of O2 input - [g mol]\n", + "m_CO2 = 1. ;\t\t\t# Moles of CO2 output - [g mol]\n", + "m2_O2 = 1. ;\t\t\t# Moles of O2 output - [g mol]\n", + "T_in_CO = 298. ;\t\t\t# Temperature of entering CO -[K]\n", + "T_in_O2 = 400. ;\t\t\t#Temperature of entering O2 -[K]\n", + "T_out_CO2 = 300. ;\t\t\t# Temperature of exiting CO2 -[K]\n", + "T_out_O2 = 300. ;\t\t\t# Temperature of exiting O2 -[K]\n", + "\n", + "H_fCO = -110.520 ;\t\t\t# Heat of formation of CO - [kJ/g mol] \n", + "H_fO2 = 0 ;\t\t\t# Heat of formation of O2 - [kJ/g mol] \n", + "H_fCO2 = -393.250 ;\t\t\t# Heat of formation of CO2 - [kJ/g mol] \n", + "\n", + "H_CO = 0 ;\t\t\t# Change in enthalpy during temperature change from 298K to 298 K of CO - [kJ/g mol] \n", + "H1_O2 = 11.619 ;\t\t\t# Change in enthalpy during temperature change from 298K to 400 K of input O2 - [kJ/g mol] \n", + "H_CO2 = 11.644 ;\t\t\t# Change in enthalpy during temperature change from 298K to 300 K of CO2 - [kJ/g mol] \n", + "H2_O2 = 8.389 ;\t\t\t# Change in enthalpy during temperature change from 298K to 300 K of output O2 - [kJ/g mol] \n", + "\n", + "# Calculations\n", + "H_in = (H_fCO + H_CO)*m_CO + (H_fO2 + H1_O2)*m1_O2 ;\t\t\t# Enthalpy change for inputs -[kJ]\n", + "H_out = (H_fCO2 + H_CO2)*m_CO2 + (H_fO2 + H2_O2)*m2_O2 ;\t\t\t# Enthalpy change for inputs -[kJ]\n", + "del_H = H_out - H_in ;\t\t\t# Net enthalpy change of process -[kJ]\n", + "\n", + "# Results\n", + "print 'Heat of above reaction is %.1f kJ.'%del_H\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat of above reaction is -280.1 kJ.\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 25.10 page no. 788\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Heating Value of Coal\n", + "\n", + "# Solution \n", + "\n", + "# Given \n", + "Ex_hv = 29770.0 ;\t\t\t# Experimental heating value of given coal - [kJ/kg]\n", + "\n", + "C = 71.0/100 ;\t\t\t#Fraction of C in coal \n", + "H2 = 5.6/100 ;\t\t\t# Fraction of H2 in coal \n", + "N2 = 1.6/100 ;\t\t\t# Fraction of N2 in coal \n", + "S = 2.7/100 ;\t\t\t# Fraction of S in coal \n", + "ash = 6.1/100 ;\t\t\t# Fraction of ash in coal \n", + "O2 = 13.0/100 ;\t\t\t#Fraction of O2 in coal \n", + "\n", + "# Calculations\n", + "HHV = 14544*C + 62028*(H2 - O2/8) + 4050*S ;\t\t\t# Higher heating value (HHV) by Dulong formula -[Btu/lb]\n", + "HHV_SI = HHV *1.055/0.454 ;\t\t\t# HHV in SI unt - [kJ/kg]\n", + "\n", + "# Results\n", + "print 'The experimental heating value - %.0f kJ.'%Ex_hv\n", + "print ' Higher heating value (HHV) by Dulong formula - %.0f kJ.'%HHV_SI\n", + "print ' The two values are quite close.' \n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The experimental heating value - 29770 kJ.\n", + " Higher heating value (HHV) by Dulong formula - 29980 kJ.\n", + " The two values are quite close.\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 25.11 page no. 789\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Selecting a Fuel to reduce SO2 emissions\n", + "\n", + "# Solution \n", + "\n", + "# Variables\n", + "H_req = 10**6 ;\t\t\t# Heat requirement - [Btu]\n", + "\n", + "d_N6 = 60.2 ;\t\t\t# Density of fuel no. 6-[lb/ft**3]\n", + "d_N2 = 58.7 ;\t\t\t# Density of fuel no. 2-[lb/ft**3]\n", + "S_N6 = 0.72/100 ;\t\t\t# Sulphur content in fuel no. 6\n", + "S_N2 = 0.62/100; \t\t\t#Sulphur content in fuel no. 2\n", + "lhv_N6 = 155000 ;\t\t\t#Lower heating value of No.6 -[Btu/gal]\n", + "lhv_N2 = 120000 ;\t\t\t#Lower heating value of No.2 -[Btu/gal]\n", + "\n", + "# Calculations\n", + "S1 = H_req*d_N6*S_N6/lhv_N6 ;\t\t\t# Sulphur emmited when we use fuel NO. 6-[lb]\n", + "S2 = H_req*d_N2*S_N2/lhv_N2 ;\t\t\t# Sulphur emmited when we use fuel NO. 2-[lb]\n", + "\n", + "# Results\n", + "print ' Sulphur emmited when we use fuel NO. 6 is %.2f lb.'%S1 \n", + "print ' Sulphur emmited when we use fuel NO. 2 is %.2f lb.'%S2 \n", + "print 'Clearly fuel no. 6 should be selected because of its low SO2 emmission.'\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Sulphur emmited when we use fuel NO. 6 is 2.80 lb.\n", + " Sulphur emmited when we use fuel NO. 2 is 3.03 lb.\n", + "Clearly fuel no. 6 should be selected because of its low SO2 emmission.\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch26.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch26.ipynb new file mode 100644 index 00000000..5268900c --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch26.ipynb @@ -0,0 +1,328 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 26 : Energy Balances that include the Effects of Chemical Reaction" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 26.2 page no. 808\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of an adiabetic reaction temperature.\n", + "\n", + "# Variables\n", + "m1_CO = 1.; \t\t\t# Moles of CO input- [g mol]\n", + "m1_O2 = 1. ;\t\t\t# Moles of O2 input - [g mol]\n", + "m1_N2 = 3.76 ;\t\t\t# Moles of N2 input - [g mol]\n", + "#Output compounds\n", + "m2_CO2 = 1. ;\t\t\t# Moles of CO2 output - [g mol]\n", + "m2_O2 = .50 ;\t\t\t# Moles of O2 output - [g mol]\n", + "m2_N2 = 3.76 ;\t\t\t# Moles of N2 output - [g mol]\n", + "\n", + "H1_fCO = -110520 ;\t\t\t# Heat of formation of CO - [J/g mol] \n", + "H1_fO2 = 0 ;\t\t\t# Heat of formation of O2 - [J/g mol] \n", + "H1_fN2 = 0 ;\t\t\t# Heat of formation of N2 - [J/g mol] \n", + "H1_CO = 2917. - 728 ;\t\t\t# Change in enthalpy during temperature change from 298K to 373 K of CO - [J/g mol] \n", + "H1_O2 = 2953. - 732 ;\t\t\t# Change in enthalpy during temperature change from 298K to 373 K of input O2 - [J/g mol]\n", + "H1_N2 = 2914. - 728 ;\t\t\t# Change in enthalpy during temperature change from 298K to 373 K of input N2 - [J/g mol]\n", + "\n", + "# Calculations\n", + "H_in = (H1_fCO + H1_CO)*m1_CO + (H1_fO2 + H1_O2)*m1_O2 + (H1_fN2 + H1_N2)*m1_N2;\t\t\t# Enthalpy change for inputs -[J]\n", + "\n", + "H2_fCO2 = -393510 ;\t\t\t# Heat of formation of CO2 - [J/g mol] \n", + "H2_fO2 = 0 ;\t\t\t# Heat of formation of O2 - [J/g mol] \n", + "H2_fN2 = 0 ;\t\t\t# Heat of formation of N2 - [J/g mol] \n", + "H2_CO2 = 92466. - 912 ;\t\t\t# Change in enthalpy during temperature change from 298K to 2000 K of CO2 - [J/g mol] \n", + "H2_O2 = 59914.-732 ;\t\t\t# Change in enthalpy during temperature change from 298K to 2000 K of output O2 - [J/g mol] \n", + "H2_N2 = 56902. - 728 ;\t\t\t# Change in enthalpy during temperature change from 298K to 2000 K of output O2 - [J/g mol] \n", + "\n", + "H1_out = (H2_fCO2 + H2_CO2)*m2_CO2 + (H2_fO2 + H2_O2)*m2_O2 + (H2_fN2 + H2_N2)*m2_N2 ;\t\t\t# Enthalpy change for outputs at 2000 K -[J]\n", + "\n", + "del_H1 = H1_out - H_in ;\t\t\t# Net enthalpy change of process -[J]\n", + "\n", + "H2_fCO2 = -393510. ;\t\t\t# Heat of formation of CO2 - [J/g mol] \n", + "H3_CO2 = 77455. - 912 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1750 K of CO2 - [J/g mol] \n", + "H3_O2 = 50555. -732 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1750 K of output O2 - [J/g mol] \n", + "H3_N2 = 47940. - 728 ;\t\t\t# Change in enthalpy during temperature change from 298K to 1750 K of output O2 - [J/g mol] \n", + "\n", + "H2_out = (H2_fCO2 + H3_CO2)*m2_CO2 + (H2_fO2 + H3_O2)*m2_O2 + (H2_fN2 + H3_N2)*m2_N2 ;\t\t\t# Enthalpy change for outputs at 1750 K -[J]\n", + "\n", + "del_H2 = H2_out - H_in ;\t\t\t# Net enthalpy change of process -[J]\n", + "\n", + "# Results\n", + "print 'Heat of above reaction when output is assumed to be at 2000 K is %.0f J.'%del_H1\n", + "print ' Heat of above reaction when output is assumed to be at 1750 K is %.0f J.'%del_H2\n", + "\t\t\t# Energy balance here reduce to del_H = 0 \n", + "print ' So we can see that our desired result del_H = 0 is bracketed between 2000 K and 1750 K , hence we will use interpolation to get the theoretical flame temperature.'\n", + "\t\t\t# Use interpolation to get the theoretical flame temperature\n", + "del_H = 0. ;\t\t\t# Requred condition\n", + "Ft = 1750 + ((del_H - del_H2)/(del_H1 - del_H2))*(2000 - 1750) ;\t\t\t# Interpolation to get Flame temperature(Ft)-[K]\n", + "print ' Theoretical flame temperature by interpolation is %.0f K.'%Ft\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat of above reaction when output is assumed to be at 2000 K is 36740 J.\n", + " Heat of above reaction when output is assumed to be at 1750 K is -16648 J.\n", + " So we can see that our desired result del_H = 0 is bracketed between 2000 K and 1750 K , hence we will use interpolation to get the theoretical flame temperature.\n", + " Theoretical flame temperature by interpolation is 1828 K.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 26.3 page no. 811\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of general Energy Balance in a Process in which More than one Reaction Occurs\n", + "\n", + "# Solution Fig E26.3b\n", + "\n", + "# Variables\n", + "v_CH4 = 1000. ;\t\t\t# Volume of CH4 taken - [ cubic feet]\n", + "CH4 = 1. ;\t\t\t# assumed for convenience- [ g mol] \n", + "ex_air = .5 ;\t\t\t# Fraction of excess O2 required \n", + "hp_CaCO3 = 0.130 ;\t\t\t# Heat capacity of CaCO3 -[kJ/g mol]\n", + "hp_CaO = 0.062 ;\t\t\t# Heat capacity of CaO -[kJ/g mol]\n", + "w_CaCO3 = 100.09 ;\t\t\t# Mol. wt. of CaCO3 -[g]\n", + "w_CaO = 56.08 ;\t\t\t# Mol. wt. ofCaO - [g]\n", + "\n", + "# Calculations\n", + "req_O2 = 2. ;\t\t\t# By eqn. (b), O2 required by CH4 - [g mol]\n", + "ex_O2 = ex_air*req_O2 ;\t\t\t# Excess O2 required - [ g mol]\n", + "O2 = req_O2 + ex_O2 ;\t\t\t# Total O2 entering - [ g mol]\n", + "N2 = O2 *(.79/.21) ;\t\t\t# Total N2 entering - [ g mol]\n", + "\n", + "nG_N2 = N2 ;\t\t\t# N2 balance - [ g mol]\n", + "nG_H2O = 4*CH4/2. ;\t\t\t# H2O balance - [ g mol]\n", + "nG_O2 = ex_O2 ;\t\t\t# [g mol]\n", + "\n", + "del_Hi_out = [ -393.250,0,0,-241.835,-635.6] ;\t\t\t# \t\t\t# Heat of formation - [kJ/g mol] \n", + "del_Hf_out = [21.425,15.043,14.241,17.010,54.25] ;\t\t\t#Change in enthalpy during temperature change -[kJ/g mol]\n", + "del_H_out =del_Hi_out + del_Hf_out ;\t\t\t# Change in enthalpy final - [kJ/g mol]\n", + "\n", + "del_Hi_in = [ -49.963,-1206.9,0,0] ;\t\t\t# \t\t\t# Heat of formation - [kJ/g mol] \n", + "del_Hf_in = [0,0,0,0] ;\t\t\t#Change in enthalpy during temperature change -[kJ/g mol]\n", + "del_H_in = del_Hi_in + del_Hf_in ;\t\t\t# Change in enthalpy final - [kJ/g mol]\n", + "\n", + "from numpy import matrix\n", + "a = matrix([[1,-1],[(del_H_in[1]-del_H_out[4]),-del_H_out[0]]]) ;\t\t\t# Matrix of coefficients\n", + "b = matrix([[-1],[(del_H_out[1]*nG_O2 + del_H_out[2]*nG_N2 +del_H_out[3]*nG_H2O-del_H_in[0]*CH4)]]) ;\t\t\t# Matrix of constants\n", + "a = a.I\n", + "x = a*b ;\t\t\t# Matrix of solutions, L = x(1), nG_CO2 = x(2)\n", + "g_CaCO3 = x[0]*w_CaCO3 ;\t\t\t#CaCO3 processed for each g mol of CH4 - [g]\n", + "\n", + "# Results\n", + "print ' CaCO3 processed for each g mol of CH4 is %.0f g.'%g_CaCO3\n", + "m_CaCO3 = (v_CH4*g_CaCO3)/359.05 ;\n", + "print ' Therefore, CaCO3 processed per 1000 ft**3 of CH4 is %.0f lb.'%m_CaCO3\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " CaCO3 processed for each g mol of CH4 is 465 g.\n", + " Therefore, CaCO3 processed per 1000 ft**3 of CH4 is 1295 lb.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 26.4 page no. 815\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of general Energy Balance in a Process Composed of Multiple Units\n", + "\n", + "# Solution Fig E26.4b\n", + "\n", + "# Variables\n", + "SO2_in = 2200. ;\t\t\t# Amount of SO2 entering reactor 2-[lb mol/hr]\n", + "\n", + "R1_CO_in = 1. ;\t\t\t#CO entering reactor 1-[lb mol]\n", + "air = .80 ;\t\t\t# Fraction of air used in burning \n", + "\n", + "R2_fSO2_in = 0.667 ;\t\t\t# Fraction of SO2 entering reactor 2\n", + "R2_fO2_in = 0.333 ;\t\t\t# Fraction of O2 entering reactor 2\n", + "R2_fSO3_out = 0.586 ;\t\t\t# Fraction of SO3 exiting reactor 2\n", + "R2_fSO2_out = 0.276 ;\t\t\t# Fraction of SO2 exiting reactor 2\n", + "R2_fO2_out = 0.138 ;\t\t\t# Fraction of O2 exiting reactor 2\n", + "# Main Reaction: CO , (1/2)*O2 ---> CO2 \n", + "R1_O2_in = (1.0/2)*air ;\t\t\t# O2 entering reactor 1-[g mol]\n", + "R1_N2_in = R1_O2_in*(79./21) ;\t\t\t# N2 entering reactor 1-[g mol]\n", + "\n", + "# Calculations\n", + "#Output of reactor 1\n", + "R1_CO_out = R1_CO_in*(1 - air) ;\t\t\t# [g mol]\n", + "R1_CO2_out = 1*( air) ;\t\t\t# [g mol]\n", + "R1_N2_out = R1_N2_in ;\t\t\t#[g mol]\n", + "\n", + "del_Hi_out = [ -109.054,-393.250,0.,-296.855,-395.263,0.] ; \t\t\t# Heat of formation - [kJ/g mol] \n", + "del_Hf_out = [35.332,35.178,22.540,20.845,34.302,16.313] ;\t\t\t#Change in enthalpy during temperature change -[kJ/g mol]\n", + "del_H_out =del_Hi_out + del_Hf_out ;\t\t\t#[-371.825,15.043,160.781,-449.650,-581.35]\t\t\t# Change in enthalpy final - [kJ/g mol]\n", + "\n", + "del_Hi_in = [ -109.054,-393.250,0.,-296.855,0.] ;\t\t\t# \t\t\t# Heat of formation - [kJ/g mol] \n", + "del_Hf_in = [17.177,17.753,11.981,0.,0.] ;\t\t\t#Change in enthalpy during temperature change -[kJ/g mol]\n", + "del_H_in = del_Hi_in+ del_Hf_in ;\t\t\t# Change in enthalpy final - [kJ/g mol]\n", + "\n", + "from numpy import matrix\n", + "# Solve eqn. (a), (b) and (c) to get F ,P , ex \n", + "a = matrix([[(R2_fSO3_out),0,-1],\n", + " [(R2_fSO2_out),-(R2_fSO2_in),1],\n", + " [- 285.50, -(del_H_in[3]*R2_fSO2_in), 0]]) ;\t\t\t# Matrix of coefficients\n", + "\n", + "b = matrix([[0],[0],[- 33.459781 ]]) ;\t\t\t# Matrix of constants\n", + "#a = a.I\n", + "#x = a*b ;\t\t\t# Matrix of solutions, P = x(1), F = x(2) ,ex = x(3)\n", + "\n", + "from numpy import *\n", + "x = linalg.solve(a,b)\n", + "\n", + "F = x[1] ;\t\t\t#exit stream of reactor 2 - [lb mol]\n", + "R2_SO2_in = R2_fSO2_in*F ;\t\t\t# Moles of SO2 required per lb mol of CO - [lb mol]\n", + "\n", + "CO = (R1_CO_in*SO2_in)/R2_SO2_in ;\t\t\t#Mole of CO burned in reactor 1 - [lb mol] \n", + "\n", + "# Results\n", + "print 'Mole of CO burned in reactor 1 is %.0f lb mol.'%CO\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mole of CO burned in reactor 1 is 2259 lb mol.\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 26.5 page no. 819\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Production of Citric Acid by Fungus\n", + "\n", + "# Solution \n", + "\n", + "# Variables\n", + "CA = 10000. ;\t\t\t# Produced citric acid - [kg]\n", + "f_glucose = .30 ;\t\t\t# Fraction of glucose in solution \n", + "con_glucose = .60 ;\t\t\t# Fraction of glucose consumed\n", + "w_glucose = 180.16 ;\t\t\t# Mol. wt. of d,alpha glucose -[g]\n", + "H_glucose = -1266 ;\t\t\t# Specific enthalpy change of glucose - [kJ/g mol]\n", + "w_CA = 192.12; \t\t\t# Mol. wt. of citric acid -[g]\n", + "H_CA = -1544.8 ;\t\t\t# Specific enthalpy change of citric acid - [kJ/g mol]\n", + "w_BM = 28.6 ;\t\t\t# Mol. wt. of biomass -[g]\n", + "H_BM = -91.4 ;\t\t\t# Specific enthalpy change of biomass - [kJ/g mol]\n", + "H_CO2 = -393.51 ;\t\t\t# Specific enthalpy change of CO2 - [kJ/g mol]\n", + "\n", + "# Calculations\n", + "mol_CA = CA/w_CA ;\t\t\t# Mole of citric acid produced - [kg mol]\n", + "g_soln = (mol_CA*(3/2.22)*w_glucose*1)/(con_glucose*f_glucose) ;\t\t\t#Mass of 30 % glucose solution introduced -[kg]\n", + "i_glucose = g_soln* f_glucose / w_glucose ;\t\t\t# Initial moles of glucose - [kg mol]\n", + "f_glucose = (1 - con_glucose)*i_glucose ;\t\t\t# Final moles of glucose - [kg mol]\n", + "f_CA = mol_CA ;\t\t\t# Final moles of citric acid - [kg mol]\n", + "f_BM = f_CA*(5.35/2.22) ;\t\t\t# Using the reaction (a)- Final moles of biomass - [kg mol]\n", + "i_O2 = i_glucose*(7.8/3) ;\t\t\t# Using the reaction (a)- Initial moles of O2 - [kg mol]\n", + "f_CO2 = i_glucose*(4.5/3)*con_glucose ;\t\t\t# Using the reaction (a) - Final moles of CO2 - [kg mol]\n", + "\n", + "power = 100 ;\t\t\t# Power of aerator -[hp]\n", + "time = 220 ;\t\t\t# Time taken for reaction - [ hr ]\n", + "W = (power*745.7*time*3600)/1000 ;\t\t\t# Work done by aerator - [kJ]\n", + "\n", + "Hi_glucose = i_glucose*H_glucose*1000 ;\t\t\t# Enthalpy change of glucose input - [kJ]\n", + "Hi_O2 = i_O2*0*1000 ;\t\t\t# Enthalpy change of O2 input - [kJ]\n", + "H_in = Hi_glucose + Hi_O2 ;\t\t\t# Enthalpy change of input - [kJ]\n", + "\n", + "Hf_glucose = f_glucose*H_glucose*1000 ;\t\t\t# Enthalpy change of glucose output - [kJ]\n", + "Hf_BM = f_BM * H_BM*1000 ;\t\t\t#Enthalpy change of biomass output - [kJ]\n", + "Hf_CA = f_CA *H_CA*1000 ;\t\t\t#Enthalpy change of citric acid output - [kJ]\n", + "Hf_CO2 = f_CO2 *H_CO2*1000 ;\t\t\t#Enthalpy change of CO2 output - [kJ]\n", + "H_out = Hf_glucose + Hf_BM +Hf_CA + Hf_CO2 ;\t\t\t# Enthalpy change of output - [kJ]\n", + "del_H = H_out - H_in ;\t\t\t# Total enthalpy change in process - [kJ]\n", + "Q = del_H - W ;\t\t\t# Heat removed - [kJ]\n", + "\n", + "# Results\n", + "print 'Heat exchange from the fermentor during production of 10,000 kg citric acid is %.2e kJ(minus sign indicates heat is removed).'%Q\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Heat exchange from the fermentor during production of 10,000 kg citric acid is -1.03e+08 kJ(minus sign indicates heat is removed).\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 4 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch27.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch27.ipynb new file mode 100644 index 00000000..0515e5c2 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch27.ipynb @@ -0,0 +1,339 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 27 : Ideal Processes Efficiency and the Mechanical Energy Balance" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 27.1 page no. 838\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the Work done during Evaporation of a Liquid\n", + "# Solution E27.1\n", + "\n", + "# Variables\n", + "V_w = 1. ;\t\t\t# Volume of given water -[L]\n", + "P_atm = 100. ;\t\t\t# Atmospheric pressure - [kPa]\n", + "\n", + "#W = -p*del_V\n", + "V_H2O = 0.001043 ;\t\t\t# Specific volume of water from steam table according to book- [cubic metre] \n", + "V_vap = 1.694 ;\t\t\t# Specific volume of vapour from steam table according to book- [cubic metre] \n", + "V1 = 0 ;\t\t\t# Initial volume of H2O in bag-[cubic metre]\n", + "\n", + "# Calculations\n", + "V2 = (V_w*V_vap)/(1000*V_H2O) ;\t\t\t# Final volume of water vapour -[cubic metre] \n", + "W = -P_atm*(V2 -V1)* 1000 ;\t\t\t# Work done by saturated liquid water -[J]\n", + " \n", + "# Results \n", + "print ' Work done by saturated liquid water is %.3e J.'%W\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Work done by saturated liquid water is -1.624e+05 J.\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 27.2 page no. 840\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of Work in a Batch Process\n", + "# Solution E27.2\n", + "\n", + "# Variables\n", + "m_N2 = 1. ;\t\t\t# Moles of N2 taken -[kg mol]\n", + "p = 1000.;\t\t\t# Pressure of cylinder-[kPa]\n", + "T = 20. + 273. ;\t\t\t# Temperature of cylinder -[K]\n", + "a_pis = 6. ;\t\t\t# Area of piston - [square centimetre]\n", + "m_pis = 2. ;\t\t\t# Mass of pston - [kg]\n", + "R = 8.31 ;\t\t\t# Ideal gas constant - [(kPa*cubic metre)/(K * kgmol)]\n", + "\n", + "# Calculations\n", + "V = (R*T)/p ;\t\t\t# Specific volue of gas at initial stage -[cubic metre/kg mol]\n", + "V1 = V * m_N2 ;\t\t\t# Initial volume of gas - [cubic metre]\n", + "V2 = 2.*V1 ;\t\t\t# Final volume of gas according to given condition -[cubic metre]\n", + "\n", + "# Assumed surrounding pressure constant = 1 atm\n", + "p_atm = 101.3 ;\t\t\t# Atmospheric pressure-[kPa]\n", + "del_Vsys = V2 -V1 ;\t\t\t# Change in volume of system -[cubic metre]\n", + "del_Vsurr = - del_Vsys ;\t\t\t# Change in volume of surrounding -[cubic metre]\n", + "W_surr = -p_atm*del_Vsurr ;\t\t\t# Work done by surrounding - [kJ]\n", + "W_sys = -W_surr ;\t\t\t# Work done by system - [kJ]\n", + "\n", + "# Results\n", + "print ' Work done by gas(actually gas + piston system) is %.0f kJ.'%W_sys\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Work done by gas(actually gas + piston system) is -247 kJ.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 27.3 page no. 845\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Efficiency of Power Generation by a Hydroelectric Plant\n", + "# Solution \n", + "\n", + "# Variables\n", + "p_plant = 20. ;\t\t\t# Power generated by plant-[MW]\n", + "h = 25. ;\t\t\t# Height of water level - [m]\n", + "V = 100. ;\t\t\t# Flow rate of water -[cubic metre/s]\n", + "d_water = 1000. ;\t\t\t# Density of water - [ 1000 kg / cubic metre]\n", + "g = 9.807 ;\t\t\t# Acceleration due to gravity-[m/square second]\n", + "\n", + "# Calculations\n", + "M_flow = V*d_water ;\t\t\t# Mass flow rate of water -[kg/s]\n", + "del_PE = M_flow*g*h ;\t\t\t# Potential energy change of water per second -[W]\n", + "eff = (p_plant*10**6) /(del_PE) ;\t\t\t# Efficiency of plant \n", + "\n", + "# Results\n", + "print ' Efficiency of plant is %.2f .'%eff\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Efficiency of plant is 0.82 .\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 27.4 page no. 845\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of Plant Efficiency\n", + "# Solution Fig.E27.4\n", + "\n", + "# Variables\n", + "LHV = 36654. ;\t\t\t# LHV value of fuel - [kJ/ cubic metre]\n", + "Q1 = 16. ;\t\t\t#- [kJ/ cubic metre]\n", + "Q2 = 0 ;\t\t\t#- [kJ/ cubic metre]\n", + "Q3 = 2432. ;\t\t\t#- [kJ/ cubic metre]\n", + "Q4 = 32114. ;\t\t\t#- [kJ/ cubic metre]\n", + "Q41 = 6988. ;\t\t\t#- [kJ/ cubic metre]\n", + "Q8 = 1948. ;\t\t\t#- [kJ/ cubic metre]\n", + "Q9 = 2643. ;\t\t\t#- [kJ/ cubic metre]\n", + "Q81 = 2352. - Q8 ;\t\t\t# - [kJ/ cubic metre]\n", + "Q567 = 9092. ;\t\t\t# Sum of Q5, Q6 and Q7- [kJ/ cubic metre]\n", + "\n", + "# Calculations and Results\n", + "#(a)\n", + "G_ef = (LHV+ Q1 +Q2 + Q3 - Q9)/(LHV) ;\t\t\t# Gross efficiency\n", + "print '(a) Gross efficiency is %.3f .'%G_ef\n", + "\n", + "#(b)\n", + "T_ef = (Q567+Q8)/(LHV+ Q1 +Q2 + Q3) ;\t\t\t#Thermal efficiency \n", + "print ' (b) Thermal efficiency is %.3f .'%T_ef\n", + "\n", + "#(c)\n", + "C_ef = Q4/(Q4 + Q41) ;\t\t\t# Combustion efficiency\n", + "print ' (c) Combustion efficiency is %.3f .'%C_ef\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Gross efficiency is 0.995 .\n", + " (b) Thermal efficiency is 0.282 .\n", + " (c) Combustion efficiency is 0.821 .\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 27.5 page no. 850" + ] + }, + { + "cell_type": "code", + "collapsed": true, + "input": [ + "# Comparison of the reversible work for a batch process with that of a flow process operating under the same conditions.\n", + "\n", + "from scipy.integrate import quad\n", + "\n", + "# Variables\n", + "V1 = 5. ;\t\t\t# Volume of gas initially - [cubic feet]\n", + "P1 = 1. ;\t\t\t# Initial pressure - [atm]\n", + "P2 = 10. ;\t\t\t# Final pressure - [atm]\n", + "T1 = 100. + 460 ;\t\t\t# initial temperature - [degree Rankine]\n", + "R = 0.7302 ;\t\t\t# Ideal gas constant -[(cubic feet*atm)/(lb mol)*(R)]\n", + "\t\t\t#Equation of state pV**1.4 = constant\n", + "\n", + "\n", + "# Calculations and Results\n", + "V2 = V1*(P1/P2)**(1/1.4) ;\t\t\t# Final volume - [cubic feet] \n", + "\n", + "def f(V):\n", + " return -(P1)*(V1/V)**(1.4)\n", + " \n", + "W1_rev = quad(f,V1,V2)[0] ;\t\t\t# Reversible work done in compresion in a horizontal cylinder with piston -[cubic feet *atm]\n", + "W1 = W1_rev *1.987/.7302 ;\t\t\t# Conversion to Btu -[Btu]\n", + "print '(a)Reversible work done in compression in a horizontal cylinder with piston is %.1f Btu . '%W1\n", + "\n", + "#(b)\n", + "n1 = (P1*V1)/(R*T1) ;\t\t\t# Number of moles of gas\n", + "\n", + "def f1(P):\n", + " return (V1)*(P1/P)**(1/1.4)\n", + "W2_rev = quad(f1,P1,P2)[0]\t\t# Reversible work done in compresion in a rotary compressor -[cubic feet *atm]\n", + "W2 = W2_rev *1.987/.7302 ;\t\t\t# Conversion to Btu -[Btu]\n", + "\n", + "print '(b)Reversible work done in a rotary compressor is %.1f Btu . '%W2\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a)Reversible work done in compression in a horizontal cylinder with piston is 31.7 Btu . \n", + "(b)Reversible work done in a rotary compressor is 44.3 Btu . \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 27.6 page no. 853" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of the mechanical energy balance to the pumping water\n", + "\n", + "from scipy.integrate import quad\n", + "# Variables\n", + "m_water = 1. ;\t\t\t# Mass flow rate of water -[lb/min]\n", + "P1 = 100. ;\t\t\t# Initial pressure - [psia]\n", + "P2 = 1000. ;\t\t\t# Final pressure - [psia]\n", + "T1 = 80. + 460 ;\t\t\t# initial temperature - [degree Rankine]\n", + "T2 = 100. + 460 ;\t\t\t# final temperature - [degree Rankine]\n", + "h = 10. ;\t\t\t# Difference in water level between entry and exit of stream-[ft]\n", + "g = 32.2 ;\t\t\t# Accleration due to gravity - [ft/ square second]\n", + "gc = 32.2 ;\t\t\t#[(ft*lbm)/(lbf*square second)]\n", + "\n", + "v1 = .01607 ;\t\t\t# specific volume of liquid water at 80 degree F -[cubic feet/lbm]\n", + "v2 = .01613 ;\t\t\t# specific volume of liquid water at 100 degree F -[cubic feet/lbm] \n", + "v= 0.0161 ;\t\t\t# -[cubic feet/lbm]\n", + "\n", + "# Calculations\n", + "del_PE = (h*g)/(gc*778) ;\t\t\t# Change in potential energy - [Btu/lbm]\n", + "\n", + "def f(P):\n", + " return (v)*(12**2/778.)\n", + " \n", + "PV_work = quad(f,P1,P2)[0]\t\t\t# PV work done -[Btu/lbm]\n", + "#From eqn. (A)\n", + "W = PV_work + del_PE ;\t\t\t# Work per minute required to pump 1 lb water per minute - [Btu/lbm]\n", + "\n", + "# Results\n", + "print ' Work per minute required to pump 1 lb water per minute is %.2f Btu/lbm . '%W\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Work per minute required to pump 1 lb water per minute is 2.69 Btu/lbm . \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 2 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch28.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch28.ipynb new file mode 100644 index 00000000..6a34dc72 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch28.ipynb @@ -0,0 +1,223 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 28 : Heats of Solution and Mixing" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 28.1 page no. 869\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of Heats of Solution data\n", + "\n", + "# Solution \n", + "# Variables\n", + "Ref_T = 77. ;\t\t\t#Reference temperature-[degree F]\n", + "\n", + "#(a)\n", + "mol_NH3 = 1. ;\t\t\t# Moles of NH3 - [lb mol]\n", + "mw_NH3 = 17. ;\t\t\t#Molecular t. of NH3 -[lb]\n", + "mw_H2O = 18. ;\t\t\t#Molecular t. of H2O -[lb]\n", + "\n", + "# Calculations and Results\n", + "f1_NH3 = 3./100 ;\t\t\t# Fraction of NH3 in solution \n", + "m_H2O = (mw_NH3/f1_NH3) - mw_NH3 ;\t\t\t# Mass of water in solution -[lb]\n", + "mol_H2O = m_H2O/mw_H2O ;\t\t\t# Moles of H2O in solution -[lb mol]\n", + "\n", + "print '(a) Moles of H2O in solution is %.1f lb mol . '%mol_H2O\n", + "print ' As we can see that moles of water is 30 lb mol(approx), hence we will see H_soln from table corresponding to 30 lb mol water . '\n", + "H_soln = -14800. ;\t\t\t# From table given in question in book -[Btu/lb mol NH3]\n", + "print ' The amount of cooling needed is, %.0f Btu heat removed. '%(abs(H_soln))\n", + "\n", + "#(b)\n", + "V = 100. ;\t\t\t# Volume of solution produced -[gal]\n", + "f2_NH3 = 32./100 ;\t\t\t# Fraction of NH3 in solution \n", + "sg_NH3 = .889 ;\t\t\t# Specific gravity of NH3 \n", + "sg_H2O = 1.003 ;\t\t\t# Specific gravity of H2O\n", + "d_soln = sg_NH3*62.4*sg_H2O*100/7.48 ;\t\t\t# Density of solution - [lb / 100 gal]\n", + "NH3 = d_soln*f2_NH3/mw_NH3 ;\t\t\t# Mass of NH3 - [ lb mol/ 100 gal]\n", + "m1_H2O = (mw_NH3/f2_NH3) - mw_NH3 ;\t\t\t# Mass of water in solution -[lb]\n", + "mol1_H2O = m1_H2O/mw_H2O ;\t\t\t# Moles of H2O in solution -[lb mol]\n", + "\n", + "print ' (b) Moles of H2O in solution is %.1f lb mol . '%mol1_H2O\n", + "print ' As we can see that moles of water is 2 lb mol , hence we will see H_soln from table corresponding to 2 lb mol water . '\n", + "H_soln = -13700 ;\t\t\t# From table given in question in book -[Btu/lb mol NH3]\n", + "total_H = abs(NH3*H_soln) ;\t\t\t# Total heat removed from solution -[Btu]\n", + "print ' The amount of cooling needed is, %.0f Btu heat removed. '%total_H\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Moles of H2O in solution is 30.5 lb mol . \n", + " As we can see that moles of water is 30 lb mol(approx), hence we will see H_soln from table corresponding to 30 lb mol water . \n", + " The amount of cooling needed is, 14800 Btu heat removed. \n", + " (b) Moles of H2O in solution is 2.0 lb mol . \n", + " As we can see that moles of water is 2 lb mol , hence we will see H_soln from table corresponding to 2 lb mol water . \n", + " The amount of cooling needed is, 191826 Btu heat removed. \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 28.2 page no. 872" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of the heat of solution data\n", + "\n", + "from scipy.integrate import quad\n", + "# Variables\n", + "p = 100. ;\t\t\t# Mass of product - [kg]\n", + "f_HCl = 25./100 ;\t\t\t#Fraction of HCl in product \n", + "HCl = f_HCl*p ;\t\t\t# Mass of HCl in product - [kg]\n", + "H2O = (1.-f_HCl)*p ;\t\t\t# Mass of H2O in product -[kg]\n", + "mw_HCl = 36.37 ;\t\t\t# Molecular weight of HCl -[kg]\n", + "mw_H2O = 18.02 ;\t\t\t# Molecular weight of H2O -[kg]\n", + "\n", + "# Calculations\n", + "mol_HCl = HCl /mw_HCl ;\t\t\t# Moles of HCl - [kg mol]\n", + "mol_H2O = H2O /mw_H2O; \t\t\t# Moles of H2O - [kg mol]\n", + "total_mol = mol_HCl + mol_H2O ;\t\t\t# Total no. of moles -[kg mol]\n", + "mf_HCl = mol_HCl / total_mol ;\t\t\t# mole fraction of HCl \n", + "mf_H2O = mol_H2O / total_mol ; \t\t\t# mole fraction of H2O\n", + "mr = mol_H2O/mol_HCl ;\t\t\t# Mole ratio of H2O to HCl \n", + "MW = mf_HCl*mw_HCl + mf_H2O*mw_H2O ;\t\t\t# Molecular t. of solution-[kg]\n", + "Ref_T = 25. ;\t\t\t#Reference temperature-[degree C]\n", + "\n", + "mol1_HCl = total_mol ;\t\t\t# Moles of HCl \t\t\t# Moles of HCl output -[g mol]\n", + "Hf1_HCl = -157753. ;\t\t\t# Heat of formation of HCl output-[J/ g mol HCl ]\n", + "Hf_HCl = -92311. ;\t\t\t# Heat of formation of HCl input-[J/ g mol HCl ]\n", + "Hf_H2O = 0 ;\t\t\t# Heat of formation of H2O input-[J/ g mol HCl ]\n", + "H1_HCl = 556. ;\t\t\t# Change in enthalpy during temperature change from 25 C to 35 C of HCl - [J/g mol] \n", + "\n", + "def f(T):\n", + " return (29.13 - 0.134*.01*T)\n", + "\n", + "H_HCl = quad(f,298,393)[0]\t# Change in enthalpy during temperature change from 25 C to 120 C of HCl - [J/g mol] \n", + "\n", + "H_H2O = 0 ;\t\t\t# Change in enthalpy during temperature change from 25 C to 25 C of H2O - [J/g mol] \n", + "\n", + "H_in = (Hf_HCl + H_HCl)*mol_HCl + (Hf_H2O + H_H2O)*mol_H2O ;\t\t\t# Enthalpy change of input -[J]\n", + "H_out = Hf1_HCl*mol_HCl +H1_HCl*mol1_HCl ;\t\t\t# Enthalpy change of output -[J]\n", + "\n", + "del_H = H_out - H_in ;\t\t\t# Net enthalpy change n process - [J]\n", + "Q = del_H; \t\t\t# By energy balance - [J]\n", + "\n", + "# Results\n", + "print 'The amount of heat removed from the absorber by cooling water is, %.0f J. '%Q\n", + "print 'It Seems answer is wrong in book'\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The amount of heat removed from the absorber by cooling water is, -44159 J. \n", + "It Seems answer is wrong in book\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 28.3 page no. 875\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of an Enthalpy Concentration Chart\n", + "\n", + "# Solution fig. 28.3\n", + "\n", + "# Variables\n", + "soln1 = 600. ; \t\t\t# Mass flow rate of entering solution 1 -[lb/hr]\n", + "c1_NaOH = 10./100 ;\t\t\t# Fraction of NaOH in entering solution 1\n", + "T1 = 200. ;\t\t\t# Temperature at entry \n", + "soln2 = 400. ;\t\t\t# Mass flow rate of another solution 2 entering -[lb/hr]\n", + "c2_NaOH = 50./100 ;\t\t\t# Fraction of NaOH in another entering solution 2\n", + "\n", + "# Calculations\n", + "F = soln1 + soln2; \t\t\t# Mass flow rate of final solution - [lb/hr]\n", + "F_NaOH = c1_NaOH * soln1 + c2_NaOH * soln2 ;\t\t\t# Mass of NaOH in final solution-[lb]\n", + "F_H2O = F - F_NaOH ;\t\t\t# Mass of H2O in final solution-[lb]\n", + "H_soln1 = 152. ;\t\t\t# Specific enthalpy change for solution 1-[Btu/lb]\n", + "H_soln2 = 290. ;\t\t\t# Specific enthalpy change for solution 2-[Btu/lb]\n", + "H_F = (soln1*H_soln1 + soln2*H_soln2)/F ;\t\t\t# Specific enthalpy change for final solution -[Btu/lb]\n", + "\n", + "# Results\n", + "print ' (a) The final temperature of the exit solution from figure E28.3 using the obtained condition of final solution is 232 degree F '\n", + "\n", + "cF = F_NaOH*100/F; \t\t\t# Concentration of final solution -[wt % NaOH ]\n", + "print ' (b) The concentration of final solution is %.0f wt.%% NaOH . '%cF\n", + "\n", + "x = (F*H_F - F*175)/(1158.0 - 175) ;\t\t\t# H2O evaporated per hour -[lb]\n", + "print ' (c) H2O evaporated per hour is %.1f lb . '%x\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " (a) The final temperature of the exit solution from figure E28.3 using the obtained condition of final solution is 232 degree F \n", + " (b) The concentration of final solution is 26 wt.% NaOH . \n", + " (c) H2O evaporated per hour is 32.8 lb . \n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 3 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch29.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch29.ipynb new file mode 100644 index 00000000..db601ca5 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch29.ipynb @@ -0,0 +1,290 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 29 : Humidity Charts and their Uses" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 29.1 page no. 895\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# determining properties of moist air from the humidity chart\n", + "\n", + "# Variables\n", + "DBT = 90. ;\t\t\t# Dry bulb temperature - [degree F]\n", + "WBT = 70. ;\t\t\t# Wet bulb temperature - [degree F]\n", + "\n", + "#Get point A using DBT & WBT. Following information is obtained from humidity chart, fig. E29.1\n", + "# Results\n", + "print '(a) The Dew point is located at point B or about 60 degree F, using constant humidity line.'\n", + "print ' (b) By interpolation between 40%% and 30%% RH , you can find point A is at 37%% relative humidity .'\n", + "print ' (c) You can read humidity from the righthand ordinate as 0.0112 lb H2O/lb dry air .'\n", + "print ' (d) By interpolation again between 14.0 cubic feet/lb and 14.5 cubic feet/lb lines , you can find humid volume to be 14.1 cubic feet/lb dry air.'\n", + "print ' (e) The enthalpy value of saturated air with WBT 70 degree F is 34.1 Btu/lb dry air .'\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) The Dew point is located at point B or about 60 degree F, using constant humidity line.\n", + " (b) By interpolation between 40%% and 30%% RH , you can find point A is at 37%% relative humidity .\n", + " (c) You can read humidity from the righthand ordinate as 0.0112 lb H2O/lb dry air .\n", + " (d) By interpolation again between 14.0 cubic feet/lb and 14.5 cubic feet/lb lines , you can find humid volume to be 14.1 cubic feet/lb dry air.\n", + " (e) The enthalpy value of saturated air with WBT 70 degree F is 34.1 Btu/lb dry air .\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 29.2 page no. 897\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Heating at constant Humidity\n", + "\n", + "# Solution fig. E29.2\n", + "\n", + "# Variables\n", + "DBT1 = 38 ;\t\t\t# Initial dry bulb temperature - [degree C]\n", + "DBT2 = 86 ;\t\t\t# Final dry bulb temperature - [degree C]\n", + "RH1 = 49 ;\t\t\t# Relative humidity - [%]\n", + "\n", + "#A is initial and B is final point , see fig. E29.2 . Dew point is obtained graphically and it is 24.8 degree C,therefore\n", + "print 'The Dew point is unchanged in the process because humidity is unchanged, and it is located at 24.8 degree C.'\n", + "\n", + "# Calculations\n", + "# Additional data is obtained from humidity chart , according to book data is as follows\n", + "A_Hsat = 90.0 ;\t\t\t# Enthalpy of saturation at point A- [kJ/kg]\n", + "A_dH = -0.5 ;\t\t\t#Enthalpy deviation-[kJ/kg]\n", + "A_Hact = A_Hsat + A_dH ;\t\t\t# Actual enthalpy at point A -[kJ/kg]\n", + "B_Hsat = 143.3 ;\t\t\t# Enthalpy of saturation at point B- [kJ/kg]\n", + "B_dH = -3.3 ;\t\t\t#Enthalpy deviation -[kJ/kg]\n", + "B_Hact = B_Hsat + B_dH ;\t\t\t# Actual enthalpy at point B -[kJ/kg]\n", + "\n", + "\t\t\t# Energy balance reduces to Q = del_H \n", + "del_H = B_Hact - A_Hact ;\t\t\t# Total change in enthalpy - [kJ/kg]\n", + "v = 0.91 ;\t\t\t# Specific volume of moist air at point A -[cubic metre / kg]\n", + "Q = del_H/v ;\t\t\t# Heat added per cubic metre of inital moist air -[kJ]\n", + "\n", + "# Results\n", + "print ' Heat added per cubic metre of inital moist air is %.1f kJ.'%Q\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The Dew point is unchanged in the process because humidity is unchanged, and it is located at 24.8 degree C.\n", + " Heat added per cubic metre of inital moist air is 55.5 kJ.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 29.3 page no. 898\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Cooling and Humidification using a Water Spray\n", + "\n", + "# Solution fig. E29.3b\n", + "\n", + "# Variables\n", + "DBT1 = 40 ;\t\t\t# Initial dry bulb temperature - [degree C]\n", + "DBT2 = 27 ;\t\t\t# Final dry bulb temperature - [degree C]\n", + "\n", + "# Process is assumed to be adiabatic, therefore wet bulb temperature is constant\n", + "WBT1 = 22 ;\t\t\t# Initial wet bulb temperature - [degree C]\n", + "WBT2 = WBT1 ;\t\t\t# Final wet bulb temperature - [degree C]\n", + "\n", + "# Calculations\n", + "#A is initial and B is final point , see fig. E29.3b . Humidity is obtained from humidity chart, according to book the respective humidities are as follows\n", + "H_B = 0.0145 ;\t\t\t# Humidity at point B -[kg H2O/kg dry air]\n", + "H_A = 0.0093 ;\t\t\t# Humidity at point A -[kg H2O/kg dry air]\n", + "Diff = H_B - H_A ;\t\t\t# Moisture added in kg per kilogram of dry air going through humidifier -[kg H2O/kg dry air] \n", + "\n", + "# Results\n", + "print 'Moisture added per kilogram of dry air going through humidifier is %.4f kg H2O.'%Diff\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Moisture added per kilogram of dry air going through humidifier is 0.0052 kg H2O.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 29.4 page no. 900\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Combined Material and Energy Balance for a Cooling Tower\n", + "\n", + "# Solution fig. E29.4\n", + "\n", + "# Variables\n", + "c_bl = 8.30 * 10**6 ;\t\t\t# Capacity of blower - [cubic feet/hr]\n", + "DBT_A = 80 ;\t\t\t# Initial dry bulb temperature of moist air - [degree F]\n", + "DBT_B = 95 ;\t\t\t# Final dry bulb temperature of exit air - [degree F]\n", + "WBT_A = 65 ;\t\t\t# Initial wet bulb temperature of moist air - [degree F]\n", + "WBT_B = 90 ;\t\t\t# Final wet bulb temperature of exit air - [degree F]\n", + "T1_H2O = 120 ;\t\t\t# Initial temperature of water - [degree F]\n", + "T2_H2O = 90 ;\t\t\t# Final temperature of water - [degree F]\n", + "\n", + "#A is initial and B is final point , see fig. E29.4 . Humidity is obtained from humidity chart, according to book the respective humidities are as follows\n", + "H_A = 0.0098; \t\t\t# Humidity of air at A - [lb H2O / lb dry air]\n", + "H1_A = 69 ;\t\t\t# Humidity of air at A - [grains H2O / lb dry air]\n", + "\n", + "# Calculations\n", + "delH_A = 30.05 - 0.12; \t\t\t# Enthalpy of entering air -[Btu/lb dry air]\n", + "v_A = 13.82 ;\t\t\t# Specific volume of entering air -[cubic feet/lb dry air]\n", + "H_B = 0.0297;\t\t\t# Humidity of air at B - [lb H2O / lb dry air]\n", + "H1_B = 208 ;\t\t\t# Humidity of air at B - [grains H2O / lb dry air]\n", + "delH_B = 55.93 - 0.10 ;\t\t\t# Enthalpy of exit air -[Btu/lb dry air]\n", + "v_B = 14.65 ;\t\t\t# Specific volume of exit air -[cubic feet/lb dry air]\n", + "Eq_A = c_bl /v_A ;\t\t\t# Entering dry air equivalent of capacity of blower -[lb dry air]\n", + "\n", + "# Reference temperature for water stream is 32 degree F \n", + "del_H1_H2O = 1*(T1_H2O - 32) ;\t\t\t#Enthalpy of entering water -[Btu/lb H2O]\n", + "del_H2_H2O = 1*(T2_H2O - 32) ;\t\t\t#Enthalpy of exit water -[Btu/lb H2O]\n", + "tr_H2O = H_B - H_A ;\t\t\t# Transfer of water to air -[lb H2O / lb dry air] \n", + "\n", + "# Energy balance around the entire process yields W -\n", + "W = (delH_B - del_H2_H2O*tr_H2O - delH_A)/(del_H1_H2O - del_H2_H2O) ;\t\t\t# Water entering tower - [lb H2O/lb dry air]\n", + "W1 = W - tr_H2O ;\t\t\t# Water leaving tower -[lb H2O/lb dry air]\n", + "Total_W1 = W1* Eq_A ;\t\t\t# Total water leaving tower -[lb/hr]\n", + "\n", + "# Results\n", + "print 'Amount of water cooled per hour is %.2e lb/hr .'%Total_W1\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Amount of water cooled per hour is 4.83e+05 lb/hr .\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 29.5 page no. 902\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Drying of Chlorella\n", + "\n", + "# Solution fig. E29.5\n", + "\n", + "# Variables\n", + "W = 100 ;\t\t\t# Amount of entering water -[lb/hr]\n", + "H1 = .020 ;\t\t\t# Humidity of entering air -[lb H2O / lb dry air]\n", + "T1 = 155 ;\t\t\t#Temperature of entering air -[degree F]\n", + "DTB = 110 ;\t\t\t# Dry bulb temperature of exit air -[degree F]\n", + "WTB = 100 ;\t\t\t# Wet bulb temperature of exit air -[degree F]\n", + "\n", + "# Additional data is obtained from humidity chart, it is as follows\n", + "H2 = .0405 ;\t\t\t#Humidity of exit air -[lb H2O / lb dry air]\n", + "\n", + "# Calculations\n", + "del_H = H2 - H1 ;\t\t\t# Change in humidity betwween two states -[lb H2O / lb dry air]\n", + "air_in = (W*1.02)/(del_H * 1) ;\t\t\t# Amount of wet air entering -[lb]\n", + "\n", + "mol_air = 29. ;\t\t\t# Molecular wt. of air -[lb]\n", + "Ref_T = 32 + 460. ;\t\t\t# Reference temperature - [ degree R]\n", + "gi_T = 90 + 460.; \t\t\t# Given temperature on which calculation is based - [degree R] \n", + "air = (air_in *359*gi_T)/( mol_air*Ref_T) ;\t\t\t# Air consumption of dryer at 90 degree F and 1 atm -[cubic feet]\n", + "\n", + "# Results\n", + "print 'Air consumption of dryer at 90 degree F and 1 atm is %.2e cubic feet .'%air\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Air consumption of dryer at 90 degree F and 1 atm is 6.89e+04 cubic feet .\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 5 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch3.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch3.ipynb new file mode 100644 index 00000000..af8703d1 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch3.ipynb @@ -0,0 +1,334 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 3 : The balance equation and mass balance" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 3.4 page no : 88\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Calculate vol. flow rate, mass flow rate and average vel of gasoline through pipe\n", + "import math\n", + "\n", + "# variables\n", + "V=15.; #gal volume of gasoline\n", + "t=2.; #min\n", + "rho_water=62.3; #lbm/ft^3\n", + "sg=0.72; #specific gravity\n", + "\n", + "# calculation and Result\n", + "q=(15/2.0)*(0.1336/60) #ft^3/s vol. flow rate\n", + "print \"volumetric flow rate is %f ft^3/s\"%q\n", + "m=q*sg*rho_water #lbm/s\n", + "print \"Mass flow rate is %f lbm/s\"%m\n", + "d=1.; #in diameter of pipe\n", + "a=((math.pi)*d**2/4.0)/144.0; #ft^2 area of pipe\n", + "v_avg=q/a #ft/s\n", + "print \"The average velocity is %f ft/s\"%v_avg" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "volumetric flow rate is 0.016700 ft^3/s\n", + "Mass flow rate is 0.749095 lbm/s\n", + "The average velocity is 3.061886 ft/s\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.5 page no : 90\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calculate velocity and mass flow rate of natural in a pipe\n", + "import math\n", + "\n", + "# variables\n", + "d1=2.; #ft diameter of pipe at position 1\n", + "a1=(math.pi)/4*d1**2; #ft^2\n", + "v1=50.; #ft/s vel of gas at position 1\n", + "rho1=2.58; #lbm/ft^3 density of gas at position 1\n", + "d2=3.; #ft diameter of pipe at position 2\n", + "\n", + "# calculation\n", + "a2=(math.pi)/4*d2**2;\n", + "rho2=1.54; #lbm/ft^3 density at position 2\n", + "v2=(rho1/rho2)*(a1/a2)*v1 #ft/s\n", + "\n", + "# result\n", + "print \"Velocity is %f ft/s\"%v2\n", + "m=rho1*v1*a1 #lbm/s mass flow rate\n", + "print \"The mass flow rate is %f lbm/s\"%m" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Velocity is 37.229437 ft/s\n", + "The mass flow rate is 405.265452 lbm/s\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.6 page no : 91\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calculate the mass flow rate, volumetric flow rate and velocity of waterin a pipe\n", + "import math\n", + "\n", + "# variables\n", + "d1=0.25; #m diameter of pipe at position 1\n", + "v1=2.; #m/s velocity\n", + "rho=998.2; #kg/m^3 density of water\n", + "a1=(math.pi)/4*d1**2; #m^2\n", + "d2=0.125 #m diameter of pipe at position 2\n", + "\n", + "# calculation\n", + "a2=(math.pi)/4*d2**2; #m^2\n", + "m=rho*a1*v1 #kg/s mass flow rate\n", + "\n", + "# result\n", + "print \"Mass flow rate is %f kg/s\"%m\n", + "q=m/rho #m^3/s volumetric flow rate\n", + "print \"The volumetric flow rate is %f m^3/s\"%q\n", + "v2=(a1/a2)*v1 #m/s velocity\n", + "print \"Velocity of water is %f m/s\"%v2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mass flow rate is 97.998056 kg/s\n", + "The volumetric flow rate is 0.098175 m^3/s\n", + "Velocity of water is 8.000000 m/s\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.7 page no : 92\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calulate the time required\n", + "import math\n", + "\n", + "# variables\n", + "p_initial=1.; #atm pressure initially\n", + "p_final=0.0001; #atm pressure finally\n", + "V=10.; #ft^3 volume of system\n", + "q=1.; #ft^3/min vol. flow rate\n", + "\n", + "# calculation\n", + "t=(V/q)*math.log(p_initial/p_final) #min\n", + "\n", + "# result\n", + "print \"The time required is %f min\"%t" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The time required is 92.103404 min\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.8 page no : 93\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calculate the final or steady state pressure in tank\n", + "\n", + "# variables\n", + "m_in=0.0001; #lbm/min\n", + "q_out=1.; #ft^3/min\n", + "rho_sys=m_in/q_out #lbm/ft^3\n", + "rho_air=0.075; #lbm/ft^3\n", + "p_initial=1.; #atm\n", + "\n", + "# calculation\n", + "p_steady=p_initial*(rho_sys/rho_air) #atm\n", + "\n", + "# result\n", + "print \"The steady state pressure is %f atm\"%p_steady" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The steady state pressure is 0.001333 atm\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.9 page no : 94\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calculate how fast the level of water is rising or falling in a cylindrical tank\n", + "import math\n", + "\n", + "# variables\n", + "d=3.; #m diameter of tank\n", + "a=(math.pi)*d**2/4; #m^2\n", + "d_in=0.1; #m inner diameter of inflow pipe\n", + "d_out=0.2; #m\n", + "v_in=2.0; #m/s\n", + "v_out=1.0; #m/s\n", + "\n", + "# calculation\n", + "q_in=((math.pi)*d_in**2/4.0)*v_in; #m^3/s\n", + "q_out=((math.pi)*d_out**2/4.0)*v_out; #m^3/s\n", + "\n", + "#let D represent d/dt\n", + "DV=q_in-q_out; #m^3/s\n", + "\n", + "# result\n", + "if DV>1:\n", + " print \"The water level in tank is rising\"\n", + "elif DV<1:\n", + " print \"The water level in tank is falling\"\n", + "else:\n", + " print \"No accumulation\"\n", + "#let h be the height of water in tank\n", + "Dh=DV/a #m/s \n", + "print \"The rate of level of water is rising or falling in a cylindrical tank is %f m/s\"%Dh" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The water level in tank is falling\n", + "The rate of level of water is rising or falling in a cylindrical tank is -0.002222 m/s\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.11 page no : 97\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#calculate flow rate of ventilation air supply\n", + "\n", + "# variables\n", + "q=5/8.0; #kg/hr mass evaporation rate of benzene\n", + "c=1.3*10**(-6); #kg/m^3 concentration of benzene\n", + "\n", + "# calculation\n", + "Q=q/c/3600.0 #m^3/s\n", + "\n", + "# result\n", + "print \"The flow rate of ventilation air supply is %f m^3/s\"%Q" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The flow rate of ventilation air supply is 133.547009 m^3/s\n" + ] + } + ], + "prompt_number": 8 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch4.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch4.ipynb new file mode 100644 index 00000000..392607c8 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch4.ipynb @@ -0,0 +1,117 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 4 : Temperature" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "\n", + "Example 4.1 Page no. 92\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Temperature Conversion\n", + "# Solution\n", + "\n", + "# Variable\n", + "#(a)\n", + "Temp_c=100. ; #[degree Celsius]\n", + "\n", + "# Calculation and Result\n", + "Temp_k=Temp_c+273 ; #[K]\n", + "print '(a) Temperature in kelvin is %.2f K'%Temp_k\n", + "\n", + "#(b)\n", + "Temp_f=(100*(1.8/1)) +32 ; #[degree Fahrenheit]\n", + "print ' (b) Temperature in degree Fahrenheit is %.2f '%Temp_f\n", + "\n", + "#(c)\n", + "Temp_r= Temp_f + 460 ; #[degree Rankine ]\n", + "print ' (c) Temperature in degree Rankine is %.2f '%Temp_r" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Temperature in kelvin is 373.00 K\n", + " (b) Temperature in degree Fahrenheit is 212.00 \n", + " (c) Temperature in degree Rankine is 672.00 \n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 4.2 Page no. 93\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Temperature Conversion\n", + "# Solution\n", + "\n", + "# Variables\n", + "c = 139.1 + (1.56*10**-1)*(-460-32)/1.8 ;\n", + "d = (1.56*10**-1)/1.8;\n", + "\n", + "# Calculation\n", + "#Now convert c +dTR to (Btu/lb mol*degree R) to get answer of form a + bTR,where\n", + "a = c*(454/(1055*1.8)) ;\n", + "b = d*(454/(1055*1.8)) ;\n", + "\n", + "# Result\n", + "print 'The required answer is %.2f + (%.2e)T Btu/(lb mol*degree R) , where T is in degree R . '%(a,b)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The required answer is 23.06 + (2.07e-02)T Btu/(lb mol*degree R) , where T is in degree R . " + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch5.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch5.ipynb new file mode 100644 index 00000000..5023ef53 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch5.ipynb @@ -0,0 +1,239 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Chapter 5 : Pressure" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.1 Page no.109\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Pressure Conversion\n", + "# Solution\n", + "\n", + "# Variables\n", + "P = 60 ; #[Gpa]\n", + "\n", + "# Calculation and Results\n", + "#(a)\n", + "p_atm = (P*(10**6))/101.3 ; #[atm]\n", + "print '(a) Pressure in atmospheres is %.2e atm'%p_atm\n", + "\n", + "#(b)\n", + "p_s = (P*(10**6)*14.696)/101.3 ; #[psia]\n", + "print ' (b) Pressure in psia is %.2e psia'%p_s\n", + "\n", + "# (c)\n", + "p_in = (P*(10**6)*29.92)/101.3 ; #[inches of Hg]\n", + "print ' (c) Pressure in inches of Hg is %.2e in. Hg'%p_in\n", + "\n", + "# (d)\n", + "p_mm = (P*(10**6)*760)/101.3 ; #[mm of Hg]\n", + "print ' (d) Pressure in mm of Hg is %.2e mm Hg'%p_mm" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Pressure in atmospheres is 5.92e+05 atm\n", + " (b) Pressure in psia is 8.70e+06 psia\n", + " (c) Pressure in inches of Hg is 1.77e+07 in. Hg\n", + " (d) Pressure in mm of Hg is 4.50e+08 mm Hg" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 5.2 Page no. 110\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Pressure Conversion\n", + "# Solution\n", + "\n", + "# Variable\n", + "b_rd = 28.0 ; #[in. Hg]\n", + "p_rd = 51.0 ; #[psia]\n", + "\n", + "# calculation\n", + "p_atm = b_rd*14.7/29.92 ; # [psia]\n", + "p_tnk = p_atm+p_rd ; #[psia]\n", + "\n", + "# Result\n", + "print ' Pressure in tank in psia is %.1f psia'%p_tnk" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Pressure in tank in psia is 64.8 psia\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 5.3 Page no. 111\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Vacuum Pressure Reading\n", + "# Solution\n", + "\n", + "# Variables\n", + "b_rd = 100.0 ; #[kPa]\n", + "gp = 64.5*101.3/76.0 ; #[kPa]\n", + "\n", + "# Calculations\n", + "p_tnk = b_rd-gp ; #[kPa]\n", + "\n", + "# Results\n", + "print ' Absolute Pressure in tank in is %.1f kPa'%p_tnk\n", + "print ' Since absolute pressure in tank(%.1f kPa) is less than 20 kPa , the \\\n", + " mice probably will not survive. '%p_tnk" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Absolute Pressure in tank in is 14.0 kPa\n", + " Since absolute pressure in tank(14.0 kPa) is less than 20 kPa , the mice probably will not survive. \n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 5.4 Page no. 115\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of Pressure Difference\n", + "# Solution\n", + "\n", + "# Variables\n", + "df = 1.10*10**3 ; #[kg/m**3]\n", + "d = 1.0*10**3 ; #[kg/m**3]\n", + "g = 9.8 ; #[m/s**2]\n", + "h = 22.0 ; #[mm]\n", + "\n", + "# Calculation\n", + "dP = (df-d)*g*(h*10**(-3)) ; #[Pa]\n", + "\n", + "# Result\n", + "print 'Pressure difference across the orifice plate is %.1f Pa.'%dP" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pressure difference across the orifice plate is 21.6 Pa.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 5.5 Page no. 117\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Pressure Conversion\n", + "# Solution\n", + "\n", + "# Variables\n", + "p_atm=730.0*29.92/760.0 ; #[in. Hg]\n", + "gp= (4.0*29.92)/(2.54*12*33.91) ; #[in. Hg]\n", + "\n", + "# Calculation\n", + "p_air=p_atm-gp ; #[in. Hg]\n", + "\n", + "# Result\n", + "print ' Pressure of the air is %.1f in. Hg.'%p_air" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Pressure of the air is 28.6 in. Hg.\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch6.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch6.ipynb new file mode 100644 index 00000000..5ffa4f19 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch6.ipynb @@ -0,0 +1,170 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 6 : Introduction to Material Balances" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.1 Page no. 142\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# A Material Balance for the blending of Gasoline\n", + "# Solution\n", + "from numpy import matrix\n", + "\n", + "# Variables\n", + "# Given\n", + "P_O = 89 ; # Premium octane -[octane/gal]\n", + "S_O = 93 ; # Supereme octane - [octane/gal]\n", + "R_O = 87 ; # Regular octane - [octane/gal]\n", + "CP = 1.269 ; # Cost of premium octane -[$/gal]\n", + "SP = 1.349 ; # Cost of supereme octane -[$/gal]\n", + "RP = 1.149 ; # Cost of regular octane -[$/gal]\n", + "\n", + "# Let x and y fraction of regular octane and supreme octane is blended respectively,therefore: x + y = 1 ...(a)\n", + "# and 89 = 87x + 93y ...(b)\n", + "# Solve equations (a) and (b) simultaneously\n", + "# Calculation\n", + "a = matrix([[1,1],[87,93]]) ; # Matrix of coefficients of unknown\n", + "b = matrix([[1.0],[89.0]]) ; # Matrix of constant\n", + "a = a.I\n", + "c = a * b\n", + "cost = c[0]*RP + c[1]*SP ; # Cost after blending - [$/gal]\n", + "sv = CP - cost ; # Save on blending - [$/gal]\n", + "\n", + "# Result\n", + "# Check whether there is loss or save\n", + "if (sv<0):\n", + " print 'We will not save money by blending.'\n", + "else:\n", + " print 'We will save money by blending, and save is %.3f $/gal.'%sv" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "We will save money by blending, and save is 0.053 $/gal.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 6.2 Page no. 147\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Concentration of cells using a Centrifuge\n", + "# Solution\n", + "\n", + "# Variables\n", + "fd= 1000.0 ; #feed rate-[L/hr]\n", + "cfd= 500.0; #Weight of cells per litre- [mg/L]\n", + "dn= 1.0 ; #Density of feed-[g/cm**3]\n", + "wp= 50.0 ; # Weight percent of cells in product stream\n", + "\n", + "# Calculation and Result\n", + "Pg=(fd*cfd*dn)/(1000*wp*.01) ; # Mass balance for cells \n", + "print ' Product flow(P) per hour is %.1f g'%Pg\n", + "Dg= (fd*dn*1000) - Pg*(wp*.01) ; # Mass balance for the fluid\n", + "print ' Discharge flow per hour is %.3e g'%Dg" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Product flow(P) per hour is 1000.0 g\n", + " Discharge flow per hour is 9.995e+05 g\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.3 Page no. 154\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Discharge of Tank Residuals to the Environment\n", + "# Solution\n", + "\n", + "# Variables\n", + "dn = 0.80 ; #Density of motor oil-[g/cm**3]\n", + "\n", + "# Calculation and Result\n", + "in_ms = (10000*(0.1337)*62.4*dn) ; # Initial mass of motor oil in the tank -[lb]\n", + "print ' Initial mass of motor oil in the tank is %.1f lb'%in_ms\n", + "\n", + "m_fr = .0015 ; #Mass fractional loss\n", + "print ' Mass fractional loss is %.4f '%m_fr\n", + "\n", + "Dsg = m_fr*in_ms ; # Mass balance for the fluid\n", + "print ' Discharge of motor oil on flushing flow for 10000 gal motor oil is %.1f lb'%Dsg" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Initial mass of motor oil in the tank is 66743.0 lb\n", + " Mass fractional loss is 0.0015 \n", + " Discharge of motor oil on flushing flow for 10000 gal motor oil is 100.1 lb\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch7.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch7.ipynb new file mode 100644 index 00000000..759dde83 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch7.ipynb @@ -0,0 +1,152 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 7 : A General Strategy for Solving Material Balance Problems" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 7.1 Page no.169\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Understanding the Problem\n", + "# Solution\n", + "\n", + "# Variables\n", + "v_ts = 105.0 ; # velocity of train wrt station-[cm/s]\n", + "v_mt = 30.0 ; # velocity of man wrt train-[cm/s]\n", + "v_hm = 2.0 ; # velocity of hot dough wrt man-[cm/s]\n", + "v_am = 1.0 ; # velocity of ant wrt man- [cm/s]\n", + "# By careful reading of problem you can see that ant is moving away from man's mouth at 1 cm/s , so ant's velocity wrt station \n", + "#is say v_as\n", + "\n", + "# Calculation\n", + "v_as = v_ts + v_mt + v_am;\n", + "\n", + "# Results\n", + "print ' The ant is moving towards station at the rate of %.1f cm/s.'%v_as" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " The ant is moving towards station at the rate of 136.0 cm/s.\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 7.4 Page no. 180\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Drawing a Sketch of a Mixing Process\n", + "# Solution\n", + "\n", + "# Variables\n", + "n_un= 7 ; # Number of unknowns in the given problem- 3 values of xi and 4 values Fi\n", + "n_ie = 5 ; # Number of independent equations\n", + "\n", + "# Calculations\n", + "d_o_f = n_un-n_ie ; # No. of degree of freedom\n", + "\n", + "# Results\n", + "print 'Number of degree of freedom for the given system is %i .'%d_o_f" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 2 .\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 7.5 Page no. 182\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Placing the unknown Information on the Diagram\n", + "# Solution\n", + "\n", + "# variables\n", + "n_un=8 ; # Number of unknowns in the given problem- 8 values of mole fractions\n", + "n_ie =6 ; # Number of independent equations- six elemental balances \n", + "\n", + "# Calculation\n", + "d_o_f= n_un-n_ie ;# Number of degree of freedom\n", + "\n", + "# Results\n", + "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n", + "#Note: Experiments show that the change in CH1.8O.5N.16S.0045P.0055 and the change in C(alpha)H(beta)O(gamma) prove to be \n", + "#related by amount of biomass present and the maintenance coefficient(the moles of substrate per mole of biomass per second) \n", + "#so the respective quantities cannot be chosen independently.Consequently with this extra constraint,only one degree of freedom \n", + "#remains to be specified, the basis" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 2 .\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch8.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch8.ipynb new file mode 100644 index 00000000..4d600c4f --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch8.ipynb @@ -0,0 +1,449 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 8 : Solving Material Balance Problems for Single Units without Reaction" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 8.1 Page no. 197\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Extraction of Streptomycin from a Fermentation Broth\n", + "# Solution\n", + "\n", + "# Variables\n", + "# Basis : 1 min\n", + "d_w = 1.0 ; # Density of aqueous solution-[g/cubic metre]\n", + "d_sol = 0.6 ; # Density of organic solvent-[g/cubic metre]\n", + "n_un = 8 ; # Number of unknowns in the given problem\n", + "n_ie = 8 ; # Number of independent equations\n", + "\n", + "# Calculation and Results\n", + "d_o_f = n_un-n_ie ; # Number of degree of freedom\n", + "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n", + "\n", + "# Material balance of Strep.\n", + "x = (200*10+10*0-200*0.2)/10; #[g]\n", + "print 'Strep per litre of solvent is %.1f g .'%x\n", + "\n", + "cnc = x/(1000*d_sol) ; #[g Strep/g of S]\n", + "print 'Strep per gram of solvent is %.4f g Strep/g of S .'%cnc\n", + "\n", + "m_fr = cnc/(1+cnc) ; #Mass fraction\n", + "print 'Mass fraction of Strep is %.3f g .'%m_fr" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 .\n", + "Strep per litre of solvent is 196.0 g .\n", + "Strep per gram of solvent is 0.3267 g Strep/g of S .\n", + "Mass fraction of Strep is 0.246 g .\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 8.2 Page no. 199\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Separation of gases Using a Membrane\n", + "# Solution Fig. E8.2b\n", + "\n", + "# Variables\n", + "F_O2 = 0.21 ; # fraction of O2 in feed(F) \n", + "F_N2 = 0.79 ; # fraction of N2 in feed(F) \n", + "P_O2 = 0.25 ; # fraction of O2 in product(P)\n", + "P_N2 = 0.75 ; # fraction of N2 in product(P)\n", + "F = 100 ; # Feed - [g mol]\n", + "w = 0.80 ; # Fraction of waste\n", + "W = w*F ; # Waste -[g mol]\n", + "\n", + "# Calculation\n", + "# By analysis for degree of freedom , DOF comes to be zero \n", + "P = F - W ; # By overall balance - [g mol]\n", + "W_O2 = (F_O2*F - P*P_O2)/100 # Fraction of O2 in waste stream by O2 balance \n", + "W_N2 = (W - W_O2*100)/100 ; #Fraction of N2 in waste stream\n", + " \n", + "# Results \n", + "print 'Composition of Waste Stream' \n", + "print ' Component Fraction in waste stream' \n", + "print ' O2 %.2f'%W_O2 \n", + "print ' N2 %.2f'%W_N2 " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Composition of Waste Stream\n", + " Component Fraction in waste stream\n", + " O2 0.16\n", + " N2 0.64\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 8.3 Page no. 202\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Overall analysis for a continuous Distillation Column\n", + "# Solution\n", + "\n", + "# Variables\n", + "# Basis : 1 hr so F = 1000 kg\n", + "F = 1000 ; # feed rate-[kg/hr]\n", + "P = F/10.0 ; # product mass flow rate -[kg/hr]\n", + "\n", + "n_un = 9 ; # Number of unknowns in the given problem\n", + "n_ie = 9 ; # Number of independent equations\n", + "\n", + "# Calculation and Result\n", + "d_o_f = n_un-n_ie ; # Number of degree of freedom\n", + "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n", + "\n", + "# Overall mass balance: F = P+B\n", + "B = F-P ; # bottom mass flow rate -[kg/hr]\n", + "print ' Bottom mass flow rate - %.1f kg '%B\n", + "\n", + "# Composition of bottoms by material balances\n", + "m_EtOH = 0.1*F-0.6*P ; # By EtOH balance-[kg]\n", + "m_H2O = 0.9*F - 0.4*P ; # By H2O balance-[kg]\n", + "total = m_EtOH+m_H2O ; #[kg]\n", + "f_EtOH = m_EtOH/total ; # Mass fraction of EtOH\n", + "f_H2O = m_H2O/total ; # Mass fraction of H2O\n", + "\n", + "print ' Mass of EtOH in bottom - %.1f kg '%m_EtOH\n", + "print ' Mass of H2O in bottom - %.1f kg '%m_H2O\n", + "print ' Mass fraction of EtOH in bottom - %.3f '%f_EtOH\n", + "print ' Mass fraction of H2O in bottom - %.3f '%f_H2O" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 .\n", + " Bottom mass flow rate - 900.0 kg \n", + " Mass of EtOH in bottom - 40.0 kg \n", + " Mass of H2O in bottom - 860.0 kg \n", + " Mass fraction of EtOH in bottom - 0.044 \n", + " Mass fraction of H2O in bottom - 0.956 \n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 8.4 Page no. 205\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Mixing of Battery Acid\n", + "# Solution Fig E8.4\n", + "from numpy import matrix\n", + "\n", + "# Variables\n", + "# Given\n", + "A = 200 ; # Mass of added solution [kg] \n", + "P_H2SO4 = .1863 ; #Fraction of H2SO4 in P(Final solution)\n", + "P_H2O = .8137 ; #Fraction of H2O in P(Final solution)\n", + "A_H2SO4 = .777 ; #Fraction of H2SO4 in A(Added solution)\n", + "A_H2O = .223 ; #Fraction of H2O in A(Added solution)\n", + "F_H2SO4 = .1243 ; #Fraction of H2SO4 in F(Original solution)\n", + "F_H2O = .8757 ; #Fraction of H2O in F(Original solution)\n", + "\n", + "# Calculations\n", + "# P - F = A - By overall balance\n", + "a = matrix([[P_H2O,-F_H2O],[1,-1]]) ; # Matrix of coefficient\n", + "b = matrix([[A*A_H2O],[A]]) ; # Matrix of contants\n", + "a = a.I\n", + "x = a*b ; # Matrix of solutions- P = x(1) and F = x(2)\n", + "\n", + "#Results\n", + "print ' Original solution taken- %.0i kg'%x[1]\n", + "print ' Final solution or kilograms of battery acid formed- %.0i kg'%x[0]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Original solution taken- 1905 kg\n", + " Final solution or kilograms of battery acid formed- 2105 kg\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 8.5 Page no. 207\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Drying\n", + "# Solution Fig E8.5\n", + "from numpy import matrix\n", + "\n", + "# Variables\n", + "# Given\n", + "W = 100.0 ; # Water removed - [kg]\n", + "A_H2O = 0.80 ; # Fraction of water in A(intial fish cake)\n", + "A_BDC = 0.20 ; # Fraction of BDC(bone dry cake) in B(final dry fish cake)\n", + "B_H2O = 0.40 ; # Fraction of water in A(intial fish cake)\n", + "B_BDC = 0.60 ; # Fraction of BDC(bone dry cake) in B(final dry fish cake)\n", + "\n", + "# Calculations\n", + "a = matrix([[A_H2O, -B_H2O],[1, -1]]) ; # Matrix of coefficient\n", + "b = matrix([[W],[W]]) ; # Matrix of contants\n", + "a = a.I\n", + "x = a * b; # Matrix of solutions- A = x(1) and B = x(2)\n", + "\n", + "# Results\n", + "print 'Weight of the fish cake originally put into dryer -%.0i kg'%x[0]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Weight of the fish cake originally put into dryer -150 kg\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 8.6 Page no. 209\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Crystallizaton\n", + "# Solution\n", + "\n", + "# Variables\n", + "# Composition of initial solution at 30 degree C\n", + "s_30 = 38.8 ; # solublity of Na2CO3 at 30 degree C, by using the table for solublity of Na2CO3-[g Na2CO3/100 g H2O]\n", + "If_Na2CO3 = s_30/(s_30+100) ; # Initial mass fraction of Na2CO3\n", + "If_H2O = 1-If_Na2CO3 ; # Initial mass fraction of H2O\n", + "\n", + "# Composition of crystals\n", + "# Basis : 1g mol Na2CO3.10H2O\n", + "n_mol_Na2CO3 = 1 ; # Number of moles of Na2CO3\n", + "n_mol_H2O = 10. ; # Number of moles of H2O\n", + "mwt_Na2CO3 = 106. ; # mol. wt of Na2CO3\n", + "mwt_H2O = 18. ; # mol. wt of H2O\n", + "\n", + "# Calculation and Results\n", + "m_Na2CO3 = mwt_Na2CO3*n_mol_Na2CO3 ; # Mass of Na2CO3\n", + "m_H2O = mwt_H2O*n_mol_H2O ; # Mass of H2O\n", + "Cf_Na2CO3 = m_Na2CO3/(m_Na2CO3+m_H2O) ; # mass fraction of Na2CO3 \n", + "Cf_H2O = 1-Cf_Na2CO3 ; # mass fraction of H2O\n", + "\n", + "n_un = 9. ; # Number of unknowns in the given problem\n", + "n_ie = 9. ; # Number of independent equations\n", + "d_o_f = n_un-n_ie ; # Number of degree of freedom\n", + "\n", + "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n", + "\n", + "# Final composition of tank\n", + "#Basis :I = 10000 kg\n", + "# Material balance reduces to Accumulation = final -initial = in-out(but in = 0)\n", + "I = 10000. ; #initial amount of saturated solution-[kg]\n", + "amt_C = 3000. ; # Amount of crystals formed-[kg]\n", + "Fm_Na2CO3 = I*If_Na2CO3-amt_C*Cf_Na2CO3 ; # Mass balance of Na2CO3\n", + "Fm_H2O = I*If_H2O-amt_C*Cf_H2O ; # Mass balance of H2O\n", + "\n", + "#To find temperature,T\n", + "s_T = (Fm_Na2CO3/Fm_H2O)*100 ; # Solublity of Na2CO3 at temperature T\n", + "s_20 = 21.5 ; #Solublity of Na2CO3 at temperature 20 degree C ,from given table-[g Na2CO3/100 g H2O]\n", + "\n", + "# Find T by interpolation\n", + "T = 30-((s_30-s_T)/(s_30-s_20))*(30-20) ; # Temperature -[degree C]\n", + "print ' Temperature to which solution has to be cooled to get 3000 kg crystals is %.0f degree C .'%T" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 .\n", + " Temperature to which solution has to be cooled to get 3000 kg crystals is 26 degree C .\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 8.7 Page no. 213\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Hemodialysis\n", + "# Solution\n", + "\n", + "# Variables\n", + "# Write given data\n", + "B_in = 1.1 ; # Flow rate in of blood -[L/min]\n", + "B_out = 1.2; # Flow rate out of blood -[L/min]\n", + "S_in = 1.7; # Flow rate in of solution -[L/min]\n", + "\n", + "# Composition of input blood\n", + "B_in_CR = 2.72 ; #[g/L]\n", + "B_in_UR = 1.16 ; #[g/L]\n", + "B_in_U = 18 ; #[g/L]\n", + "B_in_P = 0.77 ; #[g/L]\n", + "B_in_K = 5.77 ; #[g/L]\n", + "B_in_Na = 13.0 ; #[g/L]\n", + "B_in_water = 1100 ; #[mL/min]\n", + "\n", + "# Composition of output blood\n", + "B_out_CR = 0.120 ; #[g/L]\n", + "B_out_UR = 0.060; #[g/L]\n", + "B_out_U = 1.51 ; #[g/L]\n", + "B_out_P = 0.040 ; #[g/L]\n", + "B_out_K = 0.120 ; #[g/L]\n", + "B_out_Na = 3.21 ; #[g/L]\n", + "B_out_water = 1200. ; #[mL/min]\n", + "\n", + "# Calculation and Result\n", + "n_un = 7. ; # Number of unknowns in the given problem\n", + "n_ie = 7. ; # Number of independent equations\n", + "d_o_f = n_un-n_ie ; # Number of degree of freedom\n", + "print 'Number of degree of freedom for the given system is %i .'%d_o_f\n", + "\n", + "# Water balance in grams, assuming 1 ml is equivalent to 1 g\n", + "S_in_water = 1700. ; #[ml/min]\n", + "S_out_water = B_in_water+ S_in_water - B_out_water;\n", + "S_out = S_out_water/1000. ; #[L/min]\n", + "print ' Flow rate of water in output solution is %.2f L/min.'%S_out\n", + "\n", + "# The component balance in grams for CR,UR,U,P,K and Na are\n", + "S_out_CR = (B_in*B_in_CR - B_out*B_out_CR)/S_out;\n", + "S_out_UR = (B_in*B_in_UR - B_out*B_out_UR)/S_out;\n", + "S_out_U = (B_in*B_in_U - B_out*B_out_U)/S_out;\n", + "S_out_P = (B_in*B_in_P - B_out*B_out_P)/S_out;\n", + "S_out_K = (B_in*B_in_K - B_out*B_out_K)/S_out;\n", + "S_out_Na = (B_in*B_in_Na - B_out*B_out_Na)/S_out;\n", + "print ' Component Concentration(g/L) in output Dialysis solution '\n", + "print ' UR %.2f '%S_out_UR\n", + "print ' CR %.2f '%S_out_CR\n", + "print ' U %.2f '%S_out_U\n", + "print ' P %.2f '%S_out_P\n", + "print ' K %.2f '%S_out_K\n", + "print ' Na %.2f '%S_out_Na" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Number of degree of freedom for the given system is 0 .\n", + " Flow rate of water in output solution is 1.60 L/min.\n", + " Component Concentration(g/L) in output Dialysis solution \n", + " UR 0.75 \n", + " CR 1.78 \n", + " U 11.24 \n", + " P 0.50 \n", + " K 3.88 \n", + " Na 6.53 \n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch9.ipynb b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch9.ipynb new file mode 100644 index 00000000..4b127966 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/ch9.ipynb @@ -0,0 +1,514 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 9 : The Chemical Reaction Equation and Stoichiometry" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.1 Page no. 228\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Balancing a reaction for a Biological Reaction\n", + "# Solution\n", + "\n", + "# variables\n", + "# Given \n", + "#Main eqn. C6H12O6 + aO2 ---> bCO2 + cH2O\n", + "# By carbon balance\n", + "b = 6 ;\n", + "\n", + "#By hydrogen balance\n", + "c = 6;\n", + "\n", + "# calculation\n", + "#Balancing oxygen in reaction\n", + "a = (c*1+b*2-6)/2.0;\n", + "\n", + "#result\n", + "print 'Value of a is %i'%a\n", + "print 'Value of b is %i'%b\n", + "print 'Value of c is %i'%c" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Value of a is 6\n", + "Value of b is 6\n", + "Value of c is 6\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 9.2 Page no. 229\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Use of Chemical Reaction to Calculate the Mass of Reactants given the Mass of Products\n", + "# Solution\n", + "\n", + "# Variables\n", + "m_CO2 = 44.0 ; #molecular wt-[g]\n", + "m_C7H16 = 100.1 ; #molecular wt-[g]\n", + "p_con = 50. ; # percentage conversion of CO2 to dry ice\n", + "amt_di = 500. ; # amount of dry ice to be produce per hour-[kg]\n", + "\n", + "# Calculation\n", + "# By using the given equation \n", + "amt_C7H16 = (amt_di*m_C7H16)/((p_con/100.)*m_CO2*7) ;# [kg]\n", + "\n", + "# Result\n", + "print 'Amount of heptane required per hour to produce 500kg dry ice per hour is %.1f kg.'%amt_C7H16" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Amount of heptane required per hour to produce 500kg dry ice per hour is 325.0 kg.\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 9.3 Page no. 230\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Application of Stoichiometry when more than one Reaction occurs\n", + "# Solution\n", + "\n", + "# Variables\n", + "m_CaCO3 = 100.1 ; #molecular wt-[g]\n", + "m_MgCO3 = 84.32 ; #molecular wt-[g]\n", + "m_CaO = 56.08 ; #molecular wt-[g]\n", + "m_MgO = 40.32 ; #molecular wt-[g]\n", + "m_CO2 = 44.0 ; #molecular wt-[g]\n", + "\n", + "# Limestone analysis\n", + "p_CaCO3 = 92.89 ; # percentage of CaCO3\n", + "p_MgCO3 = 5.41 ; # percentage of MgCO3 \n", + "inrt = 1.7 ; #percentage of inert\n", + "\n", + "# Calculation and Results\n", + "#(a)\n", + "amt_CaO = (((p_CaCO3/100)*m_CaO)/m_CaCO3)*2000 ; #Pounds of CaO produced from 1 ton(2000lb) of limestone\n", + "print ' Amount of CaO produced from 1 ton(2000lb) of limestone is %.0f lb.'%amt_CaO\n", + "\n", + "#(b)\n", + "mol_CaCO3 = (p_CaCO3/100)/m_CaCO3 ; # lb mol of CaCO3\n", + "mol_MgCO3 = (p_MgCO3/100)/m_MgCO3 ; # lb mol of MgCO3\n", + "total_mol = mol_CaCO3+mol_MgCO3;\n", + "amt_CO2 = total_mol*m_CO2 ; # Amount of CO2 recovered per pound of limestone-[lb]\n", + "print ' Amount of CO2 recovered per pound of limestone is %.3f lb.'%amt_CO2\n", + "\n", + "#(c)\n", + "amt_CaO = m_CaO*mol_CaCO3 ; # since lb mol of CaO = CaCO3\n", + "amt_MgO = m_MgO*mol_MgCO3 ; # since lb mol of MgO = MgCO3\n", + "total_lime = amt_CaO+amt_MgO+(inrt)/100 ; # total amount of lime per pound limestone\n", + "amt_lmst = 2000/total_lime ; # Amount of limestone required to make 1 ton(2000lb) of lime \n", + "print ' Amount of limestone required to make 1 ton(2000lb) of lime %.1f lb.'%amt_lmst" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " Amount of CaO produced from 1 ton(2000lb) of limestone is 1041 lb.\n", + " Amount of CO2 recovered per pound of limestone is 0.437 lb.\n", + " Amount of limestone required to make 1 ton(2000lb) of lime 3550.7 lb.\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 9.4 Page no. 235\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of extent of Reaction\n", + "# Solution\n", + "\n", + "# Variables\n", + "f_NH3 = 5. ; # NH3 in feed-[g]\n", + "f_N2 = 100. ; # N2 in feed-[g]\n", + "f_H2 = 50. ; # H2 in feed-[g]\n", + "p_NH3 = 90. # NH3 in product-[g]\n", + "m_NH3 = 17. ; # Molecular wt. of NH3-[g]\n", + "m_N2 = 28. ; # Molecular wt. of N2-[g]\n", + "m_H2 = 2. ; # Molecular wt. of H2-[g]\n", + "\n", + "# Calculations \n", + "# Extent of reaction can be calculated by using eqn. 9.3 \n", + "# For NH3\n", + "ni = p_NH3/m_NH3 ; #[g mol NH3]\n", + "nio = f_NH3/m_NH3 ; #[g mol NH3]\n", + "vi = 2 ; # coefficint of NH3\n", + "ex_r = (ni-nio)/vi # Extent of reaction - moles reacting\n", + "\n", + "#Determine H2 and N2 in product of reaction by Eqn. 9.4\n", + "# For N2\n", + "nio_N2 = f_N2/m_N2 ; #[g mol N2]\n", + "vi_N2 = -1 ; # coefficint of N2\n", + "ni_N2 = nio_N2 + vi_N2*ex_r ; #N2 in product of reaction-[g moles ]\n", + "m_N2 = ni_N2*m_N2 ; # mass of N2 in product of reaction-[g]\n", + "\n", + "# Results\n", + "print ' N2 in product of reaction is %.2f g moles '%ni_N2\n", + "print ' Mass of N2 in product of reaction is %.2f g '%m_N2\n", + "# For H2\n", + "nio_H2 = f_H2/m_H2 ; #[g mol H2]\n", + "vi_H2 = -3 ; # coefficint of H2\n", + "ni_H2 = nio_H2 + vi_H2*ex_r ; #H2 in product of reaction-[g moles ]\n", + "m_H2 = ni_H2*m_H2 ; # mass of H2 in product of reaction-[g]\n", + "print ' H2 in product of reaction is %.2f g moles '%ni_H2\n", + "print ' Mass of H2 in product of reaction is %.2f g '%m_H2\n", + "\n", + "# ARP\n", + "m_SO2 = 64. ; # Molecular wt.of SO2-[g]\n", + "mol_SO2 = 2. ; # moles of SO2\n", + "ARP = (1./m_NH3)/(mol_SO2/m_SO2);\n", + "print ' ARP is %.2f '%ARP" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " N2 in product of reaction is 1.07 g moles \n", + " Mass of N2 in product of reaction is 30.00 g \n", + " H2 in product of reaction is 17.50 g moles \n", + " Mass of H2 in product of reaction is 35.00 g \n", + " ARP is 1.88 \n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 9.5 Page no. 238\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of Limiting and Excess Reactants\n", + "# Solution\n", + "\n", + "# Variables\n", + "f_N2 = 10. ; # N2 in feed-[g]\n", + "f_H2 = 10. ; # H2 in feed-[g]\n", + "m_NH3 = 17.02 # Molecular wt. of NH3-[g]\n", + "m_N2 = 28. ; # Molecular wt. of N2-[g]\n", + "m_H2 = 2. ; # Molecular wt. of H2-[g]\n", + "\n", + "# Calculations\n", + "# Extent of reaction can be calculated by using eqn. 9.3 \n", + "# Based on N2\n", + "nio_N2 = f_N2/m_N2 #[g mol N2]\n", + "vi_N2 = -1 ; # coefficint of N2\n", + "ex_N2 = -(nio_N2)/vi_N2 ; # Max. extent of reaction based on N2\n", + "\n", + "# Based on H2\n", + "nio_H2 = f_H2/m_H2 ; #[g mol H2]\n", + "vi_H2 = -3 ; # coefficint of H2\n", + "ex_H2 = -(nio_H2)/vi_H2 # Max. extent of reaction based on H2\n", + "\n", + "#(a)\n", + "vi_NH3 = 2 ; # coefficint of NH3\n", + "mx_NH3 = ex_N2*vi_NH3*m_NH3 ; # Max. amount of NH3 that can be produced\n", + "\n", + "# Results\n", + "print ' (a) Max. amount of NH3 that can be produced is %.1f g'%mx_NH3\n", + "\n", + "#(b) and (c)\n", + "if (ex_H2 > ex_N2 ):\n", + " print ' (b) N2 is limiting reactant '\n", + " print ' (c) H2 is excess reactant '\n", + " ex_r = ex_N2\n", + "else:\n", + " print ' (b) H2 is limiting reactant '\n", + " print ' (c) N2 is excess reactant '\n", + " ex_r = ex_H2 ;" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " (a) Max. amount of NH3 that can be produced is 12.2 g\n", + " (b) N2 is limiting reactant \n", + " (c) H2 is excess reactant \n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 9.6 Page no. 242\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Yeilds in the Reaction of Glucose to produce Ethanol\n", + "# Solution\n", + "\n", + "# variables\n", + "#(a)\n", + "mol_bms = 0.59 ; # Biomass produced per g mol of glucose-[g mol biomass/ g mol glucose]\n", + "mw_bms = 23.74 ; # molecular wt. of biomass -[g]\n", + "mw_gls = 180.0 ; # molecular wt. of glucose -[g]\n", + "\n", + "# calculations and Results\n", + "ms_bms = (mol_bms*mw_bms)/mw_gls ; # Biomass produced per gram of glucose-[g biomass/ g glucose]\n", + "print '(a) Biomass produced per gram of glucose is %.4f g biomass/ g glucose.'%ms_bms\n", + "\n", + "#(b)\n", + "mol_etol = 1.3 ; #Ethanol produced per g mol of glucose-[g mol ethanol/ g mol glucose]\n", + "mw_etol = 46.0 ; # molecular wt. of ethanol -[g]\n", + "ms_etol = (mol_etol*mw_etol)/mw_gls ; # Ethanol produced per gram of glucose-[g ethanol/ g glucose]\n", + "print ' (b) Ethanol produced per gram of glucose is %.3f g ethanol/ g glucose.'%ms_etol" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Biomass produced per gram of glucose is 0.0778 g biomass/ g glucose.\n", + " (b) Ethanol produced per gram of glucose is 0.332 g ethanol/ g glucose.\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 9.7 Page no. 243\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Selectivity in the Production of Nanotubes\n", + "# Solution\n", + "\n", + "# Variables\n", + "# By using reaction (a)\n", + "H2_a = 3-0.50 # H2 produced in reaction (a)\n", + "\n", + "# Calculations\n", + "C_a = (2./3)*H2_a ; # Nanotubes(the C) produced by reaction (a)\n", + "sel = C_a/0.50 ; # Selectivity of C reletive to C2H4-[g mol C/ g mol C2H4]\n", + "\n", + "# Results\n", + "print 'Selectivity of C reletive to C2H4 is %.2f g mol C/ g mol C2H4.'%sel" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Selectivity of C reletive to C2H4 is 3.33 g mol C/ g mol C2H4.\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + " Example 9.8 Page no. 244\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of various terms Pertaning to Reaction\n", + "# Solution\n", + "\n", + "# Variables\n", + "m_C3H6 = 42.08 # molecular wt. of propene-[g]\n", + "m_C3H5Cl = 76.53 ; # molecular wt. of C3H5Cl-[g]\n", + "m_C3H6Cl2 = 112.99 ; # molecular wt. of C3H6Cl2-[g]\n", + "\n", + "# Product analysis\n", + "pml_Cl2 = 141.0 ; # [g mol]\n", + "pml_C3H6 = 651.0 ; #[g mol]\n", + "pml_C3H5Cl = 4.6 ; # [g mol]\n", + "pml_C3H6Cl2 = 24.5 ; # [g mol]\n", + "pml_HCL = 4.6 ; #[g mol]\n", + "\n", + "# Calculation & Results\n", + "#(a)\n", + "a_Cl = pml_C3H5Cl; # Chlorine reacted by eqn.(a)\n", + "b_Cl = pml_C3H6Cl2 ; # Chlorine reacted by eqn.(b)\n", + "fed_Cl = pml_Cl2+a_Cl+b_Cl ; # Total chlorine fed to reactor-[g mol]\n", + "\n", + "#by analysing reaction (a) and (b)\n", + "a_C3H6 = a_Cl+b_Cl ; # C3H6 reacted by reaction (a)\n", + "fed_C3H6 = pml_C3H6+a_C3H6 ; #Total C3H6 fed to reactor-[g mol]\n", + "\n", + "\n", + "print '(a) Total chlorine fed to reactor is %.2f g mol '%fed_Cl\n", + "print ' Total C3H6 fed to reactor is %.2f g mol '%fed_C3H6\n", + "\n", + "#(b) and (c)\n", + "# Extent of reaction can be calculated by using eqn. 9.3 \n", + "# Based on C3H6\n", + "nio_C3H6 = fed_C3H6 ; #[g mol C3H6]\n", + "vi_C3H6 = -1 ; # coefficint of C3H6\n", + "ex_C3H6 = -(nio_C3H6)/vi_C3H6 ; # Max. extent of reaction based on C3H6\n", + "\n", + "# Based on Cl2\n", + "nio_Cl2 = fed_Cl; #[g mol Cl2]\n", + "vi_Cl2 = -1 ; # coefficint of Cl2\n", + "ex_Cl2 = -(nio_Cl2)/vi_Cl2 ;# Max. extent of reaction based on Cl2\n", + "\n", + "if (ex_Cl2 > ex_C3H6 ):\n", + " print ' (b) C3H6 is limiting reactant '\n", + " print ' (c)Cl2 is excess reactant '\n", + " ex_r = ex_C3H6;\n", + "else:\n", + " print ' (b) Cl2 is limiting reactant '\n", + " print ' (c) C3H6 is excess reactant '\n", + " ex_r = ex_Cl2;\n", + "\n", + "#(d)\n", + "fr_cn = pml_C3H5Cl/fed_C3H6 ; #Fractional conversion of C3H6 to C3H5Cl\n", + "print ' (d) Fractional conversion of C3H6 to C3H5Cl is %.2e '%fr_cn\n", + "\n", + "#(e)\n", + "sel = pml_C3H5Cl/pml_C3H6Cl2 ; # Selectivity of C3H5Cl relative to C3H6Cl2\n", + "print ' (e) Selectivity of C3H5Cl relative to C3H6Cl2 is %.2f g mol C3H5Cl/g mol C3H6Cl2 '%sel\n", + "\n", + "#(f)\n", + "yld = (m_C3H5Cl*pml_C3H5Cl)/(m_C3H6*fed_C3H6) # Yield of C3H5Cl per g C3H6 fed to reactor\n", + "print ' (f) Yield of C3H5Cl per g C3H6 fed to reactor is %.3f g C3H5Cl/g C3H6 '%yld\n", + "\n", + "#(g)\n", + "vi_C3H5Cl = 1 ; # coefficint of C3H5Cl\n", + "vi_C3H6Cl2 = 1 ; # coefficint of C3H6Cl2\n", + "ex_a = (pml_C3H5Cl-0)/vi_C3H5Cl ; # Extent of reaction a as C3H5Cl is produced only in reaction a\n", + "ex_b = (pml_C3H6Cl2-0)/vi_C3H6Cl2 ; # Extent of reaction b as C3H6Cl2 is produced only in reaction b\n", + "print ' (g) Extent of reaction a as C3H5Cl is produced only in reaction a is %.1f '%ex_a\n", + "print ' Extent of reaction b as C3H6Cl2 is produced only in reaction b %.1f '%ex_b\n", + "\n", + "#(h)\n", + "in_Cl = fed_Cl*2 ; #Entering Cl -[g mol]\n", + "out_Cl = pml_HCL ; # Exiting Cl in HCl-[g mol]\n", + "ef_w = out_Cl/in_Cl ; # Mole efficiency of waste\n", + "ef_pr = 1-ef_w ; # Mole efficiency of product\n", + "print ' (h) Mole efficiency of product is %.3f '%ef_pr" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Total chlorine fed to reactor is 170.10 g mol \n", + " Total C3H6 fed to reactor is 680.10 g mol \n", + " (b) Cl2 is limiting reactant \n", + " (c) C3H6 is excess reactant \n", + " (d) Fractional conversion of C3H6 to C3H5Cl is 6.76e-03 \n", + " (e) Selectivity of C3H5Cl relative to C3H6Cl2 is 0.19 g mol C3H5Cl/g mol C3H6Cl2 \n", + " (f) Yield of C3H5Cl per g C3H6 fed to reactor is 0.012 g C3H5Cl/g C3H6 \n", + " (g) Extent of reaction a as C3H5Cl is produced only in reaction a is 4.6 \n", + " Extent of reaction b as C3H6Cl2 is produced only in reaction b 24.5 \n", + " (h) Mole efficiency of product is 0.986 \n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "code", + "collapsed": true, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms.png Binary files differnew file mode 100644 index 00000000..a1bab145 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_1.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_1.png Binary files differnew file mode 100644 index 00000000..a1bab145 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_1.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_2.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_2.png Binary files differnew file mode 100644 index 00000000..a1bab145 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_2.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_3.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_3.png Binary files differnew file mode 100644 index 00000000..a1bab145 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/Adsorptionisotherms_3.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/bb.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/bb.png Binary files differnew file mode 100644 index 00000000..81ceba34 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/bb.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/cc.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/cc.png Binary files differnew file mode 100644 index 00000000..017d45cd --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/cc.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart.png Binary files differnew file mode 100644 index 00000000..6e061e73 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_1.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_1.png Binary files differnew file mode 100644 index 00000000..6e061e73 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_1.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_2.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_2.png Binary files differnew file mode 100644 index 00000000..6e061e73 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_2.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_3.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_3.png Binary files differnew file mode 100644 index 00000000..6e061e73 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/coxchart_3.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater.png Binary files differnew file mode 100644 index 00000000..852e9c76 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_1.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_1.png Binary files differnew file mode 100644 index 00000000..852e9c76 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_1.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_2.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_2.png Binary files differnew file mode 100644 index 00000000..852e9c76 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_2.png diff --git a/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_3.png b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_3.png Binary files differnew file mode 100644 index 00000000..852e9c76 --- /dev/null +++ b/Basic_Principles_And_Calculations_In_Chemical_Engineering/screenshots/heatvaporizationwater_3.png |