Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

CL 335 Chemical Engineering Lab [2022]

Experiment Number RE 302

Title Flow Reactors - CSTR and PFR

Sub-group Code A4C

Date of Experiment 4 Feb 2022

Date of Report Submission 6 Feb 2022

Roll Number Name Responsibility owned


(data, analysis, plots, report,
none)

190020132 Vishesh Agarwal Report

190020117 Suyash Kamalakar Calculations, Plots

190020138 Siddharth Surana Hypothesis

190020078 Nilabja Mandal Presentation, Calculations

(For use by examiners only)

Criterion TA Grade Faculty assigned grade

Data analysis

Graphical plots

Inference

Report quality

Bonus marks (Y/N)

Initials with date

R&P TA initials with date


AIM:

To study and compare the performance of real and ideal PFRs for a given non-catalytic
homogeneous second order liquid phase reaction.

To study and compare the performance of real and ideal CSTR for a given non-catalytic
homogeneous second order liquid phase reaction.

APPARATUS:

Following materials are required for the above-mentioned experiment:


● Silicone tubes
● Stopwatch
● 50 cc burette
● 6 - 100 cc titration flasks
● 6 - 50 cc graduated cylinders
● 2 - Peristaltic pumps
● 0.1 N NaOH solution, NaOH pellets
● 0.1 N HCL solution
● 0.1 N Na2CO3 solution and 0.1 N Ethyl acetate solution

THEORY:

In this experiment, we study and observe PFR and CSTR flow reactors commonly used in the
industry

PFR known as Plug flow reactors are in which there is a feed following from one end to the
other and product is out via the other end. In PFR there is a concentration gradient that
changes along the length of the tube and not in the radial direction. Also, complete mixing
takes place perpendicular to the direction of flow.
The tube is tilted by an angle of 2-3 degrees to make this ideal PFR reactor where the tube is
completely wet
Design equation of PFR: τ = 𝐶𝐴0 ∫ 𝑅1 𝑑𝑋𝑎 0𝑎
Amount of HCl taken as quench: 𝐻𝐶𝑙 = 𝑉𝐻𝐶𝑙*𝑁𝐻𝐶𝑙 𝑔𝑚𝑜𝑙 𝑂 1000
Amount of HCl reacted with the unreacted NaOH of the reaction sample,
𝐻𝐶𝑙 = 𝐻𝐶𝑙 − 𝑉𝑁𝑎𝑂𝐻*𝑁𝑁𝑎𝑂𝐻 𝑔𝑚𝑜𝑙 𝑅 𝑂 100
Concentration of unreacted NaOH in the reaction mixture:
𝐶 = 𝐻𝐶𝑙𝑅 * 1000 𝑔𝑚𝑜𝑙/𝑙𝑖𝑡 𝐴 𝑉𝑠𝑎𝑚𝑝𝑙𝑒

CSTR known as Continuous Stirred Tank Reactor is a type of batch reactor where there is
continuous mixing takes place to increase the efficiency. There is mixing taking place
continuously and is axial mixing. The concentration and temperature are uniform throughout
the container so it really doesn’t matter from where we take the solution for titration. The exit
stream has the same properties as in the tank. In the experiment, we expect a difference in the
performance as we can’t make a complete ideal reactor.

SET - UP:
PROCEDURE:

1) Prepare 20 L of 0.1 N NaOH solution and ethyl acetate solution.


2) Fill the respective tanks with the solutions red for NaOH and Blue for ethyl
acetate.
3) Calibrate the pumps, before see if there are any bubbles and remove them.
Adjust the flow rate of the two streams so that both have the same flow rate.
4) Start the pumps simultaneously.Pass equimolar feed rates of the two reactants
into the PFR.
5) When the first drop of the reactant + product mixture comes from the outlet,
note the time required for the reaction mixture to reach the outlet (say, t) using
a stopwatch and collect 10 ml of sample from the PFR outlet, in a graduated
cylinder that already contains 10 ml of 0.1 N HCl
6) Transfer this solution 20 ml into a 250 ml or 100 ml titration flask using
phenolphthalein as indicator and titrate excess HCl against 0.1N NaOH.
7) Note the volume of NaOH. For each flow rate, take 4 samples coming from
the outlet with a time interval of t.
8) For calculating the conversion at equilibrium condition ie maximum
conversion
attainable collect 10 ml of sample in an empty conical flask and allow the
reaction to proceed for about two hours. Then titrate against 0.1 N HCl using
phenolphthalein as an indicator.
9) Repeat all the steps of the experiment for three different flow rates of feed.
Also repeat the steps for CSTR in 5th step replace PFR by CSTR.

