summaryrefslogtreecommitdiff
path: root/Fluidization_Engineering/ch18.ipynb
diff options
context:
space:
mode:
authorJovina Dsouza2014-06-18 12:43:07 +0530
committerJovina Dsouza2014-06-18 12:43:07 +0530
commit206d0358703aa05d5d7315900fe1d054c2817ddc (patch)
treef2403e29f3aded0caf7a2434ea50dd507f6545e2 /Fluidization_Engineering/ch18.ipynb
parentc6f0d6aeb95beaf41e4b679e78bb42c4ffe45a40 (diff)
downloadPython-Textbook-Companions-206d0358703aa05d5d7315900fe1d054c2817ddc.tar.gz
Python-Textbook-Companions-206d0358703aa05d5d7315900fe1d054c2817ddc.tar.bz2
Python-Textbook-Companions-206d0358703aa05d5d7315900fe1d054c2817ddc.zip
adding book
Diffstat (limited to 'Fluidization_Engineering/ch18.ipynb')
-rw-r--r--Fluidization_Engineering/ch18.ipynb573
1 files changed, 573 insertions, 0 deletions
diff --git a/Fluidization_Engineering/ch18.ipynb b/Fluidization_Engineering/ch18.ipynb
new file mode 100644
index 00000000..6826590f
--- /dev/null
+++ b/Fluidization_Engineering/ch18.ipynb
@@ -0,0 +1,573 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 : The Design of Noncatalytic Gas Solid Reactors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1, Page 456\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Kinetics of Zinc Blende Roasting\n",
+ "\n",
+ "#Variable Declaration\n",
+ "xA=0.08; #Fraction of oxygen in stream\n",
+ "dp=[2,0.1]; #Particle diameter in mm\n",
+ "rhos=4130; #Density of catalyst in kg/m**3\n",
+ "Ds=8E-6; #Diffusion coefficient of solid in m**2/s\n",
+ "kc=0.02; #Reaction rate constant in m/s\n",
+ "P=10**5; #Pressure in bar\\\n",
+ "R=8.314; #Universal gas constant\n",
+ "T=900; #Temperature in degree C\n",
+ "mB=0.09745; #Molecular weight of ZnS in kg/mol\n",
+ "\n",
+ "#CALCULATION\n",
+ "b=2.0/3;#Stoichiometric coefficient of ZnS in the reaction equation\n",
+ "CA=xA*P/(R*(T+273));#Concentration of Oxygen\n",
+ "rhob=rhos/mB; #Molar density of pure solid\n",
+ "n=len(dp);\n",
+ "i=0;\n",
+ "kbar = [0,0]\n",
+ "tou = [0,0]\n",
+ "while i<n:\n",
+ " kbar[i]=(kc**-1+(dp[i]*10**-3/(12.0*Ds)))**-1;#Average reaction rate constant from Eqn.(11)\n",
+ " tou[i]=rhob*dp[i]*10**-3/(2*b*kbar[i]*CA);#Time for complete reaction in seconds from Eqn.(9)\n",
+ " i=i+1;\n",
+ "\n",
+ "#OUTPUT\n",
+ "print 'Particle Size(mm)\\tAverage rate constant(m/s)\\tTime for complete reaction(min)'\n",
+ "i=0;\n",
+ "while i<n:\n",
+ " print '%f\\t\\t%f\\t\\t\\t%.2f'%(dp[i],kbar[i],tou[i]/60.0);\n",
+ " i=i+1;\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Particle Size(mm)\tAverage rate constant(m/s)\tTime for complete reaction(min)\n",
+ "2.000000\t\t0.014118\t\t\t91.49\n",
+ "0.100000\t\t0.019592\t\t\t3.30\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2, Page 457\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Kinetics of Carbon Burning\n",
+ "\n",
+ "#Variable Declaration\n",
+ "xA=0.08; #Fraction of oxygen in stream\n",
+ "dp=1; #Particle diameter in mm\n",
+ "rhos=2200; #Density of catalyst in kg/m**3\n",
+ "kc=0.2; #Reaction rate constant in m/s\n",
+ "mC=0.012; #Molecular weight of carbon in kg/mol\n",
+ "P=10**5; #Pressure in bar\\\n",
+ "R=8.314; #Universal gas constant\n",
+ "T=900; #Temperature in degree C\n",
+ "\n",
+ "#CALCULATION\n",
+ "b=1;#Stoichiometric coefficient of C in the reaction equation\n",
+ "CA=xA*P/(R*(T+273));#Concentration of Oxygen\n",
+ "rhob=rhos/mC;#Molar density of pure solid reactant\n",
+ "tou=rhob*10**-3/(2*b*kc*CA);#Time required for complete reaction in seconds\n",
+ "\n",
+ "#OUTPUT\n",
+ "print 'The time required for complete combustion:%.1fmins'%(tou/60);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The time required for complete combustion:9.3mins\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3, Page 462\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "from numpy import zeros\n",
+ "\n",
+ "\n",
+ "#INPUT\n",
+ "dp = 110.;#Particle size in micrometer\n",
+ "T = 900.;#Temperature of roaster in degree C\n",
+ "tbar1 = [3.,10.,30.,50.];#Reported average time in min\n",
+ "XBbarr = [0.840,0.940,0.985,0.990];#Reported value of average conversion\n",
+ "tbar = 3.;\n",
+ "XBbar = 0.840;#Average conversion for tbar = 3 mins\n",
+ "\n",
+ "#CALCULATION\n",
+ "#Uniform-Reaction Model\n",
+ "x = (1./tbar)*(1./(1-XBbar)-1);#Term KrCA of Eqn.(20)\n",
+ "n = len(tbar1);\n",
+ "i = 0;\n",
+ "XBbar1 = zeros(n)\n",
+ "while i< n:\n",
+ " XBbar1[i] = 1-1./(1+x*tbar1[i]);#Average conversion umath.sing calculated value of KrCA from Eqn.(20)\n",
+ " i = i+1;\n",
+ "\n",
+ "#Shrinking-Core, Rection Control\n",
+ "touguess = 2;#Guess value of tou\n",
+ "def solver_func(tou):#Function defined for solving the system\n",
+ " return (1-XBbar)-(0.25*tou/tbar)+(0.05*(tou/tbar)**2)-((1./120)*(tou/tbar)**3);\n",
+ "\n",
+ "tou = fsolve(solver_func,touguess)\n",
+ "i = 0;\n",
+ "XBbar2 = zeros(n)\n",
+ "while i<n:\n",
+ " XBbar2[i] = 1-(0.25*tou/tbar1[i])+(0.05*(tou/tbar1[i])**2)-((1./120)*(tou/tbar1[i])**3);#Average conversion umath.sing calculated value of tou from Eqn.(23)\n",
+ " i = i+1;\n",
+ "\n",
+ "#Shrinking-Core, Diffusion Control\n",
+ "touguess1 = 2;#Guess value of tou\n",
+ "def solver_func1(tou): #Function defined for solving the system\n",
+ " fn = (1-XBbar)-(1./5*tou/tbar)+(19./420*(tou/tbar)**2)-(41./4620*(tou/tbar)**3)+(0.00149*(tou/tbar)**4);\n",
+ "\n",
+ "tou1 = fsolve(solver_func1,touguess1)\n",
+ "i = 0;\n",
+ "XBbar3 = zeros(n)\n",
+ "while i< n:\n",
+ " #Average conversion umath.sing calculated value of tou from Eqn.(23)\n",
+ " XBbar3[i] = 1-(1./5*tou1/tbar1[i])+(19./420*(tou1/tbar1[i])**2)-(41./4620*(tou1/tbar1[i])**3)+(0.00149*(tou1/tbar)**4);\n",
+ " i = i+1;\n",
+ "\n",
+ "#OUTPUT\n",
+ "print '\\t\\t\\t\\tXBbar calculated for Models';\n",
+ "print 'Reported Data';\n",
+ "print 'tbarmin)\\tXBbar\\tUniform Reaction\\tShrinking-Core%( Rection Control\\t\\tShrinking-Core, Diffusion Control'\n",
+ "i = 0\n",
+ "while i< n:\n",
+ " print '%f\\t%f\\t%f\\t\\t%f\\t\\t\\t\\t%f'%(tbar1[i],XBbarr[i],XBbar1[i],XBbar2[i],XBbar3[i]);\n",
+ " i = i+1;\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\tXBbar calculated for Models\n",
+ "Reported Data\n",
+ "tbarmin)\tXBbar\tUniform Reaction\tShrinking-Core%( Rection Control\t\tShrinking-Core, Diffusion Control\n",
+ "3.000000\t0.840000\t0.840000\t\t0.840000\t\t\t\t0.884437\n",
+ "10.000000\t0.940000\t0.945946\t\t0.947234\t\t\t\t0.962033\n",
+ "30.000000\t0.985000\t0.981308\t\t0.981898\t\t\t\t0.987159\n",
+ "50.000000\t0.990000\t0.988701\t\t0.989075\t\t\t\t0.992366\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": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4, Page 462\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "from numpy import zeros\n",
+ "\n",
+ "\n",
+ "#INPUT\n",
+ "W = 1; #Bed weight in kg\n",
+ "F1 = 0.01; #Solid feed rate in kg/min\n",
+ "dp = [200.,600.]; #Particle size in micrometer\n",
+ "XBbar = [0.85,0.64]; #Average conversion for corresponding particle sizes\n",
+ "rhos = 2500.; #Density of solid in kg/m**3\n",
+ "ephsilonm = 0.4; #Void fracton of fixed bed\n",
+ "F11 = 4.; #Feed rate of solids in tons/hr\n",
+ "XBbar1 = 0.98;\n",
+ "dp1 = 600.;\n",
+ "pi = 3.14;\n",
+ "\n",
+ "#CALCULATION\n",
+ "#Shrinking-Core, Rection Control\n",
+ "n = len(dp);\n",
+ "i = 0;\n",
+ "touguess = 2;#Guess value of tou\n",
+ "tou = zeros(n)\n",
+ "while i< n:\n",
+ " def solver_func2(t): #Function defined for solving the system\n",
+ " return (1-XBbar[i])-(0.25*t/107)+(0.05*(t/107.)**2)-((1./120)*(t/107.)**3)\n",
+ " tou[i] = fsolve(solver_func2,touguess)\n",
+ " i = i+1;\n",
+ "\n",
+ "tou1 = tou[1];\n",
+ "#For a math.single stage fluidized roaster\n",
+ "tbar1 = 0.25*(tou1/(1-XBbar1))/60.; #Mean residence time of solids in reactor in hr from Eqn.(24)\n",
+ "W1 = F11*tbar1;\n",
+ "dtguess = 2.; #Guess value of tou\n",
+ "def solver_func3(dt): #Function defined for solving the system\n",
+ " return W1*10**3-(pi/4.)*dt**2*0.5*dt*rhos*(1-ephsilonm);#Since Lm = 0.5dt\n",
+ "\n",
+ "dt = fsolve(solver_func3,dtguess)\n",
+ "Lm = dt/2.;#Length of bed required\n",
+ "\n",
+ "#For a two-stage fluidized roaster\n",
+ "tbar2 = tou1*math.sqrt(1./(20*(1-XBbar1)))/60; #Mean residence time of solids in reactor in hr from Eqn.(30)\n",
+ "W2 = F11*tbar2;\n",
+ "dtguess1 = 2; #Guess value of tou\n",
+ "def solver_func4(dt): #Function defined for solving the system\n",
+ " return W2*10**3-(pi/4.)*dt**2*0.5*dt*rhos*(1-ephsilonm); #Since Lm = 0.5dt\n",
+ "\n",
+ "dt1 = fsolve(solver_func4,dtguess)\n",
+ "Lm1 = dt1/2.; #Length of bed required\n",
+ "\n",
+ "#OUTPUT\n",
+ "print 'Single stage fluidized roaster';\n",
+ "print '\\tWeight of bed needed:%ftons'%(W1);\n",
+ "print '\\tDiameter of reactor:%fm'%(dt);\n",
+ "print '\\tLength of bed:%fm'%(Lm);\n",
+ "print 'Two-stage fluidized roaster';\n",
+ "print '\\tWeight of bed needed:%ftons'%(W2);\n",
+ "print '\\tDiameter of reactor:%fm'%(dt1);\n",
+ "print '\\tLength of bed:%fm'%(Lm1);\n",
+ "print 'These results show that this operation can be accomplished in a math.single bed of %ftons or in two beds of %f tons each.'%(W1,W2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Single stage fluidized roaster\n",
+ "\tWeight of bed needed:174.370805tons\n",
+ "\tDiameter of reactor:6.665728m\n",
+ "\tLength of bed:3.332864m\n",
+ "Two-stage fluidized roaster\n",
+ "\tWeight of bed needed:22.056356tons\n",
+ "\tDiameter of reactor:3.346064m\n",
+ "\tLength of bed:1.673032m\n",
+ "These results show that this operation can be accomplished in a math.single bed of 174.370805tons or in two beds of 22.056356 tons each.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 5, Page 468\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "from numpy import zeros\n",
+ "\n",
+ "#INPUT\n",
+ "T = 900; #Temperature in roaster in degree C\n",
+ "P = 101325; #Pressure in Pa\n",
+ "R = 8.314; #Universal gas consmath.tant\n",
+ "dpbar = 150; #Average particle size in micrometer\n",
+ "rhosbar = 4130; #Average particle density in kg/m**3\n",
+ "kc = 0.015 #Rate consmath.tant in m/s for reaction which follows shrinking core model\n",
+ "Ds = 8E-6; #Diffusion coefficient of solid in m**2/s\n",
+ "uo = 0.6; #Superficial gas velocity in m/s\n",
+ "D = 2.3E-4; #Diffusion coefficient of gas in m**2/s\n",
+ "Lm = 1; #Length of fixed bed in m\n",
+ "dte = 0.4; #Equivalent diameter of bed\n",
+ "umf = 0.025; #Velocity at minimum fluidization condition in m/s\n",
+ "ephsilonm = 0.45; #Void fraction of fixed bed\n",
+ "ephsilonmf = 0.50; #Void fraction at minimum fluidized condition\n",
+ "db = 0.2; #Estimated bubble size in m\n",
+ "gammab = 0.005; #Ratio of volume of print ersed solids to that of bubble phase\n",
+ "Fo = 2; #Feed rate of solids in kg/s\n",
+ "XA = 0.6677; #Conversion of Oxygen\n",
+ "xA = 0.21; #Mole fraction of oxygen in feed\n",
+ "mB = 0.09744; #Molecular weight of ZnS\n",
+ "F = 0.85; #Fraction of open area\n",
+ "g = 9.81; #Acceleration due to gravity in square m/s**2\n",
+ "pi = 3.14;\n",
+ "\n",
+ "#CALCULATION\n",
+ "#(a)Extreme Calculation\n",
+ "a = 3./2;#Stoichiometric coefficient of Oxygen in the reaction equation\n",
+ "At = (Fo/mB)*(a)/(uo*(273./(T+273))*(XA*xA)/0.0224);\n",
+ "dt = math.sqrt(At/F*4/pi);\n",
+ "\n",
+ "#(b)The Three-Step Procedure\n",
+ "#Step 1. Conversion of gas\n",
+ "ubr = 0.711*(g*db)**0.5; #Rise velocity of bubble from Eqn.(6.7)\n",
+ "ub = 1.6*((uo-umf)+1.13*db**0.5)*dte**1.35+ubr; #Bubble rise velocity for Geldart B particle\n",
+ "\n",
+ "delta = uo/ub;#Fraction of bed in bubbles from Eqn.(6.29)\n",
+ "ephsilonf = 1-(1-delta)*(1-ephsilonmf); #Void fraction of fixed bed from Eqn.(6.20)\n",
+ "\n",
+ "fw = 0.15;#Wake volume to bubble volume from Fig.(5.8)\n",
+ "gammac = (1-ephsilonmf)*((3/(ubr*ephsilonmf/umf-1))+fw); #Volume of solids in cloud to that of the bubble from Eqn.(6.36)\n",
+ "gammae = ((1-ephsilonmf)*((1-delta)/delta))-gammab-gammac; #Volume of solids in emulsion to that of the bubble from Eqn.(6.35)\n",
+ "Kbc = 4.5*(umf/db)+5.85*((D**0.5*g**0.25)/db**(5./4)); #Gas interchange coefficient between bubble and cloud from Eqn.(10.27)\n",
+ "Kce = 6.77*((D*ephsilonmf*0.711*(g*db)**0.5)/db**3)**0.5; #Gas interchange coefficient between emulsion and cloud from Eqn.(10.34)\n",
+ "x = delta*Lm*(1-ephsilonm)/((1-ephsilonf)*uo); #Term Lf/ub of Eqn.(12.16) from Eqn.(6.19)\n",
+ "CAi = xA*P/(R*(T+273)); #Initial concentration of oxygen\n",
+ "\n",
+ "#Step 2.Conversion of solids\n",
+ "rhob = rhosbar/mB; #Density of ZnS\n",
+ "kbar = (kc**-1+(dpbar*10**-6/(12*Ds))**-1)**-1; #Modified rate consmath.tant from Eqn.(11)\n",
+ "tbar = At*Lm*(1-ephsilonm)*rhosbar/Fo; #Mean residence time of solids\n",
+ "Krguess = 2; #Guess value of Kr\n",
+ "def solver_func(Kr): #Function defined for solving the system\n",
+ " Kf = gammab*Kr+1/((1./Kbc)+(1./(gammac*Kr+1/((1./Kce)+(1./(gammae*Kr)))))); #Reaction rate for fluidized bed from Eqn.(14)\n",
+ " XA = 1-math.exp(-x*Kf); #Conversion of oxygen from Eqn.(42)\n",
+ " CAbar = (CAi*XA*uo)/(Kr*Lm*(1-ephsilonm)); #Average concentration of oxygen from Eqn.(43)\n",
+ " tou = rhob*dpbar*10**-6*a/(2*kbar*CAbar); #Time for complete reaction from Eqn.(9)\n",
+ " y = tbar/tou;#Term tbar/tou\n",
+ " XBbar = 3*y-6*y**2+6*y**3*(1-math.exp(-1/y)); #Average conversion of ZnS from Eqn.(22)\n",
+ " #Step 3. Material balance of both streams\n",
+ " return (Fo/mB)*XBbar-(At*uo*CAi*XA/a); #From Eqn.(44b)\n",
+ "\n",
+ "Kr = fsolve(solver_func,Krguess)\n",
+ "Kf = gammab*Kr+1/((1/Kbc)+(1/(gammac*Kr+1/((1/Kce)+(1/(gammae*Kr)))))); #Reaction rate for fluidized bed from Eqn.(14)\n",
+ "XA = 1-math.exp(-x*Kf); #Conversion of oxygen from Eqn.(42)\n",
+ "CAbar = (CAi*XA*uo)/(Kr*Lm*(1-ephsilonmf)); #Average concentration of oxygen from Eqn.(43)\n",
+ "tou = rhob*dpbar*10**-6*a/(2*kbar*CAbar); #Time for complete reaction from Eqn.(9)\n",
+ "y = tbar/tou; #Term tbar/tou\n",
+ "XBbar = 3*y-6*y**2+6*y**3*(1-math.exp(-1/y)); #Average conversion of ZnS from Eqn.(22)\n",
+ "\n",
+ "\n",
+ "#(c) For other feed rates of solids\n",
+ "F1 = [2,2.5,3,3.5];#Various feed rates of solids in kg/s\n",
+ "n = len(F1)\n",
+ "i = 0;\n",
+ "tbar1 = zeros(n)\n",
+ "Kr1 = zeros(n)\n",
+ "XA1 = zeros(n)\n",
+ "y1 = zeros(n)\n",
+ "tou1 = zeros(n)\n",
+ "XBbar1 = zeros(n)\n",
+ "Kf1 = zeros(n)\n",
+ "CAbar1 = zeros(n)\n",
+ "Krguess1 = 2; #Guess value of Kr\n",
+ "while i< n:\n",
+ " tbar1[i] = At*Lm*(1-ephsilonm)*rhosbar/F1[i];#Mean residence time of solids\n",
+ " def solver_func1(Kr): #Function defined for solving the system\n",
+ " Kf1 = gammab*Kr+1/((1/Kbc)+(1/(gammac*Kr+1/((1/Kce)+(1/(gammae*Kr))))));#Reaction rate for fluidized bed from Eqn.(14)\n",
+ " XA1 = 1-math.exp(-x*Kf1);#Conversion of oxygen from Eqn.(42)\n",
+ " CAbar1 = (CAi*XA1*uo)/(Kr*Lm*(1-ephsilonm));#Average concentration of oxygen from Eqn.(43)\n",
+ " tou1 = rhob*dpbar*10**-6*a/(2*kbar*CAbar1);#Time for complete reaction from Eqn.(9)\n",
+ " y1[i] = tbar1[i]/tou1;#Term tbar/tou\n",
+ " XBbar1[i] = 3*y1[i]-6*y1[i]**2+6*y1[i]**3*(1-math.exp(-1/y1[i]));#Average conversion of ZnS from Eqn.(22)\n",
+ " #Step 3. Material balance of both streams\n",
+ " return (F1[i]/mB)*XBbar1[i]-(At*uo*CAi*XA1/a);#From Eqn.(44b)\n",
+ "\n",
+ " Kr1[i] = fsolve(solver_func1,Krguess1)\n",
+ " Kf1[i] = gammab*Kr1[i]+1/((1/Kbc)+(1/(gammac*Kr1[i]+1/((1/Kce)+(1/(gammae*Kr1[i]))))));#Reaction rate for fluidized bed from Eqn.(14)\n",
+ " XA1[i] = 1-math.exp(-x*Kf1[i]);#Conversion of oxygen from Eqn.(42)\n",
+ " CAbar1[i] = (CAi*XA1[i]*uo)/(Kr1[i]*Lm*(1-ephsilonmf));#Average concentration of oxygen from Eqn.(43)\n",
+ " tou1[i] = rhob*dpbar*10**-6*a/(2*kbar*CAbar1[i]);#Time for complete reaction from Eqn.(9)\n",
+ " y1[i] = tbar1[i]/tou1[i];#Term tbar/tou\n",
+ " XBbar1[i] = 3*y1[i]-6*y1[i]**2+6*y1[i]**3*(1-math.exp(-1/y1[i]));#Average conversion of ZnS from Eqn.(22)\n",
+ " i = i+1;\n",
+ "\n",
+ "#OUTPUT\n",
+ "print 'Extreme Calculation';\n",
+ "print '\\tDiameter of tube with all its internals:%fm'%(dt);\n",
+ "print 'Three step procedure';\n",
+ "print '\\tConversion of ZnS:%f'%(XBbar);\n",
+ "print 'For other feed rates of solids';\n",
+ "print '\\tFeedkg/s\\ttbars\\t\\tXBbar/XA\\tKrbars**-1\\tCAbar/CAi\\ttous\\t\\tXA\\t\\tXB';\n",
+ "i = 0;\n",
+ "while i< n:\n",
+ " print '\\t%f\\t%f\\t%f\\t%f\\t%f\\t%f\\t%f\\t%f'%(F1[i],tbar1[i],XBbar1[i]/XA1[i],Kr1[i],CAbar1[i]/CAi,tou1[i],XA1[i],XBbar1[i]);\n",
+ " i = i+1;\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extreme Calculation\n",
+ "\tDiameter of tube with all its internals:7.265465m\n",
+ "Three step procedure\n",
+ "\tConversion of ZnS:0.992491\n",
+ "For other feed rates of solids\n",
+ "\tFeedkg/s\ttbars\t\tXBbar/XA\tKrbars**-1\tCAbar/CAi\ttous\t\tXA\t\tXB\n",
+ "\t2.000000\t40003.518104\t1.498777\t6.529973\t0.121691\t1208.748626\t0.662201\t0.992491\n",
+ "\t2.500000\t32002.814483\t1.201348\t23.149964\t0.041993\t3502.838402\t0.810111\t0.973225\n",
+ "\t3.000000\t26669.012069\t1.007581\t76.183481\t0.014228\t10338.227251\t0.903294\t0.910141\n",
+ "\t3.500000\t22859.153202\t0.871565\t146.263086\t0.007742\t18998.458994\t0.943693\t0.822490\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 6, Page 471\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.optimize import fsolve \n",
+ "import math \n",
+ "\n",
+ "\n",
+ "#INPUT\n",
+ "T = 900; #Temperature in roaster in degree C\n",
+ "P = 101325; #Pressure in Pa\n",
+ "R = 8.314; #Universal gas consmath.tant\n",
+ "dp = 750; #Particle size in micrometer5\n",
+ "Fo = 2.5; #Feed rate of solids in kg/s\n",
+ "uo = 0.6; #Superficial gas velocity in m/s\n",
+ "W = 80140; #Weight of bed in kg\n",
+ "ephsilonmf = 0.50; #Void fraction at minimum fluidized condition\n",
+ "umf = 0.5; #Velocity at minimum fluidization condition in m/s\n",
+ "db = 0.2; #Estimated bubble size in m\n",
+ "g = 9.81; #Acceleration due to gravity in square m/s**2\n",
+ "Lm = 1; #Length of fixed bed in m\n",
+ "ephsilonm = 0.45; #Void fraction of fixed bed\n",
+ "xA = 0.21; #Mole fraction of oxygen in feed\n",
+ "kc = 0.015 #Rate consmath.tant in m/s for reaction which follows shrinking core model\n",
+ "Ds = 8E-6; #Diffusion coefficient of solid in m**2/s\n",
+ "rhosbar = 4130; #Average particle density in kg/m**3\n",
+ "mB = 0.09744; #Molecular weight of ZnS\n",
+ "a = 3./2; #Stoichiometric coefficient of Oxygen in the reaction equation\n",
+ "\n",
+ "#CALCULATION\n",
+ "#Selection of models to represent reactor\n",
+ "ubr = 0.711*(g*db)**0.5; #Rise velocity of bubble from Eqn.(6.7)\n",
+ "f = ubr/(umf/ephsilonmf);\n",
+ "\n",
+ "#Step 1.\n",
+ "ub = uo-umf+ubr; #Rise velocity of bubbles from Eqn.(6.8)\n",
+ "delta = (uo-umf)/(ub+2*umf); #Fraction of the bed in bubbles from Eqn.(6.26)\n",
+ "Krguess = 2; #Guess value of Kr\n",
+ "x = Lm*(1-ephsilonm)*umf*(1-delta)/uo**2;\n",
+ "CAi = xA*P/(R*(T+273)); #Initial concentration of oxygen\n",
+ "\n",
+ "#Step 2.\n",
+ "kbar = (kc**-1+(dp*10**-6/(12*Ds))**-1)**-1; #Modified rate consmath.tant from Eqn.(11)\n",
+ "tbar = W/Fo; #Mean residence time of solids from Eqn.(14.2)\n",
+ "rhob = rhosbar/mB; #Density of ZnS\n",
+ "def solver_func1(Kr): #Function defined for solving the system\n",
+ " XA = 1-math.exp(-x*Kr); #Conversion from Eqn.(42)\n",
+ " CAbar = (CAi*XA*uo**2)/(Kr*Lm*(1-ephsilonm)*umf*(1-delta)); #Average concentration of oxygen from Eqn.(43)\n",
+ " tou = rhob*dp*10**-6*a/(2*kbar*CAbar); #Time for complete reaction from Eqn.(9)\n",
+ " y = tbar/tou; #Term tbar/tou\n",
+ " XBbar = 3*y-6*y**2+6*y**3*(1-math.exp(-1./y)); #Average conversion of ZnS from Eqn.(22)\n",
+ " return XBbar-1.2*XA; #From Table E5, for Fo = 2.5kg/s\n",
+ "\n",
+ "Kr = fsolve(solver_func1,Krguess)\n",
+ "XA = 1-math.exp(-x*Kr); #Conversion from Eqn.(42)\n",
+ "CAbar = (CAi*XA*uo**2)/(Kr*Lm*(1-ephsilonm)*umf*(1-delta)) #Average concentration of oxygen from Eqn.(43)\n",
+ "tou = rhob*dp*10**-6*a/(2*kbar*CAbar); #Time for complete reaction from Eqn.(9)\n",
+ "y = tbar/tou; #Term tbar/tou\n",
+ "XBbar = 3*y-6*y**2+6*y**3*(1-math.exp(-1./y)); #Average conversion of ZnS from Eqn.(22)\n",
+ "\n",
+ "#OUTPUT\n",
+ "print 'Selection of models to represent reactor';\n",
+ "print '\\tSince ratio ubr/umf/ephsilonmf) = %f <1 the reactor is operating in slow bubble regime'%(f);\n",
+ "print '\\tSince particle size = %f micrometer they react according to shrinking-core model'%(dp);\n",
+ "print '\\tConversion obtained for %f micrometer particle:%f'%(dp,XBbar);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Selection of models to represent reactor\n",
+ "\tSince ratio ubr/umf/ephsilonmf) = 0.995908 <1 the reactor is operating in slow bubble regime\n",
+ "\tSince particle size = 750.000000 micrometer they react according to shrinking-core model\n",
+ "\tConversion obtained for 750.000000 micrometer particle:0.988127\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file