You are on page 1of 3

Series reaction in CSTR

A B C
K1 = 1 volume = 5 L CAi = 1 mol/L
K2 = 0.5 FAi = 1 m3/s
Assumptions:
1) Rection is assumed to take place in isothermal conditions. (Let the reactions be
exothermic, the heat added at each point is considered equal to the heat taken by
the coolant in the jacket), no need for energy balance.
2) Constant volume and density, perfectly mixed.
3) Perfectly insulated (no heat loss).

Overall balance:
𝑑(𝜌𝑉)
= FAi - F => FAi = F
𝑑𝑡

Component Balance:
A Balance
𝑑𝐶𝑎
= FAi (CAi -CA)/V - K1CA
𝑑𝑡

B Balance
𝑑𝐶𝑏
= - FAi CB/V - K2CB^2 + K1CA
𝑑𝑡

C Balance
𝑑𝐶𝑐
= - FAi CC/V + K2CB^2
𝑑𝑡

%%cstr.m%%

%CSTR, series reaction


%requires odes be in function 'rxnode'
global k1 k2 F_i V C_i %variables to share with
rxnode
%Set parameters
k1 = 1; k2 = 0.5;
C_i = 1; F_i = 1; V = 5;
tfin = 2;
%c is a matrix with three columns,one for each
species.
%each row will be for another time point.
%initial conditions
c0(1) = C_i; c0(2) = 0; c0(3) = 0;
[t,c] = ode45(@rxnode,[0 tfin],[1 0 0]);
ca = c(:,1);
cb = c(:,2);
cc = c(:,3);
plot(t,ca,t,cb,t,cc)
legend('Conc_A','Conc_B','Conc_C')
%subplot(311)%splits into three plots,selects plot
1 to draw
%plot(t,c(:,1),'Linewidth',2)%plots all rows column
1 of matrix c
xlabel('\bf time'), ylabel('\bf Concentration');
%subplot(312)%selects plot 2 to draw
%plot(t,c(:,2),'Linewidth',2)%plots all rows column
2 of matrix c
%xlabel('\bf time'), ylabel('\bf C_B');
%subplot(313)%selects plot 3 to draw
%plot(t,c(:,3),'Linewidth',2)%plots all rows column
3 of matrix c
%xlabel('\bf time'), ylabel('\bf C_C');

%%rxnode.m%%

function dC_dt = rxnode(t,C)


global k1 k2 F_i V C_i
dC_dt = zeros(3,1);
dC_dt(1) = F_i/V *(C_i - C(1)) - k1*C(1);
dC_dt(2) = k1*C(1) - k2*C(2)^2 - F_i*C(2)/V;
dC_dt(3) = k2*C(2)^2 - F_i*C(3)/V;
Final result:
Time(s) CA (mol/L) CB (mol/L) CC (mol/L)

2.0000 0.2423 0.5651 0.1927

You might also like