Calibration of Pump

1. Tighten the pump by pushing the U shaped component


2. Remove any bubbles
3. Press calibrate on the pump
4. Collect the sample in a measuring cylinder and see if this flow rate matchs with our
calibrated value
5. If not adjust the calibration
6. After this you can set the flow of the pump you wanna measure readings for.
7. Press the start button to start the flow.
RAW DATA:

1. PFR

Flow Rate(ml/min) Time(sec) V(NaOH) Titre value (ml)


NaOH = 200 103 7.4
ETAC = 200 206 7.2
Total = 400 309 7
412 7.5

NaOH = 150 136 7.7


ETAC = 150 272 7.3
Total = 300 408 7.5
544 7.8

NaOH = 120 168 7.9


ETAC = 120 336 8.2
Total = 240 504 7.7
672 8.1

Volume of the reactor(ml) 675

Initial concentration-NaOH(gmol/lit) 0.05

HCl required at equilibrium (ml) 0.45

Rate constant (l/mol.s) 0.19


2. CSTR

Flow Rate(ml/min) Time(sec) V(NaOH) Titre value (ml)


NaOH = 200 321 7.9
ETAC = 200 624 7.6
Total = 400 936 7.8
1248 7.4

NaOH = 150 415 7.5


ETAC = 150 830 7.9
Total = 300 1245 8.2
1660 8

NaOH = 120 506 7.8


ETAC = 120 1012 8.3
Total = 240 1518 8.1
2024 8

Volume of the reactor(ml) 2050

Initial concentration-NaOH(gmol/lit) 0.05

HCl required at equilibrium (ml) 0.49

Rate constant (l/mol.s) 0.19

SAMPLE CALCULATIONS:
I. Calculation for PFR

For 200ml/min flow rate:

Titre value (Volume of NaOH) = 7.4 ml, 7.2 ml, 7.0 ml, 7.5 ml

Normality of NaOH = 0.1 N

Thus, Average titre value = 7.275 ml


(𝑉𝐻𝐶𝐿 ∗ 𝑁𝐻𝐶𝐿 )
𝐻𝐶𝐿0 = 1000
= 0.001 g mol

(𝑉𝑁𝑎𝑂𝐻 ∗ 𝑁𝑁𝑎𝑂𝐻 )
𝐻𝐶𝐿𝑅 = 𝐻𝐶𝐿0 - 1000
= 0.000272 gmol = 0.27 mmol

𝑉𝑆𝑎𝑚𝑝𝑙𝑒 = 10 ml

𝐻𝐶𝐿𝑅
𝐶𝐴 = 10
= 0.027 M

(𝐶𝐴0 − 𝐶𝐴 )
𝑋𝑒𝑥𝑝 = 𝐶𝐴0
= (0.05−0.027) / 0.05 = 0.455

Calculation of 𝑋𝑡ℎ𝑒𝑟𝑜 :

Volume of PFR = 675 ml and k = 0.19

Total flow rate through PFR(NaOH + Ethyl Acetate) = 400 ml/min

Residence time 𝜏 = 𝑉/𝑉0 = 101.25 sec

𝑘*𝐶𝐴0* 𝜏
For a second order reaction, 𝑋𝑡ℎ𝑒𝑟𝑜 = ( 1 + 𝑘*𝐶𝐴0* 𝜏 )
= 0.490

Equilibrium conversion calculation:

Volume of HCL required for titration at equilibrium, 𝑉𝑒𝑞 = 0.45 ml

( 𝑉𝑒𝑞 * 0.1 )
𝐶𝐴𝑒𝑞 = 1000
= 0.0045 mol/l

(𝐶𝐴0 − 𝐶𝐴𝑒𝑞 )
𝑋𝑒𝑞 = 𝐶𝐴0
= 0.999

