Chapter 18 Solid Catalyzed Reactions

Example 18.1 pageno : 407

In [1]:
import math 

# Variables
dp = 2.4*(10**-3);L = dp/6;
De = 5*10**-5;
Keff = 1.6;
h = 160.                #heat transfer coefficient(KJ/hr.m2cat.K)
kg = 300.               #mass transfer coefficient(m3/hr.m2cat)
Hr = -160.              #KJ/molA
CAg = 20.               #mol/m3
rA_obs = 10.**5         #mol/hr.m3cat

# Calculations and Results
kobs = rA_obs/CAg;
Vp = 3.14*(dp**3)/6;
S = 3.14*(dp**2);
ratio = kobs*Vp/(kg*S);

print " Part a"
if ratio<0.01 :
    print " Resistance to mass transport to film should not influence rate of reaction"
else:
    print " Resistance to mass transport to film should influence rate of reaction"


print " Part b"

Mw = rA_obs*(L**2)/(De*CAg);
print " Mw =  %.f"%(Mw)
if Mw>4:
    print " Pore diffusion is influencing and hence strong pore diffusion"
else:
    print " Pore diffusion is  not influencing and hence weak pore diffuusion"

dt_max_pellet = De*(CAg-0)*(-Hr)/Keff;
#Temp variation Across the gas film
dt_max_film = L*rA_obs*(-Hr)/h;

print " Part c"
print " dTmax,pellet is %.1f C"%(dt_max_pellet)
print " degree C  dTmax,film is %.2f C"%(dt_max_film)
print " degree C"
if dt_max_pellet<1:
    print " Pellet is close to uniform in temperature"
else:
    print " There is a variation in temp within pellet"
if dt_max_film<1:
    print " Film is close to uniform in temperature"
else:
    print " There is a variation in temp within Film"
 Part a
 Resistance to mass transport to film should not influence rate of reaction
 Part b
 Mw =  16
 Pore diffusion is influencing and hence strong pore diffusion
 Part c
 dTmax,pellet is 0.1 C
 degree C  dTmax,film is 40.00 C
 degree C
 Pellet is close to uniform in temperature
 There is a variation in temp within Film

Example 18.2 page no : 408

In [2]:
%matplotlib inline

from matplotlib.pyplot import *
from numpy import *
import math 
from scipy import stats

# Variables
PAo = 3.2;
R = 0.082           #litre.atm/mol.k
T = 390.            #k
v = 20.             #litre/hr
W = 0.01            #/kg
CA_in = [0.1,0.08,0.06,0.04];
CA_out = [0.084,0.07,0.055,0.038];

# Calculations
CAo = PAo/(R*T);
FAo = CAo*v;
eA = 3;

XA_in = zeros(4)
XA_out = zeros(4)
dXA = zeros(4)
rA = zeros(4)
CA_avg = zeros(4)

for i in range(4):
    XA_in[i] = (1-CA_in[i]/CAo)/(1+eA*CA_in[i]/CAo);
    XA_out[i] = (1-CA_out[i]/CAo)/(1+eA*CA_out[i]/CAo);
    dXA[i] = XA_out[i]-XA_in[i];
    rA[i] = dXA[i]/(W/FAo);
    CA_avg[i] = (CA_in[i]+CA_out[i])/2;

# Results
plot(CA_avg,rA)
xlabel("CA, mol/liter")
ylabel("-rA, mol/hr. kg cat")
coeff1 = stats.linregress(CA_avg,rA)
k = coeff1[0]
print " The rate of reaction is %.3f mol/hr.kg"%(k),
print "CA"
print ('The answer slightly differs from those given in book as regress fn is\
 used for calculating slope and intercept')
Populating the interactive namespace from numpy and matplotlib
 The rate of reaction is 109.395 mol/hr.kg CA
The answer slightly differs from those given in book as regress fn is used for calculating slope and intercept

Example 18.3 pageno : 410

In [3]:
%matplotlib inline
from numpy import zeros
from scipy import stats


# Variables
CAo = 0.1           #mol/litre
FAo = 2.            #mol/hr
eA = 3.
CA = [0.074,0.06,0.044,0.029]           #mol/litre
W = [0.02,0.04,0.08,0.16]               #kg

