diff options
Diffstat (limited to 'A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch9.ipynb')
-rw-r--r-- | A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch9.ipynb | 1102 |
1 files changed, 1102 insertions, 0 deletions
diff --git a/A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch9.ipynb b/A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch9.ipynb new file mode 100644 index 00000000..a4ef1c21 --- /dev/null +++ b/A_Textbook_Of_Chemical_Engineering_Thermodynamics/ch9.ipynb @@ -0,0 +1,1102 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 9 : Chemical Reaction Equilibria" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.6" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To calculate equilibrium constant\n", + "\n", + "import math\n", + "#Given:\n", + "Go_reac = 97540.; \t\t\t#standard free energy of formation of reactant (J/mol)\n", + "Go_pdt = 51310.; \t\t\t#standard free energy of formation of product (J/mol)\n", + "R = 8.314; \t\t\t#ideal gas constant\n", + "T = 298.; \t\t\t#temperature (K)\n", + "#Reaction: N2O4(g) --> 2NO2(g)\n", + "\n", + "# Calculations\n", + "#To calculate equilibrium constant\n", + "#Using eq. 9.50 (Page no.413)\n", + "Go = 2*Go_pdt - Go_reac;\n", + "#Using eq. 9.31 (Page no. 406)\n", + "K = math.e**(-Go/(R*T))\n", + "\n", + "# Results\n", + "print 'The equilbrium constant %f'%K\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The equilbrium constant 0.128684\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.7" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To calculate equilibrium constant at 500 K\n", + "\n", + "# Variables\n", + "T1 = 298.; \t\t\t#temperature in K\n", + "Hf = -46100.; \t\t\t#standard heat of formation (J/mol)\n", + "Go = -16500.; \t\t\t#standard free energy change (J/mol)\n", + "R = 8.314; \t\t\t#ideal gas constant\n", + "T = 500.; \n", + "#Reaction: N2(g) + 3H2(g) --> 2NH3(g)\n", + "#To calculate the equilibrium constant at 500 K\n", + "#Using eq. 9.50 (Page no. 413)\n", + "\n", + "# Calculations\n", + "del_Go = 2*Go;\n", + "import math\n", + "#Using eq. 9.31 (Page no. 406)\n", + "K1 = math.e**(-del_Go/(R*T1)) \t\t\t#equilibrium const at 298 K\n", + "Ho = 2*Hf; \t\t\t#standard heat of reaction\n", + "\n", + "#Using eq. 9.37 (Page no. 411)\n", + "K = K1*(math.e**((-Ho/R)*(1/T - 1/T1)))\n", + "\n", + "# Results\n", + "print 'The equilibrium constant at 500 K is %f'%K\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The equilibrium constant at 500 K is 0.179981\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.8" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To alculate standard free energy change and heat of formation\n", + "\n", + "# Variablesa\n", + "R = 8.314; \t\t\t#ideal gas constant\n", + "T2 = 317.; \t\t\t#temperature in K\n", + "T1 = 391.; \t\t\t#(K)\n", + "x2 = 0.31; \t\t\t#mol fraction of n-butane at 317 K\n", + "x1 = 0.43; \t\t\t#mol fraction of iso-butane at 391 K\n", + "\n", + "# Calculations\n", + "#To calculate standard free energy change and heat of reaction\n", + "#At 317 K\n", + "K2 = (1-x2)/x2; \t\t\t#equilibrium constant at 317 K\n", + "K1 = (1-x1)/x1; \t\t\t#equilibrium constant at 391 K\n", + "import math\n", + "#Using eq. 9.31 (Page no. 406)\n", + "#Standard free energy change\n", + "G2 = -R*T2*math.log(K2 )\t\t\t#at 317 K (J/mol)\n", + "G1 = -R*T1*math.log(K1 )\t\t\t#at 391 K (J/mol)\n", + "\n", + "#Using eq. 9.37 (Page no. 411)\n", + "Ho = -math.log(K2/K1)*R/(1/T2 - 1/T1)\n", + "\n", + "# Calculations\n", + "print 'Standard free energy change of the reaction'\n", + "print ' At 317 K is %f J/mol'%G2\n", + "print ' At 391 K is %f J/mol'%G1\n", + "print ' Average value of heat of reaction is %f J/mol'%Ho\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Standard free energy change of the reaction\n", + " At 317 K is -2108.744820 J/mol\n", + " At 391 K is -916.234397 J/mol\n", + " Average value of heat of reaction is -7217.201631 J/mol\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.9" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To estimate free energy change and equilibrium constant at 700 K\n", + "\n", + "# Variables\n", + "To = 298.; \t\t\t#temperature in K\n", + "T = 700.; \t\t\t#(K)\n", + "R = 8.314; \t\t\t#ideal gas constant\n", + "Hf = -46100.; \t\t\t#standard heat of formation (J/mol)\n", + "Gf = -16500.; \t\t\t#standard free energy of formtion of ammonia (J/mol)\n", + "\n", + "# Calculations\n", + "Ho = 2*Hf;\n", + "Go = 2*Gf;\n", + "alpha = 2*29.75 - 27.27 - 3*27.01;\n", + "betta = (2*25.11 - 4.93 - 3*3.51)*10**-3;\n", + "import math\n", + "#Using eq. 9.46 (Page no. 412)\n", + "del_H = Ho - alpha*To - (betta/2)*To**2;\n", + "#Using eq. 9.48 (Page no. 413)\n", + "A = -(Go - del_H + alpha*To*math.log(To) + (betta/2)*To**2)/(R*To)\n", + "\n", + "#Using eq. 9.47 and 9.48 (Page no. 412)\n", + "K = math.e**((-del_H/(R*T)) + (alpha/R)*math.log(T) + (betta/(2*R))*T + A)\n", + "G = del_H - alpha*T*math.log(T) -(betta/2)*T**2 - A*R*T;\n", + "\n", + "# Results\n", + "print 'At 700 K'\n", + "print ' Equilibrium constant is %3.2e'%K\n", + "print ' Standard free energy change is %f J/mol'%G\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "At 700 K\n", + " Equilibrium constant is 9.99e-05\n", + " Standard free energy change is 53606.315911 J/mol\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.10" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# to calculate equilibrium constant at 600 K\n", + "\n", + "# Variables\n", + "T = 600.; \t\t\t#temperature in K\n", + "R = 8.314; \t\t\t#ideal gas constant\n", + "\n", + "#Gibbs free energy at 600 K (J/mol K)\n", + "Gc = -203.81; \t\t\t#for CO\n", + "Gh = -136.39; \t\t\t#for hydrogen\n", + "Gm = -249.83; \t\t\t#for methanol\n", + "\n", + "#Heats of formation at 298 K (J/mol)\n", + "Hc = -110500.; \t\t\t#for CO\n", + "Hm = -200700.; \t\t\t#for methanol\n", + "import math\n", + "\n", + "# Calculations\n", + "#To calculate equilibrium constant at 600 K\n", + "Go = T*((Gm-Gc-(2*Gh)) + (1/T)*(Hm-Hc))\n", + "\t\t\t#Using eq. 9.31 (Page no. 406)\n", + "K = math.e**(-Go/(R*T))\n", + "\n", + "# Results\n", + "print 'Equilibrium constant is %4.3e'%K\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equilibrium constant is 1.018e-04\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.11" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To calculate equilibrium constant at 500K\n", + "\n", + "# Variables\n", + "T = 500.; \t\t\t#temperature in K\n", + "R = 8.314; \t\t\t#ideal gas constant\n", + "\n", + "#Free energy at 500 K (J/mol K)\n", + "Fn = -177.5; \t\t\t#for nitrogen\n", + "Fh = -116.9; \t\t\t#for hydrogen\n", + "Fa = -176.9; \t\t\t#for ammonia\n", + "\n", + "#The function (Ho at 298 K - Ho at 0 K) [J/mol]\n", + "Hn = 8669.; \t\t\t#for nitrogen\n", + "Hh = 8468.; \t\t\t#for hydrogen\n", + "Ha = 9920.; \t\t\t#for methanol\n", + "\n", + "#Free energy of formation at 298 K (J/mol)\n", + "Hf = -46100.;\n", + "import math\n", + "#To calculate equilibrium constant at 500 K\n", + "\n", + "# Calculations\n", + "#Using eq. 9.53 (Page no. 414)\n", + "sum_F = (2*Fa - Fn - 3*Fh) - (2*Ha - Hn - 3*Hh)/T; \t\t\t#(J/mol K)\n", + "#Using eq. 9.57 (Page no.415)\n", + "Go = T*(sum_F + 2*Hf/T)\n", + "K = math.e**(-Go/(R*T))\n", + "\n", + "# Results\n", + "print 'Equilibrium constant is %f'%K\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equilibrium constant is 0.108493\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.12" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To find the value of n\n", + "\n", + "# Variables\n", + "P1 = 1.; \t\t\t#pressure (bar)\n", + "P2 = 2.; \t\t\t#(bar)\n", + "x1 = 0.15; \t\t\t#mol fraction of polymer at 1 bar\n", + "x2 = 0.367; \t\t\t#mol fraction of polymer at 2 bar\n", + "\n", + "# Calculations\n", + "import math\n", + "n = round((math.log(x2/x1)+math.log(2))/(math.log(2)-math.log((1-x1)/(1-x2))))\n", + "\n", + "# Results\n", + "print 'The value of n is %i'%n\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The value of n is 4\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.13" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To determine the percent conversion\n", + "\n", + "from scipy.optimize import root\n", + "\n", + "# Variables\n", + "#Reaction: N2 + 3H2 --> 2NH3\n", + "K = 2*10**-4; \t\t\t#equilibrium constant of reaction\n", + "P = 20; \t\t\t#(bar)\n", + "\n", + "# Calculations and Results\n", + "#e(4-2e)/(1-e)**2 = 0.73485\n", + "#e = poly(0,'e')\n", + "def f(e):\n", + " return 2.73845*e**2 - 5.4697*e + 0.73485;\n", + "x = root(f,0)\n", + "\n", + "print '(a) Percentage conversion is %f percent'%(x.x[0]*100)\n", + "\n", + "#(b)\n", + "P = 200; \t\t\t#(bar)\n", + "\n", + "#e(4-2e)/(1-e)**2 = 7.3485\n", + "\n", + "def f2(e):\n", + " return 9.3485*e**2 - 18.697*e + 7.3485;\n", + "x = root(f2,0)\n", + "print ' (b) Percentage conversion is %f percent'%(x.x[0]*100)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Percentage conversion is 14.485445 percent\n", + " (b) Percentage conversion is 53.746561 percent\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.14" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To calculate fractional dissociation of steam\n", + "\n", + "# Variables\n", + "K = 1; \t\t\t#equilibrium constant for reaction\n", + "\n", + "# Calculations and Results\n", + "e = 1./2;\n", + "print '(a) Fractional dissociation of steam is %i percent'%(e*100)\n", + "\n", + "#(b). If reactant stream is diluted with 2 mol nitrogen\n", + "#Mole fraction of components\n", + "#CO: (1-e)/4\n", + "#H20: (1-e)/4\n", + "#CO2: e/4\n", + "#H2: e/4\n", + "\n", + "#so% K = (e/4)(e/4)/[(1-e)/4][(1-e)/4]\n", + "#On solving we get\n", + "e = 1./2;\n", + "print ' (b) After dilution fractional distillation of steam is %i percent'%(e*100)\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a) Fractional dissociation of steam is 50 percent\n", + " (b) After dilution fractional distillation of steam is 50 percent\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.15" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To determine conversion of nitrogen affected by argon\n", + "\n", + "from scipy.optimize import root\n", + "\n", + "# Variables\n", + "K = 2.*10**-4; \t\t\t#equilibrium constant of reaction\n", + "P = 20.; \t\t\t#pressure in bar\n", + "\n", + "#To determine conversion of nitrogen affected by argon\n", + "\n", + "#Mole fraction of components\n", + "#Nitrogen: (1-e)/(6-2e)\n", + "#Hydrogen: 3(1-e)/(6-2e)\n", + "#Ammonia: 2e/(6-2e)\n", + "\n", + "#[2e/(6-2e)]**2/[(1-e)/(6-2e)][3(1-e)/(6-2e)]**3 = K*P**2\n", + "#e(3-e)/(1-e)**2 = 0.3674\n", + "\n", + "# Calculations\n", + "def f(e):\n", + " return 1.3674*e**2 - 3.7348*e + 0.3674;\n", + "x = root(f,0)\n", + "\n", + "# Results\n", + "print 'Percentage coversion in presence of argon is %f percent'%(x.x[0]*100)\n", + "print ' while in absence of argon is 14.48 percent' \t\t\t#From example 9.13\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Percentage coversion in presence of argon is 10.219587 percent\n", + " while in absence of argon is 14.48 percent\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.16" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To calculate the fractional dissociation of steam\n", + "\n", + "# Variables\n", + "P = 1.; \t\t\t#pressure in bar\n", + "K = 1.; \t\t\t#equilibrium constant of reaction\n", + "\n", + "# Calculations and Results\n", + "#To calculate the fractional dissociation of steam\n", + "#Basis: 1 mole water vapour present in reactant stream\n", + "#Let e be the extent of reaction\n", + "\n", + "#(a). CO supplied is 100% in excess of the stoichiometric requirement\n", + "#Mole fraction of components:\n", + "#CO: (2-e)/3\n", + "#H20: (1-e)/3\n", + "#CO2: e/3\n", + "#H2: e/3\n", + "\n", + "#e**2/{(1-e)(2-e)] = K = 1% so\n", + "#3e-2 = 0;\n", + "e = 2./3;\n", + "print '(a). The conversion of steam is %f percent'%(e*100)\n", + "\n", + "#(b). CO supplied is only 50% of the theoretical requirement\n", + "#Mole fraction of components\n", + "#CO: (0.5-e)/1.5\n", + "#H20: (1-e)/1.5\n", + "#CO2: e/1.5\n", + "#H2: e/1.5\n", + "\n", + "#e**2/[(0.5-e)(1-e)] = K = 1\n", + "#1.5e-0.5 = 1\n", + "e = 0.5/1.5;\n", + "print ' (b). Percentage conversion of steam is %f percent'%(e*100)\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "(a). The conversion of steam is 66.666667 percent\n", + " (b). Percentage conversion of steam is 33.333333 percent\n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.17" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To calculate the fractional distillation of steam\n", + "\n", + "# Variables\n", + "K = 1.; \t\t\t#equilibrium constant of reaction\n", + "\n", + "# Calculations\n", + "e = 1./3;\n", + "\n", + "# Results\n", + "print 'Percentage conversion of steam is %f percent'%(e*100)\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Percentage conversion of steam is 33.333333 percent\n" + ] + } + ], + "prompt_number": 31 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.18" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To evaluate the percent conversion of CO\n", + "\n", + "# Variables\n", + "#Reaction: CO(g) + 2H2(g) --> CH3OH(g)\n", + "Kf = 4.9*10**-5;\n", + "Kfi = 0.35;\n", + "P = 300.; \t\t\t#pressure in bar\n", + "n_CO = 25.;\n", + "n_H2 = 55.;\n", + "n_inert = 20.;\n", + "v = -1-2+1; \t\t\t#change in number of moles in reaction\n", + "\n", + "# Calculations\n", + "#Mole fractions in the equilibrium mixture\n", + "#CO = (25-e)/(100-2e)\n", + "#H2 = (55-2e)/(100-2e)\n", + "#CH3OH = e/(100-2e)\n", + "\n", + "Ky = (Kf/Kfi)*P**(-v)\n", + "\t\t\t#[e/(100-2e)]/[(25-e)/(100-2e)][(55-2e)/(100-2e)]**2 = Ky% so\n", + "\n", + "def f(e):\n", + " return (4+4*Ky)*e**3 - (400+320*Ky)*e**2 + (10000+8525*Ky)*e - 75625*Ky\n", + "\n", + "x = root(f,0)\n", + "conv = x.x[0]/n_CO; \t\t\t#first two roots are complex\n", + "\n", + "# Results\n", + "print 'Percentage conversion of CO is %f percent'%(conv*100)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Percentage conversion of CO is 61.015734 percent\n" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.19" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To determine the composition of gases leaving the reactor\n", + "\n", + "# Variables\n", + "#Reaction: 1/2N2 + 3/2H2 --> NH3\n", + "Kp = 1.25*10**-2 ;\t\t\t#equilibrium constant\n", + "P = 50; \t\t\t#pressure in bar\n", + "v = 1-(3./2)-(1./2) \t\t\t#change in number of moles in reaction\n", + "\n", + "#Initial composition of gas mixture\n", + "n_h = 60.;\n", + "n_n = 20.;\n", + "n_inert = 100-n_h-n_n;\n", + "\n", + "# Calculations\n", + "#To determine the composition of gases leaving the reactor\n", + "#Mole fractions in the equilibrium mixture\n", + "#N2: [20-(e/2)]/(100-e)\n", + "#H2: [60-(3e/2)]/(100-e)\n", + "#NH3: e/(100-e)\n", + "Ky = Kp*(P**-v)\n", + "#e/(100-e)/[(20-(e/2)]**1/2[{60-(3e/2)}/(100-e)]**3/2 = Ky\n", + "#e = poly(0%'e'\n", + "\n", + "def f(e):\n", + " return (1.6875*Ky**2-1)*e**4 - (270*Ky**2+200)*e**3 + (16200*Ky**2-10000)*e**2 - (334800*Ky**2)*e + 4320000*Ky**2;\n", + "x = root(f,0)\n", + "e = x.x[0]\n", + "\n", + "#x(4) being the only positive root is the percentage conversion\n", + "#Mole fractions in equilibrium mixture\n", + "x_n = (20-(e/2))/(100-e)\n", + "x_h = (60-3*(e/2))/(100-e)\n", + "x_a = e/(100-e)\n", + "x_inert = 1 - x_n - x_h - x_a;\n", + "\n", + "# Results\n", + "print 'Composition of gas leaving the reactor is'\n", + "print ' Nitrogen : %f percent'%(x_n*100)\n", + "print ' Hydrogen : %f percent'%(x_h*100)\n", + "print ' Ammonia : %f percent'%(x_a*100)\n", + "print ' Inert gas : %f percent'%(x_inert*100)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Composition of gas leaving the reactor is\n", + " Nitrogen : 17.048802 percent\n", + " Hydrogen : 51.146406 percent\n", + " Ammonia : 9.837327 percent\n", + " Inert gas : 21.967465 percent\n" + ] + } + ], + "prompt_number": 33 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.20" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To evaluate the equilibrium constant\n", + "\n", + "# Variables\n", + "P = 85.; \t\t\t#pressure in bar\n", + "n_e = 0.015; \t\t\t#mol percent of ethanol\n", + "n_w = 0.95; \t\t\t#mole percent of water\n", + "n_a = 0.48; \t\t\t#mol percent of ethylene in vapour phase\n", + "M = 18.; \t\t\t#molecular mass of water\n", + "fc = 0.9; \t\t\t#fugacity coeffecient for ethylene\n", + "\n", + "#To evaluate the equilibrium constant\n", + "#K = a_c/(a_a*a_b)\n", + "# Calculations\n", + "m_e = n_e/(n_w*M*10**-3) \t\t\t#mol/kg water\n", + "a_c = m_e;\n", + "fa = fc*n_a*P; \t\t\t#bar\n", + "a_a = fa;\n", + "\n", + "#Since mol fraction of water is close to unity% so fugacity coeffecient of water is assumed to be 1\n", + "a_b = n_w;\n", + "K = a_c/(a_a*a_b)\n", + "\n", + "# Results\n", + "print 'The equilibrium constant is %5.4e (mol C2H4)/(kg water bar)'%K\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The equilibrium constant is 2.5146e-02 (mol C2H4)/(kg water bar)\n" + ] + } + ], + "prompt_number": 34 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.21" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To calculate the decomposition pressure and temperature at 1 bar\n", + "\n", + "# Variables\n", + "T = 1000.; \t\t\t#temperature of reaction in K\n", + "P = 1.; \t\t\t#pressure in bar\n", + "R = 8.314; \t\t\t#ideal gas constant\n", + "import math\n", + "\n", + "#Function for standard free energy of the reaction\n", + "def G(T):\n", + " y = 1.8856*10**5 - 243.42*T + 11.8478*T*math.log(T) - 3.1045*10**-3*T**2 + 1.7271*10**-6*T**3 - (4.1784*10**5)/T\n", + " return y\n", + "\n", + "# Calculations and Results\n", + "#To calculate the decomposition pressure and temperaure at 1 bar\n", + "Go = G(T)\n", + "K = math.e**(-Go/(R*T))\n", + "#Using eq. 9.75 (Page no. 432)\n", + "p_CO2 = K; \t\t\t#decomposition pressure\n", + "print 'Decomposition pressure of limestone at 1000 K s %f bar'%p_CO2\n", + "\n", + "#At pressure = 1 bar\n", + "K = 1.;\n", + "Go = 0.; \t\t\t#since K = 1\n", + "\n", + "T = 1160.; \t\t\t#assumed temperature (K)\n", + "flag = 1.;\n", + "while(flag==1):\n", + " res = round(G(T))\n", + " if(res<=0):\n", + " flag = 0;\n", + " else:\n", + " T = T+1;\n", + "\n", + "print 'Decomposition temperature at 1 bar is %i K'%T\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Decomposition pressure of limestone at 1000 K s 0.048344 bar\n", + "Decomposition temperature at 1 bar is 1169 K\n" + ] + } + ], + "prompt_number": 35 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.22" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To evaluate wt of iron produced per 100 cubic m of gas admitted\n", + "\n", + "# Variables\n", + "K = 0.403; \t\t\t#equilibrium constant of reaction\n", + "T = 1200.; \t\t\t#temperature of reaction (K)\n", + "To = 273.; \t\t\t#standard temperature (K)\n", + "Vo = 22.4*10**-3; \t\t\t#molar volume at STP \n", + "M = 55.8; \t\t\t#molecular mass of iron\n", + "n = 100.; \t\t\t#moles of gas entering\n", + "n_C = 20.; \t\t\t#moles of carbon mono oxide\n", + "n_N = 80.; \t\t\t#moles of nitrogen\n", + "\n", + "\n", + "# Calculations\n", + "#Let e be the extent of reaction\n", + "#Mole fractions in equilibrium mixture\n", + "#CO = (20-e)/100\n", + "#CO2 = e/100\n", + "#e/(20-e) = K\n", + "e = (20*K)/(1+K)\n", + "n_CO2 = e; \t\t\t#moles of CO2 at equilibrium\n", + "n_Fe = n_CO2; \t\t\t#by stoichiometry\n", + "V = (n*Vo*T)/To; \t\t\t#volume of 100 mol of gas at 1200 K and 1 bar\n", + "\n", + "#Let m be iron produced per 100 m**3 gas\n", + "m = (n_Fe*100*M)/V;\n", + "\n", + "# Results\n", + "print 'Iron produced per 100 cubic m of gas is %f kg'%(m/1000)\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Iron produced per 100 cubic m of gas is 3.255704 kg\n" + ] + } + ], + "prompt_number": 36 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.23" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To calculate the composition at equilibrium assuming ideal behaviour\n", + "\n", + "from scipy.optimize import fsolve\n", + "\n", + "# Variables\n", + "P = 1.; \t\t\t#pressure in bar\n", + "K1 = 0.574; \t\t\t#equilibrium constant for eq. 9.88 (Page no. 437)\n", + "K2 = 2.21; \t\t\t#equilibrium constant for eq. 9.89 (Page no. 437)\n", + "\n", + "v1 = 1+3-1-1;\n", + "v2 = 1+1-1-1;\n", + "Ky1 = K1*P**-v1;\n", + "Ky2 = K2*P**-v2;\n", + "\n", + "# Calculations\n", + "#mole fractions in equilibrium mixture are:\n", + "#CH4: (1-e1)/(6+2e1)\n", + "#H2O: (5-e1-e2)/(6+2e1)\n", + "#CO: (e1-e2)/(6+2e1)\n", + "#H2: (3e1+e2)/(6+2e1)\n", + "#CO2: e2/(6+2e1)\n", + "\n", + "#For 1st reaction:\n", + "#Ky1 = [(e1-e2)(3e1+e2)**3]/[(1-e1)(5-e1-e2)(6+2e1)**2]\n", + "#For 2nd reaction:\n", + "#Ky2 = [e2(3e1+e2)]/[(e1-e2)(5-e1-e2)]\n", + "#on solving% we get:\n", + "\n", + "def f2(e):\n", + " f_1 = ((e[0]-e[1])*(3*e[0]+e[1])**3)/((1-e[0])*(5-e[0]-e[1])*(6+2*e[0])**2)-Ky1\n", + " f_2 = (e[1]*(3*e[0]+e[1]))/((e[0]-e[1])*(5-e[0]-e[1]))-Ky2\n", + " y = [f_1,f_2]\n", + " return y\n", + "eo = [0.9,0.6]; \t\t\t#initial guesses\n", + "e = fsolve(f2,eo)\n", + "\n", + "\t\t\t#Mole fraction of components:\n", + "n_m = (1-e[0])/(6+2*e[0])\n", + "n_w = (5-e[0]-e[1])/(6+2*e[0])\n", + "n_CO = (e[0]-e[1])/(6+2*e[0])\n", + "n_h = (3*e[0]+e[1])/(6+2*e[0])\n", + "n_c = e[1]/(6+2*e[0])\n", + "\n", + "# Results\n", + "print 'Mole fraction of the components are:'\n", + "print ' Methane = %f'%n_m\n", + "print ' Water = %f'%n_w\n", + "print ' Carbon monoxide = %f'% n_CO\n", + "print ' Hydrogen = %f'%n_h\n", + "print ' Carbon dioxide = %f'%n_c\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mole fraction of the components are:\n", + " Methane = 0.011240\n", + " Water = 0.441597\n", + " Carbon monoxide = 0.035687\n", + " Hydrogen = 0.430593\n", + " Carbon dioxide = 0.080883\n" + ] + } + ], + "prompt_number": 37 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 9.24" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# To determine the number of degrees of freedom\n", + "\n", + "# Variables\n", + "#A system consisting of CO% CO2% H2% H2O% CH4\n", + "\n", + "#To determine the number of degrees of freedom\n", + "\n", + "#Formation reactions for each of compounds is written\n", + "#a. C + 1/2O2 --> CO\n", + "#b. C + O2 --> CO2\n", + "#c. H2 + 1/2O2 --> H2O\n", + "#d. C + 2H2 --> CH4\n", + "\n", + "#Elements C and O2 are not present% so they are to be eliminated\n", + "#Combining a and b\n", + "#e. CO2 --> CO + 1/2O2\n", + "\n", + "#Combining a and d\n", + "#f. CH4 + 1/2O2 --> CO + 2H2\n", + "\n", + "#Combining c and e\n", + "#g. CO2 + H2 --> CO + H2O\n", + "\n", + "#Combining c and f\n", + "#h. 3H2 + CO --> CH4 + H2O\n", + "\n", + "#Equations g and h represent independent chemical reactions% so\n", + "r = 2.;\n", + "C = 5.; \t\t\t#no. of components\n", + "pi = 1.; \t\t\t#no. of phases\n", + "\n", + "# Calculations\n", + "#From eq. 9.90 (Page no. 438)\n", + "F = C-pi-r+2;\n", + "\n", + "# Results\n", + "print 'The number of degrees of freedom are %i'%F\n", + "\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The number of degrees of freedom are 4\n" + ] + } + ], + "prompt_number": 38 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file |