II. Calculation for CSTR

For 200ml/min flow rate:

Titre value (Volume of NaOH) = 7.9 ml, 7.6 ml, 7.8 ml, 7.4 ml
Normality of NaOH = 0.1 N

Thus, Average titre value = 7.675 ml


(𝑉𝐻𝐶𝐿 ∗ 𝑁𝐻𝐶𝐿 )
𝐻𝐶𝐿0 = 1000
= 0.001 g mol

(𝑉𝑁𝑎𝑂𝐻 ∗ 𝑁𝑁𝑎𝑂𝐻 )
𝐻𝐶𝐿𝑅 = 𝐻𝐶𝐿0 - 1000
= 0.000232 gmol = 0.23 mmol

𝑉𝑆𝑎𝑚𝑝𝑙𝑒 = 10 ml

𝐻𝐶𝐿𝑅
𝐶𝐴 = 10
= 0.023 M

(𝐶𝐴0 − 𝐶𝐴 )
𝑋𝑒𝑥𝑝 = 𝐶𝐴0
= (0.05−0.023) / 0.05 = 0.535

Calculation of 𝑋𝑡ℎ𝑒𝑟𝑜 :

Volume of CSTR = 2050 ml and k = 0.19

Total flow rate through CSTR (NaOH + Ethyl Acetate) = 400 ml/min

Residence time 𝜏 = 𝑉/𝑉0 = 307.5 sec

𝑋𝑡ℎ𝑒𝑟𝑜
For a second order reaction, 𝑘 * 𝐶𝐴0 * 𝜏 = 2 ⇒ 𝑋𝑡ℎ𝑒𝑟𝑜 = 0.561
( 1 − 𝑋𝑡ℎ𝑒𝑟𝑜 )

Equilibrium conversion calculation:

Volume of HCL required for titration at equilibrium, 𝑉𝑒𝑞 = 0.49 ml

( 𝑉𝑒𝑞 * 0.1 )
𝐶𝐴𝑒𝑞 = 1000
= 0.0049 mol/l

(𝐶𝐴0 − 𝐶𝐴𝑒𝑞 )
𝑋𝑒𝑞 = 𝐶𝐴0
= 0.999

OBSERVATION TABLES:

1. PFR Calculations
Flow Rate(ml/min) 𝑋𝑡ℎ𝑒𝑟𝑜 𝑋𝑒𝑥𝑝 𝜏 ΔX % Error
200 0.490 0.455 101.25 0.0353 7.196
150 0.561 0.515 135.00 0.0468 8.344
120 0.616 0.595 168.75 0.0208 3.384

2. CSTR Calculations

Flow Rate(ml/min) 𝑋𝑡ℎ𝑒𝑟𝑜 𝑋𝑒𝑥𝑝 𝜏 ΔX % Error


200 0.561 0.535 307.5 0.0265 4.729
150 0.606 0.580 410.0 0.0257 4.237
120 0.638 0.610 512.5 0.0280 4.389

PLOTS:
OBSERVATIONS:

1. At all 3 flow rates, the conversion in CSTR is higher than the conversion of PFR. This
is due to the fact that the volume of CSTR is more than 3 times the volume of PFR.
2. Conversion decreases with increasing flow rates as residence time decreases
3. The theoretical value of conversion is higher than the experimental value because the
reactors are not ideal and there is no perfect mixing.

HYPOTHESIS:

1. These setups are made to make this reactors as close to the ideal case. We can notice
imperfect mixing taking place in CSTR which can be seen in the graph. The
conversion should have been same at every point but it doesn’t relate in our
experiment
2. The error in the conversion can be accounted due to following points
● Non ideal conditions
● Imperfect mixing

SOURCES OF ERROR:

The experiment contains multiple possibilities for errors in measurements like

- The apparatus’ least count


- The rate at which titration is performed
- The pH at which indicator changes colour (dependant of temperature, pressure
conditions)
- Concentration of HCl solution used for titration. To validate it’s normality, we should
neutralise it with a NaOH solution of same normality

SPECIAL QUESTION:

What can be the modifications made to the experiment?

● We can increase the speed of rotation in cstr tank as this will decrease the time
required for mixing which will in return increase conversion rate.
● We can a blades in the axial in cstr which increases the area swept and helps in more
uniform mixing..
● We can increase the length of the PFR and also decrease the tilt angle around 1 -1.5
deg

CODE:

import numpy as np
import matplotlib.pyplot as plt
import cmath

#PFR
fr = [200, 150, 120]
v_naoh = []
hcl_r = []
ca = []
X_exp = []
tau = []
X_th = []
hcl_0 = 1/1000
ca0 = 0.05
k = 0.19

#Flow rate = 200


v_naoh.append((7.4+7.2+7+7.5)/4)
hcl_r.append(hcl_0 - (v_naoh[0]*0.1)/1000)
ca.append(hcl_r[0]*1000/10)
X_exp.append((ca0 - ca[0])/ca0)
#Theoretical
tau.append((675/400)*60)
X_th.append(k*ca0*tau[0]/(1+k*ca0*tau[0]))

#Flow rate = 150


v_naoh.append((7.7+7.3+7.8+7.5)/4)
hcl_r.append(hcl_0 - (v_naoh[1]*0.1)/1000)
ca.append(hcl_r[1]*1000/10)
X_exp.append((ca0 - ca[1])/ca0)
#Theoretical
tau.append((675/300)*60)
X_th.append(k*ca0*tau[1]/(1+k*ca0*tau[1]))

#Flow rate = 120


v_naoh.append((7.9+8.2+7.7+8.1)/4)
hcl_r.append(hcl_0 - (v_naoh[2]*0.1)/1000)
ca.append(hcl_r[2]*1000/10)
X_exp.append((ca0 - ca[2])/ca0)
#Theoretical
tau.append((675/240)*60)
X_th.append(k*ca0*tau[2]/(1+k*ca0*tau[2]))

#Equilibrium
v_hcl = 0.45
c_hcl = (v_hcl*0.1)/1000
X_eq = (ca0 - c_hcl)/ca0

delta_x = []
error = []
for i in range(len(tau)):
delta_x.append(X_th[i] - X_exp[i])
error.append((delta_x[i]/X_th[i])*100)
#Plots
plt.scatter(fr, X_th,color='black',marker = 'x', s=100)
plt.scatter(fr, X_exp,color='black',marker = 'x', s=100)
plt.plot(fr,X_exp)
plt.plot(fr,X_th)
plt.grid()
plt.legend(['Experimental Conversion', 'Theorotical Conversion'],
prop={'size': 12})
plt.xlabel("Flow Rate (ml/min)", fontsize= 12)
plt.ylabel("Conversion", fontsize = 12)
plt.title("Conversion vs Flow Rate in PFR", fontsize = 14)
fig = plt.gcf()
fig.set_size_inches(9.25, 5.25, forward=True)

plt.scatter(tau, X_th,color='black',marker = 'x', s=100)


plt.scatter(tau, X_exp,color='black',marker = 'x', s=100)
plt.plot(tau,X_exp)
plt.plot(tau,X_th)
plt.grid()
plt.legend(['Experimental Conversion', 'Theoretical Conversion'],
prop={'size': 12})
plt.xlabel("Theoretical Residence Time (sec)", fontsize= 12)
plt.ylabel("Conversion", fontsize = 12)
plt.title("Conversion vs Theoretical Residence time in PFR", fontsize =
14)
fig = plt.gcf()
fig.set_size_inches(9.25, 5.25, forward=True)

#CSTR
v_naoh2 = []
hcl_r2 = []
ca2 = []
X_exp2 = []
tau2 = []
X_th2 = []
hcl_0 = 1/1000
ca0 = 0.05
k = 0.19
v_c = 2050
p = []
q = []

def solve(a,b,c):
d = (b**2) - (4*a*c) # discriminant
sol1 = (-b-cmath.sqrt(d))/(2*a)
sol2 = (-b+cmath.sqrt(d))/(2*a)
return sol1

#Flow rate = 200


v_naoh2.append((7.9+7.6+7.8+7.4)/4)
hcl_r2.append(hcl_0 - (v_naoh2[0]*0.1)/1000)
ca2.append(hcl_r2[0]*1000/10)
X_exp2.append((ca0 - ca2[0])/ca0)
#Theoretical
tau2.append((v_c/400)*60)
p.append(k*ca0*tau2[0])
q.append(solve(p[0], -(2*p[0]+1), p[0]).real)
X_th2.append(q[0])

#Flow rate = 150


v_naoh2.append((7.5+7.9+8.2+8)/4)
hcl_r2.append(hcl_0 - (v_naoh2[1]*0.1)/1000)
ca2.append(hcl_r2[1]*1000/10)
X_exp2.append((ca0 - ca2[1])/ca0)
#Theoretical
tau2.append((v_c/300)*60)
p.append(k*ca0*tau2[1])
q.append(solve(p[1], -(2*p[1]+1), p[1]).real)
X_th2.append(q[1])

#Flow rate = 120


v_naoh2.append((7.8+8.3+8.1+8)/4)
hcl_r2.append(hcl_0 - (v_naoh2[2]*0.1)/1000)
ca2.append(hcl_r2[2]*1000/10)
X_exp2.append((ca0 - ca2[2])/ca0)
#Theoretical
tau2.append((v_c/240)*60)
p.append(k*ca0*tau2[2])
q.append(solve(p[2], -(2*p[2]+1), p[2]).real)
X_th2.append(q[2])

#Equilibrium
v_hcl2 = 0.49
c_hcl2 = (v_hcl2*0.1)/1000
X_eq2 = (ca0 - c_hcl2)/ca0

delta_x2 = []
error2 = []
for i in range(len(tau)):
delta_x2.append(X_th2[i] - X_exp2[i])
error2.append((delta_x2[i]/X_th2[i])*100)
#Plots
plt.scatter(fr, X_th2,color='black',marker = 'x', s=100)
plt.scatter(fr, X_exp2,color='black',marker = 'x', s=100)
plt.plot(fr,X_exp2)
plt.plot(fr,X_th2)
plt.grid()
plt.legend(['Experimental Conversion', 'Theoretical Conversion'],
prop={'size': 12})
plt.xlabel("Flow Rate (ml/min)", fontsize= 12)
plt.ylabel("Conversion", fontsize = 12)
plt.title("Conversion vs Flow Rate in CSTR", fontsize = 14)
fig = plt.gcf()
fig.set_size_inches(9.25, 5.25, forward=True)

plt.scatter(tau2, X_th2,color='black',marker = 'x', s=100)


plt.scatter(tau2, X_exp2,color='black',marker = 'x', s=100)
plt.plot(tau2,X_exp2)
plt.plot(tau2,X_th2)
plt.grid()
plt.legend(['Experimental Conversion', 'Theoretical Conversion'],
prop={'size': 12})
plt.xlabel("Theoretical Residence Time (sec)", fontsize= 12)
plt.ylabel("Conversion", fontsize = 12)
plt.title("Conversion vs Theoretical Residence time in CSTR", fontsize =
14)
fig = plt.gcf()
fig.set_size_inches(9.25, 5.25, forward=True)

plt.scatter(fr, X_exp,color='black',marker = 'x', s=100)


plt.scatter(fr, X_exp2,color='black',marker = 'x', s=100)
plt.plot(fr,X_exp)
plt.plot(fr,X_exp2)
plt.grid()
plt.legend(['PFR Conversion', 'CSTR Conversion'], prop={'size': 12})
plt.xlabel("Flow Rate (ml/min)", fontsize= 12)
plt.ylabel("Conversion", fontsize = 12)
plt.title("Experimental Conversion vs Flow Rate", fontsize = 14)
fig = plt.gcf()
fig.set_size_inches(9.25, 5.25, forward=True)

plt.scatter(fr, X_th,color='black',marker = 'x', s=100)


plt.scatter(fr, X_th2,color='black',marker = 'x', s=100)
plt.plot(fr,X_th)
plt.plot(fr,X_th2)
plt.grid()
plt.legend(['PFR Conversion', 'CSTR Conversion'], prop={'size': 12})
plt.xlabel("Flow Rate (ml/min)", fontsize= 12)
plt.ylabel("Conversion", fontsize = 12)
plt.title("Theoretical Conversion vs Flow Rate", fontsize = 14)
fig = plt.gcf()
fig.set_size_inches(9.25, 5.25, forward=True)

You might also like