summaryrefslogtreecommitdiff
path: root/Fluidization_Engineering/ch15.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Fluidization_Engineering/ch15.ipynb')
-rw-r--r--Fluidization_Engineering/ch15.ipynb296
1 files changed, 296 insertions, 0 deletions
diff --git a/Fluidization_Engineering/ch15.ipynb b/Fluidization_Engineering/ch15.ipynb
new file mode 100644
index 00000000..77a4d951
--- /dev/null
+++ b/Fluidization_Engineering/ch15.ipynb
@@ -0,0 +1,296 @@
+{
+ "metadata": {
+ "name": "ch15"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 : Circulation Systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 1, Page 369\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Circulation Rate when Deactivation Controls\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=1; #Half life of catalyst in s\n",
+ "F=960; #Feed rate of oil in tons/day\n",
+ "W=50; #Weight of the bed in tons\n",
+ "a=0.5; #Activity after time equal to half life\n",
+ "abar=0.01; #Average activity of the catalyst\n",
+ "\n",
+ "#CALCULATION\n",
+ "Ka=-math.log(a)/thalf;#Rate constant is s**-1, assuming I order kinetics from Eqn.(12)\n",
+ "Fs=Ka*W*abar/(1-abar);#Circulation rate of solids from Eqn.(16)\n",
+ "x=(Fs*60*60*24.0)/F; #Circulation rate per feed of oil\n",
+ "\n",
+ "#OUTPUT\n",
+ "print '\\nSolid recirculation per feed of oil =%ftons of solid circulated/ton feed oil'%x\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Solid recirculation per feed of oil =31.506690tons of solid circulated/ton feed oil\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 2, Page 370\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Circulation Rate when Heat Duty Controls\n",
+ "\n",
+ "#Variable declaration\n",
+ "deltaHr1=1260.; #Enthalpy change during endothermic reaction in kJ/kg\n",
+ "deltaHr2=-33900.; #Enthal[y change during exothermic reaction in kJ/kg\n",
+ "H1=703.; #Enthalpy of feed oil in kJ/kg\n",
+ "T1=260.; #Temperature of feed oil in degree celcius\n",
+ "H3=1419.; #Enthalpy of cracked product in kJ/kg\n",
+ "T3=500.; #Temperature of cracked product in degree celcius\n",
+ "Ta=20.; #Temperature of entering air in degree celcius\n",
+ "Cpa=1.09; #Specific heat of entering air in kJ/kg K\n",
+ "Cpf=1.05; #Specific heat of flue gases in kJ/kg K\n",
+ "Cps=1.01; #Specific heat of solids in kJ/kg K\n",
+ "Cpv=3.01; #Specific heat of vaporized feed in kJ/kg K\n",
+ "T4=[520.,540.,560.,580.,600.,620.,640.,660.]; #Temperature of flue gas in degree celcius\n",
+ "V=22.4; #Volume of 1 mole of Carbon dioxide gas in N-m**3\n",
+ "M=12.; #Molecular weight of carbon in kg\n",
+ "rho=1.293; #Density of carbon dioxide gas in kg/N-m**3\n",
+ "xa=0.21; #Mass fraction of oxygen in air\n",
+ "betac=0.07; #Mass fraction of carbon\n",
+ "\n",
+ "#CALCULATION\n",
+ "n=len(T4);\n",
+ "i=0;\n",
+ "x1 = [0,0,0,0,0,0,0,0]\n",
+ "x2 = [0,0,0,0,0,0,0,0]\n",
+ "excess_air = [0,0,0,0,0,0,0,0]\n",
+ "\n",
+ "x2min=betac*(V*rho/(M*xa));#Minimum amount of air required for complete combustion\n",
+ "while i<n:\n",
+ " x1[i]=(deltaHr1+0.93*H3-H1)/(Cps*(T4[i]-T3));#Fs/F1 by simplifying the overall energy balance\n",
+ " x2[i]=((0.07*(-deltaHr2)-(deltaHr1+0.93*H3-H1))/(Cpf*(T4[i]-Ta)))-0.07;#F2/F1 by simplifying the energy balance for regenerator\n",
+ " if x2[i]>x2min:\n",
+ " excess_air[i]=(x2[i]-x2min)/x2min; #Excess air used\n",
+ " else:\n",
+ " excess_air[i]=0;\n",
+ " i=i+1;\n",
+ "\n",
+ "#OUTPUT \n",
+ "print 'T4(degree celcius)',\n",
+ "print '\\tFs/F1',\n",
+ "print '\\t\\tF2/F1',\n",
+ "print '\\t\\tExcess air(percentage)'\n",
+ "i=0;\n",
+ "while i<n:\n",
+ " print '%f'%T4[i],\n",
+ " print '\\t\\t%f'%x1[i],\n",
+ " print '\\t%f'%x2[i],\n",
+ " print '\\t%f'%(excess_air[i]*100);\n",
+ " i=i+1;\n",
+ "\n",
+ "#Disclaimer: The values of F2/F1 obtained by manual calculation has close correspondance to the ones obtained as the output, whereas it deviates largely from the values given in textbook.\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T4(degree celcius) \tFs/F1 \t\tF2/F1 \t\tExcess air(percentage)\n",
+ "520.000000 \t\t92.904455 \t0.875390 \t8.807235\n",
+ "540.000000 \t\t46.452228 \t0.839029 \t4.287699\n",
+ "560.000000 \t\t30.968152 \t0.805362 \t0.102944\n",
+ "580.000000 \t\t23.226114 \t0.774099 \t0.000000\n",
+ "600.000000 \t\t18.580891 \t0.744992 \t0.000000\n",
+ "620.000000 \t\t15.484076 \t0.717825 \t0.000000\n",
+ "640.000000 \t\t13.272065 \t0.692412 \t0.000000\n",
+ "660.000000 \t\t11.613057 \t0.668586 \t0.000000\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 3, Page 379\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Aeration of Fine Particle Downcomer\n",
+ "\n",
+ "#Variable declaration\n",
+ "Fs=100.; #Solid flowrate in kg/s\n",
+ "ephsilon1=0.55;\n",
+ "ephsilon2=0.5;\n",
+ "p1=120.; #Pressure at upper level in kPa\n",
+ "rhos=1000.; #Density of solid in kg/m**3\n",
+ "rhog=1.; #Density of gas in kg/m**3\n",
+ "gc=1.; #Conversion factor\n",
+ "g=9.81; #Acceleration due to gravity in m/s**2\n",
+ "di=0.34; #Diameter of downcomer in m\n",
+ "pi=3.14;\n",
+ "\n",
+ "#CALCULATION\n",
+ "x=(ephsilon1/ephsilon2)*((1-ephsilon2)/(1-ephsilon1));#To find pressure at lower level using Eqn.(30)\n",
+ "p2=x*p1;#Pressure at lower level using Eqn.(30)\n",
+ "deltap=p2-p1;\n",
+ "ephsilonbar=0.5*(ephsilon1+ephsilon2);\n",
+ "deltah=(deltap*10**3*gc)/(rhos*(1-ephsilonbar)*g);#Static head height from Eqn.(28)\n",
+ "At=0.25*pi*di**2;#Area of downcomer\n",
+ "Gs=Fs/At;#Flux of solids in downcomer\n",
+ "Gg=Gs*(ephsilon1/(1-ephsilon1))*(rhog/rhos)*(x-1);#Required gas aeration rate from Eqn.(31)\n",
+ "Fg=Gg*At;#Flow rate of gas required\n",
+ "\n",
+ "#OUTPUT\n",
+ "print '\\nThe required flow rate of gas required for location of %fm below downcomer is %.4fkg/s'%(deltah,Fg)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The required flow rate of gas required for location of 5.722768m below downcomer is 0.0272kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 4, Page 380\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Circulation in Side-by-Side Beds\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "Fs=600;#Solid circulation rate in kg/s\n",
+ "dpbar=60;#Mean size of solids in micrometer\n",
+ "pA=120;#Pressure in vessel A in kPa\n",
+ "pB=180;#Pressure in vessel B in kPa\n",
+ "LfA=8;#Bed height in vessel A in m\n",
+ "LfB=8;#Bed height in vessel B i m\n",
+ "#Bulk densities in kg/m**3\n",
+ "rho12=100;\n",
+ "rho34=400;\n",
+ "rho45=550;\n",
+ "rho67=200;\n",
+ "rho78=200;\n",
+ "rho910=400;\n",
+ "rho1011=400;\n",
+ "rho1112=550;\n",
+ "rho13=100;\n",
+ "deltapdA=7;#Pressure drop across the distributor in regenerator in kPa\n",
+ "deltapdB=8;#Pressure drop across the distributor in reactor in kPa\n",
+ "deltap12=(9+4);#Friction loss and pressure difference required to accelerate the solids in transfer lines in kPa\n",
+ "deltap78=(15+3);#Friction loss and pressure difference required to accelerate the solids in transfer lines in kPa\n",
+ "deltap45=20;#Friction loss across the reactor's stripper downcomer in kPa\n",
+ "deltap1112=4;#Friction loss across the regenerator's downcomer in kPa\n",
+ "deltapvA=5;#Pressure drop assigned for the control valve in regenerator in kPa\n",
+ "deltapvB=15;#Pressure drop assigned for the control valve in reactor in kPa\n",
+ "deltah12=15;#Height of the riser in m\n",
+ "deltah86=30;#Height of the riser in m\n",
+ "deltah1011=7;#Height difference h10-h11 in m\n",
+ "g=9.81;#Acceleration due to gravity in m/s**2\n",
+ "gc=1;#Conversion factor\n",
+ "pi=3.14;\n",
+ "\n",
+ "#CALCULATION\n",
+ "Gs=900;#From Fig.(8), to find dt\n",
+ "dt=math.sqrt((4/math.pi)*Fs/Gs);#Diameter of the downcomer\n",
+ "#Height of downcomer A from Eqn.(7)\n",
+ "deltahA=(1/(rho1112*g))*((pB-pA)*gc*(10**3)+(deltap12+deltapdB+deltap1112+deltapvA)*gc*10**3-rho12*g*(-deltah12)-rho34*g*(-LfB)-rho1011*g*deltah1011);\n",
+ "#Height of downcomer B from Eqn.(8)\n",
+ "deltahB=(1/(rho45*g))*(-(pB-pA)*gc*10**3+(deltap45+deltapvB+deltap78+deltapdA)*gc*10**3+rho78*g*deltah86+rho910*g*LfA)\n",
+ "\n",
+ "#OUTPUT\n",
+ "print 'Height of downcomer for:'\n",
+ "print '\\tRegenerator:%d m'%deltahA\n",
+ "print '\\tReactor:%.1f m'%deltahB\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height of downcomer for:\n",
+ "\tRegenerator:20 m\n",
+ "\tReactor:16.7 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file