summaryrefslogtreecommitdiff
path: root/905/CH3
diff options
context:
space:
mode:
Diffstat (limited to '905/CH3')
-rwxr-xr-x905/CH3/EX3.1/3_1.sce40
-rwxr-xr-x905/CH3/EX3.10/3_10.sce48
-rwxr-xr-x905/CH3/EX3.2/3_2.sce32
-rwxr-xr-x905/CH3/EX3.3/3_3.sce42
-rwxr-xr-x905/CH3/EX3.4/3_4.sce40
-rwxr-xr-x905/CH3/EX3.5/3_5.sce41
-rwxr-xr-x905/CH3/EX3.6/3_6.sce63
-rwxr-xr-x905/CH3/EX3.7/3_7.sce104
-rwxr-xr-x905/CH3/EX3.8/3_8.sce57
-rwxr-xr-x905/CH3/EX3.9/3_9.sce48
10 files changed, 515 insertions, 0 deletions
diff --git a/905/CH3/EX3.1/3_1.sce b/905/CH3/EX3.1/3_1.sce
new file mode 100755
index 000000000..8f880281e
--- /dev/null
+++ b/905/CH3/EX3.1/3_1.sce
@@ -0,0 +1,40 @@
+clear;
+clc;
+
+// Illustration 3.1
+// Page: 161
+
+printf('Illustration 3.1 - Page: 161\n\n');
+
+// solution
+
+//*****Data*****//
+// a-benzene b-toluene
+T = 300; // [K]
+x_a = 0.4; // [mole fraction in liquid phase]
+// Antoine constants for benzene and toluene are given
+// For benzene
+A_a = 15.9008;
+B_a = 2788.51;
+C_a = -52.36;
+// For toluene
+A_b = 16.0137;
+B_b = 3096.52;
+C_b = -53.67;
+//*****//
+
+// Using equation 3.5 vapor pressure of component 'a' and 'b'
+P_a = exp(A_a-(B_a/(T+C_a))); // [mm of Hg]
+P_b = exp(A_b-(B_b/(T+C_b))); // [mm of Hg]
+
+P_a = P_a*101.3/760; // [kPa]
+P_b = P_b*101.3/760; // [kPa]
+// Partial pressure of component 'a' and 'b'
+p_a = x_a*P_a; // [kPa]
+p_b = (1-x_a)*P_b; // [kPa]
+P_total = p_a+p_b; // [kPa]
+
+printf("The total equilibrium pressure of the binary system of benzene and toluene is %f kPa\n\n",P_total);
+
+y_a = p_a/P_total; // [mole fraction in vapor phase]
+printf("The composition of the vapor in equilibrium is %f\n\n",y_a); \ No newline at end of file
diff --git a/905/CH3/EX3.10/3_10.sce b/905/CH3/EX3.10/3_10.sce
new file mode 100755
index 000000000..6b6ae0b5a
--- /dev/null
+++ b/905/CH3/EX3.10/3_10.sce
@@ -0,0 +1,48 @@
+clear;
+clc;
+
+// Illustration 3.10
+// Page: 199
+
+printf('Illustration 3.10 - Page: 199\n\n');
+
+// solution
+//*****Data*****//
+// From Example 3.7
+X2a = 0.05; X0 = X2a; // [kmole benzene/kmole oil]
+Y2a = 0.012; Y1 = Y2a; // [kmole benzene/kmole dry gas]
+X1a = 0.480; Xn = X1a; // [kmole benzene/kmole oil]
+Y1a = 0.080; Yn1 = Y1a; // [kmole benzene/kmole dry gas]
+// Ideal stages for absorber section
+
+m = 0.097; // [mole of oil/mole of dry gas]
+Lsa = 0.006; // [kmole/s]
+Vsa = 0.038; // [kmole/s]
+A = Lsa/(m*Vsa); // [Absorption factor]
+
+// From equation 3.54 by Kremser equation
+Nk = log((((Yn1-m*X0)*(1-1/A))/(Y1-m*X0))+1/A)/(log(A));
+printf("Number of ideal stages from Kremser equation in the absorber is %f\n\n",Nk);
+
+// Ideal stages from graph
+// Stair case construction is being made between equilibrium curve and operating line from piont X2a,Y2a to X1a,Y1a
+// A more precise estimate of stages
+// From figure 3.25 or from graph made for absorber in Example 3.7
+Xa = 0.283;
+Xb = 0.480;
+Xc = 0.530;
+Na = 3+(Xb -Xa)/(Xc-Xa);
+printf("The number of ideal stages from graph in the absorber is %f\n\n",Na);
+
+// Ideal satges for stripping section
+X2s = 0.480; X0 = X2s; // [kmol benzene/kmol oil]
+Y2s = 0.784; Y1 = Y2s; // [kmol benzene/kmol steam]
+X1s = 0.05; Xn = X1s; // [kmol benzene/kmol oil]
+Y1s = 0; Yn1 = Y1s; // [kmol benzene/kmol steam]
+
+// Similarly here also stair case construction is being made between equilibrium curve and operating line from piont X0,Y1 to Xn,Yn1
+// A more precise estimate of stages
+// From figure 3.26 or from graph made for stripping section in Example 3.7
+Ns = 5+(0.070-0.050)/(0.070-0.028);
+
+printf("The number of ideal stages from graph in the stripping section is %f\n\n",Ns); \ No newline at end of file
diff --git a/905/CH3/EX3.2/3_2.sce b/905/CH3/EX3.2/3_2.sce
new file mode 100755
index 000000000..7ef438910
--- /dev/null
+++ b/905/CH3/EX3.2/3_2.sce
@@ -0,0 +1,32 @@
+clear;
+clc;
+
+// Illustration 3.2
+// Page: 162
+
+printf('Illustration 3.2 - Page: 162\n\n');
+
+// solution
+//*****Data*****//
+// A-oxygen B-water
+T = 298; // [K]
+H = 4.5*10^4; // [atm/mole fraction]
+P = 1; // [atm]
+row_B = 1000; // [density of water, kg/cubic m]
+M_B = 18; // [Molecular mass of water, gram/mole]
+M_A = 32; // [,Molecular mass of oxygen, gram/mole]
+//*****//
+
+// Dry air contains 21% oxygen; then p_A = y*P = 0.21 atm
+// Therefore using Henry's Law
+p_A = 0.21; // [atm]
+x_A = p_A/H; // [mole fraction in liquid phase]
+
+// Basis: 1L of saturated solution
+// For 1 L of very dilute solution of oxygen in water, the total moles of solution, n_t, will be approximately equal to the moles of water
+n_t = row_B/M_B
+// Moles of oxygen in 1L saturated solution is
+n_o = n_t*x_A; // [mole]
+// Saturation concentration
+c_A = n_o*M_A*1000; // [mg/L]
+printf("The saturation concentration of oxygen in water exposed to dry air at 298 K and 1 atm is %f mg/L\n\n",c_A); \ No newline at end of file
diff --git a/905/CH3/EX3.3/3_3.sce b/905/CH3/EX3.3/3_3.sce
new file mode 100755
index 000000000..65b72412e
--- /dev/null
+++ b/905/CH3/EX3.3/3_3.sce
@@ -0,0 +1,42 @@
+clear;
+clc;
+
+// Illustration 3.3
+// Page: 162
+
+printf('Illustration 3.3 - Page: 162\n\n');
+
+// solution
+//*****Data*****//
+// a-ammonia b-air c-water
+T = 300; // [K]
+P = 101.3; // [kPa]
+R = 8.314; // [cubic m.Pa/mole.K]
+V_b = 15; // [cubic m]
+m_a = 10; // [kg]
+m_c = 45; // [kg]
+M_a = 17; // [molecular mass of ammonia, gram/mole]
+M_c = 18; // [molecular mass of water, gram/mole]
+//*****//
+
+n_b = V_b*P/(R*T); // [kmole]
+n_a = m_a/M_a; // [kmole]
+n_c = m_c/M_c; // [kmole]
+
+// L_a as the number of kmol of ammonia in the liquid phase when equilibrium is achieved
+// And n_a-L_a kmol of ammonia will remain in the gas phase
+// x_a = L_a/(n_c+L_a) (1)
+// y_a = (n_a-L_a)/(n_b+n_a-L_a) (2)
+// gamma = 0.156+0.622*x_a*(5.765*x_a-1) (3) for x_a <= 0.3
+// y_a = 10.51*gamma*x_a; (4)
+// Equations (1),(2),(3), and (4) are solved simultaneously
+deff('[y] = f12(L_a)','y = ((n_a-L_a)/(n_b+n_a-L_a))-(10.51*(0.156+(0.622*(L_a/(n_c+L_a))*(5.765*(L_a/(n_c+L_a))-1)))*(L_a/(n_c+L_a)))');
+L_a = fsolve(0.3,f12); // [kmole]
+
+x_a = L_a/(n_c+L_a);
+y_a = (n_a-L_a)/(n_b+n_a-L_a);
+gammma_a = 0.156+0.622*x_a*(5.765*x_a-1);
+
+printf("At equilibrium the ammonia content of the liquid phase will be %f\n\n",x_a);
+printf("At equilibrium the ammonia content of the gas phase will be %f\n\n",y_a);
+printf("The amount of ammonia absorbed by the water will be %f kmole\n\n",L_a); \ No newline at end of file
diff --git a/905/CH3/EX3.4/3_4.sce b/905/CH3/EX3.4/3_4.sce
new file mode 100755
index 000000000..bfa17d78f
--- /dev/null
+++ b/905/CH3/EX3.4/3_4.sce
@@ -0,0 +1,40 @@
+clear;
+clc;
+
+// Illustration 3.4
+// Page: 169
+
+printf('Illustration 3.4 - Page: 169\n\n');
+
+// solution
+//*****Data*****//
+// a-ammonia
+T = 300; // [K]
+P = 101.3; // [kPa]
+Kg = 2.75*10^-6; // [kmole/square m.s.kPa]
+m = 1.64;
+res = 0.85; // [gas phase resistance]
+xa_g = 0.115/100; // [mole fraction of NH3 in liquid phase at a point]]
+ya_g = 8/100; // [mole fraction of NH3 in gas phase at a point]
+//*****//
+
+Ky = Kg*P; // [kmole/square m.s]
+// Using equation 3.24
+ky = Ky/res; // [kmole/square m.s]
+// Using equation 3.21
+deff('[y] = f12(kx)','y = (m/kx)-(1/Ky)+(1/ky)');
+kx = fsolve(0.0029,f12); // [kmole/square m.s]
+
+// Interfacial concentrations at this particular point in the column, using equation (3.15)
+ystar_a = m*xa_g;
+// Using equation 3.12
+N_a = Ky*(ya_g-ystar_a); // [kmole/square m.s]
+// Gas-phase interfacial concentration from equation (3.9)
+ya_i = ya_g-(N_a/ky);
+// Since the interfacial concentrations lie on the equilibrium line, therefore
+xa_i = ya_i/m;
+// Cross checking the value of N_a
+N_a = kx*(xa_i-xa_g); // [kmole/square m.s]
+
+printf("The individual liquid film coefficient and gas film coefficient are %e kmole/square m.s %e kmole/square m.s respectively\n\n",kx,ky);
+printf("The gas phase and liquid phase interfacial concentrations are %f and %f respectively\n\n",ya_i,xa_i); \ No newline at end of file
diff --git a/905/CH3/EX3.5/3_5.sce b/905/CH3/EX3.5/3_5.sce
new file mode 100755
index 000000000..78a80578e
--- /dev/null
+++ b/905/CH3/EX3.5/3_5.sce
@@ -0,0 +1,41 @@
+clear;
+clc;
+
+// Illustration 3.5
+// Page: 171
+
+printf('Illustration 3.5 - Page: 171\n\n');
+
+// solution
+//*****Data*****//
+// a-ammonia
+T = 300; // [K]
+P = 101.3; // [kPa]
+ya_g = 0.6; // [ammonia concentration in bulk gas]
+xa_l = 0.12; // [ammonia concentration in bulk liquid]
+Fl = 3.5*10^-3; // [kmole/square m.s]
+Fg = 2*10^-3; // [kmole/square m.s]
+//*****//
+
+// Algebraic solution (a)
+
+// In gas phase substance 'A' is ammonia and 'B' is air
+// Assuming N_BG = 0 and sia_AG = 1 and
+// In liquid phase substance 'B' is water
+// Assuming N_BL = 0 and sia_AL = 1
+// Then equation 3.29 reduces to 3.30
+
+// Using equation 3.30, 3.8(a),3.6(a)
+// ya_i = 1-(1-ya_g)*((1-xa_l)/(1-xa_i))^(Fl/Fg) 3.30
+// ya_i = 10.51*gamma*xa_i 3.8(a)
+// gamma = 0.156+0.622*xa_i*(5.765*xa_i-1) 3.6(a)
+
+deff('[y] = f12(xa_i)','y = 1-(1-ya_g)*((1-xa_l)/(1-xa_i))^(Fl/Fg) - 10.51*(0.156+0.622*xa_i*(5.765*xa_i-1))*xa_i');
+xa_i = fsolve(0.2,f12);
+
+ya_i = 1-(1-ya_g)*((1-xa_l)/(1-xa_i))^(Fl/Fg);
+printf("The local gas and liquid interfacial concentrations are %f and %f respectively\n\n",ya_i,xa_i);
+// Using equation 3.28
+N_a = Fg*log((1-ya_i)/(1-ya_g));
+printf("The local ammonia mass-transfer flux is %e kmole/square m.s\n\n",N_a);
+ \ No newline at end of file
diff --git a/905/CH3/EX3.6/3_6.sce b/905/CH3/EX3.6/3_6.sce
new file mode 100755
index 000000000..8c3dff289
--- /dev/null
+++ b/905/CH3/EX3.6/3_6.sce
@@ -0,0 +1,63 @@
+clear;
+clc;
+
+// Illustration 3.6
+// Page: 175
+
+printf('Illustration 3.6 - Page: 175\n\n');
+
+// solution
+//*****Data*****//
+// a-methanol b-water
+T = 360; // [K]
+P = 101.3; // [kPa]
+lambda_a = 33.3; // [MJ/kmole]
+lambda_b = 41.3; // [MJ/kmole]
+Fg = 0.0017; // [kmole/square m.s]
+Fl = 0.0149; // [kmole/square m.s]
+yag = 0.36; // [bulk gas phase concentration]
+xag = 0.20; // [bulk liquid phase concentration]
+R = 1.987;
+//*****//
+
+// From energy balance
+// Nb = -(lambda_a/lambda_b)*Na
+// and sia_ag = sia_al = 1/(1-(lambda_a/lambda_b))
+sia_ag =5.155;
+sia_al = sia_ag;
+// Therefore equation 3.29 becomes
+// yai = 5.155-4.795(4.955/(5.155-xai))^8.765
+
+// Using equation 3.33, 3.34, 3.35
+V2 = 18.07; // [cubic cm/mole]
+V1 = 40.73; // [cubic cm/mole]
+a12 = 107.38; // [cal/mole]
+a21 = 469.5; // [cal/mole]
+
+// Solution of simultaneous equation
+function[f]=F(e)
+ f(1) = e(1)+e(2)-1;
+ f(2) = e(3)+e(4)-1;
+ f(3) = e(3)-5.155+4.795*(4.955/(5.155-e(1)))^(Fl/Fg);
+ f(4) = e(3)-((e(1)*exp(16.5938-(3644.3/(e(5)-33))))*(exp(-log(e(1)+e(2)*(V2/V1*exp(-a12/(R*e(5))))))+e(2)*(((V2/V1*exp(-a12/(R*e(5))))/(e(1)+e(2)*(V2/V1*exp(-a12/(R*e(5))))))-((V1/V2*exp(-a21/(R*e(5))))/(e(2)+e(1)*(V1/V2*exp(-a21/(R*e(5)))))))))/P;
+ f(5) = e(4)-((e(2)*exp(16.2620-(3800/(e(5)-47))))*(exp(-log(e(2)+e(1)*(V1/V2*exp(-a21/(R*e(5))))))-e(1)*(((V2/V1*exp(-a12/(R*e(5))))/(e(1)+e(2)*(V2/V1*exp(-a12/(R*e(5))))))-((V1/V2*exp(-a21/(R*e(5))))/(e(2)+e(1)*(V1/V2*exp(-a21/(R*e(5)))))))))/P;
+ funcprot(0);
+endfunction
+
+// Initial guess
+e =[0.1 0.9 0.2 0.8 300];
+y = fsolve(e,F);
+xai = y(1);
+xbi = y(2);
+yai = y(3);
+ybi = y(4);
+T = y(5); // [K]
+
+printf("yai is %f\n",yai);
+printf("ybi is %f\n",ybi);
+printf("xai is %f\n",xai);
+printf("xbi is %f\n",xbi);
+printf("Temperature is %f\n",T);
+// Local Methanol flux, using equation 3.28
+Na = sia_ag*Fg*log((sia_ag-yai)/(sia_ag-yag)); // [kmole/square m.s]
+printf("Local Methanol flux is %e kmole/square m.s\n\n",Na); \ No newline at end of file
diff --git a/905/CH3/EX3.7/3_7.sce b/905/CH3/EX3.7/3_7.sce
new file mode 100755
index 000000000..2e06030ec
--- /dev/null
+++ b/905/CH3/EX3.7/3_7.sce
@@ -0,0 +1,104 @@
+clear;
+clc;
+
+// Illustration 3.7
+// Page: 183
+
+printf('Illustration 3.7 - Page: 183\n\n');
+
+// solution
+//*****Data*****//
+// 1-benzene a-absorber s-steams
+T = 300; // [K]
+P = 101.3; // [kPa]
+R = 8.314; // [gas constant]
+v = 1; // [cubic m/s]
+// Gas in
+y1a = 0.074;
+// Liquid in
+x2a = 0.0476
+// Recovery is 85 %
+// Calculations for absorber section
+
+V1a = P*v/(R*T); // [kmole/s]
+// Inert gas molar velocity
+Vsa = V1a*(1-y1a); // [kmole/s]
+Y1a = y1a/(1-y1a); // [kmole of benzene/kmole of dry gas]
+
+X2a = x2a/(1-x2a); // [kmole of benzene/kmole of oil]
+// Since the absorber will recover 85% of the benzene in the entering gas, the concentration of the gas leaving it will be
+r = 0.85;
+Y2a = (1-r)*Y1a; // [kmole of benzene/kmole of dry gas]
+// The benzene-wash oil solutions are ideal, and the pressure is low; therefore, Raoult’s law applies. From equations 3.1, 3.44, and 3.45
+// yia = 0.136*xia
+// or Yia/(1+Yia) = 0.136*Xia/(1+Xia)
+
+// Data_eqm = [Xia Yia]
+Data_eqm = [0 0;0.1 0.013;0.2 0.023;0.3 0.032;0.4 0.04;0.6 0.054;0.8 0.064;1 0.073;1.2 0.080;1.4 0.086];
+
+// Here because of the shape of equilibrium curve, the operating line for minimum oil rate must be tangent to curve
+// Therefore
+// From the curve X1a_max = 0.91
+X1a_max = 0.91; // [kmol benzene/kmol oil]
+
+// For minimum operating line slope is
+S = (Y1a-Y2a)/(X1a_max-X2a); // [kmol oil/kmol air]
+// Therfore
+Lsa_min = S*Vsa; // [kmole oil/s]
+Data_minSlope1 = [X2a Y2a;X1a_max Y1a];
+
+// For Actual operating line, oil flow rate is twice the minimum
+Lsa = 2*Lsa_min; // [kmole oil/s]
+M_oil = 198; // [molecular weight of oil, gram/mole]
+
+Wsa = Lsa*M_oil; // [mass flow rate of oil, kg/s]
+// Using equation 3.47 to calculate the actual concentration of the liquid phase leaving the absorber
+X1a = X2a + Vsa*(Y1a-Y2a)/Lsa; // [kmol benzene/kmol oil]
+Data_opline1 = [X2a Y2a;X1a Y1a];
+
+scf(1);
+plot(Data_eqm(:,1),Data_eqm(:,2),Data_minSlope1(:,1),Data_minSlope1(:,2),Data_opline1(:,1),Data_opline1(:,2));
+xgrid();
+legend('Equilibrium line for absorber','Minimum Flow Rate Line for absorber','Operating Line for absorber');
+xlabel("Xa, mole benzene/mole oil");
+ylabel("Ya, mole benzene/mole air");
+
+// Calculations for stripping section
+Lss = Lsa;
+X2s = X1a;
+X1s = X2a;
+Y1s = 0;
+T = 373; // [K]
+// Applying Raoult’s law at this temperature gives us
+// yis = 1.77*xis
+// Yis/(1+Yis) = 1.77*Xis/(1+Xis)
+
+// Equilibrium data
+// Data_equm = [Xis Yis]
+Data_equm = [0 0;0.05 0.092;0.1 0.192;0.15 0.3;0.2 0.418;0.25 0.548;0.3 0.691;0.35 0.848;0.4 1.023;0.45 1.219;0.5 1.439];
+
+// Similar procedure as above is followed
+// The operating line for minimum oil rate must be tangent to curve
+// Therefore from the curve
+Y2s_max = 1.175; // [kmol benzene/kmol steam]
+S = (Y2s_max-Y1s)/(X2s-X1s); // [kmole oil/kmole steam]
+Vss_min = Lss/S; // [kmole/s]
+Vss = 1.5*Vss_min; // [kmole/s]
+Mss = 18; // [molecular weight of steam, gram/mole]
+Wss = Vss*Mss; // [kg steam/s]
+
+Data_minSlope2 = [X1s Y1s;X2s Y2s_max];
+
+Y2s_act = Y1s + Lss*(X2s-X1s)/Vss; // [kmol benzene/kmol steam]
+
+Data_opline2 = [X1s Y1s;X2s Y2s_act];
+
+
+scf(2);
+plot(Data_equm(:,1),Data_equm(:,2),Data_minSlope2(:,1),Data_minSlope2(:,2),Data_opline2(:,1),Data_opline2(:,2));
+xgrid();
+legend('Equilibrium line for stripping','Minimum Flow Rate for stripping Line','Operating Line for stripping');
+xlabel("Xa, mole benzene/mole oil");
+ylabel("Ya, mole benzene/mole air");
+
+printf("The oil circulation rate and steam rate required for the operation is %f kg/s %f kg steam/s respectively\n\n",Wsa,Wss); \ No newline at end of file
diff --git a/905/CH3/EX3.8/3_8.sce b/905/CH3/EX3.8/3_8.sce
new file mode 100755
index 000000000..73871f642
--- /dev/null
+++ b/905/CH3/EX3.8/3_8.sce
@@ -0,0 +1,57 @@
+clear;
+clc;
+
+// Illustration 3.8
+// Page: 190
+
+printf('Illustration 3.8 - Page: 190\n\n');
+
+// solution
+//*****Data*****//
+// 1-Nitrogen dioxide 2-air
+T = 298; // [K]
+P = 101.3; // [kPa]
+y1 = 0.015;
+V1 = 0.5; // [mass flow rate of the gas entering the adsorber, kg/s]
+M1 = 46; // [gram/mole]
+M2 = 29; // [gram/mole]
+// Data_eqm1 = [P1 m] (where 'P1' is Partial pressure of NO2 in mm of Hg, 'm' is solid concentration in kg NO2/kg gel)
+Data_eqm1 = [0 0;2 0.4;4 0.9;6 1.65;8 2.60;10 3.65;12 4.85];
+//*****//
+
+Y1 = y1*M1/((1-y1)*M2); // [kg NO2/kg air]
+// For 85% removal of the NO2,
+Y2 = 0.15*Y1; // [kg NO2/kg air]
+// Since the entering gel is free of NO2,
+X2 = 0;
+// The equilibrium data are converted to mass ratios as follows:
+// Yi = P1/(760-P1)*46/29 (kg NO2/kg air) Xi = m/100 (kg NO2/kg gel)
+// Equilibrium data
+// Data_eqm = [Xi*100 Yi*100]
+for i = 1:7;
+ Data_eqm(i,2) = Data_eqm1(i,1)*M1*100/((760-Data_eqm1(i,1))*M2);
+ Data_eqm(i,1) = Data_eqm1(i,2);
+end
+
+//Data_eqm = [0 0;0.4 0.42;0.9 0.83;1.65 1.26;2.6 1.69;3.65 2.11;4.85 2.54];
+
+// The operating line for minimum slope is tangent to curve, from which we get
+X1_max = 0.0375; // [kg NO2/kg gel]
+
+wb1 = 1/(1+Y1);
+Vs = V1*wb1; // [mass velocity of the air, kg/s]
+Ls_min = Vs*(Y1-Y2)/(X1_max-X2); // [kg gel/s]
+Data_minSlope = [X2 Y2;X1_max Y1]*100;
+// Operating line
+Ls = 2*Ls_min; // [kg gel/s]
+
+X1 = X2 + Vs*(Y1-Y2)/Ls; // [kg NO2/kg gel]
+
+scf(4);
+plot(Data_eqm(:,1),Data_eqm(:,2),Data_minSlope(:,1),Data_minSlope(:,2));
+xgrid();
+legend('Equilibrium line ','Minimum Flow Rate Line');
+xlabel("Xa*100, kg NO2/kg gel ");
+ylabel("Ya*100, kh NO2/kg air");
+
+printf("Mass flow rate of the and the composition of the gel leaving the absorber are %f kg/s and %f\n\n",Ls,X1); \ No newline at end of file
diff --git a/905/CH3/EX3.9/3_9.sce b/905/CH3/EX3.9/3_9.sce
new file mode 100755
index 000000000..36ad09018
--- /dev/null
+++ b/905/CH3/EX3.9/3_9.sce
@@ -0,0 +1,48 @@
+clear;
+clc;
+
+// Illustration 3.9
+// Page: 194
+
+printf('Illustration 3.9 - Page: 194\n\n');
+
+// solution
+//*****Data*****//
+// 1-Nitrogen dioxide 2-air
+// From Example 3.8
+Y1 = 0.0242; // [kg NO2/kg air]
+Y2 = 0.0036; // [kg NO2/kg air]
+Vs = 0.488; // [kg air/s]
+M1 = 46; // [gram/mole]
+M2 = 29; // [gram/mole]
+// However here
+X1 = 0;
+// Data_eqm1 = [P1 m] (where 'P1' is Partial pressure of NO2 in mm of Hg, 'm' is solid concentration in kg NO2/kg gel)
+Data_eqm1 = [0 0;2 0.4;4 0.9;6 1.65;8 2.60;10 3.65;12 4.85];
+
+// The equilibrium data are converted to mass ratios as follows:
+// Yi = P1/(760-P1)*46/29 (kg NO2/kg air) Xi = m/100 (kg NO2/kg gel)
+// Equilibrium data
+// Data_eqm = [Xi*100 Yi*100]
+for i = 1:7;
+ Data_eqm(i,2) = Data_eqm1(i,1)*M1*100/((760-Data_eqm1(i,1))*M2);
+ Data_eqm(i,1) = Data_eqm1(i,2);
+end
+
+// From the intersection of the minimum operating line and equilibrium curve
+X2_max = 0.0034; // [kg NO2/kg gel]
+S = (Y1-Y2)/(X1-X2_max); // [kg gel/kg air]
+Ls_min = -S*Vs; // [kg/s]
+
+Ls = 2*Ls_min; // [kg/s]
+Data_minSlope = [X1 Y1;X2_max Y2]*100;
+
+
+scf(4);
+plot(Data_eqm(:,1),Data_eqm(:,2),Data_minSlope(:,1),Data_minSlope(:,2));
+xgrid();
+legend('Equilibrium line ','Minimum Flow Rate Line');
+xlabel("Xa*100, kg NO2/kg gel");
+ylabel("Ya*100, kh NO2/kg air");
+
+printf("The mass velocity of the silica gel required for cocurrent operation is %f kg/s which is 11 times that required for countercurrent operation\n\n",Ls); \ No newline at end of file