XA = zeros(4)
y = zeros(4)
x = zeros(4)
W_by_FAo = zeros(4)
CAout_by_CAo = zeros(4)
XA1 = zeros(4)

# Calculations
for i in range(4):
    XA[i] = (CAo-CA[i])/(CAo+eA*CA[i]);
    y[i]  = (1+eA)*math.log(1/(1-XA[i]))-eA*XA[i];
    x[i] = CAo*W[i]/FAo;
    W_by_FAo[i] = W[i]/FAo;
    CAout_by_CAo[i] = CA[i]/CAo;
    XA1[i] = (1-CAout_by_CAo[i])/(1+eA*CAout_by_CAo[i]);

# Results
plot(x,y)
xlabel("CA0W/FAO = W/20, hr.kg cat/liter")
ylabel("4 ln 1/(1-Xa) -3Xa")
coeff3 = stats.linregress(x,y);
k = coeff3[0];
print " Part a, using integral method of analysis"
print " The rate of reactionmol/litre is %.3f"%(k),
print "CA"

#Part b
#plotting W_by_FAo vs XA1,the calculating rA = dXA/d(W/FAo) for last 3 points,we get
rA = [5.62,4.13,2.715];
coeff2 = stats.linregress(CA[1:],rA);

print " Part b, using differential method of analysis"
print " The rate of reactionmol/litre) is %.3f"%(coeff2[0]),
print "CA"
Populating the interactive namespace from numpy and matplotlib
 Part a, using integral method of analysis
 The rate of reactionmol/litre is 96.804 CA
 Part b, using differential method of analysis
 The rate of reactionmol/litre) is 93.703 CA

Example 18.4 pageno : 413

In [3]:
import math 

# Variables
# from example 18.2
XA = 0.35;
FAo = 2000.         #mol/hr
eA = 3.
k = 96.
CAo = 0.1;

# Calculations
W = ((1+eA)*math.log(1./(1-XA))-eA*XA)*(FAo/(k*CAo));

# Results
print " The amount of catalyst kg needed in a packed bed reactor is %.f kg"%(W)
 The amount of catalyst kg needed in a packed bed reactor is 140 kg

Example 18.5 pageno : 414

In [1]:
%matplotlib inline

import math 
from matplotlib.pyplot import *
from numpy import *
from scipy import *

# Variables
CAo = 0.1;
eA = 3;
rA = [3.4,5.4,7.6,9.1];            # mol A/hr. kg cat
CA = [0.039,0.0575,0.075,0.092];   # mol/liter

# Calculations
XA = zeros(5);
inv_rA = zeros(5);
for i in range(4):
    XA[i] = (1-CA[i]/CAo)/(1+eA*CA[i]/CAo);
    inv_rA[i] = 1/rA[i];

for i in range(4):
    small = XA[i];
    for j in range(i,4):
        next_ = XA[j];
        if small>next_:
            XA[i],XA[j] = XA[j],XA[i];
            inv_rA[i],inv_rA[j] = inv_rA[j], inv_rA[i]


# Results
plot(XA,inv_rA)
xlabel("Xa, dimensionless")
ylabel("-1/rA, hr.kg cat/mol")
show()
XA[4] = 0.35
inv_rA[4] = 0.34;
Area = trapz(XA,inv_rA);
W = Area*2000.;
print "Amount of catalyst needed is %.f kg cat"%(W)
print ('The answer differs from those given in book as trapezoidal rule is used for calculating area')

# Note : Answer differs because python trepz function works differnt than we do manually trepezoidal method.
Populating the interactive namespace from numpy and matplotlib
Amount of catalyst needed is 91 kg cat
The answer differs from those given in book as trapezoidal rule is used for calculating area

Example 18.6 pageno : 416

In [5]:
# Variables
XA = 0.35;
FAo = 2000.             #mol/hr
CAo = 0.1               #mol/litre
eA = 3.
k = 96.                 # mol/kg cat

# Calculations
CA = CAo*((1-XA)/(1+eA*XA))
rA = k*CA;
W = FAo*XA/rA;

# Results
print "The amount of catalyst neededkg, is %.f kg"%(W)
The amount of catalyst neededkg, is 230 kg
In [ ]: