diff options
author | Prashant S | 2020-04-14 10:25:32 +0530 |
---|---|---|
committer | GitHub | 2020-04-14 10:25:32 +0530 |
commit | 06b09e7d29d252fb2f5a056eeb8bd1264ff6a333 (patch) | |
tree | 2b1df110e24ff0174830d7f825f43ff1c134d1af /Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez | |
parent | abb52650288b08a680335531742a7126ad0fb846 (diff) | |
parent | 476705d693c7122d34f9b049fa79b935405c9b49 (diff) | |
download | all-scilab-tbc-books-ipynb-master.tar.gz all-scilab-tbc-books-ipynb-master.tar.bz2 all-scilab-tbc-books-ipynb-master.zip |
Initial commit
Diffstat (limited to 'Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez')
9 files changed, 7124 insertions, 0 deletions
diff --git a/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/1-Fundamentals_of_Mass_transfer.ipynb b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/1-Fundamentals_of_Mass_transfer.ipynb new file mode 100644 index 0000000..b25c39e --- /dev/null +++ b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/1-Fundamentals_of_Mass_transfer.ipynb @@ -0,0 +1,1258 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1: Fundamentals of Mass transfer" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.10: Diffusion_Coefficients_in_the_System_Acetone_Benzene.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.10\n", +"// Page: 30\n", +"\n", +"printf('Illustration 1.10 - Page:30 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// acetone-1 benzene-2\n", +"T = 298; // [K]\n", +"x_1 = 0.7808;\n", +"x_2 = 1-x_1; \n", +"// The infinite dilution diffusivities are\n", +"D_12o = 2.75*10^-9; // [square m/s]\n", +"D_21o = 4.15*10^-9; // [square m/s]\n", +"// From the NRTL equation, for this system at the given temperature and concentration the thermodynamic correction factor r = 0.871.\n", +"r = 0.871;\n", +"D_12exp = 3.35*10^-9; // [square m/s]\n", +"//*****//\n", +"\n", +"// Using equation 1.56\n", +"D_12 = (D_12o^x_2)*(D_21o^x_1);\n", +"D_12 = D_12*r;\n", +"printf('The theoritical value of Fick diffusivity is %e square m/s',D_12);\n", +"// The predicted value of the Fick diffusivity is in excellent agreement with the experimental result." + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.11: Calculation_of_Effective_Diffusivity_in_a_Multicomponent_Gas_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.11\n", +"// Page: 33\n", +"\n", +"printf('Illustration 1.11 - Page:33 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// ammonia-1 nitrogen-2 hydrogen-3\n", +"T = 300; // [K]\n", +"P = 1; // [bar]\n", +"y_1 = .40;\n", +"y_2 = .20;\n", +"y_3 = .40;\n", +"//*****//\n", +"\n", +"// Lennard-Jones parameter for ammonia\n", +"sigma_1 = 2.9; // [Angstrom]\n", +"d_1 = 558.3; // [E/K, K]\n", +"M_1 = 17; // [gram/mole]\n", +"\n", +"// Lennard-Jones parameter for nitrogen\n", +"sigma_2 = 3.798; // [Angstrom]\n", +"d_2 = 71.4; // [E/K, K]\n", +"M_2 = 28; // [gram/mole]\n", +"\n", +"// Lennard-Jones parameter for hydrogen \n", +"sigma_3 = 2.827; // [Angstrom]\n", +"d_3 = 59.7; // [E/K, K]\n", +"M_3 = 2; // [gram/mole]\n", +"\n", +"// Binary diffusivitiy of ammonia in nitrogen (D_12)\n", +"\n", +"sigma_12 = (sigma_1+sigma_2)/2; // [Angstrom]\n", +"d_12 = sqrt(d_1*d_2); // [K]\n", +"M_12 = 2/((1/M_1)+(1/M_2)); // [gram/mole]\n", +"\n", +"T_star12 = T/d_12;\n", +"a = 1.06036; b = 0.15610; c = 0.19300; d = 0.47635; e = 1.03587; f = 1.52996; g = 1.76474; h = 3.89411; \n", +"ohm12 = ((a/T_star12^b)+(c/exp(d*T_star12))+(e/exp(f*T_star12))+(g/exp(h*T_star12)));\n", +" \n", +"// Substituting these values into the Wilke-Lee equation yields (equation 1.49)\n", +"D_12 = ((10^-3*(3.03-(.98/sqrt(M_12)))*T^1.5)/(P*(sqrt(M_12))*(sigma_12^2)*ohm12)); // [square cm/s]\n", +"printf('The diffusivitiy of ammonia in nitrogen %e square cm/s\n',D_12);\n", +"\n", +"// Binary diffusivitiy of ammonia in hydrogen (D_13)\n", +"\n", +"sigma_13 = (sigma_1+sigma_3)/2; // [Angstrom]\n", +"d_13 = sqrt(d_1*d_3); // [K]\n", +"M_13 = 2/((1/M_1)+(1/M_3)); // [gram/mole]\n", +"\n", +"T_star13 = T/d_13;\n", +"a = 1.06036; b = 0.15610; c = 0.19300; d = 0.47635; e = 1.03587; f = 1.52996; g = 1.76474; h = 3.89411; \n", +"ohm13 = ((a/T_star13^b)+(c/exp(d*T_star13))+(e/exp(f*T_star13))+(g/exp(h*T_star13)));\n", +" \n", +"// Substituting these values into the Wilke-Lee equation yields (equation 1.49)\n", +"D_13 = ((10^-3*(3.03-(.98/sqrt(M_13)))*T^1.5)/(P*(sqrt(M_13))*(sigma_13^2)*ohm13)); // [square cm/s]\n", +"printf('The diffusivitiy of ammonia in hydrogen %e square cm/s\n',D_13);\n", +"\n", +"// Figure 1.5 shows the flux of ammonia (N_1) toward the catalyst surface, where \n", +"// it is consumed by chemical reaction, and the fluxes of nitrogen (N_2) and hydrogen (N_3)\n", +"// produced by the reaction migrating away from the same surface.\n", +"\n", +"// Therefore N_1 = N_2+N_3 \n", +"// From equation 1.59\n", +"// N_2 = -(0.5)*N_1 and N_3 = -(1.5)*N_1\n", +"\n", +"// Substituting in equation (1.58) we obtain\n", +"D_1eff = (1+y_1)/((y_2+0.5*y_1)/D_12 + (y_3+1.5*y_1)/D_13); // [square cm/s]\n", +"printf('The effective diffusivity of ammonia in the gaseous mixture is %e square cm/s',D_1eff); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.12: Calculation_of_Effective_Diffusivity_in_a_Multicomponent_Stagnant_Gas_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.12\n", +"// Page: 34\n", +"\n", +"printf('Illustration 1.12 - Page:34 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// ammonia-1 nitrogen-2 hydrogen-3\n", +"T = 300; // [K]\n", +"P = 1; // [bar]\n", +"y_1 = .40;\n", +"y_2 = .20;\n", +"y_3 = .40;\n", +"//*****//\n", +"\n", +"// The binary diffusivities are the same as for Example 1.11.\n", +"D_12 = 0.237; // [square cm/s]\n", +"D_13 = 0.728; // [square cm/s]\n", +"\n", +"// mole fractions of nitrogen (2) and hydrogen (3) on an ammonia (1)-free base from equation (1.61)\n", +"y_21 = y_2/(1-y_1);\n", +"y_31 = y_3/(1-y_1);\n", +"// Substituting in equation (1.60) gives us\n", +"D_1eff = 1/((y_21/D_12)+(y_31/D_13));\n", +"printf('The effective diffusivity of ammonia in the gaseous mixture is %e square cm/s',D_1eff); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.13: EX1_13.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.13\n", +"// Page: 36\n", +"\n", +"printf('Illustration 1.13 - Page:36 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****\n", +"// acetic acid-1 water-2 ethyl alcohol-3\n", +"T = 298; // [K]\n", +"// The data required data for water at 298 K\n", +"u_2 = 0.894; // [cP]\n", +"V_c1 = 171; // [cubic cm/mole]\n", +"// From equation 1.48\n", +"V_b1 = 62.4; // [cubic cm/mole]\n", +"// Substituting in equation (1.53)\n", +"// the infinite dilution diffusion coefficient of acetic acid in water at 298 K\n", +"E = (9.58/V_b1)-1.12;\n", +"D_abo12 = (1.25*10^-8)*(((V_b1)^-.19)-0.292)*(T^1.52)*(u_2^E); // [square cm/s]\n", +"\n", +"\n", +"// Data for acetic acid\n", +"T_b1 = 390.4; // [K]\n", +"T_c1 = 594.8; // [K]\n", +"P_c1 = 57.9; // [bar]\n", +"V_c1 = 171; // [cubic cm/mole]\n", +"M_1 = 60; // [gram/mole]\n", +"\n", +"// Data for ethanol\n", +"T_b3 = 351.4; // [K]\n", +"T_c3 = 513.9; // [K]\n", +"P_c3 = 61.4; // [bar]\n", +"V_c3 = 167; // [cubic cm/mole]\n", +"M_3 = 46; // [gram/mole]\n", +"u_3 = 1.043; // [cP]\n", +"\n", +"// Using the Hayduk and Minhas correlation for nonaqueous solutions\n", +"\n", +"// According to restriction 3 mentioned above, the molar volume of the acetic acid to be used in equation (1.54) should be\n", +"V_b1 = V_b1*2; // [cubic cm/mole]\n", +"// The molar volume of ethanol is calculated from equation (1.48)\n", +"V_b3 = 60.9; // [cubic cm/mole]\n", +"\n", +"\n", +"// For acetic acid (1)\n", +"T_br1 = T_b1/T_c1; // [K]\n", +"// Using equation 1.55 \n", +"alpha_c1 = 0.9076*(1+((T_br1)*log(P_c1/1.013))/(1-T_br1));\n", +"sigma_c1 = (P_c1^(2/3))*(T_c1^(1/3))*(0.132*alpha_c1-0.278)*(1-T_br1)^(11/9); // [dyn/cm]\n", +"\n", +"// For ethanol (3)\n", +"T_br3 = T_b3/T_c3; // [K]\n", +"// Using equation 1.55 \n", +"alpha_c3 = 0.9076*(1+((T_br3*log(P_c3/1.013))/(1-T_br3)));\n", +"sigma_c3 = (P_c3^(2/3))*(T_c3^(1/3))*(0.132*alpha_c3-0.278)*(1-T_br3)^(11/9); // [dyn/cm]\n", +"\n", +"// Substituting in equation 1.54\n", +"D_abo13 = (1.55*10^-8)*(V_b3^0.27)*(T^1.29)*(sigma_c3^0.125)/((V_b1^0.42)*(u_3^0.92)*(sigma_c1^0.105));\n", +"\n", +"// The viscosity of a 40 wt% aqueous ethanol solution at 298 K is u_mix = 2.35 cP\n", +"u_mix = 2.35; // [cP]\n", +"// The solution composition must be changed from mass to molar fractions following a procedure similar to that illustrated in Example 1.2\n", +"// Accordingly, a 40 wt% aqueous ethanol solution converts to 20.7 mol%.\n", +"// Therefore mole fraction of ethanol (x_3) and water (x_2) \n", +"\n", +"x_3 = 0.207;\n", +"x_2 = 1-x_3;\n", +"// Using equation 1.62\n", +"D_1eff = ((x_2*D_abo12*(u_2^0.8))+(x_3*D_abo13*(u_3^0.8)))/(u_mix^0.8);\n", +"printf('The diffusion coefficient of acetic acid at very low concentrations diffusing into a mixed solvent containing 40.0 wt percent ethyl alcohol in water at a temperature of 298 K is %e square cm/s\n\n',D_1eff); \n", +"\n", +"// The experimental value reported by Perkins and Geankoplis (1969) is \n", +"D_1exp = 5.71*10^-6; // [square cm/s]\n", +"percent_error = ((D_1eff-D_1exp)/D_1exp)*100; // [%]\n", +"printf('The error of the estimate is %f\n',percent_error);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.14: Steady_State_Equimolar_Counterdiffusion.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.14\n", +"// Page: 39\n", +"\n", +"printf('Illustration 1.14 - Page:39 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****\n", +"// Binary gaseous mixture of components A and B\n", +"P = 1; // [bar]\n", +"T = 300; // [K]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"delta = 1; // [mm]\n", +"y_A1 = 0.7;\n", +"y_A2 = 0.2;\n", +"D_AB = 0.1; // [square cm/s]\n", +"//*****//\n", +"\n", +"// Using equation 1.72\n", +"N_A = (D_AB*10^-4)*(P*10^5)*(y_A1-y_A2)/(R*T*delta*10^-3);\n", +"printf('The molar flux of component A is %f mole/square m.s',N_A); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.15: Steady_State_Diffusion_of_A_Through_Stagnant_B.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.15\n", +"// Page: 43\n", +"\n", +"printf('Illustration 1.15 - Page:43 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// Diffusion of A through stagnant B\n", +"P_total = 1.0; // [bar]\n", +"P_B1 = 0.8; // [bar]\n", +"P_B2 = 0.3; // [bar]\n", +"//*****//\n", +"\n", +"// Using equation 1.83\n", +"P_BM = (P_B2-P_B1)/(log(P_B2/P_B1)); // [bar]\n", +"// using the result of Example 1.14, we have\n", +"N_A = 0.2; // [mole/square m.s]\n", +"N_A = N_A*P_total/P_BM; // [moloe/square m.s]\n", +"printf('The molar flux of component A is %f mole/square m.s',N_A);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.16: EX1_16.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.16\n", +"// Page: 44\n", +"\n", +"printf('Illustration 1.16 - Page:44 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// Nickel Carbonyl-A carbon monoxide-B\n", +"T = 323; // [K]\n", +"P = 1; // [atm]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"y_A1 = 1.0;\n", +"y_A2 = 0.5;\n", +"delta = 0.625; // [mm]\n", +"D_AB = 20; // [square mm/s]\n", +"//*****//\n", +"\n", +"// The stoichiometry of the reaction determines the relation between the fluxes: from equation (1-59), N_B = - 4N_A and N_A + N_B = -3NA\n", +"// Molar flux fraction si_A = N_A/(N_A+N_B) = N_A/(-3*N_A) = -1/3\n", +"si_A = -1/3;\n", +"// Using equation 1.78\n", +"N_A = si_A*(D_AB*10^-6*P*10^5*log((si_A-y_A2)/(si_A-y_A1))/(R*T*delta*10^-3));\n", +"printf('The molar flux of component A is %f mole/square m.s',N_A);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.19: Steady_State_Molecular_Diffusion_in_Liquids.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.19\n", +"// Page: 54\n", +"\n", +"printf('Illustration 1.19 - Page:54 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// a-CuS04 b-H2O\n", +"T = 273; // [K]\n", +"delta = 0.01; // [mm]\n", +"sol_ab = 24.3; // [gram/100 gram water]\n", +"den_ab = 1140; // [kg/cubic m]\n", +"D_ab = 3.6*10^-10; // [square m/s]\n", +"den_b = 999.8; // [kg/cubic m]\n", +"//*****//\n", +"\n", +"// both fluxes are in the same direction; therefore, they are both positive and relation is N_b = 5N_a (where N_b and N_a are molar fluxes of component 'a' and 'b') \n", +"// From equation (1.76), si_a = 1/6 = 0.167\n", +"si_a = 0.167;\n", +"// Calculation of mole fraction of component 'a'\n", +"// Basis: 100 gram H2O (b)\n", +"M_a = 159.63; // [gram/mole]\n", +"M_b = 18; // [gram/mole]\n", +"M_c =249.71; // [here M_c is molecular mass of hydrated CuSO4, gram/mole]\n", +"m_a = 24.3; // [gram]\n", +"m_c = m_a*(M_a/M_c); // [here m_c is the mass of CuSO4 in 24.3 gram of crystal, gram]\n", +"m_d = m_a-m_c; // [here m_d is mass of hydration of water in the crystal, gram]\n", +"m_b_total = 100+m_d; // [total mass of water, gram]\n", +"\n", +"x_a1 = (m_c/M_a)/((m_c/M_a)+(m_b_total/M_b));\n", +"x_a2 = 0;\n", +"\n", +"// At point 1, the average molecular weight is\n", +"M_1 = x_a1*M_a+(1-x_a1)*M_b; // [gram/mole]\n", +"// At point 2, the average molecular weight is\n", +"M_2 = x_a2*M_a+(1-x_a2)*M_b\n", +"// Molar density at point 1 and 2\n", +"row_1 = den_ab/M_1; // [kmole/cubic m]\n", +"row_2 = den_b/M_2\n", +"row_avg = (row_1+row_2)/2; // [kmole/cubic m]\n", +"\n", +"// Using equation 1.96\n", +"\n", +"N_a = si_a*D_ab*row_avg*log((si_a-x_a2)/(si_a-x_a1))/(delta*10^-3); // [kmole/square m.s]\n", +"rate = N_a*M_c*3600; // [kg/square m of crystal surface area per hour]\n", +"printf('the rate at which the crystal dissolves in solution is %f kg/square m of crystal surface area per hour',rate);\n", +" " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.1: MOLECULAR_MASS_TRANSFER.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.1\n", +"// Page: 6\n", +"\n", +"printf('Illustration 1.1 - Page: 6\n\n');\n", +"\n", +"//*****Data*****\n", +"T = 300; // [K]\n", +"P = 500; // [kPa]\n", +"R = 8.314; // [J/mole.K]\n", +"//*****//\n", +"printf('Illustration 1.1 (a) - Page: 6\n\n');\n", +"// Solution (a)\n", +"// Using equation 1.7 \n", +"C = P/(R*T); // [Total molar concentration, kmole/cubic m]\n", +"printf('Total molar concentration in the gas feed is %f kmole/cubic m\n\n',C);\n", +"\n", +"printf('Illustration 1.1 (b) - Page: 7\n\n');\n", +"// Solution (b)\n", +"\n", +"// Mixture of gases \n", +"// Components a-CH4 , b-C2H6 , c-nC3H8 , d-nC4H10\n", +"// Basis: 100 kmole of gas mixture\n", +"n_a = 88; // [kmole]\n", +"n_b = 4; // [kmole]\n", +"n_c = 5; // [kmole]\n", +"n_d = 3; // [kmole]\n", +"M_a = 16.04; // [gram/mole]\n", +"M_b = 30.07; // [gram/mole]\n", +"M_c = 44.09; // [gram/mole]\n", +"M_d = 58.12; // [gram/mole]\n", +"m_a = n_a*M_a; // [kg]\n", +"m_b = n_b*M_b; // [kg]\n", +"m_c = n_c*M_c; // [kg]\n", +"m_d = n_d*M_d; // [kg]\n", +"n_total = n_a+n_b+n_c+n_d; // [kmole]\n", +"m_total = m_a+m_b+m_c+m_d; // [kg]\n", +"M_avg = m_total/n_total; // [kg/kmole]\n", +"row = C*M_avg; // [mass density, kg/cubic m]\n", +"printf('Average molecular weight of gas feed is %f kg/kmole\n',M_avg);\n", +"printf('Density of gas feed is %f kg/cubic m\n\n',row);\n", +"\n", +"printf('Illustration 1.1 (c) - Page: 7\n\n');\n", +"// Solution (c)\n", +"\n", +"// Mass fraction of each component\n", +"x_a = m_a/m_total;\n", +"x_b = m_b/m_total;\n", +"x_c = m_c/m_total;\n", +"x_d = m_d/m_total;\n", +"printf('Mass fraction of CH4, C2H6, nC3H8, nC4H10 are %f, %f, %f, %f respectively',x_a,x_b,x_c,x_d);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.20: Steady_State_Molecular_Diffusion_in_Porous_Solid.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.20\n", +"// Page: 58\n", +"\n", +"printf('Illustration 1.20 - Page:58 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// A-hydrogen B-ethane\n", +"T = 373; // [K]\n", +"P = 10; // [atm]\n", +"d = 4000; // [Angstrom]\n", +"e = 0.4; // [porosity]\n", +"t = 2.5; // [tortuosity]\n", +"D_AB = 0.86/P; // [square cm/s]\n", +"k = 1.3806*10^-23; // [J/K]\n", +"//*****//\n", +"\n", +"// Using data from Appendix B for hydrogen and ethane, and equation (1.45)\n", +"sigma_A = 2.827; // [Angstrom]\n", +"sigma_B = 4.443; // [Angstrom]\n", +"sigma_AB = ((sigma_A+sigma_B)/2)*10^-10; // [m]\n", +"\n", +"lambda = k*T/(sqrt(2)*3.14*(sigma_AB^2)*P*1.01325*10^5); // [m]\n", +"lambda = lambda*10^10; // [Angstrom]\n", +"// From equation 1.101\n", +"K_n = lambda/d;\n", +"printf('The value of a dimensionless ratio, Knudsen number is %f\n\n',K_n);\n", +"// If K_n is less than 0.05 then diffusion inside the pores occurs only by ordinary molecular diffusion and equation 1.100 can be used to calculate D_ABeff\n", +"D_ABeff = D_AB*e/t;\n", +"printf('The effective diffusivity of hydrogen in ethane is %f square cm /s',D_ABeff); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.21: Knudsen_Diffusion_in_Porous_Solid.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.21\n", +"// Page: 60\n", +"\n", +"printf('Illustration 1.21 - Page:60 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// a-oxygen b-nitrogen\n", +"T = 293; // [K]\n", +"P = 0.1; // [atm]\n", +"d = 0.1*10^-6; // [m]\n", +"e = 0.305; // [porosity]\n", +"t = 4.39; // [tortuosity]\n", +"k = 1.3806*10^-23; // [J/K]\n", +"l = 2*10^-3; // [m]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"x_a1 = 0.8;\n", +"x_a2 = 0.2;\n", +"M_a = 32; // [gram/mole]\n", +"M_b = 28; // [gram/mole]\n", +"//*****//\n", +"\n", +"// Using data from Appendix B for oxygen and nitrogen, and equation (1.45)\n", +"sigma_a = 3.467; // [Angstrom]\n", +"sigma_b = 3.798; // [Angstrom]\n", +"sigma_AB = ((sigma_a+sigma_b)/2)*10^-10; // [m]\n", +"\n", +"lambda = k*T/(sqrt(2)*3.14*(sigma_AB^2)*P*1.01325*10^5); // [m]\n", +"// From equation 1.101\n", +"K_n = lambda/d;\n", +"printf('The value of a dimensionless ratio, Knudsen number is %f\n\n',K_n);\n", +"// If K_n is greater than 0.05 then transport inside the pores is mainly by Knudsen diffusion\n", +"// Using equation 1.103\n", +"D_Ka = (d/3)*(sqrt(8*R*T)/sqrt(3.14*M_a*10^-3)); // [square m/s]\n", +"\n", +"// Using equation 1.107\n", +"D_Kaeff = D_Ka*e/t; // [square m/s]\n", +"\n", +"p_a1 = (x_a1*P)*1.01325*10^5; // [Pa]\n", +"p_a2 = (x_a2*P)*1.01325*10^5; // [Pa]\n", +"\n", +"// Using equation 1.108\n", +"N_a = D_Kaeff*(p_a1-p_a2)/(R*T*l); // [mole/square m.s]\n", +"// Now using the Graham’s law of effusion for Knudsen diffusion\n", +"// N_b/N_a = -sqrt(M_a/M_b) ,therefore\n", +"N_b = -N_a*sqrt(M_a/M_b); // [mole/square m.s]\n", +"\n", +"printf('The diffusion fluxes of both components oxygen and nitrogen are %e mole/square m.s and %e mole/square m.s respectively\n',N_a,N_b);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.22: Combined_Molecular_and_Knudsen_Diffusion_in_a_Porous_Solid.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.22\n", +"// Page: 61\n", +"\n", +"printf('Illustration 1.22 - Page:61 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// a-oxygen b-nitrogen\n", +"T = 293; // [K]\n", +"P = 0.1; // [atm]\n", +"d = 0.3*10^-6; // [m]\n", +"e = 0.305; // [porosity]\n", +"t = 4.39; // [tortuosity]\n", +"k = 1.3806*10^-23; // [J/K]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"l = 2*10^-3; // [m]\n", +"D_ab = 2.01*10^-4; // [square m/s]\n", +"y_a1 = 0.8;\n", +"y_a2 = 0.2;\n", +"//*****//\n", +"\n", +"// Using data from Appendix B for oxygen and nitrogen, and equation (1.45)\n", +"sigma_a = 3.467; // [Angstrom]\n", +"sigma_b = 3.798; // [Angstrom]\n", +"sigma_AB = ((sigma_a+sigma_b)/2)*10^-10; // [m]\n", +"\n", +"lambda = k*T/(sqrt(2)*3.14*(sigma_AB^2)*P*1.01325*10^5); // [m]\n", +"// From equation 1.101\n", +"K_n = lambda/d;\n", +"printf('The value of a dimensionless ratio, Knudsen number is %f\n\n',K_n);\n", +"\n", +"// It means that both molecular and Knudsen diffusion are important and equation (1.109) must be used to calculate N_a\n", +"// From example 1.21 N_b/N_a = -1.069\n", +"// Therefore si_a = 1/(1+(N_b/N_a))\n", +"si_a = 1/(1+(-1.069));\n", +"\n", +"// From equation 1.100\n", +"D_abeff = D_ab*e/t; // [square m/s]\n", +"\n", +"// From equation 1.103\n", +"D_Ka = (d/3)*(sqrt(8*R*T)/sqrt(3.14*M_a*10^-3)); // [square m/s]\n", +"\n", +"// Using equation 1.107\n", +"D_Kaeff = D_Ka*e/t; // [square m/s]\n", +"\n", +"Y_a = 1+(D_abeff/D_Kaeff); \n", +"\n", +"// Using equation 1.109 to calculate N_a\n", +"N_a = (si_a*P*1.01325*10^5*D_abeff*log((si_a*Y_a-y_a2)/(si_a*Y_a-y_a1)))/(R*T*l);\n", +"N_b = -1.069*N_a;\n", +"printf('The diffusion fluxes of both components oxygen and nitrogen are %e mole/square m.s and %e mole/square m.s respectively\n',N_a,N_b);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.23: Dextrin_Diffusion_in_a_Porous_Membrane.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.23\n", +"// Page: 62\n", +"\n", +"printf('Illustration 1.23 - Page:62 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// A-beta dextrin B-water\n", +"T = 293; // [K]\n", +"d = 88.8; // [Average pore diameter, Angstrom]\n", +"d_mol = 17.96; // [Molecular diameter, Angstrom]\n", +"e = 0.0233; // [porosity]\n", +"t = 1.1; // [tortuosity]\n", +"D_AB = 3.22*10^-6; // [square cm/s]\n", +"//*****//\n", +"\n", +"// Using equation 1.111 to calculate restrictive factor\n", +"K_r = (1-(d_mol/d))^4\n", +"\n", +"// Using equation 1.110 to calculate effective diffusivity\n", +"D_ABeff = e*D_AB*K_r/t; // [square cm/s]\n", +"printf('The effective diffusivity of beta-dextrin at 298 K is %e square cm/s',D_ABeff); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.24: Hydrodynamic_Flow_in_a_Porous_Diaphragm.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.24\n", +"// Page: 63\n", +"\n", +"printf('Illustration 1.24 - Page:63 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// a-nitrogen\n", +"P_atm = 1.01325*10^5; // [Pa]\n", +"T = 300; // [K]\n", +"P_2 = 10130; // [Pa]\n", +"P_1 = 500+P_2; // [Pa]\n", +"d = 0.01*10^-2; // [average pore diameter, m]\n", +"u = 180; // [micro Poise]\n", +"u = 180*10^-6*10^-1; // [Pa.s] \n", +"l = 25.4*10^-3; // [m]\n", +"v = 0.05; // [volumetric flow rate, cubic m/square m.s]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"//*****//\n", +"\n", +"printf('Illustration 1.24 (a) - Page:63 \n\n');\n", +"// Solution (a)\n", +"\n", +"P_avg = (P_1+P_2)/2; // [Pa]\n", +"// The mean free path for nitrogen is from equation (1.102)\n", +"lambda = 0.622*10^-6; // [m]\n", +"K_n = lambda/d;\n", +"// Therefore, Knudsen diffusion will not occur and all the flow observed is of a hydrodynamic nature.\n", +"\n", +"// From the ideal gas law, the nitrogen flux corresponding to the volumetric flow rate of 0.05 m3/m2-s at 300 K and 1 atm\n", +" \n", +"N_a = P_atm*v/(R*T); // [mole/square m.s]\n", +"// Using equation 1.113\n", +"B_o = u*R*T*N_a*l/(P_avg*(P_1-P_2)); // [square m]\n", +"printf('The value of the viscous flow parameter is %e square m\n\n',B_o);\n", +"\n", +"printf('Illustration 1.24 (b) - Page:64 \n\n');\n", +"// Solution (b)\n", +"\n", +"T1 = 393; // [K]\n", +"u = 220; // [micro Poise]\n", +"u = 220*10^-6*10^-1; // [Pa.s]\n", +"// Substituting in equation (1.113) the new values of temperature and viscosity and the value of B_o, obtained in part (a) while maintaining the pressure conditi// ons unchanged, we get N_a\n", +"N_a1 = B_o*P_avg*(P_1-P_2)/(l*T*u*R); // [mole/square m.s]\n", +"v1 = N_a1*R*T/P_atm; // [cubic m(measured at 300 K and 1 atm)/ square m.s]\n", +"printf('The nitrogen flow to be expected at 393 K with the same pressure difference is %e cubic m(measured at 300 K and 1 atm)/ square m.s\n',v1);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.2: Concentration_of_a_Potassium_Nitrate_Wash_Solution.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.2\n", +"// Page: 7\n", +"\n", +"printf('Illustration 1.2 - Page: 7\n\n');\n", +"\n", +"//*****Data*****\n", +"// Component a-KNO3 b-H20\n", +"T = 293; // [K]\n", +"s_eqm = 24; // [percent by weight, %]\n", +"row = 1162; // [density of saturated solution, kg/cubic m]\n", +"//*****//\n", +"\n", +"printf('Illustration 1.2 (a)- Page: 7\n\n');\n", +"// Solution (a)\n", +"\n", +"// Basis: 100 kg of fresh wash solution\n", +"m_a = (s_eqm/100)*100; // [kg]\n", +"m_b = 100 - m_a; // [kg]\n", +"M_a = 101.10; // [gram/mole]\n", +"M_b = 18.02; // [gram.mole]\n", +"// Therefore moles of component 'a' and 'b' are\n", +"n_a = m_a/M_a; // [kmole]\n", +"n_b = m_b/M_b; // [kmole]\n", +"\n", +"m_total = 100; // [basis, kg]\n", +"n_total = n_a+n_b; // [kmole]\n", +"// Average molecular weight\n", +"M_avg = m_total/n_total; // [kg/kmole]\n", +"// Total molar density of fresh solution\n", +"C = row/M_avg; // [kmole/cubic m]\n", +"printf('Total molar density of fresh solution is %f kmole/cubic m\n\n',C);\n", +"\n", +"printf('Illustration 1.2 (b)- Page: 8\n\n');\n", +"// Solution (b)\n", +"\n", +"// mole fractions of components 'a' and 'b'\n", +"x_a = n_a/n_total;\n", +"x_b = n_b/n_total;\n", +"printf('Mole fraction of KNO3 and H2O is %f %f',x_a,x_b); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.3: Material_Balances_on_a_Bio_Artificial_Kidney.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.3\n", +"// Page: 9\n", +"\n", +"printf('Illustration 1.3 - Page:9 \n\n');\n", +"\n", +"//*****Data*****//\n", +"// Blood contains two parts a-blood cells b-plasma\n", +"f_a = 45; // [percent of blood cells by volume]\n", +"f_b = 55; // [percent of plasma by volume]\n", +"r = 1200; // [Rate of blood which is pumped through artificial kidney, mL/minute]\n", +"m_urine = 1540; // [mass of urine collected, g]\n", +"x_u = 1.3; // [urea concentration, percent by weight]\n", +"// Data for sample of blood plasma\n", +"c_urea = 155.3; // [mg/dL]\n", +"d = 1.0245; // [specfic gravity of plasma]\n", +"//*****//\n", +"\n", +"printf('Illustration 1.3 (a) - Page:9 \n\n');\n", +"// Solution (a)\n", +"\n", +"// Basis: 4 hours\n", +"// Assuming that the rate of formation and decomposition of urea during the procedure is negligible and that no urea is removed by the patient’s kidneys\n", +"// Therefore urea in “clean” blood = urea in “dirty” blood - urea in urine\n", +"\n", +"m_u = m_urine*(x_u/100); // [mass of urea in urine, g]\n", +"// total volume of plasma that flows through the artificial kidney in 4 hours\n", +"V_b = r*60*(f_b/100)*(1/100)*4; // [dL]\n", +"// urea in dirty blood from given plasma concentration\n", +"m_ud = c_urea*(1/1000)*V_b; // [g]\n", +"// urea removal efficiency\n", +"n = (m_u/m_ud)*100;\n", +"printf('Urea removal efficiency is %f\n\n',n);\n", +" \n", +"printf('Illustration 1.3 (b) - Page:10 \n\n');\n", +"// Solution (b)\n", +"\n", +"m_uc = m_ud-m_u; // [mass of urea on clean blood, g]\n", +"m_p = d*100*V_b; // [Mass of plasma entering, g]\n", +"m_rem = m_p-m_urine; // [Mass of plasma remaining, g]\n", +"V_brem = m_rem/(d*100); // [Volume of plasma remaining, dL]\n", +"c_y = (m_uc*1000)/V_brem; // [urea concentration in remaining plasma, mg/dL]\n", +"printf('urea concentration in the plasma of the cleansed blood is %f mg/dL',c_y);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.6: EX1_6.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"// Illustration 1.6\n", +"// Page: 21\n", +"printf('Illustration 1.6 - Page:21 \n\n');\n", +"// Solution\n", +"//*****Data*****//\n", +"// a-CS2 b-air\n", +"T = 273; // [K]\n", +"P = 1; // [bar]\n", +"// 1 bar = 10^5 Pa\n", +"// Values of the Lennard-Jones parameters (sigma and E/K) are obtained from Appendix B:\n", +"sigma_a = 4.483; // [1st Lennard-Jones parameter, Angstrom]\n", +"sigma_b = 3.620; // [Angstrom]\n", +"d_a = 467; // [d = E/K 2nd Lennard-Jones parameter, K]\n", +"d_b = 97; // [K]\n", +"M_a = 76; // [gram/mole]\n", +"M_b = 29; // [gram/mole]\n", +"sigma_ab = (sigma_a+sigma_b)/2; // [Angstrom]\n", +"d_ab = sqrt(d_a*d_b); // [K]\n", +"M_ab = 2/((1/M_a)+(1/M_b)); // [gram/mole]\n", +"T_star = T/d_ab;\n", +"a = 1.06036; b = 0.15610; c = 0.19300; d = 0.47635; e = 1.03587; f = 1.52996; g = 1.76474; h = 3.89411; \n", +"ohm = ((a/T_star^b)+(c/exp(d*T_star))+(e/exp(f*T_star))+(g/exp(h*T_star)));\n", +"// Substituting these values into the Wilke-Lee equation yields (equation 1.49)\n", +"D_ab = ((10^-3*(3.03-(.98/sqrt(M_ab)))*T^1.5)/(P*(sqrt(M_ab))*(sigma_ab^2)*ohm)); // [square cm/s]\n", +"printf('The diffusivity of carbon disulfide vapor in air at 273 K and 1 bar is %e square cm/s\n',D_ab);\n", +"// The experimental value of D_ab obtained from Appendix A:\n", +"D_abexp = (.894/(P*10^5))*10^4; // [square cm/s]\n", +"percent_error = ((D_ab-D_abexp)/D_abexp)*100; // [%]\n", +"printf('The percent error of the estimate, compared to the experimental value is %f ',percent_error);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.7: EX1_7.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.7\n", +"// Page: 22\n", +"\n", +"printf('Illustration 1.7 - Page:22 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// A-C3H5Cl B-air\n", +"T = 298; // [K]\n", +"P = 1; // [bar]\n", +"//*****//\n", +"\n", +"// Values of the Lennard-Jones parameters for allyl chloride must be estimated from equations (1.46) and (1.47).\n", +"// From Table 1.2\n", +"V_bA = 3*14.8+5*3.7+24.6; // [cubic cm/mole]\n", +"// From equation 1.46\n", +"sigma_A = 1.18*(V_bA)^(1/3); // [1st Lennard-Jones parameter, Angstrom]\n", +"// Normal boiling-point temperature for allyl chloride is Tb = 318.3 K\n", +"// From equation 1.47, E/K = 1.15*Tb\n", +"T_b = 318.3; // [K]\n", +"d_A = 1.15*T_b; // [2nd Lennard-Jones parameter for C3H5Cl E/K, K]\n", +"M_A = 76.5; // [gram/mole]\n", +"\n", +"// Lennard-Jones parameters for air\n", +"sigma_B = 3.62; // [Angstrom]\n", +"d_B = 97; // [2nd Lennard-Jones parameter for air E/K, K]\n", +"\n", +"M_B = 29; // [gram/mole]\n", +"\n", +"sigma_AB = (sigma_A+sigma_B)/2; // [Angstrom]\n", +"d_AB = sqrt(d_A*d_B); // [K]\n", +"M_AB = 2/((1/M_A)+(1/M_B)); // [gram/mole]\n", +"\n", +"T_star = T/d_AB;\n", +"a = 1.06036; b = 0.15610; c = 0.19300; d = 0.47635; e = 1.03587; f = 1.52996; g = 1.76474; h = 3.89411; \n", +"ohm = ((a/T_star^b)+(c/exp(d*T_star))+(e/exp(f*T_star))+(g/exp(h*T_star)));\n", +" \n", +"// Substituting these values into the Wilke-Lee equation yields (equation 1.49)\n", +"D_AB = ((10^-3*(3.03-(.98/sqrt(M_AB)))*T^1.5)/(P*(sqrt(M_AB))*(sigma_AB^2)*ohm)); // [square cm/s]\n", +"printf('The diffusivity of allyl chloride in air at 298 K and 1 bar is %e square cm/s\n',D_AB);\n", +"\n", +"// The experimental value of D_AB reported by Lugg (1968) is 0.098 square cm/s\n", +"D_ABexp = .098; // [square cm/s]\n", +"percent_error = ((D_AB-D_ABexp)/D_ABexp)*100; // [%]\n", +"printf('The percent error of the estimate, compared to the experimental value is %f ',percent_error);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.8: Calculation_of_Liquid_Diffusivity_in_Aqueous_Solution.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.8\n", +"// Page: 26\n", +"\n", +"printf('Illustration 1.8 - Page:26 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// solute A-C2H60 solvent B-water\n", +"T = 288; // [K]\n", +"//*****//\n", +"// Critical volume of solute\n", +"V_c = 167.1; // [cubic cm/mole]\n", +"// Calculating molar volume using equation 1.48\n", +"V_ba = 0.285*(V_c)^1.048; // [cubic cm/mole]\n", +"u_b = 1.153; // [Viscosity of liquid water at 288 K, cP]\n", +"M_solvent = 18; // [gram/mole]\n", +"phi_b = 2.26; // [association factor of solvent B]\n", +"\n", +"printf('Illustration 1.8 (a) - Page:26 \n\n');\n", +"// Solution (a)\n", +"\n", +"// Using the Wilke-Chang correlation, equation 1.52\n", +"D_abo1 = (7.4*10^-8)*(sqrt(phi_b*M_solvent))*T/(u_b*(V_ba)^.6); // [diffusivity of solute A in very dilute solution in solvent B, square cm/s]\n", +"printf('Diffusivity of C2H60 in a dilute solution in water at 288 K is %e square cm/s\n',D_abo1);\n", +"// The experimental value of D_abo reported in Appendix A is 1.0 x 10^-5 square cm/s\n", +"D_aboexp = 1*10^-5; // [square cm/s]\n", +"percent_error1 = ((D_abo1-D_aboexp)/D_aboexp)*100; // [%]\n", +"printf('The percent error of the estimate, compared to the experimental value is %f\n\n ',percent_error1);\n", +"\n", +"printf('Illustration 1.8 (b) - Page:27 \n\n');\n", +"// Solution (b)\n", +"\n", +"// Using the Hayduk and Minhas correlation for aqueous solutions equation 1.53\n", +"E = (9.58/V_ba)-1.12;\n", +"D_abo2 = (1.25*10^-8)*(((V_ba)^-.19)-0.292)*(T^1.52)*(u_b^E); // [square cm/s]\n", +"printf('Diffusivity of C2H60 in a dilute solution in water at 288 K is %e square cm/s\n',D_abo2);\n", +"percent_error2 = ((D_abo2-D_aboexp)/D_aboexp)*100; // [%]\n", +"printf('The percent error of the estimate, compared to the experimental value is %f ',percent_error2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.9: Calculation_of_Liquid_Diffusivity_in_Dilute_Nonaqueous_Solution.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 1.9\n", +"// Page: 27\n", +"\n", +"printf('Illustration 1.9 - Page:27 \n\n');\n", +"// Solution\n", +"\n", +"//*****Data*****//\n", +"// A-acetic acid(solute) B-acetone(solvent)\n", +"T = 313; // [K]\n", +"// The following data are available (Reid, et al., 1987):\n", +"\n", +"// Data for acetic acid\n", +"T_bA = 390.4; // [K]\n", +"T_cA = 594.8; // [K]\n", +"P_cA = 57.9; // [bar]\n", +"V_cA = 171; // [cubic cm/mole]\n", +"M_A = 60; // [gram/mole]\n", +"\n", +"// Data for acetone\n", +"T_bB = 329.2; // [K]\n", +"T_cB = 508; // [K]\n", +"P_cB = 47; // [bar]\n", +"V_cB = 209; // [cubic cm/mole]\n", +"u_bB = 0.264; // [cP]\n", +"M_B = 58; // [gram/mole]\n", +"phi = 1;\n", +"\n", +"printf('Illustration 1.9 (a) - Page:27 \n\n');\n", +"// Solution (a)\n", +"// Using equation 1.48\n", +"V_bA = 0.285*(V_cA)^1.048; // [cubic cm/mole]\n", +"\n", +"// Using the Wilke-Chang correlation , equation 1.52\n", +"D_abo1 = (7.4*10^-8)*(sqrt(phi*M_B))*T/(u_bB*(V_bA)^.6);\n", +"printf('Diffusivity of acetic acid in a dilute solution in acetone at 313 K using the Wilke-Chang correlation is %e square cm/s\n',D_abo1);\n", +"// From Appendix A, the experimental value is 4.04*10^-5 square cm/s\n", +"D_aboexp = 4.04*10^-5; // [square cm/s]\n", +"percent_error1 = ((D_abo1-D_aboexp)/D_aboexp)*100; // [%]\n", +"printf('The percent error of the estimate, compared to the experimental value is %f\n\n ',percent_error1);\n", +"\n", +"printf('Illustration 1.9 (b) - Page:28 \n\n');\n", +"// Solution (b)\n", +"\n", +"// Using the Hayduk and Minhas correlation for nonaqueous solutions\n", +"\n", +"V_bA = V_bA*2; // [cubic cm/mole]\n", +"V_bB = 0.285*(V_cB)^1.048; // [cubic cm/mole]\n", +"\n", +"// For acetic acid (A)\n", +"T_brA = T_bA/T_cA; // [K]\n", +"// Using equation 1.55 \n", +"alpha_cA = 0.9076*(1+((T_brA)*log(P_cA/1.013))/(1-T_brA));\n", +"sigma_cA = (P_cA^(2/3))*(T_cA^(1/3))*(0.132*alpha_cA-0.278)*(1-T_brA)^(11/9); // [dyn/cm]\n", +"\n", +"// For acetone (B)\n", +"T_brB = T_bB/T_cB; // [K]\n", +"// Using equation 1.55 \n", +"alpha_cB = 0.9076*(1+((T_brB*log(P_cB/1.013))/(1-T_brB)));\n", +"sigma_cB = (P_cB^(2/3))*(T_cB^(1/3))*(0.132*alpha_cB-0.278)*(1-T_brB)^(11/9); // [dyn/cm]\n", +"\n", +"// Substituting in equation 1.54\n", +"D_abo2 = (1.55*10^-8)*(V_bB^0.27)*(T^1.29)*(sigma_cB^0.125)/((V_bA^0.42)*(u_bB^0.92)*(sigma_cA^0.105));\n", +"\n", +"printf('Diffusivity of acetic acid in a dilute solution in acetone at 313 K using the Hayduk and Minhas correlation is %e square cm/s\n',D_abo2);\n", +"\n", +"percent_error2 = ((D_abo2-D_aboexp)/D_aboexp)*100; // [%]\n", +"printf('The percent error of the estimate, compared to the experimental value is %f\n\n ',percent_error2);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/2-Convective_Mass_Transfer.ipynb b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/2-Convective_Mass_Transfer.ipynb new file mode 100644 index 0000000..6a8e524 --- /dev/null +++ b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/2-Convective_Mass_Transfer.ipynb @@ -0,0 +1,944 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2: Convective Mass Transfer" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.10: Mass_Transfer_for_a_Single_Cylinder.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.10\n", +"// Page: 127\n", +"\n", +"printf('Illustration 2.10 - Page: 127\n\n');\n", +"\n", +"// solution\n", +"\n", +"// Example 2.6 using equation 2.73\n", +"// Values of the dimensionless parameters calculated in Example 2.6\n", +"Re = 1223; // [Renoylds Number]\n", +"Sc = 0.905; // [Schmidt Number]\n", +"c = 0.039; // [molar density, kg/cubic m]\n", +"v = 1; // [gas velocity, m/s]\n", +"// Therefore \n", +"Gm = c*v; // [kmole/square m.s]\n", +"// From equation 2.9 \n", +"// Kg*P = ky\n", +"// Therefore substituting in equation 2.73 we obtain\n", +"ky = 0.281*Gm/(Re^0.4*Sc^0.56); // [kmole/square m.s]\n", +"// Now equation 2.73 were obtained under very dilute concentrations\n", +"// Therefore\n", +"y_bm = 1; \n", +"// From equation 2.6\n", +"F = ky*y_bm; // [kmole/square m.s]\n", +"printf('Mass transfer coefficient is %e kmole/square m.s\n\n',F);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.11: Simultaneous_Heat_and_Mass_Transfer_in_Pipe.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.11\n", +"// Page: 129\n", +"\n", +"printf('Illustration 2.11 - Page: 129\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-water b-air\n", +"D = 25.4*10^-3; // [diameter of wetted wall tower, m]\n", +"Gy = 10; // [mass velocity, kg/square m.s]\n", +"T1 = 308; // [K]\n", +"P = 101.3; // [kPa]\n", +"p_a1 = 1.95; // [partial pressure of water vapor, kPa]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"M_a = 18; // [gram/mole]\n", +"Cpa = 1.88; // [kJ/kg.K]\n", +"//*****//\n", +"\n", +"// Properties of dry air at 308 K and 1 atm pressure are\n", +"u = 1.92*10^-5; // [kg/m.s]\n", +"row = 1.14; // [kg/cubic m]\n", +"D_ab = 0.242*10^-4; // [square m/s]\n", +"Sc = 0.696; // [Schmidt number]\n", +"Cp = 1.007; // [kJ/kg.K]\n", +"k = 0.027; // [W/m.K]\n", +"Pr = 0.7; // [Prandtl number]\n", +"\n", +"Re = D*Gy/u; // [Renoylds number]\n", +"// From equation 2,74\n", +"Sh = 0.023*Re^0.83*Sc^0.44; // [Sherwood number]\n", +"// From Table 2.1\n", +"kg = Sh*D_ab/(R*T1*D)*1000; // [mole/square m.s.kPa]\n", +"printf('kg is %e\n',kg);\n", +"// To estimate the heat-transfer coefficient, we use the Dittus-Boelter equation for cooling, equation 2.80\n", +"Nu = 0.023*Re^0.8*Pr^0.3; // [Nusselt number]\n", +"// From Table 2.1\n", +"h = Nu*k/D; // [W/square m.K]\n", +"printf('h is %f\n',h);\n", +"T =373.15; // [K]\n", +"lambda_a = 40.63; // [kJ/mole]\n", +"Tc = 647.1; // [K]\n", +"\n", +"// Solution of simultaneous equation 2.78 and 2.79\n", +"function[f]=F(e) \n", +" f(1) = kg*(p_a1 - exp(16.3872-(3885.7/(e(1)-42.98))))-e(2);\n", +" f(2) = e(2)*M_a*Cpa*(T1-e(1))/(1-exp(-e(2)*M_a*Cpa/h)) + 1000*e(2)*lambda_a*((1-(e(1)/Tc))/(1-(T/Tc)))^0.38;\n", +" funcprot(0);\n", +"endfunction\n", +"\n", +"// Initial guess\n", +"e = [292 -0.003];\n", +"y = fsolve(e,F);\n", +"Ti = y(1);\n", +"Na = y(2);\n", +"\n", +"printf('The temperature of the liquid water and the rate of water evaporation is %f K and %e mole/square m.s respectively',Ti,Na);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.12: Air_Humidification_in_Wetted_Wall_Column.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.12\n", +"// Page: 131\n", +"\n", +"printf('Illustration 2.12 - Page: 131\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-water b-dry air\n", +"D = 25.4*10^-3; // [Internal diameter of tower, m]\n", +"Z = 1.5; // [length of the wetted section, m]\n", +"Gy = 10; // [mass velocity of air, kg/square m.s]\n", +"Tair = 308; // [K]\n", +"Twater = 295; // [K]\n", +"P = 101.3; // [kPa]\n", +"M_a = 18; // [gram/mole]\n", +"M_b = 29; // [gram/mole]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"//*****//\n", +"\n", +"// The water vapor partial pressure at the interface remains constant at the vapor pressure of liquid water at 295 K, which is pa1 = Pa = 2.64 kPa\n", +"// The water vapor partial pressure at the bulk of the gas phase increases from pA2 = pAin = 0 for the dry inlet air to pa2= pAout for the air leaving the tower \n", +"Pa = 2.64; // [kPa]\n", +"\n", +"Gm = Gy/M_b; // [Assuming that gas phase is basically dry air, kmole/square m.s]\n", +"// The properties of dry air at 308 K and 1 atm are (from example 2.9)\n", +"row = 1.14; // [kg/cubic m]\n", +"u = 1.92*10^-5; // [kg/m.s]\n", +"D_ab = 0.242*10^-4; // [square m/s]\n", +"Sc = 0.692; // [Schmidt number]\n", +"\n", +"Re = Gy*D/u; // [Renoylds number]\n", +"\n", +"if(Re<35000 & Re>2000)\n", +"// From equation 2.74\n", +"Sh = 0.023*Re^0.83*Sc^0.44; // [Sherwood number] \n", +"\n", +"printf('Sherwood number is %f\n\n',Sh);\n", +"else()\n", +" printf('We cannot use equation 2.74')\n", +"end\n", +"\n", +"c = P/(R*Tair); // [kmole/cubic m]\n", +"// Now using equation 2.89\n", +"Pa_out = Pa*(1-exp((-4*Sh*Z*c*D_ab)/(Gm*D^2))); // [kPa]\n", +"printf('The partial pressure of water in the air leaving the tower is %e kPa\n\n',Pa_out);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.13: Air_Humidification_in_a_Packed_Bed.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.13\n", +"// Page: 134\n", +"\n", +"printf('Illustration 2.13 - Page: 134\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-water b-dry air\n", +"Gy = 10; // [kg/square m.s]\n", +"dp = 3.5*10^-3; // [diameter of spherical glass beads, m]\n", +"D = 25.4*10^-3; // [Internal diameter of tower, m]\n", +"Tair = 308; // [K]\n", +"Twater = 295; // [K]\n", +"P = 101.3; // [kPa]\n", +"M_a = 18; // [gram/mole]\n", +"M_b = 29; // [gram/mole]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"\n", +"// The properties of dry air at 308 K and 1 atm are (from example 2.12)\n", +"row = 1.14; // [kg/cubic m]\n", +"u = 1.92*10^-5; // [kg/m.s]\n", +"D_ab = 0.242*10^-4; // [square m/s]\n", +"Sc = 0.692; // [Schmidt number]\n", +"c = 0.04; // [mole/cubic m]\n", +"Gm = 0.345; // [kmole/square m.s]\n", +"\n", +"Re = Gy*dp/u; // [Renoylds number]\n", +"if(Re<2500 & Re>10)\n", +" \n", +"// Subsituting in equation 2.90\n", +"jd = 1.17*Re^-0.415;\n", +"printf('Renoylds number is %f\n\n',Re);\n", +"else()\n", +"end\n", +"\n", +"Std = 0.052/(Sc^(2/3));\n", +"// From Table 2.1 \n", +"Sh = Std*Re*Sc; // [Sherwood number]\n", +"// From equation 2.94\n", +"e = 0.406+0.571*(dp/D); // [bed porosity]\n", +"\n", +"printf('Illustration 2.13(a) - Page: 134\n\n');\n", +"// Solution(a)\n", +"// Now Paout = 0.99*Pa\n", +"// Using equation 2.93 to calculate 'Z'\n", +"deff('[y] = f12(Z)','y = 0.99 - 1 + exp(-6*(1-e)*Sh*c*Z*D_ab/(Gm*dp^2))');\n", +"Z = fsolve(0.06,f12);\n", +"printf('The depth of packing required is %e m\n\n',Z);\n", +"\n", +"printf('Illustration 2.13(b) - Page: 136\n\n');\n", +"// Solution(b)\n", +"// From equation 2.95\n", +"deltaP = (150*(1-e)/Re + 1.75)*(1-e)*Gy^2*Z/(dp*row*e^3); // [Pa]\n", +"printf('The gas pressure drop through the bed is %f Pa\n\n',deltaP); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.14: Design_of_a_Hollow_Fiber_Boiler_Feed_Water_Deaerator.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.14\n", +"// Page: 138\n", +"\n", +"printf('Illustration 2.14 - Page: 138\n\n');\n", +"\n", +"// solution\n", +"// a-oxygen b-water\n", +"// To design the deaerator, We will use commercially available microporous polypropylene hollow fibers in a module\n", +"// Given data:\n", +"m = 40000; // [kg/hr]\n", +"Twater = 298; // [K]\n", +"v = 0.1; // [superficial velocity, m/s]\n", +"P = 101.3; // [kPa]\n", +"V = 40*10^-3; // [Flow rate of nitrogen, cubic m/min]\n", +"d = 2.90*10^-4; // [Outside diameter of fibres, m]\n", +"pf = 0.4; // [Packing factor]\n", +"a = 46.84*100; // [surface area per unit volume, m^-1]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"// *****//\n", +"\n", +"dw = 1000; // [density of water, kg/cubic m]\n", +"Ql = m/(3600*1000); // [volumetric water flow rate, cubic m/s]\n", +"// Shell diameter\n", +"D = (4*Ql/(%pi*v))^0.5; // [Shell diameter, m]\n", +"\n", +"// the properties of dilute mixtures of oxygen in water at 298 K\n", +"u = 0.9; // [cP]\n", +"// Diffusivity from equation 1.53\n", +"D_ab = 1.93*10^-9; // [square m/s]\n", +"Sc = 467; // [Schmidt number]\n", +"\n", +"Re = d*v*dw/(u*10^-3); // [Renoylds number]\n", +"\n", +"// Substituting in equation (2-97) gives\n", +"Sh = 0.53*(1-1.1*pf)*((1-pf)/pf)^-0.47*(Re^0.53*Sc^0.33);\n", +"\n", +"kl = Sh*D_ab/d; // [mass-transfer coefficient on the shell side, m/s]\n", +"\n", +"// From the specified BFW flow rate\n", +"L = m/(3600*18); // [kmole/s]\n", +"// From ideal gas law\n", +"V1 = V*P/(Twater*R*60); // [kmole/s]\n", +"// From the solubility of oxygen in water at 298 K,\n", +"M = 4.5*10^4;\n", +"A = L/(M*V1); // [Absorption factor]\n", +"printf('Absorption factor is %f\n',A);\n", +"\n", +"// For 99% removal of the dissolved oxygen\n", +"// x_in/x_out = b = 100\n", +"b = 100;\n", +"c = 55.5 // [molar density, kmole/cubic m]\n", +"// Substituting in equation 2.99 yields\n", +"V_T = (L*log(b*(1-A)+A))/(kl*a*c*(1-A)); // [cubic m]\n", +"\n", +"// The module length, Z is\n", +"Z = V_T/(%pi*D^2/4);\n", +"printf('The shell diameter and module length is %f m and %f m respectively\n\n',D,Z); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.1: Mass_Transfer_Coefficients_in_a_Blood_Oxygenator.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.1\n", +"// Page: 94\n", +"\n", +"printf('Illustration 2.1 - Page: 94\n\n');\n", +"\n", +"// solution\n", +"\n", +"//*****Data*****//\n", +"// a-oxygen b-stagnant water\n", +"T = 310; // [K]\n", +"// Since the solubility of oxygen in water at 310 K is extremely low, we are dealing with dilute solutions\n", +"k_L = 3.3*10^-5; // [coefficient based on the oxygen concentration difference in the water, m/s]\n", +"row = 993; // [kg/cubic m]\n", +"M_b = 18; // [gram/mole]\n", +"//*****//\n", +" \n", +"// Since we are dealing with very dilute solutions\n", +"// Therefore, c = (row/M_avg) = row/M_b\n", +"c = row/M_b; // [kmole/cubic m]\n", +"// Using equation 2.10\n", +"k_x = k_L*c; // [kmole/square m.s]\n", +"printf('The mass-transfer coefficient based on the mole fraction of oxygen in the liquid is %e kmole/square m.s\n\n',k_x);\n", +"\n", +" " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.2: Mass_Transfer_Coefficient_in_a_Gas_Absorber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.2\n", +"// Page: 95\n", +"\n", +"printf('Illustration 2.2 - Page: 95\n\n');\n", +"\n", +"// solution\n", +"\n", +"//*****Data*****//\n", +"// a-ammonia b-air\n", +"T = 300; // [K]\n", +"P = 1; // [atm]\n", +"y_a1 = 0.8; // [ammonia mole fraction in the bulk of the gas phase]\n", +"y_a2 = 0.732; // [ammonia gas-phase mole fraction on interface]\n", +"N_a = 4.3*10^-4; // [ammonia flux, kmole/square m.s]\n", +"//*****//\n", +"\n", +"// Using equation 2.2\n", +"F_g = N_a/log((1-y_a2)/(1-y_a1)); // [kmole/square m.s]\n", +"printf('The mass-transfer coefficient in the gas phase at that point where flux is 4.3*10^-4 is %e kmole/square m.s\n\n',F_g);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.3: Mass_Transfer_Coefficient_in_a_Packed_Bed_Distillation_Column.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.3\n", +"// Page: 96\n", +"\n", +"printf('Illustration 2.3 - Page: 96\n\n');\n", +"\n", +"// solution\n", +"\n", +"//*****Data*****//\n", +"// a-methanol b-water\n", +"P = 101.3; // [kPa]\n", +"y_a1 = 0.707; // [mole fraction at interface]\n", +"y_a2 = 0.656; // [mole fraction at bulk of the gas]\n", +"k_g = 1.62*10^-5; // [mass-transfer coefficient at a point in the column, kmole/square m.s.kPa]\n", +"//*****//\n", +"\n", +"// Using equation 2.14\n", +"k_y = k_g*P; // [kmole/square m.s]\n", +"// Using equation 2.12\n", +"N_a = k_y*(y_a1-y_a2); // [kmole/square m.s]\n", +"printf('The methanol flux at the point of given mass transfer coefficient is %e kmole/square m.s\n\n',N_a);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.4: EX2_4.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.4\n", +"// Page: 99\n", +"\n", +"printf('Illustration 2.4 - Page: 99\n\n');\n", +"\n", +"// solution\n", +"// Mass Transfer into a Dilute Stream Flowing Under Forced Convection in a Circular Conduit\n", +"\n", +"n = 6; // [number of variables]\n", +"// Variables Symbols Dimensions\n", +"// Tube diameter D L\n", +"// Fluid density row M/L^3 \n", +"// Fluid viscosity u M/(Lt)\n", +"// Fluid velocity v L/t\n", +"// Mass diffusivity D_AB L^2/t\n", +"// Mass-transfer coefficient kc L/t\n", +"\n", +"// To determine the number of dimensionless parameters to be formed, we must know the rank, r, of the dimensional matrix.\n", +"// The dimensional matrix is \n", +"DM = [0,0,1,1,0,0;1,1,-3,-1,2,1;-1,-1,0,0,-1,-1];\n", +"[E,Q,Z ,stair ,rk]=ereduc(DM,1.d-15);\n", +"printf('Rank of matrix is %f\n\n',rk);\n", +"\n", +"//The numbers in the table represent the exponent of M, L, and t in the dimensional expression of each of the six variables involved. For example, the dimensional expression of p is M/Lt; hence the exponents are 1, -1, and -1\n", +"\n", +"// From equation 2.16\n", +"i = n-rk; // [number of dimensional groups]\n", +"// Let the dimensional groups are pi1, pi2 and pi3\n", +"// Therefore pi1 = (D_AB)^a*(row)^b*(D)^c*kc\n", +"// pi2 = (D_AB)^d*(row)^e*(D)^f*v\n", +"// pi3 = (D_AB)^g*(row)^h*(D)^i*u\n", +"\n", +"// Solving for pi1\n", +"// M^0*L^0*t^0 = 1 = (L^2/t)^a*(M/L^3)^b*(L)^c*(L/t)\n", +"\n", +"// Solution of simultaneous equation\n", +"function[f]=F(e)\n", +" f(1) = 2*e(1)-3*e(2)+e(3)+1;\n", +" f(2) = -e(1)-1;\n", +" f(3) = -e(2);\n", +" funcprot(0);\n", +"endfunction\n", +"\n", +"// Initial guess:\n", +"e = [0.1 0.8 0.5];\n", +"y = fsolve(e,F);\n", +"a = y(1);\n", +"b = y(2);\n", +"c = y(3);\n", +"printf('The coefficients of pi1 are %f %f %f\n\n',a,b,c);\n", +"// Similarly the coefficients of pi2 and pi3 are calculated\n", +"// Therefore we get pi1 = kc*D/D_AB = Sh i.e. Sherwood Number\n", +"// pi2 = v*D/D_AB = P_ed i.e. Peclet Number\n", +"// pi3 = u/(row*D_AB) = Sc i.e. Schmidt Number\n", +"\n", +"// Dividing pi2 by pi3 gives\n", +"// pi2/pi3 = D*v*row/u = Re i.e. Renoylds number\n", +"\n", +"printf('The result of the dimensional analysis of forced-convection mass transfer in a circular conduit indicates that a correlating relation could be of the form\n Sh = function(Re,Sc)\n which is analogous to the heat transfer correlation \n Nu = function(Re,Pr)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.6: Mass_Transfer_to_Fluid_Flow_Normal_to_a_Cylinder.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.6\n", +"// Page: 111\n", +"\n", +"printf('Illustration 2.6 - Page: 111\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-UF6 b-air\n", +"M_a = 352; // [molecular weight of UF6, gram/mole]\n", +"M_b = 29; // [gram/mole]\n", +"d = 0.01; // [diameter, m]\n", +"x = 0.1; // [length exposed to air stream, m]\n", +"v = 1; // [m/s]\n", +"Ts = 303; // [surface temperature of solid, K]\n", +"P_a = 27; // [vapor pressure of UF6, kPa]\n", +"Tb = 325; // [bulk temperature of solid ,K]\n", +"P = 101.3; // [kPa]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"//*****//\n", +"\n", +"y_a1 = P_a/P; // [mole fraction at point 1]\n", +"y_a2 = 0; // [mole fraction at point 2]\n", +"\n", +"// Along the mass-transfer path-cylinder surface (point 1) to bulk air (point 2)\n", +"Tavg = (Ts+Tb)/2; // [K]\n", +"\n", +"// At point 1, the gas is saturated with UF6 vapor, while at point 2 the gas is virtually free of UF6\n", +"// Therefore\n", +"Pavg = (P_a+0)/2; // [average partial pressure, kPa]\n", +"y_a = Pavg/P; // [mole fraction of UF6]\n", +"\n", +"Mavg = M_a*y_a+M_b*(1-y_a); // [gram/mole]\n", +"row_avg = P*Mavg/(R*Tavg); // [kg/cubic m]\n", +"\n", +"// Parameter for c-O2, d-N2 and a-UF6\n", +"yi_c = 0.182; yi_d = 0.685; yi_a = 0.133; \n", +"Tc_c = 154.6; Tc_d = 126.2; Tc_a = 505.8; // [K]\n", +"Pc_c = 50.4; Pc_d = 33.9; Pc_a = 46.6; // [bar]\n", +"M_c = 32; M_d = 28; M_a = 352; // [gram/mole]\n", +"V_c = 73.4; V_d = 89.8; V_a = 250; // [cubic cm/mole]\n", +"Z_c = 0.288; Z_d = 0.290; Z_a = 0.277;\n", +"\n", +"// From equation 2.52 and 2.53\n", +"Tcm = yi_c*Tc_c+yi_d*Tc_d+yi_a*Tc_a; // [K]\n", +"Pcm = 10^6*R*Tcm*(yi_c*Z_c+yi_d*Z_d+yi_a*Z_a)/((yi_c*V_c+yi_d*V_d+yi_a*V_a)*100000); // [bar]\n", +"M_avg = yi_c*M_c+yi_d*M_d+yi_a*M_a; // [gram/mole]\n", +"\n", +"// From equation 2.50\n", +"Em = 0.176*(Tcm/(M_avg^3*Pcm^4))^(1/6); // [uP]^-1\n", +"\n", +"// From equation 2.51\n", +"Trm = Tavg/Tcm;\n", +"f_Trm = (0.807*Trm^0.618)-(0.357*exp(-0.449*Trm))+(0.340*exp(-4.058*Trm))+0.018; \n", +"// From equation 2.49 \n", +"u = f_Trm/Em; // [uP]\n", +"u = u*10^-7; // [viscosity, kg/m.s]\n", +"\n", +"Re = d*v*row_avg/u; // [Renoylds number]\n", +"\n", +"// Diffusivity of UF6 vapors in air at 314 K and 1 atm from equation 1.49\n", +"D_ab = 0.0904; // [square cm/s]\n", +"\n", +"Sc = u/(row_avg*D_ab*10^-4); // [Schmidt number]\n", +"\n", +"Sh_avg = 0.43 + 0.532*Re^0.5*Sc^0.31; // [Sherwood number]\n", +"// From equation 1.7\n", +"c = P/(R*Tavg); // [kmole/cubic m]\n", +"// From Table 2.1 \n", +"F_av = Sh_avg*D_ab*c*10^-4/d; // [kmole/square m.s]\n", +"\n", +"// From equation 2.2\n", +"N_avg = F_av*log((1-y_a2)/(1-y_a1)); // [kmole/square m.s]\n", +"S = 2*%pi*d^2/4 +%pi*d*x; // [total surface area of the cylinder, square m]\n", +"\n", +"w_a = N_avg*S*M_a; // [rate of sublimation of the solid, kg/s] \n", +"printf('Rate of sublimation of a cylinder of UF6 is %e kg/s\n\n',w_a);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.7: The_Chilton_Colburn_Analogy.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.7\n", +"// Page: 116\n", +"\n", +"printf('Illustration 2.7 - Page: 116\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-benzene b-nitrogen\n", +"T = 300; // [K]\n", +"P = 101.3; // [kPa]\n", +"v =10; // [m/s]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"//*****//\n", +"\n", +"// Combining the given correlation with the definitions of j-H, and St_H, from Table 2.1 yields\n", +"// j_H = h*Pr^(2/3)/(Cp*row*v) = h*Pr^(2/3)/(Cp*Gy) = f(Re)\n", +"// Therefore \n", +"// h = Cp*Gy*f(Re)/(Pr)^(2/3) = 20*(Gy)^0.5 for carbon dioxide\n", +"\n", +"// Since Re = row*v*l/u = Gy*l/u, where 'l' is a characteristic length, the function f(Re) must be compatible with 20*Gy^0.5 .Therefore, let f(Re) = bRe^n, where 'b' and 'n' are constants to be evaluated. Then,\n", +"\n", +"// h = (Cp*Gy*b/Pr^(2/3))*(l*Gy/u)^n = 20*Gy^0.5\n", +"// Comparing both sides of equation, we get\n", +"// n+1 =0.5\n", +"// Therefore\n", +"n = -0.5;\n", +"// Data on the properties of C02 at 300 K and 1 bar\n", +"u = 1.5*10^-5; // [viscosity, P]\n", +"Pr = 0.77; // [Prandtl number]\n", +"Cp = 853; // [J/kg.K]\n", +"// Therefore\n", +"// b = 5.086*l^0.5\n", +"// j_D = j_H = f(Re) = 5.086*(l^0.5)*Re^-0.5\n", +"// From Table 2.1\n", +"// F = j_D*c*v/Sc^(2/3) = 5.086*(l^0.5)*c*v/(Re^0.5*Sc^(2/3)) = 5.086*(row*v*u)^0.5/(Mavg*Sc^(2/3))\n", +"\n", +"// Vapor pressure of benzene\n", +"P_a = exp(15.9008-(2788.51/(T-52.36))); // [mm of Hg]\n", +"P_a = P_a*101.3/760; // [kPa]\n", +"\n", +"// Parameter for a-benzene, b-nitrogen \n", +"yi_a = 0.07; yi_b = 0.93; \n", +"Tc_a = 562.2; Tc_b = 126.2; // [K]\n", +"Pc_a = 48.9; Pc_b = 33.9; // [bar]\n", +"M_a = 78.1; M_b = 28; // [gram/mole]\n", +"V_a = 259; V_b = 89.8; // [cubic cm/mole]\n", +"Z_a = 0.271; Z_b = 0.290;\n", +"sigma_a = 5.349; sigma_b = 3.798; // [Angstrom]\n", +"ek_a = 412.3; ek_b = 71.4; // [E/k, K]\n", +"\n", +"\n", +"// From equation 2.52 and 2.53\n", +"Tcm = yi_b*Tc_b+yi_a*Tc_a; // [K]\n", +"Pcm = 10^6*R*Tcm*(yi_b*Z_b+yi_a*Z_a)/((yi_b*V_b+yi_a*V_a)*100000); // [bar]\n", +"M_avg = yi_b*M_b+yi_a*M_a; // [kg/kmole]\n", +"printf('Average molecular weight is %f kg/kmole\n\n',M_avg);\n", +"row = P*M_avg/(R*T); // [kg/cubic m]\n", +"printf('Density of mixture is %f kg/cubic m\n\n',row);\n", +"// From equation 2.50\n", +"Em = 0.176*(Tcm/(M_avg^3*Pcm^4))^(1/6); // [uP]^-1\n", +"\n", +"// From equation 2.51\n", +"Trm = T/Tcm;\n", +"f_Trm = (0.807*Trm^0.618)-(0.357*exp(-0.449*Trm))+(0.340*exp(-4.058*Trm))+0.018; \n", +"// From equation 2.49 \n", +"u = f_Trm/Em; // [uP]\n", +"u = u*10^-7; // [viscosity, kg/m.s]\n", +"printf('Average viscosity of mixture is %e kg/m.s\n\n',u);\n", +"\n", +"// Calculating diffusivity of benzene using equation 1.49\n", +"D_ab = 0.0986; // [square cm/s]\n", +"Sc = u/(row*D_ab*10^-4); // [Schmidt number]\n", +"\n", +"F = 5.086*(row*v*u)^0.5/(M_avg*Sc^(2/3)); // [kmole/square m.s]\n", +"printf('The required mass transfer coefficient is %e kmole/square m.s\n\n',F);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.8: Benzene_Evaporation_Along_a_Vertical_Flat_Plate.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.8\n", +"// Page: 120\n", +"\n", +"printf('Illustration 2.8 - Page: 120\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-liquid benzene b-nitrogen\n", +"T = 300; // [K]\n", +"l = 3; // [length of vertical plate, m]\n", +"b = 1.5; // [width of vertical plate, m]\n", +"P = 101.3; // [kPa]\n", +"v = 5; // [velocity across the width of plate, m/s]\n", +"row_a = 0.88; // [gram/cubic cm]\n", +"//*****//\n", +"\n", +"y_a1 = 0.139; // [mole fraction of benzene at inner edge]\n", +"y_a2 = 0; \n", +"\n", +"// The film conditions, and average properties, are identical to those in Example 2.7, only the geometry is different\n", +"// Therefore\n", +"M_avg = 31.4; // [kg/kmole]\n", +"row = 1.2; // [kg/cubic m]\n", +"u = 161*10^-7; // [kg/m.s]\n", +"D_ab = 0.0986; // [square cm/s]\n", +"Sc = 1.3; // [Schmidt Number]\n", +"Re = row*v*b/u; // [Renoylds Number]\n", +"\n", +"if(Re>4000)\n", +" printf('The flow across the plate is turbulent\n\n');\n", +" else(Re<2000)\n", +" printf('The flow across the plate is laminar\n\n');\n", +" end\n", +" \n", +"// Using equation 2.57\n", +"Sh_l = 0.036*Re^0.8*Sc^(1/3); \n", +"\n", +"// Nitrogen (component B) does not react with benzene (component A), neither dissolves in the liquid; therefore, NB = 0 and siA = 1. The F-form of the mass-transfer coefficient should be used \n", +"F = Sh_l*1.26*D_ab*10^-4/(M_avg*b); // [kmole/square m.s]\n", +"N_a = F*log((1-y_a2)/(1-y_a1)); // [kmole/square m.s]\n", +"\n", +"// The total mass rate of evaporation over the surface of the plate\n", +"S = 1.5*3; // [square m]\n", +"M_a = 78.1; // [gram/mole]\n", +"wa = N_a*S*M_a*60*1000; // [gram/min]\n", +"\n", +"V = wa/row_a; // [volumetric flow rate, ml/min]\n", +"\n", +"printf('Liquid benzene should be supplied at the top of the plate at the rate %f ml/min so that evaporation will just prevent it from reaching the bottom of the plate.\n\n',V);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.9: Evaporation_of_a_Drop_of_Water_Falling_in_Air.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 2.9\n", +"// Page: 123\n", +"\n", +"printf('Illustration 2.9 - Page: 123\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-water b-air\n", +"dp1 = 10^-3; // [diameter of spherical drop of water, m]\n", +"Tair = 323; // [K]\n", +"P = 101.3; // [kPa]\n", +"Twater = 293; // [K]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"M_a = 18; // [gram/mole]\n", +"M_b = 29; // [gram/mole]\n", +"//*****//\n", +"\n", +"dp2 = (1/2)^(1/3)*dp1; // [m]\n", +"dp = (dp1+dp2)/2; // [m]\n", +"\n", +"row_p = 995; // [density of water, kg/cubic m]\n", +"row1b = 1.094; // [density of air, kg/cubic m]\n", +"u = 1.95*10^-5; // [kg/m.s]\n", +"row_pr = row_p-row1b; // [kg/cubic m]\n", +"g = 9.8; // [accleration due to gravity, square m/s]\n", +"// Combining equation 2.68 and 2.69\n", +"Ga = 4*dp^3*row1b*row_pr*g/(3*u^2); // [Galileo Number]\n", +"\n", +"// Relationship between Re and Cd\n", +"// Re/Cd = Re^3/Ga = 3*row^2*vt^3/(4*g*u*row_pr)\n", +"\n", +"// The following correlation is used to relate Re/Cd, to Ga\n", +"// ln(Re/Cd)^(1/3) = -3.194 + 2.153*ln(Ga)^(1/3) - 0.238*(ln(Ga)^(1/3))^2 + 0.01068*(ln(Ga)^(1/3))^3\n", +"// Therefore let A = (Re/Cd)\n", +"A = exp(-3.194 + 2.153*log(Ga^(1/3)) - 0.238*(log(Ga^(1/3)))^2 + 0.01068*(log(Ga^(1/3)))^3);\n", +"\n", +"// Therefore 'vt' will be\n", +"vt = A*(4*g*row_pr*u/(3*row1b^2))^(1/3); // [Terminal velocity of particle, m/s]\n", +"printf('Terminal velocity of particle is %f m/s\n\n',vt); \n", +"\n", +"P_w = 2.34; // [vapor pressure of water, kPa]\n", +"y_w = P_w/P; // [mole fraction of water at the inner edge of the gas film]\n", +"M_avg = 18*y_w+29*(1-y_w); // [gram/mole]\n", +"\n", +"row2b = P*M_avg/(R*Twater); // [kg/cubic.m]\n", +"delta_row = row2b - row1b; // [kg/cubic.m]\n", +"\n", +"Tavg = (Tair+Twater)/2; // [K]\n", +"// At Temperature equal to Tavg density and viscosity are\n", +"row3 = 1.14; // [kg/cubic.m]\n", +"u1 = 1.92*10^-5; // [kg/m.s]\n", +"\n", +"Grd = g*row3*delta_row*(dp^3)/(u1^2);\n", +"\n", +"// Diffusivity of water at Tavg and 1 atm is\n", +"D_ab = 0.242*10^-4; // [square m/s]\n", +"Sc = u1/(row3*D_ab); // [Schmidt Number]\n", +"Re = dp*row3*vt/u1; // [Renoylds Number]\n", +"\n", +"// From equation 2.65 Re is greater than 0.4*Grd^0.5*Sc^(-1/6)\n", +"// Therfore equation 2.64 can be used to calculate mass transfer coefficient\n", +"\n", +"Sh = 2+0.552*(Re^0.5)*Sc^(1/3); // [Sherwood Number]\n", +"// From Table 2.1\n", +"// Sh = kc*P_bm*dp/(P*D_ab), since P_bm is almost equal to P\n", +"// Therefore \n", +"// Sh = kc*dp/D_ab;\n", +"kc = Sh*D_ab/dp; // [m/s]\n", +"\n", +"ca2 = 0; // [dry air concentration]\n", +"ca1 = P_w/(R*Twater); // [interface concentration, kmole/cubic.m]\n", +"// Average rate of evaporation \n", +"wa = %pi*dp^2*M_a*kc*(ca1-ca2)*1000; // [g/s]\n", +"\n", +"// Amount of water evaporated\n", +"m = row_p*%pi*dp1^3/12*1000; // [g]\n", +"// Time necessary to reduce the volume by 50%\n", +"t = m/wa; // [s]\n", +"\n", +"D = t*vt; // [distance of fall, m]\n", +"printf('The distance of fall is %f m\n\n',D); " + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/3-Interphase_Mass_Transfer.ipynb b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/3-Interphase_Mass_Transfer.ipynb new file mode 100644 index 0000000..d1fe0a9 --- /dev/null +++ b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/3-Interphase_Mass_Transfer.ipynb @@ -0,0 +1,726 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 3: Interphase Mass Transfer" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.10: Benzene_Recovery_System_Number_of_Ideal_Stages.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.10\n", +"// Page: 199\n", +"\n", +"printf('Illustration 3.10 - Page: 199\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// From Example 3.7\n", +"X2a = 0.05; X0 = X2a; // [kmole benzene/kmole oil]\n", +"Y2a = 0.012; Y1 = Y2a; // [kmole benzene/kmole dry gas]\n", +"X1a = 0.480; Xn = X1a; // [kmole benzene/kmole oil]\n", +"Y1a = 0.080; Yn1 = Y1a; // [kmole benzene/kmole dry gas]\n", +"// Ideal stages for absorber section\n", +"\n", +"m = 0.097; // [mole of oil/mole of dry gas]\n", +"Lsa = 0.006; // [kmole/s]\n", +"Vsa = 0.038; // [kmole/s]\n", +"A = Lsa/(m*Vsa); // [Absorption factor]\n", +"\n", +"// From equation 3.54 by Kremser equation\n", +"Nk = log((((Yn1-m*X0)*(1-1/A))/(Y1-m*X0))+1/A)/(log(A));\n", +"printf('Number of ideal stages from Kremser equation in the absorber is %f\n\n',Nk);\n", +"\n", +"// Ideal stages from graph \n", +"// Stair case construction is being made between equilibrium curve and operating line from piont X2a,Y2a to X1a,Y1a\n", +"// A more precise estimate of stages\n", +"// From figure 3.25 or from graph made for absorber in Example 3.7\n", +"Xa = 0.283;\n", +"Xb = 0.480;\n", +"Xc = 0.530;\n", +"Na = 3+(Xb -Xa)/(Xc-Xa);\n", +"printf('The number of ideal stages from graph in the absorber is %f\n\n',Na);\n", +"\n", +"// Ideal satges for stripping section\n", +"X2s = 0.480; X0 = X2s; // [kmol benzene/kmol oil]\n", +"Y2s = 0.784; Y1 = Y2s; // [kmol benzene/kmol steam]\n", +"X1s = 0.05; Xn = X1s; // [kmol benzene/kmol oil]\n", +"Y1s = 0; Yn1 = Y1s; // [kmol benzene/kmol steam]\n", +"\n", +"// Similarly here also stair case construction is being made between equilibrium curve and operating line from piont X0,Y1 to Xn,Yn1\n", +"// A more precise estimate of stages\n", +"// From figure 3.26 or from graph made for stripping section in Example 3.7\n", +"Ns = 5+(0.070-0.050)/(0.070-0.028);\n", +"\n", +"printf('The number of ideal stages from graph in the stripping section is %f\n\n',Ns);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.1: Application_of_Raoults_Law_to_a_Binary_System.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.1\n", +"// Page: 161\n", +"\n", +"printf('Illustration 3.1 - Page: 161\n\n');\n", +"\n", +"// solution\n", +"\n", +"//*****Data*****//\n", +"// a-benzene b-toluene\n", +"T = 300; // [K]\n", +"x_a = 0.4; // [mole fraction in liquid phase]\n", +"// Antoine constants for benzene and toluene are given\n", +"// For benzene\n", +"A_a = 15.9008;\n", +"B_a = 2788.51;\n", +"C_a = -52.36;\n", +"// For toluene\n", +"A_b = 16.0137;\n", +"B_b = 3096.52;\n", +"C_b = -53.67;\n", +"//*****//\n", +"\n", +"// Using equation 3.5 vapor pressure of component 'a' and 'b'\n", +"P_a = exp(A_a-(B_a/(T+C_a))); // [mm of Hg]\n", +"P_b = exp(A_b-(B_b/(T+C_b))); // [mm of Hg]\n", +"\n", +"P_a = P_a*101.3/760; // [kPa]\n", +"P_b = P_b*101.3/760; // [kPa]\n", +"// Partial pressure of component 'a' and 'b'\n", +"p_a = x_a*P_a; // [kPa]\n", +"p_b = (1-x_a)*P_b; // [kPa]\n", +"P_total = p_a+p_b; // [kPa]\n", +"\n", +"printf('The total equilibrium pressure of the binary system of benzene and toluene is %f kPa\n\n',P_total);\n", +"\n", +"y_a = p_a/P_total; // [mole fraction in vapor phase]\n", +"printf('The composition of the vapor in equilibrium is %f\n\n',y_a); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.2: Henrys_Law_Saturation_of_Water_with_Oxygen.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.2\n", +"// Page: 162\n", +"\n", +"printf('Illustration 3.2 - Page: 162\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// A-oxygen B-water\n", +"T = 298; // [K]\n", +"H = 4.5*10^4; // [atm/mole fraction]\n", +"P = 1; // [atm]\n", +"row_B = 1000; // [density of water, kg/cubic m]\n", +"M_B = 18; // [Molecular mass of water, gram/mole]\n", +"M_A = 32; // [,Molecular mass of oxygen, gram/mole]\n", +"//*****//\n", +"\n", +"// Dry air contains 21% oxygen; then p_A = y*P = 0.21 atm\n", +"// Therefore using Henry's Law\n", +"p_A = 0.21; // [atm]\n", +"x_A = p_A/H; // [mole fraction in liquid phase]\n", +"\n", +"// Basis: 1L of saturated solution\n", +"// 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", +"n_t = row_B/M_B\n", +"// Moles of oxygen in 1L saturated solution is\n", +"n_o = n_t*x_A; // [mole]\n", +"// Saturation concentration\n", +"c_A = n_o*M_A*1000; // [mg/L]\n", +"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); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.3: Material_Balances_Combined_with_Equilibrium_Relations_Algebraic_Solution.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.3\n", +"// Page: 162\n", +"\n", +"printf('Illustration 3.3 - Page: 162\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-ammonia b-air c-water\n", +"T = 300; // [K]\n", +"P = 101.3; // [kPa]\n", +"R = 8.314; // [cubic m.Pa/mole.K]\n", +"V_b = 15; // [cubic m]\n", +"m_a = 10; // [kg]\n", +"m_c = 45; // [kg]\n", +"M_a = 17; // [molecular mass of ammonia, gram/mole]\n", +"M_c = 18; // [molecular mass of water, gram/mole]\n", +"//*****//\n", +"\n", +"n_b = V_b*P/(R*T); // [kmole]\n", +"n_a = m_a/M_a; // [kmole]\n", +"n_c = m_c/M_c; // [kmole]\n", +"\n", +"// L_a as the number of kmol of ammonia in the liquid phase when equilibrium is achieved\n", +"// And n_a-L_a kmol of ammonia will remain in the gas phase\n", +"// x_a = L_a/(n_c+L_a) (1)\n", +"// y_a = (n_a-L_a)/(n_b+n_a-L_a) (2)\n", +"// gamma = 0.156+0.622*x_a*(5.765*x_a-1) (3) for x_a <= 0.3 \n", +"// y_a = 10.51*gamma*x_a; (4)\n", +"// Equations (1),(2),(3), and (4) are solved simultaneously\n", +"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)))');\n", +"L_a = fsolve(0.3,f12); // [kmole]\n", +"\n", +"x_a = L_a/(n_c+L_a);\n", +"y_a = (n_a-L_a)/(n_b+n_a-L_a);\n", +"gammma_a = 0.156+0.622*x_a*(5.765*x_a-1);\n", +"\n", +"printf('At equilibrium the ammonia content of the liquid phase will be %f\n\n',x_a);\n", +"printf('At equilibrium the ammonia content of the gas phase will be %f\n\n',y_a);\n", +"printf('The amount of ammonia absorbed by the water will be %f kmole\n\n',L_a); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.4: Mass_Transfer_Resistances_During_Absorption_of_Ammonia_by_Water.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.4\n", +"// Page: 169\n", +"\n", +"printf('Illustration 3.4 - Page: 169\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-ammonia\n", +"T = 300; // [K]\n", +"P = 101.3; // [kPa]\n", +"Kg = 2.75*10^-6; // [kmole/square m.s.kPa]\n", +"m = 1.64;\n", +"res = 0.85; // [gas phase resistance]\n", +"xa_g = 0.115/100; // [mole fraction of NH3 in liquid phase at a point]]\n", +"ya_g = 8/100; // [mole fraction of NH3 in gas phase at a point]\n", +"//*****//\n", +"\n", +"Ky = Kg*P; // [kmole/square m.s]\n", +"// Using equation 3.24\n", +"ky = Ky/res; // [kmole/square m.s]\n", +"// Using equation 3.21\n", +"deff('[y] = f12(kx)','y = (m/kx)-(1/Ky)+(1/ky)');\n", +"kx = fsolve(0.0029,f12); // [kmole/square m.s]\n", +"\n", +"// Interfacial concentrations at this particular point in the column, using equation (3.15)\n", +"ystar_a = m*xa_g;\n", +"// Using equation 3.12\n", +"N_a = Ky*(ya_g-ystar_a); // [kmole/square m.s]\n", +"// Gas-phase interfacial concentration from equation (3.9)\n", +"ya_i = ya_g-(N_a/ky);\n", +"// Since the interfacial concentrations lie on the equilibrium line, therefore\n", +"xa_i = ya_i/m;\n", +"// Cross checking the value of N_a\n", +"N_a = kx*(xa_i-xa_g); // [kmole/square m.s]\n", +"\n", +"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);\n", +"printf('The gas phase and liquid phase interfacial concentrations are %f and %f respectively\n\n',ya_i,xa_i);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.5: Absorption_of_Ammonia_by_Water_Use_of_F_Type_Mass_Transfer_Coefficients.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.5\n", +"// Page: 171\n", +"\n", +"printf('Illustration 3.5 - Page: 171\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-ammonia\n", +"T = 300; // [K]\n", +"P = 101.3; // [kPa]\n", +"ya_g = 0.6; // [ammonia concentration in bulk gas]\n", +"xa_l = 0.12; // [ammonia concentration in bulk liquid]\n", +"Fl = 3.5*10^-3; // [kmole/square m.s]\n", +"Fg = 2*10^-3; // [kmole/square m.s]\n", +"//*****//\n", +"\n", +"// Algebraic solution (a)\n", +"\n", +"// In gas phase substance 'A' is ammonia and 'B' is air\n", +"// Assuming N_BG = 0 and sia_AG = 1 and\n", +"// In liquid phase substance 'B' is water\n", +"// Assuming N_BL = 0 and sia_AL = 1\n", +"// Then equation 3.29 reduces to 3.30\n", +"\n", +"// Using equation 3.30, 3.8(a),3.6(a) \n", +"// ya_i = 1-(1-ya_g)*((1-xa_l)/(1-xa_i))^(Fl/Fg) 3.30\n", +"// ya_i = 10.51*gamma*xa_i 3.8(a)\n", +"// gamma = 0.156+0.622*xa_i*(5.765*xa_i-1) 3.6(a)\n", +"\n", +"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');\n", +"xa_i = fsolve(0.2,f12);\n", +"\n", +"ya_i = 1-(1-ya_g)*((1-xa_l)/(1-xa_i))^(Fl/Fg);\n", +"printf('The local gas and liquid interfacial concentrations are %f and %f respectively\n\n',ya_i,xa_i);\n", +"// Using equation 3.28 \n", +"N_a = Fg*log((1-ya_i)/(1-ya_g));\n", +"printf('The local ammonia mass-transfer flux is %e kmole/square m.s\n\n',N_a);\n", +" " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.6: EX3_6.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.6\n", +"// Page: 175\n", +"\n", +"printf('Illustration 3.6 - Page: 175\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-methanol b-water\n", +"T = 360; // [K]\n", +"P = 101.3; // [kPa]\n", +"lambda_a = 33.3; // [MJ/kmole]\n", +"lambda_b = 41.3; // [MJ/kmole]\n", +"Fg = 0.0017; // [kmole/square m.s]\n", +"Fl = 0.0149; // [kmole/square m.s]\n", +"yag = 0.36; // [bulk gas phase concentration]\n", +"xag = 0.20; // [bulk liquid phase concentration]\n", +"R = 1.987; \n", +"//*****//\n", +"\n", +"// From energy balance\n", +"// Nb = -(lambda_a/lambda_b)*Na\n", +"// and sia_ag = sia_al = 1/(1-(lambda_a/lambda_b))\n", +"sia_ag =5.155;\n", +"sia_al = sia_ag;\n", +"// Therefore equation 3.29 becomes\n", +"// yai = 5.155-4.795(4.955/(5.155-xai))^8.765\n", +"\n", +"// Using equation 3.33, 3.34, 3.35\n", +"V2 = 18.07; // [cubic cm/mole]\n", +"V1 = 40.73; // [cubic cm/mole]\n", +"a12 = 107.38; // [cal/mole]\n", +"a21 = 469.5; // [cal/mole]\n", +"\n", +"// Solution of simultaneous equation \n", +"function[f]=F(e)\n", +" f(1) = e(1)+e(2)-1;\n", +" f(2) = e(3)+e(4)-1;\n", +" f(3) = e(3)-5.155+4.795*(4.955/(5.155-e(1)))^(Fl/Fg);\n", +" 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;\n", +" 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;\n", +" funcprot(0);\n", +"endfunction\n", +"\n", +"// Initial guess\n", +"e =[0.1 0.9 0.2 0.8 300];\n", +"y = fsolve(e,F);\n", +"xai = y(1);\n", +"xbi = y(2);\n", +"yai = y(3);\n", +"ybi = y(4);\n", +"T = y(5); // [K]\n", +"\n", +"printf('yai is %f\n',yai);\n", +"printf('ybi is %f\n',ybi);\n", +"printf('xai is %f\n',xai);\n", +"printf('xbi is %f\n',xbi);\n", +"printf('Temperature is %f\n',T);\n", +"// Local Methanol flux, using equation 3.28\n", +"Na = sia_ag*Fg*log((sia_ag-yai)/(sia_ag-yag)); // [kmole/square m.s]\n", +"printf('Local Methanol flux is %e kmole/square m.s\n\n',Na); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.7: Recovery_of_Benzene_Vapors_from_a_Mixture_with_Air.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.7\n", +"// Page: 183\n", +"\n", +"printf('Illustration 3.7 - Page: 183\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// 1-benzene a-absorber s-steams\n", +"T = 300; // [K]\n", +"P = 101.3; // [kPa]\n", +"R = 8.314; // [gas constant]\n", +"v = 1; // [cubic m/s]\n", +"// Gas in\n", +"y1a = 0.074;\n", +"// Liquid in\n", +"x2a = 0.0476\n", +"// Recovery is 85 %\n", +"// Calculations for absorber section\n", +"\n", +"V1a = P*v/(R*T); // [kmole/s]\n", +"// Inert gas molar velocity\n", +"Vsa = V1a*(1-y1a); // [kmole/s]\n", +"Y1a = y1a/(1-y1a); // [kmole of benzene/kmole of dry gas]\n", +"\n", +"X2a = x2a/(1-x2a); // [kmole of benzene/kmole of oil]\n", +"// Since the absorber will recover 85% of the benzene in the entering gas, the concentration of the gas leaving it will be\n", +"r = 0.85;\n", +"Y2a = (1-r)*Y1a; // [kmole of benzene/kmole of dry gas]\n", +"// 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\n", +"// yia = 0.136*xia\n", +"// or Yia/(1+Yia) = 0.136*Xia/(1+Xia)\n", +"\n", +"// Data_eqm = [Xia Yia]\n", +"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];\n", +"\n", +"// Here because of the shape of equilibrium curve, the operating line for minimum oil rate must be tangent to curve\n", +"// Therefore\n", +"// From the curve X1a_max = 0.91\n", +"X1a_max = 0.91; // [kmol benzene/kmol oil]\n", +"\n", +"// For minimum operating line slope is \n", +"S = (Y1a-Y2a)/(X1a_max-X2a); // [kmol oil/kmol air]\n", +"// Therfore\n", +"Lsa_min = S*Vsa; // [kmole oil/s]\n", +"Data_minSlope1 = [X2a Y2a;X1a_max Y1a];\n", +" \n", +"// For Actual operating line, oil flow rate is twice the minimum\n", +"Lsa = 2*Lsa_min; // [kmole oil/s]\n", +"M_oil = 198; // [molecular weight of oil, gram/mole]\n", +"\n", +"Wsa = Lsa*M_oil; // [mass flow rate of oil, kg/s]\n", +"// Using equation 3.47 to calculate the actual concentration of the liquid phase leaving the absorber\n", +"X1a = X2a + Vsa*(Y1a-Y2a)/Lsa; // [kmol benzene/kmol oil]\n", +"Data_opline1 = [X2a Y2a;X1a Y1a];\n", +"\n", +"scf(1);\n", +"plot(Data_eqm(:,1),Data_eqm(:,2),Data_minSlope1(:,1),Data_minSlope1(:,2),Data_opline1(:,1),Data_opline1(:,2));\n", +"xgrid();\n", +"legend('Equilibrium line for absorber','Minimum Flow Rate Line for absorber','Operating Line for absorber');\n", +"xlabel('Xa, mole benzene/mole oil');\n", +"ylabel('Ya, mole benzene/mole air');\n", +"\n", +"// Calculations for stripping section\n", +"Lss = Lsa;\n", +"X2s = X1a;\n", +"X1s = X2a;\n", +"Y1s = 0;\n", +"T = 373; // [K]\n", +"// Applying Raoult’s law at this temperature gives us\n", +"// yis = 1.77*xis\n", +"// Yis/(1+Yis) = 1.77*Xis/(1+Xis)\n", +"\n", +"// Equilibrium data \n", +"// Data_equm = [Xis Yis]\n", +"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];\n", +"\n", +"// Similar procedure as above is followed\n", +"// The operating line for minimum oil rate must be tangent to curve \n", +"// Therefore from the curve\n", +"Y2s_max = 1.175; // [kmol benzene/kmol steam]\n", +"S = (Y2s_max-Y1s)/(X2s-X1s); // [kmole oil/kmole steam]\n", +"Vss_min = Lss/S; // [kmole/s]\n", +"Vss = 1.5*Vss_min; // [kmole/s]\n", +"Mss = 18; // [molecular weight of steam, gram/mole]\n", +"Wss = Vss*Mss; // [kg steam/s]\n", +"\n", +"Data_minSlope2 = [X1s Y1s;X2s Y2s_max];\n", +"\n", +"Y2s_act = Y1s + Lss*(X2s-X1s)/Vss; // [kmol benzene/kmol steam]\n", +"\n", +"Data_opline2 = [X1s Y1s;X2s Y2s_act];\n", +"\n", +"\n", +"scf(2);\n", +"plot(Data_equm(:,1),Data_equm(:,2),Data_minSlope2(:,1),Data_minSlope2(:,2),Data_opline2(:,1),Data_opline2(:,2));\n", +"xgrid();\n", +"legend('Equilibrium line for stripping','Minimum Flow Rate for stripping Line','Operating Line for stripping');\n", +"xlabel('Xa, mole benzene/mole oil');\n", +"ylabel('Ya, mole benzene/mole air');\n", +"\n", +"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); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.8: Adsorption_of_Nitrogen_Dioxide_on_Silica_Gel.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.8\n", +"// Page: 190\n", +"\n", +"printf('Illustration 3.8 - Page: 190\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// 1-Nitrogen dioxide 2-air\n", +"T = 298; // [K]\n", +"P = 101.3; // [kPa]\n", +"y1 = 0.015;\n", +"V1 = 0.5; // [mass flow rate of the gas entering the adsorber, kg/s]\n", +"M1 = 46; // [gram/mole]\n", +"M2 = 29; // [gram/mole]\n", +"// Data_eqm1 = [P1 m] (where 'P1' is Partial pressure of NO2 in mm of Hg, 'm' is solid concentration in kg NO2/kg gel)\n", +"Data_eqm1 = [0 0;2 0.4;4 0.9;6 1.65;8 2.60;10 3.65;12 4.85];\n", +"//*****//\n", +"\n", +"Y1 = y1*M1/((1-y1)*M2); // [kg NO2/kg air]\n", +"// For 85% removal of the NO2,\n", +"Y2 = 0.15*Y1; // [kg NO2/kg air]\n", +"// Since the entering gel is free of NO2,\n", +"X2 = 0;\n", +"// The equilibrium data are converted to mass ratios as follows:\n", +"// Yi = P1/(760-P1)*46/29 (kg NO2/kg air) Xi = m/100 (kg NO2/kg gel)\n", +"// Equilibrium data\n", +"// Data_eqm = [Xi*100 Yi*100]\n", +"for i = 1:7;\n", +" Data_eqm(i,2) = Data_eqm1(i,1)*M1*100/((760-Data_eqm1(i,1))*M2);\n", +" Data_eqm(i,1) = Data_eqm1(i,2);\n", +"end\n", +"\n", +"//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];\n", +"\n", +"// The operating line for minimum slope is tangent to curve, from which we get\n", +"X1_max = 0.0375; // [kg NO2/kg gel]\n", +"\n", +"wb1 = 1/(1+Y1);\n", +"Vs = V1*wb1; // [mass velocity of the air, kg/s] \n", +"Ls_min = Vs*(Y1-Y2)/(X1_max-X2); // [kg gel/s]\n", +"Data_minSlope = [X2 Y2;X1_max Y1]*100;\n", +"// Operating line\n", +"Ls = 2*Ls_min; // [kg gel/s]\n", +"\n", +"X1 = X2 + Vs*(Y1-Y2)/Ls; // [kg NO2/kg gel]\n", +"\n", +"scf(4);\n", +"plot(Data_eqm(:,1),Data_eqm(:,2),Data_minSlope(:,1),Data_minSlope(:,2));\n", +"xgrid();\n", +"legend('Equilibrium line ','Minimum Flow Rate Line');\n", +"xlabel('Xa*100, kg NO2/kg gel ');\n", +"ylabel('Ya*100, kh NO2/kg air');\n", +"\n", +"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);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.9: Cocurrent_Adsorption_of_NO2_on_Silica_Gel.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 3.9\n", +"// Page: 194\n", +"\n", +"printf('Illustration 3.9 - Page: 194\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// 1-Nitrogen dioxide 2-air\n", +"// From Example 3.8\n", +"Y1 = 0.0242; // [kg NO2/kg air]\n", +"Y2 = 0.0036; // [kg NO2/kg air]\n", +"Vs = 0.488; // [kg air/s]\n", +"M1 = 46; // [gram/mole]\n", +"M2 = 29; // [gram/mole]\n", +"// However here\n", +"X1 = 0;\n", +"// Data_eqm1 = [P1 m] (where 'P1' is Partial pressure of NO2 in mm of Hg, 'm' is solid concentration in kg NO2/kg gel)\n", +"Data_eqm1 = [0 0;2 0.4;4 0.9;6 1.65;8 2.60;10 3.65;12 4.85];\n", +"\n", +"// The equilibrium data are converted to mass ratios as follows:\n", +"// Yi = P1/(760-P1)*46/29 (kg NO2/kg air) Xi = m/100 (kg NO2/kg gel)\n", +"// Equilibrium data\n", +"// Data_eqm = [Xi*100 Yi*100]\n", +"for i = 1:7;\n", +" Data_eqm(i,2) = Data_eqm1(i,1)*M1*100/((760-Data_eqm1(i,1))*M2);\n", +" Data_eqm(i,1) = Data_eqm1(i,2);\n", +"end\n", +"\n", +"// From the intersection of the minimum operating line and equilibrium curve\n", +"X2_max = 0.0034; // [kg NO2/kg gel]\n", +"S = (Y1-Y2)/(X1-X2_max); // [kg gel/kg air]\n", +"Ls_min = -S*Vs; // [kg/s]\n", +"\n", +"Ls = 2*Ls_min; // [kg/s]\n", +"Data_minSlope = [X1 Y1;X2_max Y2]*100;\n", +"\n", +"\n", +"scf(4);\n", +"plot(Data_eqm(:,1),Data_eqm(:,2),Data_minSlope(:,1),Data_minSlope(:,2));\n", +"xgrid();\n", +"legend('Equilibrium line ','Minimum Flow Rate Line');\n", +"xlabel('Xa*100, kg NO2/kg gel');\n", +"ylabel('Ya*100, kh NO2/kg air');\n", +"\n", +"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);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/4-Equipment_for_Gas_Liquid_Mass_Transfer_Operations.ipynb b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/4-Equipment_for_Gas_Liquid_Mass_Transfer_Operations.ipynb new file mode 100644 index 0000000..ac15aa7 --- /dev/null +++ b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/4-Equipment_for_Gas_Liquid_Mass_Transfer_Operations.ipynb @@ -0,0 +1,883 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4: Equipment for Gas Liquid Mass Transfer Operations" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.2: EX4_2.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 4.2\n", +"// Page: 227\n", +"\n", +"printf('Illustration 4.2 - Page: 227\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"u = 3*10^-6; // [Kinematic viscosity, square m/s]\n", +"v = 0.01; // [Superficial liquid velocity, m/s]\n", +"g = 9.8; // [square m/s]\n", +"//*****//\n", +"// From table 4.1\n", +"// For metal pall rings\n", +"a_pr = 112.6; // [ square m/cubic m]\n", +"e_pr = 0.951;\n", +"Ch_pr = 0.784;\n", +"// For Hiflow rings\n", +"a_hr = 92.3; // [square m/cubic m]\n", +"e_hr = 0.977;\n", +"Ch_hr = 0.876;\n", +"\n", +"// Renoylds and Froude's number for metal pall rings\n", +"Rel_pr = v/(u*a_pr);\n", +"Frl_pr = v^2*a_pr/g;\n", +"// From equation 4.5 since Rel is greater than 5, for pall rings\n", +"// ah/a = x_pr\n", +"x_pr = 0.85*Ch_pr*Rel_pr^0.25*Frl_pr^0.1;\n", +"// From equation 4.3\n", +"hl_pr = (12*Frl_pr/Rel_pr)^(1/3)*(x_pr)^(2/3); \n", +"\n", +"\n", +"// Renoylds and Froude's number for Hiflow rings\n", +"Rel_hr = v/(u*a_hr);\n", +"Frl_hr = v^2*a_hr/g;\n", +"// From equation 4.5 since Rel is greater than 5, for pall rings\n", +"// ah/a = x_pr\n", +"x_hr = 0.85*Ch_hr*Rel_hr^0.25*Frl_hr^0.1;\n", +"// From equation 4.3\n", +"hl_hr = (12*Frl_hr/Rel_hr)^(1/3)*(x_hr)^(2/3);\n", +"\n", +"printf('The specific liquid holdup for Metal pall ring and Hiflow ring are %f cubic m holdup/cubic m packed bed and %f cubic m holdup/cubic m packed bed respectively\n\n',hl_pr,hl_hr);\n", +" " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.3: Pressure_Drop_in_Beds_Packed_with_First_and_Third_Generation_Random_Packings.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 4.3\n", +"// Page: 233\n", +"\n", +"printf('Illustration 4.3 - Page: 233\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-ammonia b-air c-water\n", +"P = 101.3; // [kPa]\n", +"T = 293; // [K]\n", +"R = 8.314; \n", +"Vb = 20; // [kmole/h]\n", +"xab = 0.05;\n", +"Vc = 1500; // [kg/h]\n", +"d = 0.9; // [ammonia absorbed]\n", +"Ma = 17; // [gram/mole]\n", +"Mb = 29; // [gram/mole]\n", +"Mc = 18; // [gram/mole]\n", +"g = 9.8; // [square m/s]\n", +"//*****//\n", +"\n", +"// For Inlet gas\n", +"Mg = (1-xab)*Mb+xab*Ma; // [gram/mole]\n", +"V = Vb*Mg/3600; // [kg/h]\n", +"rowg = P*Mg/(R*T); // [kg/cubic m]\n", +"Qg = V/rowg; // [cubic m/s]\n", +"\n", +"// For exiting liquid\n", +"b = Vb*xab*Ma*d; // [ammonia absorbed in kg/h]\n", +"L = (Vc+b)/3600; // [kg/s]\n", +"rowl = 1000; // [kg/cubic m]\n", +"\n", +"X = (L/V)*(sqrt(rowg/rowl));\n", +"// From equation 4.8\n", +"Yflood = exp(-(3.5021+1.028*log(X)+0.11093*(log(X))^2));\n", +"\n", +"\n", +"printf('Illustration 4.3(a) - Page: 233\n\n');\n", +"// Solution(a)\n", +"// For 25-mm ceramic Raschig rings\n", +"Fp = 179; // [square ft/cubic ft]\n", +"ul = 0.001; // [Pa.s]\n", +"// From equation 4.6\n", +"Csflood = sqrt(Yflood/(ul^0.1*Fp)); // [m/s]\n", +"// From equation 4.7\n", +"vgf = Csflood/(sqrt(rowg/(rowl-rowg))); // [m/s]\n", +"// From equation 4.9\n", +"deltaPf = 93.9*(Fp)^0.7; // [Pa/m of packing]\n", +"\n", +"// For operation at 70% of the flooding velocity\n", +"f = 0.7;\n", +"// From equation 4.10\n", +"vg = f*vgf; // [m/s]\n", +"D = sqrt(4*Qg/(vg*%pi));\n", +"\n", +"// From Table 4.1, for 25 mm ceramic Raschig rings\n", +"a_c = 190; // [square m/cubic m]\n", +"Ch_c = 0.577;\n", +"e_c = 0.68;\n", +"Cp_c = 1.329;\n", +"\n", +"// From equation 4.13\n", +"dp = 6*(1-e_c)/a_c; // [m]\n", +"// From equation 4.12\n", +"Kw = 1/(1+(2*dp/(3*D*(1-e_c))));\n", +"\n", +"// The viscosity of the gas phase is basically that of air at 293 K and 1 atm\n", +"ug = 1.84*10^-5; // [kg/m.s]\n", +"// From equation 4.15\n", +"Reg = vg*rowg*dp*Kw/(ug*(1-e_c));\n", +"// From equation 4.14\n", +"sia_o = Cp_c*((64/Reg)+(1.8/(Reg^0.08)));\n", +"\n", +"// From equation 4.11\n", +"// deltaP_o/z = T\n", +"T = sia_o*a_c*rowg*vg^2/(2*Kw*e_c^3); // [Pa/m]\n", +"\n", +"// Now\n", +"Gx = L/(%pi*D^2/4); // [kg/square m.s]\n", +"Rel = Gx/(a_c*ul);\n", +"Frl = Gx^2*a_c/(rowl^2*g);\n", +"\n", +"// From equation 4.5\n", +"// ah/a = x_pr\n", +"x = 0.85*Ch_c*Rel^0.25*Frl^0.1;\n", +"// From equation 4.3\n", +"hl = (12*Frl/Rel)^(1/3)*(x)^(2/3);\n", +"\n", +"// From equation 4.16\n", +"// daltaP/deltaP_o = Y\n", +"Y = (e_c/(e_c-hl))^1.5*exp(Rel/200);\n", +"// Therefore \n", +"// deltaP/z = H\n", +"H = Y*T; // [Pa/m]\n", +"\n", +"printf('The superficial velocity is %f m/s\n',vgf);\n", +"printf('The pressure drop at flooding is %f Pa/m\n',deltaPf);\n", +"printf('The superficial velocity at 70 percent of flooding is %f m/s\n',vg);\n", +"printf('The column inside diameter at 70 percent of flooding is %f m\n',D);\n", +"printf('The pressure drop for operation at 70 percent of flooding is %f Pa/m\n\n',H);\n", +"\n", +"\n", +"printf('Illustration 4.3(b) - Page: 236\n\n');\n", +"// Solution (b)\n", +"// Similarly for 25 mm metal Hiflow rings above quantities are determined\n", +"Fp1 = 42; // [square ft/cubic ft]\n", +"Csflood1 = sqrt(Yflood/(ul^0.1*Fp1)); // [m/s]\n", +"vgf1 = Csflood1/(sqrt(rowg/(rowl-rowg))); // [m/s]\n", +"// From equation 4.9\n", +"deltaPf1 = 93.9*(Fp1)^0.7; // [Pa/m of packing]\n", +"\n", +"// For operation at 70% of the flooding velocity\n", +"f = 0.7;\n", +"// From equation 4.10\n", +"vg1 = f*vgf1; // [m/s]\n", +"D1 = sqrt(4*Qg/(vg1*%pi));\n", +"\n", +"// For Hiflow rings\n", +"a_h = 202.9; // [square m/cubic m]\n", +"e_h = 0.961;\n", +"Ch_h = 0.799;\n", +"Cp_h = 0.689; \n", +"\n", +"// From equation 4.13\n", +"dp1 = 6*(1-e_h)/a_h; // [m]\n", +"// From equation 4.12\n", +"Kw1 = 1/(1+(2*dp1/(3*D1*(1-e_h))));\n", +"\n", +"// The viscosity of the gas phase is basically that of air at 293 K and 1 atm\n", +"ug = 1.84*10^-5; // [kg/m.s]\n", +"// From equation 4.15\n", +"Reg1 = vg1*rowg*dp1*Kw1/(ug*(1-e_h));\n", +"// From equation 4.14\n", +"sia_o1 = Cp_h*((64/Reg1)+(1.8/(Reg1^0.08)));\n", +"\n", +"// From equation 4.11\n", +"// deltaP_o/z = T\n", +"T1 = sia_o1*a_h*rowg*vg1^2/(2*Kw1*e_h^3); // [Pa/m]\n", +"\n", +"// Now\n", +"Gx1 = L/(%pi*D1^2/4); // [kg/square m.s]\n", +"Rel1 = Gx1/(a_h*ul);\n", +"Frl1 = Gx1^2*a_h/(rowl^2*g);\n", +"\n", +"// From equation 4.5\n", +"// ah/a = x_pr\n", +"x1 = 0.85*Ch_h*Rel1^0.25*Frl1^0.1;\n", +"// From equation 4.3\n", +"hl1 = (12*Frl1/Rel1)^(1/3)*(x1)^(2/3);\n", +"\n", +"// From equation 4.16\n", +"// daltaP/deltaP_o = Y\n", +"Y1 = (e_h/(e_h-hl1))^1.5*exp(Rel1/200);\n", +"// Therefore \n", +"// deltaP/z = H\n", +"H1 = Y1*T1; // [Pa/m]\n", +"\n", +"\n", +"printf('The superficial velocity is %f m/s\n',vgf1);\n", +"printf('The pressure drop at flooding is %f Pa/m\n',deltaPf1);\n", +"printf('The superficial velocity at 70 percent of flooding is %f m/s\n',vg1);\n", +"printf('The column inside diameter at 70 percent of flooding is %f m\n',D1);\n", +"printf('The pressure drop for operation at 70 percent of flooding is %f Pa/m\n\n',H1);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.4: Design_of_a_Packed_Bed_Ethanol_Absorber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 4.4\n", +"// Page: 237\n", +"\n", +"printf('Illustration 4.4 - Page: 237\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-ethanol b- gas(CO2 rich vapor) c-liquid water\n", +"P = 110; // [kPa]\n", +"T = 303; // [K]\n", +"R = 8.314; \n", +"Vb = 180; // [kmole/h]\n", +"xab = 0.02; // [molar composition of ethanol in gas]\n", +"Vc = 151.5; // [kmole/h]\n", +"d = 0.97; // [ethanol absorbed]\n", +"Ma = 46; // [gram/mole]\n", +"Mb = 44; // [gram/mole]\n", +"Mc = 18; // [gram/mole]\n", +"g = 9.8; // [square m/s]\n", +"//*****//\n", +"\n", +"// For Inlet gas\n", +"Mg = (1-xab)*Mb+xab*Ma; // [gram/mole]\n", +"V = Vb*Mg/3600; // [kg/h]\n", +"rowg = P*Mg/(R*T); // [kg/cubic m]\n", +"Qg = V/rowg; // [cubic m/s]\n", +"\n", +"// For exiting liquid\n", +"b = Vb*xab*Ma*d; // [ethanol absorbed in kg/h]\n", +"L = (Vc*Mc+b)/3600; // [kg/s]\n", +"rowl = 986; // [kg/cubic m]\n", +"\n", +"X = (L/V)*(sqrt(rowg/rowl));\n", +"// From equation 4.8\n", +"Yflood = exp(-(3.5021+1.028*log(X)+0.11093*(log(X))^2));\n", +"\n", +"printf('Illustration 4.4(a) - Page: 237\n\n');\n", +"// Solution(a)\n", +"\n", +"// For 50 mm metal Hiflow rings\n", +"Fp = 16; // [square ft/cubic ft]\n", +"ul = 6.31*10^-4; // [Pa.s]\n", +"// From equation 4.6\n", +"Csflood = sqrt(Yflood/(ul^0.1*Fp)); // [m/s]\n", +"// From equation 4.7\n", +"vgf = Csflood/(sqrt(rowg/(rowl-rowg))); // [m/s]\n", +"// From equation 4.9\n", +"deltaPf = 93.9*(Fp)^0.7; // [Pa/m of packing]\n", +"\n", +"// For operation at 70% of the flooding velocity\n", +"f = 0.7;\n", +"// From equation 4.10\n", +"vg = f*vgf; // [m/s]\n", +"D = sqrt(4*Qg/(vg*%pi));\n", +"\n", +"// From Table 4.1, for 50 mm metal Hiflow rings\n", +"a = 92.3; // [square m/cubic m]\n", +"Ch = 0.876;\n", +"e = 0.977;\n", +"Cp = 0.421;\n", +"\n", +"// From equation 4.13\n", +"dp = 6*(1-e)/a; // [m]\n", +"\n", +"// From equation 4.12\n", +"Kw = 1/(1+(2*dp/(3*D*(1-e))));\n", +"\n", +"// The viscosity of the gas phase is basically that of air at 303 K and 110 kPa\n", +"ug = 1.45*10^-5; // [kg/m.s]\n", +"// From equation 4.15\n", +"Reg = vg*rowg*dp*Kw/(ug*(1-e));\n", +"// From equation 4.14\n", +"sia_o = Cp*((64/Reg)+(1.8/(Reg^0.08)));\n", +"\n", +"// From equation 4.11\n", +"// deltaP_o/z = I\n", +"I = sia_o*a*rowg*vg^2/(2*Kw*e^3); // [Pa/m]\n", +"\n", +"// Now\n", +"Gx = L/(%pi*D^2/4); // [kg/square m.s]\n", +"Rel = Gx/(a*ul);\n", +"Frl = Gx^2*a/(rowl^2*g);\n", +"\n", +"// From equation 4.5\n", +"// ah/a = x\n", +"x = 0.85*Ch*Rel^0.25*Frl^0.1;\n", +"// From equation 4.3\n", +"hl = (12*Frl/Rel)^(1/3)*(x)^(2/3);\n", +"\n", +"// From equation 4.16\n", +"// daltaP/deltaP_o = Y\n", +"Y = (e/(e-hl))^1.5*exp(Rel/200);\n", +"// Therefore \n", +"// deltaP/z = H\n", +"H = Y*I; // [Pa/m]\n", +"\n", +"printf('Since the pressure drop is too high, we must increase the tower diameter to reduce the pressure drop.\n');\n", +"// The resulting pressure drop is too high; therefore, we must increase the tower diameter to reduce the pressure drop. Appendix D presents a Mathcad computer \n", +"// program designed to iterate automatically until the pressure drop criterion is satisfied.\n", +"// From the Mathcad program we get\n", +"D1 = 0.738; // [m]\n", +"printf('The tower diameter for pressure drop of 300 Pa/m of packed height is %f m\n\n',D1);\n", +"\n", +"printf('Illustration 4.4(b) - Page: 241\n\n');\n", +"// Solution(b)\n", +"\n", +"// For the tower diameter of D = 0.738 m, the following intermediate results were obtained from the computer program in Appendix D:\n", +"vg1 = 2.68; // [m/s]\n", +"vl1 = 0.00193; // [m/s]\n", +"hl1 = 0.017;\n", +"ah1 = 58.8; // [square m/cubic m]\n", +"Reg1 = 21890;\n", +"Rel1 = 32.6;\n", +"Kw1 = 1/(1+(2*dp/(3*D1*(1-e))));\n", +"\n", +"\n", +"f1 = vg1/vgf;\n", +"printf('The fractional approach to flooding conditions is %f\n\n',f1);\n", +"\n", +"printf('Illustration 4.4(c) - Page: 242\n\n');\n", +"// Solution(c)\n", +"// For ethanol\n", +"Vc_a = 167.1; // [cubic cm/mole]\n", +"sigma_a = 4.53*10^-10; // [m]\n", +"// E/k = M\n", +"M_a = 362.6; // [K]\n", +"\n", +"// For carbon dioxide\n", +"sigma_b = 3.94*10^-10; // [m]\n", +"M_b = 195.2; // [K]\n", +"\n", +"// From equation 1.48\n", +"Vb_a = 0.285*Vc_a^1.048; // [cubic cm/mole]\n", +"\n", +"e1 = (9.58/(Vb_a)-1.12);\n", +"// From equation 1.53\n", +"Dl = 1.25*10^-8*((Vb_a)^-0.19 - 0.292)*T^1.52*(ul*10^3)^e1; // [square cm/s]\n", +"\n", +"// From equation 1.49\n", +"Dg = 0.085; // [square cm/s] \n", +"\n", +"// From Table 4.2, for 50 mm metal Hiflow rings\n", +"Cl = 1.168\n", +"Cv = 0.408;\n", +"// From equation 4.17\n", +"kl = 0.757*Cl*sqrt(Dl*a*vl1*10^-4/(e*hl1)); // [m/s]\n", +"mtcl = kl*ah1; // [s^-1]\n", +"\n", +"Sc = ug/(rowg*Dg*10^-4);\n", +"// From equation 4.18\n", +"ky = 0.1304*Cv*(Dg*10^-4*P*1000/(R*T))*(Reg1/Kw1)^(3/4)*Sc^(2/3)*(a/(sqrt(e*(e-hl1)))); // [mole/square m.s]\n", +"mtcg = ky*ah1*10^-3; // [kmole/cubic m.s]\n", +"printf('The gas and liquid volumetric mass transfer coefficients are %e kmole/cubic m.s and %e s^-1 respectively.\n\n',mtcg,mtcl);\n", +"" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.5: Stripping_Chloroform_from_Water_by_Sparging_with_Air.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 4.5\n", +"// Page: 245\n", +"\n", +"printf('Illustration 4.5 - Page: 245\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-chloroform b-water c-air\n", +"T = 298; // [K]\n", +"Dv = 1; // [vessel diameter, m]\n", +"Vb = 10; // [kg/s]\n", +"ca = 240*10^-6; // [gram/l]\n", +"xr = 0.9; // [chloroform which is to be removed]\n", +"m = 220;\n", +"Ds = 0.5; // [diameter of sparger, m]\n", +"no = 90; // [number of orifices]\n", +"Do = 3*10^-3; // [diameter of orifice, m]\n", +"nm = 0.6; // [mechanical efficiency]\n", +"rowb = 1000; // [kg/cubic m]\n", +"R = 8.314;\n", +"Mc = 29; // [gram/mole]\n", +"Mb = 18; // [gram/mole]\n", +"g = 9.8; // [square m/s]\n", +"//*****//\n", +"\n", +"Vair = 0.1; // [kg/s as calculated in chapter 3]\n", +"mg = Vair/no; // [mass flow rate through each orifice, kg/s]\n", +"ug = 1.8*10^-5; // [kg/m.s]\n", +"Reo = 25940; // [Renoylds number]\n", +"// From equ. 4.20\n", +"dp = 0.0071*Reo^-0.05; // [m]\n", +"\n", +"// Since the water column height is not known, therefore an iterative procedure must be implemented.\n", +"// Assuming column height, Z = 0.5 m\n", +"Z = 0.5; // [m]\n", +"// For Z = 0.5 m\n", +"rowl = 1000; // [kg/cubic m]\n", +"Ps = 101.3; // [kPa]\n", +"Po = Ps + (1000*9.8*0.5/1000); // [kPa]\n", +"Pavg = (Po+Ps)/2; // [kPa]\n", +"rowg = Pavg*Mc/(R*T); // [kg/cubic m]\n", +"\n", +"area = %pi*Dv^2/4; // [square m]\n", +"vg = Vair/(rowg*area); // [m/s]\n", +"// In this case rowl = rowg and sigma = sigmaAW\n", +"// From equation 4.22\n", +"// Vg = vg\n", +"// vg/vs = 0.182\n", +"vs = vg/0.182; // [m/s]\n", +"vl = -Vb/(rowl*area); // [negative because water flows downward, m/s]\n", +"// From equ 4.21\n", +"\n", +"deff('[y] = f12(phig)','y = vs - (vg/phig)-(-vl/(1-phig))');\n", +"phig = fsolve(0.1,f12);\n", +"// Now in this case\n", +"S = vl/(1-phig);\n", +"// Value of 'S' comes out to be less than 0.15 m/s\n", +"// Therefore \n", +"dp = (dp^3*Po/Pavg)^(1/3); // [m]\n", +"// From equ 4.23\n", +"a = 6*phig/dp; // [m^-1]\n", +"// Now we calculate diffusivity of chloroform\n", +"Vba = 88.6; // [cubic cm/mole]\n", +"u = 0.9*10^-3; // [Pa-s]\n", +"e = (9.58/(Vba)-1.12);\n", +"// From equation 1.53\n", +"Dl = 1.25*10^-8*((Vba)^-0.19 - 0.292)*T^1.52*(u*10^3)^e; // [square cm/s]\n", +"\n", +"// And Schmidt number is \n", +"Scl = 833; // [Schmidt Number]\n", +"\n", +"// Now we calculate dp*g^(1/3)/Dl^(2/3) = J\n", +"J = dp*g^(1/3)/(Dl*10^-4)^(2/3)\n", +"Reg = dp*vs*rowl/u; // [Gas bubble Renoylds number]\n", +"// From equ 4.25\n", +"Shl = 2 + 0.0187*Reg^0.779*Scl^0.546*J^0.116;\n", +"\n", +"// For dilute solution xbm = 1 or c = 55.5 kmole/cubic m\n", +"// Then for Nb = 0\n", +"c = 55.5; // [kmole/cubic m]\n", +"kx = Shl*c*Dl*10^-4/dp; // [kmole/square m.s]\n", +"mtc = kx*a; // [kmole/cubic m.s]\n", +"\n", +"L = Vb/Mb; // [kmole/s]\n", +"Gmx = L/area; // [kmole/square m.s]\n", +"V = Vair/Mc; // [kmole/s]\n", +"A = L/(m*V); // [absorption factor]\n", +"\n", +"// From equ 4.28\n", +" // For, xin/xout = x = 10\n", +" x = 10;\n", +"Z = (Gmx/(kx*a*(1-A)))*log(x*(1-A)+A);\n", +"\n", +"// With this new estimated Z ,we again calculate average pressure in the // column of water\n", +"Po1 = 110.1; // [kPa]\n", +"Pavg1 = 105.7; // [kPa]\n", +"rowg1 = Pavg1*Mc/(R*T);\n", +"// Now value of rowg1 obtained is very close to value used in the first // iteration. Therefore on three iteractions we achieve a value of 'Z'\n", +"Z1 = 0.904; // [m]\n", +"\n", +"rowgo = Po1*Mc/(R*T); // [kg/cubic m]\n", +"vo1 = 4*mg/(%pi*Do^2*rowgo); // [m/s]\n", +"// Therefore, vo1^2/(2*gc) = F\n", +"gc = 1;\n", +"F = vo1^2/(2*gc); // [J/kg]\n", +"// And R*T*log(Po/Ps)/Mc = G\n", +"G = R*T*1000*log(Po1/Ps)/Mc; // [J/kg]\n", +"Zs = 0\n", +"// And (Z1-Zs)*g/gc = H\n", +"H = (Z1-Zs)*g/gc; // [J/kg]\n", +"// From equ 4.27\n", +"W = F+G+H; // [J/kg]\n", +"// Now the air compressor power is\n", +"W1 = W*Vair*10^-3/nm; // [kW]\n", +"\n", +"printf('The depth of the water column required to achieve the specified 90percent removal efficiency is %f m\n\n',Z1);\n", +"printf('The power required to operate the air compressor is %f kW\n\n',W1);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.6: Design_of_a_Sieve_Tray_Column_for_Ethanol_Absorption.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 4.6\n", +"// Page: 255\n", +"\n", +"printf('Illustration 4.6 - Page: 255\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"Ff = 0.9; // [foaming factor]\n", +"sigma = 70; // [liquid surface tension, dyn/cm]\n", +"Do = 5; // [mm]\n", +"//From Example 4.4\n", +"// X = 0.016;\n", +"p = 15 // [pitch, mm]\n", +"// From equ 4.35\n", +"// Ah/Aa = A\n", +"A = 0.907*(Do/p)^2; // [ratio of vapor hole area to tray active area]\n", +"\n", +"// Assume \n", +"t = 0.5; // [m]\n", +"// From equ 4.32\n", +"alpha = 0.0744*t+0.01173;\n", +"beeta = 0.0304*t+0.015;\n", +"\n", +"// Since X<0.1, therefore\n", +"X = 0.1;\n", +"// From equ 4.31\n", +"Cf = alpha*log10(1/X) + beeta; \n", +"// Since Ah/Aa > 0.1, therefore\n", +"Fha = 1;\n", +"Fst = (sigma/20)^0.2; // [surface tension factor]\n", +"// From equ 4.30\n", +"C = Fst*Ff*Fha*Cf;\n", +"\n", +"// From Example 4.4\n", +"rowg = 1.923; // [kg/cubic m]\n", +"rowl = 986; // [kg/cubic m]\n", +"Qg = 1.145; // [cubic m/s]\n", +"// From equation 4.29\n", +"vgf = C*(sqrt((rowl-rowg)/rowg)); // [m/s]\n", +"// Since X<0.1\n", +"// Equ 4.34 recommends Ad/At = B = 0.1\n", +"B = 0.1;\n", +"// For an 80% approach to flooding, equation 4.33 yields\n", +"f = 0.8; \n", +"D = sqrt((4*Qg)/(f*vgf*%pi*(1-B))); // [m]\n", +"// At this point, the assumed value of tray spacing ( t = 0.5 m) must be // checked against the recommended values of Table 4.3. Since the calculated\n", +"// value of D < 1.0 m, t = 0.5 m is the recommended tray spacing, and no\n", +"// further iteration is needed.\n", +"\n", +"deff('[y] = f14(Q)','y = B-((Q-sin(Q))/(2*%pi))');\n", +"Q = fsolve(1.5,f14);\n", +"Lw = D*sin(Q/2); // [m]\n", +"rw = D/2*cos(Q/2); // [m]\n", +"\n", +"At = %pi/4*D^2; // [total cross sectional area, square m]\n", +"Ad = B*At; // [Downcomer area, square m]\n", +"Aa = At-2*Ad; // [ Active area over the tray, square m]\n", +"Ah = 0.101*Aa; // [Total hole area, square m]\n", +"\n", +"printf('Summarizing, the details of the sieve-tray design are as follows:\n\n');\n", +"printf(' Diameter = %f m\n Tray spacing = %f m\n Total cross-sectional area = %f square m\n Downcomer area = %f square m\n Active area over the tray = %f square m\n Weir length = %f m\n Distance from tray center to weir = %f m\n Total hole area = %f square m\n Hole arrangement: 5 mm diameter on an equilateral-triangular pitch 15 mm between hole centers, punched in stainless steel sheet metal 2 mm thick\n\n',D,t,At,Ad,Aa,Lw,rw,Ah); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.7: Gas_Pressure_Drop_in_a_Sieve_Tray_Ethanol_Absorber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 4.7\n", +"// Page: 257\n", +"\n", +"printf('Illustration 4.7 - Page: 257\n\n');\n", +"\n", +"// solution//\n", +"Do = 5; // [mm] \n", +"g = 9.8; // [square m/s]\n", +"hw = 50; // [mm]\n", +"// From example 4.4\n", +"Qg = 1.145; // [cubic m/s]\n", +"// From example 4.6\n", +"Ah = 0.062; // [square m]\n", +"// Do/l = t = 5/2 = 2.5\n", +"t = 2.5;\n", +"// Ah/Aa = A = 0.101\n", +"A = 0.101;\n", +"rowg = 1.923; // [kg/cubic m]\n", +"rowl = 986; // [kg/cubic m]\n", +"roww = 995; // [kg/cubic m] \n", +"\n", +"vo = Qg/Ah; // [m/s]\n", +"// From equation 4.39\n", +"Co = 0.85032 - 0.04231*t + 0.0017954*t^2; // [for t>=1]\n", +"// From equation 4.38\n", +"hd = 0.0051*(vo/Co)^2*rowg*(roww/rowl)*(1-A^2); // [cm]\n", +"\n", +"// From example 4.6 \n", +"Aa = 0.615; // [square m]\n", +"va = Qg/Aa; // [m/s]\n", +"\n", +"// From equation 4.41\n", +"Ks = va*sqrt(rowg/(rowl-rowg)); // [m/s] \n", +"phie = 0.274;\n", +"\n", +"// From equation 4.4\n", +"ql = 0.000815; // [cubic m/s]\n", +"\n", +"// From example 4.6\n", +"Lw = 0.719; // [m]\n", +"Cl = 50.12 + 43.89*exp(-1.378*hw);\n", +"sigma = 0.07; // [N/m]\n", +"// From eqution 4.40\n", +"hl = phie*(hw*10^-1+Cl*(ql/(Lw*phie))^(2/3));\n", +"\n", +"// From equation 4.42\n", +"ho = 6*sigma/(g*rowl*Do*10^-3)*10^2; // [cm] \n", +"// From equation 4.37\n", +"ht = hd+hl+ho; // [cm of clear liquid/tray]\n", +"deltaPg = ht*g*rowl*10^-2; // [Pa/tray]\n", +"printf('The tray gas-pressure drop for the ethanol is %f Pa/tray\n\n',deltaPg);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.8: Weeping_and_Entrainment_in_a_Sieve_Tray_Ethanol_Absorber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 4.8\n", +"// Page: 259\n", +"\n", +"printf('Illustration 4.8 - Page: 259\n\n');\n", +"\n", +"// solution//\n", +"// From Example 4.4, 4.6 and 4.7\n", +"\n", +"Do = 5*10^-3; // [m]\n", +"rowg = 1.923; // [kg/cubic m]\n", +"rowl = 986; // [kg/cubic m]\n", +"g = 9.8; // [square m/s]\n", +"hl = 0.0173; // [m]\n", +"vo = 18.48; // [m/s]\n", +"phie = 0.274;\n", +"Ks = 0.082; // [m]\n", +"A = 0.101; // [Ah/Aa]\n", +"t = 0.5; // [m]\n", +"\n", +"Fr = sqrt(rowg*vo^2/(rowl*g*hl)); // [Froude number]\n", +"if(Fr>=0.5)\n", +" printf('Weeping is not significant\n\n');\n", +"else()\n", +" printf('Significant weeping occurs\n\n');\n", +" end\n", +"// From above weeping is not a problem under this circumstances\n", +"// From equation 4.47\n", +"k = 0.5*(1-tanh(1.3*log(hl/Do)-0.15));\n", +"\n", +"// From equation 4.46\n", +"h2q = (hl/phie) + 7.79*(1+6.9*(Do/hl)^1.85)*(Ks^2/(phie*g*A)); // [m]\n", +"// From equation 4.45\n", +"E = 0.00335*(h2q/t)^1.1*(rowl/rowg)^0.5*(hl/h2q)^k;\n", +"// From Example 4.4, the gas mass flow rate is V = 2.202 kg/s\n", +"V = 2.202; // [kg/s]\n", +"Le = E*V; // [kg/s]\n", +"printf('The entrainment flow rate for the ethanol absorber is %f m/s\n\n',Le);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.9: Murphree_Efficiency_of_a_Sieve_Tray_Ethanol_Absorber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 4.9\n", +"// Page: 264\n", +"\n", +"printf('Illustration 4.9 - Page: 264\n\n');\n", +"\n", +"// solution//\n", +"// From examples 4.4, 4.6 and 4.7\n", +"\n", +"Do = 5*10^-3; // [m]\n", +"Ml = 18.63; // [molecular weight of water, gram/mole]\n", +"Mg = 44.04; // [molecular weight of carbon dioxide, gram/mole]\n", +"rowg = 1.923; // [kg/cubic m]\n", +"rowl = 986; // [kg/cubic m]\n", +"vo = 18.48; // [m/s]\n", +"hl = 0.0173; // [m]\n", +"ug = 1.45*10^-5; // [kg/m.s]\n", +"phie = 0.274;\n", +"A = 0.101; // [Ah/Aa]\n", +"Dg = 0.085; // [square cm/s]\n", +"Dl = 1.91*10^-5; // [square cm/s]\n", +"Aa = 0.614; // [square m]\n", +"Qg = 1.145; // [cubic m/s]\n", +"t = 0.5; // [m]\n", +"h2q = 0.391; // [m]\n", +"rw = 0.34; // [m]\n", +"ql = 0.000815; // [cubic m/s]\n", +"g = 9.8; // [square m/s]\n", +"G = 2.202/44.04; // [kg/s]\n", +"L = 0.804/18.63; // [kg/s]\n", +"\n", +"Refe = rowg*vo*hl/(ug*phie);\n", +"\n", +"cg =rowg/Mg; // [kmole/cubic m]\n", +"cl = rowl/Ml; // [kmole/cubic m]\n", +"\n", +"// For the low concentrations prevailing in the liquid phase, the ethanol- // water solution at 303 K obeys Henry's law, and the slope of the equilibriu// m curve is m = 0.57\n", +"m = 0.57;\n", +"// From equation 4.53\n", +"a1 = 0.4136;\n", +"a2 = 0.6074;\n", +"a3 = -0.3195;\n", +"Eog = 1-exp(-0.0029*Refe^a1*(hl/Do)^a2*A^a3/((sqrt(Dg*(1-phie)/(Dl*A)))*m*cg/cl+1));\n", +"// From equation 4.62\n", +"Deg = 0.01; // [square m/s]\n", +"Peg = 4*Qg*rw^2/(Aa*Deg*(t-h2q)); // [Peclet number]\n", +"// Since Peclet number is greater than 50, therefore vapor is unmixed\n", +"// From equation 4.60\n", +"Del = 0.1*sqrt(g*h2q^3); // [square m/s]\n", +"// From equation 4.59\n", +"Pel = 4*ql*rw^2/(Aa*hl*Del);\n", +"N = (Pel+2)/2;\n", +"lambda = m*G/L;\n", +"// From equation 4.58\n", +"Emg = ((1+lambda*Eog/N)^N -1)/lambda*(1-0.0335*lambda^1.073*Eog^2.518*Pel^0.175);\n", +"// From example 4.8\n", +"E = 0.05;\n", +"// Substituting in equation 4.63\n", +"Emge = Emg*(1-0.8*Eog*lambda^1.543*E/m);\n", +"printf('The entrainment corrected Murphree tray efficiency for the ethanol is %f.\n\n',Emge);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/5-Absorption_and_Stripping.ipynb b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/5-Absorption_and_Stripping.ipynb new file mode 100644 index 0000000..e89fe13 --- /dev/null +++ b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/5-Absorption_and_Stripping.ipynb @@ -0,0 +1,410 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 5: Absorption and Stripping" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.1: Number_of_Real_Sieve_Trays_in_an_Absorber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 5.1\n", +"// Page: 287\n", +"\n", +"printf('Illustration 5.1 - Page: 287\n\n');\n", +"\n", +"// solution\n", +"\n", +"//*****Data*****//\n", +"// Component 'A' is to be absorbed //\n", +"y_N1 = 0.018; // [mole fraction 'A' of in entering gas]\n", +"y_1 = 0.001; // [mole fractio of 'A'in leaving gas]\n", +"x_0 = 0.0001; // [mole fraction of 'A' in entering liquid]\n", +"m = 1.41; // [m = yi/xi]\n", +"n_1 = 2.115; // [molar liquid to gas ratio at bottom, L/V]\n", +"n_2 = 2.326; // [molar liquid to gas ratio at top, L/V]\n", +"E_MGE = 0.65;\n", +"//*****//\n", +"\n", +"printf('Illustration 5.1 (a) - Page: 287\n\n');\n", +"// Solution (a)\n", +"\n", +"A_1 = n_1/m; // [absorption factor at bottom]\n", +"A_2 = n_2/m; // [absorption factor at top]\n", +"\n", +"A = sqrt(A_1*A_2);\n", +"// Using equation 5.3 to calculate number of ideal stages\n", +"N = (log(((y_N1-m*x_0)/(y_1-m*x_0))*(1-1/A) + 1/A))/log(A); // [number of ideal stages]\n", +"printf('Number of ideal trays is %f\n',N);\n", +"// Using equation 5.5\n", +"E_o = log(1+E_MGE*(1/A-1))/log(1/A);\n", +"// Therefore number of real trays will be\n", +"n = N/E_o;\n", +"printf('Number of real trays is %f\n',n);\n", +"n = 8;\n", +"printf('Since it is not possible to specify a fractional number of trays, therefore number of real trays is %f\n\n',n);\n", +"\n", +"printf('Illustration 5.1 (b) - Page: 287\n\n');\n", +"\n", +"// Solution (b)\n", +"\n", +"// Back checking the answer\n", +"printf('Back checking the answer'); \n", +"N_o = E_o*n;\n", +"// Putting N_o in equation 5.3 to calculate y_1\n", +"deff('[y] = f16(Z)','y=N_o-(log(((y_N1-m*x_0)/(Z-m*x_0))*(1-1/A) + 1/A))/log(A)');\n", +"Z = fsolve(0.001,f16);\n", +"printf('Mole fraction of A in leaving gas is %f percent which satisfies the requirement that the gas exit concentration should not exceed 0.1 percent.',Z);\n", +"\n", +"// For a tower diameter of 1.5 m, Table 4.3 recommends a plate spacing of 0.6 m\n", +"Z = n*0.6; // [Tower height, m]\n", +"printf('The tower height will be %f m',Z);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.3: Packed_Tower_Absorber_for_Recovery_of_Benzene_Vapors.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear\n", +"clc;\n", +"\n", +"// Illustration 5.3\n", +"// Page: 295\n", +"\n", +"printf('Illustration 5.3 - Page: 295\n\n');\n", +"\n", +"// solution\n", +"// For tower diameter, packed tower design program of Appendix D is run using // the data from Example 5.2 and packing parameters from Chapter 4.\n", +"\n", +"// For a pressure drop of 300 Pa/m, the program converges to a tower diameter \n", +"Db = 0.641; // [m]\n", +"// Results at the bottom of tower\n", +"fb= 0.733; // [flooding]\n", +"ahb = 73.52; // [m^-1]\n", +"Gmyb = 126; // [mol/square m.s]\n", +"kyb = 3.417; // [mol/square m.s]\n", +"klb = 9.74*10^-5; // [m/s]\n", +"\n", +"// From equation 2.6 and 2.11\n", +"// Fg = ky*(1-y), Fl = kx*(1-x)\n", +"// Assume 1-y = 1-y1 1-x = 1-x1\n", +"// let t = 1-y1 u = 1-x1\n", +"// Therefore\n", +"t = 0.926;\n", +"u = 0.676;\n", +"Fgb = kyb*t; // [mol/square m.s]\n", +"rowlb = 780; // [kg/cubic m]\n", +"Mlb = 159.12; // [gram/mole]\n", +"c = rowlb/Mlb; // [kmle/cubic m]\n", +"Flb = klb*c*u; // [mol/square m.s]\n", +"// From equ 5.19\n", +"Htgb = Gmyb/(Fgb*ahb); // [m]\n", +"\n", +"// Now, we consider the conditions at the top of the absorber\n", +"// For a pressure drop of 228 Pa/m, the program converges to a tower // diameter\n", +"Dt = 0.641; // [m]\n", +"// Results at the top of tower\n", +"ft = 0.668; // [flooding]\n", +"aht = 63.31; // [m^-1]\n", +"Gmyt = 118; // [mol/square m.s]\n", +"kyt = 3.204; // [mol/square m.s]\n", +"klt = 8.72*10^-5; // [m/s]\n", +"\n", +"rowlt = 765; // [kg/cubic m]\n", +"Mlt = 192.7; // [gram/mole]\n", +"cl = rowlt/Mlt; // [kmole/cubic m]\n", +"Fgt = kyt*0.99; // [mole/square m.s]\n", +"Flt = klb*cl*0.953; // [mole/square m.s]\n", +"// From equ 5.19\n", +"Htgt = Gmyt/(Fgt*aht); // [m]\n", +"Htg_avg = (Htgb+Htgt)/2; // [m]\n", +"Fg_avg = (Fgt+Fgb)/2; // [mole/square m.s]\n", +"Fl_avg = (Flb+Flt)*1000/2; // [mole/square m.s]\n", +"\n", +"// The operating curve equation for this system in terms of mole fractions\n", +"// y = \n", +"\n", +"// From Mathcad program figure 5.3\n", +"x1 = 0.324;\n", +"x2 = 0.0476;\n", +"n = 50;\n", +"dx = (x1-x2)/n;\n", +"me = 0.136;\n", +"T = zeros(50,2);\n", +"for j=1:50\n", +" x(j) = x2+j*dx;\n", +" y(j) = (0.004+0.154*x(j))/(1.004-0.846*x(j));\n", +" \n", +" deff('[y] = f12(yint)','y = (1-yint)/(1-y(j)) - ((1-x(j))/(1-yint/me))^(Fl_avg/Fg_avg)');\n", +" yint(j) = fsolve(0.03,f12);\n", +" f(j) = 1/(y(j)-yint(j));\n", +" T(j,1) = y(j);\n", +" T(j,2) = f(j);\n", +"end\n", +"\n", +"scf(1);\n", +"plot(T(:,1),T(:,2));\n", +"xgrid();\n", +"xlabel('y');\n", +"ylabel('f = 1/(y-yint)');\n", +"\n", +"yo = y(1);\n", +"yn = y(50);\n", +"// From graph between f vs y\n", +"Ntg = 10.612;\n", +"// Therefore\n", +"Z = Htg_avg*Ntg; // [m]\n", +"printf('The total packed height is %f m.\n\n',Z);\n", +"deltaPg = 300*Z; // [Pa]\n", +"Em = 0.60; // [mechanical efficiency]\n", +"Qg = 1.0;\n", +"Wg = (Qg*deltaPg)/Em; // [Power required to force the gas through the tower, W]\n", +"L2 = 1.214; // [kg/s]\n", +"g = 9.8; // [m/square s]\n", +"Wl = L2*g*Z/Em; // [Power required to pump the liquid to the top of the absorber, W]\n", +"printf('The power required to force the gas through the tower is %f W.\n\n',Wg);\n", +"printf('The power required to pump the liquid to the top of the absorber is %f W.\n\n',Wl);\n", +"\n", +"\n", +"" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.4: Packed_Height_of_an_Ethanol_Absorber.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear\n", +"clc;\n", +"\n", +"// Illustration 5.4\n", +"// Page: 299\n", +"\n", +"printf('Illustration 5.4 - Page: 299\n\n');\n", +"\n", +"// solution\n", +"// Fro example 4.4\n", +"m = 0.57;\n", +"D = 0.738; // [tower diameter, m]\n", +"G = 180; // [rate of gas entering the tower, kmole/h]\n", +"L = 151.5; // [rate of liquid leaving the tower, kmole/h]\n", +"// Amount of ethanol absorbed \n", +"M = G*0.02*0.97; // [kmole/h]\n", +"//*****//\n", +"\n", +"// Inlet gas molar velocity\n", +"Gmy1 = G*4/(3600*%pi*D^2); // [kmole/square m.s]\n", +"// Outlet gas velocity\n", +"Gmy2 = (G-M)*4/(3600*%pi*D^2); // [kmole/square m.s]\n", +"// Average molar gas velocity\n", +"Gmy = (Gmy1+Gmy2)/2; // [kmole/square m.s]\n", +"\n", +"// Inlet liquid molar velocity\n", +"Gmx2 = L*4/(3600*%pi*D^2); // [kmole/square m.s]\n", +"// Outlet liquid molar velocity\n", +"Gmx1 = (L+M)*4/(3600*%pi*D^2); // [kmole/square m.s]\n", +"\n", +"// Absorption factor at both ends of the column:\n", +"A1 = Gmx1/(m*Gmy1);\n", +"A2 = Gmx2/(m*Gmy2);\n", +"// Geometric average\n", +"A = sqrt(A1*A2);\n", +"\n", +"y1 = 0.02;\n", +"// For 97% removal of the ethanol\n", +"y2 = 0.03*0.02;\n", +"// Since pure water is used \n", +"x2 = 0;\n", +"// From equation 5.24\n", +"Ntog = log((y1-m*x2)/(y2-m*x2)*(1-1/A)+1/A)/(1-1/A);\n", +"\n", +"// From example 4.4\n", +"// ky*ah = 0.191 kmole/cubic m.s\n", +"// kl*ah = 0.00733 s^-1\n", +"kyah = 0.191; // [kmole/cubic m.s]\n", +"klah = 0.00733; // [s^-1]\n", +"rowl = 986; // [kg/cubic m]\n", +"Ml = 18; // [gram/mole]\n", +"c = rowl/Ml; // [kmole/cubic m]\n", +"kxah = klah*c; // [kmole/cubic m.s]\n", +"\n", +"// Overall volumetric mass transfer coefficient\n", +"Kyah = (kyah^-1 + m/kxah)^-1; // [kmole/cubic m.s]\n", +"\n", +"// From equation 5.22\n", +"Htog = Gmy/Kyah; // [m]\n", +"// The packed height is given by equation 5.21,\n", +"Z = Htog*Ntog; // [m]\n", +"printf('The packed height of an ethanol absorber is %f m.\n\n',Z);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.5: Tray_Tower_for_Adiabatic_Pentane_Absorption.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear\n", +"clc;\n", +"\n", +"// Illustration 5.5\n", +"// Page: 302\n", +"\n", +"printf('Illustration 5.5 - Page: 302\n\n');\n", +"\n", +"// solution\n", +"\n", +"//*****Data*****//\n", +";// a = CH4 b = C5H12\n", +"Tempg = 27;// [OC]\n", +"Tempo = 0;// [base temp,OC]\n", +"Templ = 35;// [OC]\n", +"xa = 0.75;// [mole fraction of CH4 in gas]\n", +"xb = 0.25;// [mole fraction of C5H12 in gas]\n", +"M_Paraffin = 200;// [kg/kmol]\n", +"hb = 1.884;// [kJ/kg K]\n", +"//********//\n", +"\n", +"Ha = 35.59;// [kJ/kmol K]\n", +"Hbv = 119.75;// [kJ/kmol K]\n", +"Hbl = 117.53;// [kJ/kmol K]\n", +"Lb = 27820;// [kJ/kmol]\n", +"// M = [Temp (OC) m]\n", +"M = [20 0.575;25 0.69;30 0.81;35 0.95;40 1.10;43 1.25];\n", +"// Basis: Unit time\n", +"GNpPlus1 = 1;// [kmol]\n", +"yNpPlus1 = 0.25;// [kmol]\n", +"HgNpPlus1 = ((1-yNpPlus1)*Ha*(Tempg-Tempo))+(yNpPlus1*(Hbv*(Tempg-Tempo)+Lb));// [kJ/kmol]\n", +"L0 = 2;// [kmol]\n", +"x0 = 0;// [kmol]\n", +"HL0 = ((1-x0)*hb*M_Paraffin*(Templ-Tempo))+(x0*hb*(Templ-Tempo));// [kJ/kmol]\n", +"C5H12_absorbed = 0.98*xb;// [kmol]\n", +"C5H12_remained = xb-C5H12_absorbed;\n", +"G1 = xa+C5H12_remained;// [kmol]\n", +"y1 = C5H12_remained/G1;// [kmol]\n", +"LNp = L0+C5H12_absorbed;// [kmol]\n", +"xNp = C5H12_absorbed/LNp;// [kmol]\n", +"// Assume:\n", +"Temp1 = 35.6;// [OC]\n", +"Hg1 = ((1-y1)*Ha*(Temp1-Tempo))+(y1*(Hbv*(Temp1-Tempo)+Lb));// [kJ/kmol]\n", +"\n", +"\n", +"Qt = 0;\n", +"deff('[y] = f30(HlNp)','y = ((L0*HL0)+(GNpPlus1*HgNpPlus1))-((LNp*HlNp)+(G1*Hg1)+Qt)');\n", +"HlNp = fsolve(2,f30);\n", +"\n", +"deff('[y] = f31(TempNp)','y = HlNp-(((1-x0)*hb*M_Paraffin*(TempNp-Tempo))+(x0*hb*(TempNp-Tempo)))');\n", +"TempNp = fsolve(35.6,f31);\n", +"// At Temp = TempNp:\n", +"mNp = 1.21;\n", +"yNp = mNp*xNp;// [kmol]\n", +"GNp = G1/(1-yNp);// [kmol]\n", +"HgNp = ((1-yNp)*Ha*(TempNp-Tempo))+(yNp*(Hbv*(TempNp-Tempo)+Lb));// [kJ/kmol]\n", +"// From equation 5.28 with n = Np-1\n", +"deff('[y] = f32(LNpMinus1)','y = LNpMinus1+GNpPlus1-(LNp+GNp)');\n", +"LNpMinus1 = fsolve(2,f32);// [kmol]\n", +"\n", +"// From equation 5.29 with n = Np-1\n", +"deff('[y] = f33(xNpMinus1)','y = ((LNpMinus1*xNpMinus1)+(GNpPlus1*yNpPlus1))-((LNp*xNp)+(GNp*yNp))');\n", +"xNpMinus1 = fsolve(0,f33);// [kmol]\n", +"\n", +"// From equation 5.30 with n = Np-1\n", +"deff('[y] = f34(HlNpMinus1)','y = ((LNpMinus1*HlNpMinus1)+(GNpPlus1*HgNpPlus1))-((LNp*HlNp)+(GNp*HgNp))');\n", +"HlNpMinus1 = fsolve(0,f34);// [kJ/kmol]\n", +"deff('[y] = f35(TempNpMinus1)','y = HlNpMinus1-(((1-xNpMinus1)*hb*M_Paraffin*(TempNpMinus1-Tempo))+(xNpMinus1*hb*(TempNpMinus1-Tempo)))');\n", +"TempNpMinus1 = fsolve(42,f35);// [OC]\n", +"\n", +"// The computation are continued upward through the tower in this manner until the gas composition falls atleast to 0.00662.\n", +"// Results = [Tray No.(n) Tn(OC) xn yn]\n", +"Results = [4.0 42.3 0.1091 0.1320;3 39.0 0.0521 0.0568;2 36.8 0.0184 0.01875;1 35.5 0.00463 0.00450];\n", +"scf(8);\n", +"plot(Results(:,1),Results(:,4));\n", +"xgrid();\n", +"xlabel('Tray Number');\n", +"ylabel('mole fraction of C5H12 in gas');\n", +"\n", +"scf(9);\n", +"plot(Results(:,1),Results(:,2));\n", +"xgrid();\n", +"xlabel('Tray Number');\n", +"ylabel('Temparature(OC)');\n", +"\n", +"// For the cquired y1\n", +"Np = 3.75;\n", +"printf('The No. of trays will be %f',Np);\n", +" " + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/6-Distillation.ipynb b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/6-Distillation.ipynb new file mode 100644 index 0000000..bba8de5 --- /dev/null +++ b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/6-Distillation.ipynb @@ -0,0 +1,934 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6: Distillation" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.10: Use_of_Fenske_Equation_for_Ternary_Distillation.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.10\n", +"// Page: 371\n", +"\n", +"printf('Illustration 6.10 - Page: 371\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// A-toluene B-1,2,3-trimethyl benzene C-benzene\n", +"// Solution of above three are ideal \n", +"// Feed\n", +"za = 0.40;\n", +"zb = 0.30;\n", +"zc = 0.30;\n", +"// Bottom \n", +"FRAd = 0.95; // [recovery of toluene in distillate]\n", +"FRBw = 0.95; // [recovery of 1,2,3-trimethyl benzene in the bottom]\n", +"P = 1; // [atm]\n", +"\n", +"// First estimate of distillate composition \n", +"xc = 40/70;\n", +"xa = 30/70;\n", +"xb = 0;\n", +"// The bubble point temperature for this solution is \n", +"Tb = 390; // [K]\n", +"// The corresponding parameters for benzene, toluene and 1,2,3-trimethyl benzene\n", +"// For toluene\n", +"Tc_a = 568.8; // [K]\n", +"Pc_a = 24.9; // [bar]\n", +"A_a = -7.912;\n", +"B_a = 1.380;\n", +"C_a =-3.804;\n", +"D_a = -4.501;\n", +"// For 1,2,3-trimethyl benzene\n", +"Tc_b = 664.5; // [K]\n", +"Pc_b = 34.5; // [bar]\n", +"A_b = -8.442;\n", +"B_b = 2.922;\n", +"C_b =-5.667;\n", +"D_b = -2.281;\n", +"// For benzene\n", +"Tc_c = 540.3; // [K]\n", +"Pc_c = 27.4; // [bar]\n", +"A_c = -7.675;\n", +"B_c = 1.371;\n", +"C_c =-3.536;\n", +"D_c = -3.202;\n", +"\n", +"\n", +"// At the estimated reboiler temperature of 449.3 K\n", +"Tr = 449.3; // [K]\n", +"// P = [Toluene;1,2,3-trimethyl benzene;Benzene]\n", +"P1 = zeros(3,6);\n", +"// P = [Tc Pc A B C D]\n", +"P1 = [568.8 24.9 -7.912 1.380 -3.804 -4.501;664.5 34.5 -8.442 2.922 -5.667 2.281;540.3 27.4 -7.675 1.371 -3.536 -3.202;];\n", +"\n", +"for i=1:3\n", +" P1(i) = P1(i,2)*exp((P1(i,3)*(1-Tr/P1(i,1))+P1(i,4)*(1-Tr/P1(i,1))^1.5+P1(i,5)*(1-Tr/P1(i,1))^3+P1(i,6)*(1-Tr/P1(i,1))^6)/(1-(1-Tr/P1(i,1))));\n", +"end\n", +"PA1 = P1(1); // [bar]\n", +"PB1 = P1(2); // [bar]\n", +"PC1 = P1(3); // [bar]\n", +"alphaAB1 = PA1/PB1;\n", +"alphaCB1 = PC1/PB1;\n", +"\n", +"// At the estimated distillate temperature of 390 K\n", +"Td = 390; // [K]\n", +"// P = [Toluene;1,2,3-trimethyl benzene;Benzene]\n", +"P2 = zeros(3,6);\n", +"// P = [Tc Pc A B C D]\n", +"P2 = [568.8 24.9 -7.912 1.380 -3.804 -4.501;664.5 34.5 -8.442 2.922 -5.667 2.281;540.3 27.4 -7.675 1.371 -3.536 -3.202;];\n", +"\n", +"for i=1:3\n", +" P2(i) = P2(i,2)*exp((P2(i,3)*(1-Td/P2(i,1))+P2(i,4)*(1-Td/P2(i,1))^1.5+P2(i,5)*(1-Td/P2(i,1))^3+P2(i,6)*(1-Td/P2(i,1))^6)/(1-(1-Td/P2(i,1))));\n", +"end\n", +"\n", +"PA2 = P2(1); // [bar]\n", +"PB2 = P2(2); // [bar]\n", +"PC2 = P2(3); // [bar]\n", +"alphaAB2 = PA2/PB2;\n", +"alphaCB2 = PC2/PB2;\n", +"\n", +"// The geometric-average relative volatilities are\n", +"alphaAB_avg = sqrt(alphaAB1*alphaAB2);\n", +"alphaCB_avg = sqrt(alphaCB1*alphaCB2);\n", +"\n", +"// From equation 6.66\n", +"Nmin = log(FRAd*FRBw/((1-FRAd)*(1-FRBw)))/log(alphaAB_avg);\n", +"\n", +"// From equation 6.67\n", +"FRCd = alphaCB_avg^Nmin/((FRBw/(1-FRBw))+alphaCB_avg^Nmin); // [fractional recovery of benzene in the distillate]\n", +"\n", +"printf('The number of equilibrium stages required at total reflux is %f.\n',Nmin);\n", +"printf('The recovery fraction of benzene in the distillate is %f.\n\n',FRCd);\n", +"printf('Thus, the assumption that virtually all of the LNK will be recovered in the distillate is justified.');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.11: Underwood_Equations_for_Ternary_Distillation.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.11\n", +"// Page: 376\n", +"\n", +"printf('Illustration 6.11 - Page: 376\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// 1-toluene 2-1,2,3--trimethylbenzene 3-benzene\n", +"// Basis: 100 kmol/h of feed\n", +"F = 100; // [kmole/h]\n", +"// Since feed is saturated, therefore\n", +"q = 0;\n", +"// From example 6.10\n", +"x1d = 0.3;\n", +"x2d = 0.3;\n", +"x3d = 0.4;\n", +"a12 = 3.91;\n", +"a32 = 7.77;\n", +"a22 = 1; \n", +"// Equ 6.78 gives\n", +"deff('[y] = f14(Q)','y = 1- a12*x1d/(a12-Q)-a22*x2d/(a22-Q)-a32*x3d/(a32-Q)');\n", +"Q = fsolve(2,f14);\n", +"\n", +"// From the problem statement\n", +"// d1 = D*x1d d2 = D*x2d\n", +"d1 = F*x1d*0.95; // [kmol/h]\n", +"d2 = F*x2d*0.05; // [kmol/h]\n", +"d3 = F*x3d*0.997; // [kmol/h]\n", +"\n", +"// Summing the three distillate, d1,d2 and d3\n", +"D = d1+d2+d3; // [kmole/h]\n", +"\n", +"Vmin = a12*d1/(a12-Q)+a22*d2/(a22-Q)+a32*d3/(a32-Q);\n", +"\n", +"// From the mass balance \n", +"Lmin = Vmin-D; // [kmol/h]\n", +"// Minimum reflux ratio\n", +"Rmin = Lmin/D;\n", +"printf('The minimum reflux ratio is %f\n\n',Rmin);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.12: Underwood_Equations_for_a_Depropanizer.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.12\n", +"// Page: 377\n", +"printf('Illustration 6.12 - Page: 377\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// Componenets A-propane B-pentane C-methane D-ethane E-butane F-hexane\n", +"// x-mole fraction a-relative volatility\n", +"xA = 0.25; aA = 4.08;\n", +"xB = 0.11; aB = 1.00;\n", +"xC = 0.26; aC = 39.47;\n", +"xD = 0.09; aD = 10.00;\n", +"xE = 0.17; aE = 2.11;\n", +"xF = 0.12; aF = 0.50;\n", +"// Since propane and pentane are light and heavy key respectively\n", +"// Methane and ethane are LNK, hexane is a HNK, while butane is a “sandwich component,” meaning that it has a volatility intermediate between the keys.\n", +"\n", +"FRlkd = 0.98;\n", +"FRhkd = 0.01;\n", +"// For methane\n", +"D_CR = (aC-1)/(aA-1)*FRlkd + (aA-aC)/(aA-1)*FRhkd;\n", +"// For ethane\n", +"D_DR = (aD-1)/(aA-1)*FRlkd + (aA-aD)/(aA-1)*FRhkd;\n", +"// For butane\n", +"D_ER = (aE-1)/(aA-1)*FRlkd + (aA-aE)/(aA-1)*FRhkd;\n", +"// For hexane\n", +"D_FR = (aF-1)/(aA-1)*FRlkd + (aA-aF)/(aA-1)*FRhkd;\n", +"// Since the feed is 66% vaporized\n", +"q = 1-0.66;\n", +"\n", +"// Now equation 6.82 is solved for two values of Q\n", +"deff('[y] = f14(Q1)','y = 0.66 - aA*xA/(aA-Q1)-aB*xB/(aB-Q1)-aC*xC/(aC-Q1)-aD*xD/(aD-Q1)-aE*xE/(aE-Q1)-aF*xF/(aF-Q1)');\n", +"Q1 = fsolve(1.2,f14);\n", +"\n", +"deff('[y] = f15(Q2)','y = 0.66 - aA*xA/(aA-Q2)-aB*xB/(aB-Q2)-aC*xC/(aC-Q2)-aD*xD/(aD-Q2)-aE*xE/(aE-Q2)-aF*xF/(aF-Q2)');\n", +"Q2 = fsolve(2.5,f15);\n", +"\n", +"// Basis: 100 mole of feed\n", +"F = 100; // [mole]\n", +"// Let d1 = Dxad, d2 = Dxbd, d3 = Dxcd, and so on\n", +"d1 = F*xA*FRlkd; // [moles of propane]\n", +"d2 = F*xB*FRhkd; // [moles of pentane]\n", +"d3 = F*xC; // [moles of methane]\n", +"d4 = F*xD; // [moles of ethane]\n", +"d6 = F*xF*0; // [moles of hexane]\n", +"// And d5 is unknown\n", +"// Applying equation 6,78 for each value of Q\n", +"\n", +"// Solution of simultaneous equation \n", +"function[f]=H(e)\n", +" f(1) = e(1) - aA*d1/(aA-Q1)-aB*d2/(aB-Q1)-aC*d3/(aC-Q1)-aD*d4/(aD-Q1)-aE*e(2)/(aE-Q1)-aF*d6/(aF-Q1);\n", +" f(2) = e(1) - aA*d1/(aA-Q2)-aB*d2/(aB-Q2)-aC*d3/(aC-Q2)-aD*d4/(aD-Q2)-aE*e(2)/(aE-Q2)-aF*d6/(aF-Q2);\n", +" funcprot(0);\n", +"endfunction\n", +"\n", +"// Initial guess\n", +"e = [90 5];\n", +"y = fsolve(e,H);\n", +"Vmin = y(1); // [mole]\n", +"d5 = y(2); // [d5 = Dxed, mole]\n", +"\n", +"// From equ 6.84\n", +"D = d1+d2+d3+d4+d5+d6; // [mole]\n", +"// From mass balance \n", +"Lmin = Vmin-D; // [mole]\n", +"// For minimum reflux ratio\n", +"Rmin = Lmin/D;\n", +"printf('The minimum reflux ratio is %f\n\n',Rmin);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.13: Application_of_the_Gilliland_Correlation.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.13\n", +"// Page: 380\n", +"printf('Illustration 6.13 - Page: 380\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// A-benzene B-toluene C-1,2,3-trimethylbenzene\n", +"// From example 6.10\n", +"Nmin = 4.32; // [stages]\n", +"// From example 6.11\n", +"Rmin = 0.717; // [minimum reflux ratio]\n", +"// For R = 1\n", +"R = 1;\n", +"X = (R-Rmin)/(R+1);\n", +"// From equ 6.88\n", +"Y = 1-exp((1+54.4*X)/(11+117.2*X)*(X-1)/sqrt(X));\n", +"// Fro equ 6.86\n", +"N = (Y+Nmin)/(1-Y);\n", +"// From example 6.10 99.7% of the LNK (benzene) is recovered in the distillate// , 95% of the light key is in the distillate, and 95% of the heavy key is in// the bottoms\n", +"\n", +"// For a basis of 100 mol of feed, the material balances for three components // are\n", +"// For distillate\n", +"nAd = 39.88; // [LNK, moles of benzene]\n", +"nBd = 28.5; // [LK, moles of toluene]\n", +"nCd = 1.50; // [HK, moles of 1,2,3-trimethylbenzene]\n", +"nTd = nAd+nBd+nCd; // [total number of moles]\n", +"xAd = nAd/nTd;\n", +"xBd = nBd/(nTd);\n", +"xCd = nCd/(nTd);\n", +"\n", +"// For bottoms\n", +"nAb = 0.12;\n", +"nBb = 1.50;\n", +"nCb = 28.50;\n", +"nTb = nAb+nBb+nCb;\n", +"xAb = nAb/nTb;\n", +"xBb = nBb/nTb;\n", +"xCb = nCb/nTb;\n", +"\n", +"D = nTd;\n", +"W = nTb;\n", +"// From problem statement\n", +"Zlk = 0.3;\n", +"Zhk = Zlk;\n", +"// Substituting in equation 6.89\n", +"// T = Nr/Ns\n", +"T = (Zhk/Zlk*W/D*(xBb/xCd)^2)^0.206;\n", +"\n", +"// Solution of simultaneous equation \n", +"function[f]=H(e)\n", +" f(1) = e(1)-e(2)*T;\n", +" f(2) = e(1)+e(2)-N;\n", +" funcprot(0);\n", +"endfunction\n", +"\n", +"// Initial guess\n", +"e = [5 4];\n", +"y = fsolve(e,H);\n", +"Nr = y(1); // [number of stages in rectifying section]\n", +"Ns = y(2); // [number of stages in stripping section]\n", +"disp(Ns,Nr);\n", +"printf('Rounding the estimated equilibrium stage requirement leads to 1 stage as a partial reboiler, 4 stages below the feed, and 5 stages above the feed.');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.14: Rate_Based_Ternary_Distillation_Calculations.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.14\n", +"// Page: 387\n", +"printf('Illustration 6.14 - Page: 387\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-acetone b-methanol c-water\n", +"yna = 0.2971; yn1a = 0.17; ynIa = 0.3521; mnIa = 2.759; xna = 0.1459;\n", +"ynb = 0.4631; yn1b = 0.429; ynIb = 0.4677; mnIb = 1.225; xnb = 0.3865;\n", +"ync = 0.2398; yn1c = 0.4010; ynIc = 0.1802; mnIc = 0.3673; xnc = 0.4676;\n", +"\n", +"Fabv = 4.927; // [mol/square m.s]\n", +"Facv = 6.066; // [mol/square m.s]\n", +"Fbcv = 7.048; // [mol/square m.s]\n", +"aI = 50; // [square m]\n", +"Vn1 = 188; // [mol/s]\n", +"Vn = 194.8; // [mol/s]\n", +"//*****//\n", +"printf('Illustration 6.14(a) - Page: 387\n\n');\n", +"// Solution(a)\n", +"\n", +"ya = (yna+ynIa)/2;\n", +"yb = (ynb+ynIb)/2;\n", +"yc = (ync+ynIc)/2;\n", +"\n", +"Rav = ya/Facv+yb/Fabv+yc/Facv;\n", +"Rbv = yb/Fbcv+ya/Fabv+yc/Fbcv;\n", +"\n", +"Rabv = -ya*(1/Fabv-1/Facv);\n", +"Rbav = -yb*(1/Fabv-1/Fbcv);\n", +"// Thus in matrix form\n", +"Rv = [Rav Rabv;Rbav Rbv];\n", +"kv = inv(Rv); // [inverse of Rv]\n", +"// From equ 6.99\n", +"b = [yna-ynIa;ynb-ynIb];\n", +"J = kv*b;\n", +"\n", +"// From equ 6.98\n", +"Jc = -sum(J); // [mol/square m.s]\n", +"\n", +"printf('The molar diffusional rates of acetone, methanol and water are %f mol/square m.s, %f mol/square m.s and %f mol/square m.s respectively.\n\n',J(1,1),J(2,1),Jc);\n", +"\n", +"printf('Illustration 6.14(b) - Page: 388\n\n');\n", +"// Solution(b)\n", +"Ntv = Vn1-Vn; // [mol/s]\n", +"\n", +"// From equation 6.94\n", +"Nta = aI*J(1,1)+ya*Ntv;\n", +"Ntb = aI*J(2,1)+yb*Ntv;\n", +"Ntc = aI*Jc+yc*Ntv;\n", +"printf('The mass transfer rates of acetone, methanol and water are %f mol/s ,%f mol/s and %f mol/s respectively.\n\n',Nta,Ntb,Ntc);\n", +"\n", +"printf('Illustration 6.14(c) - Page: 389\n\n');\n", +"// Solution(c)\n", +"\n", +"// Approximate values of Murphree vapor tray efficiency are obtained from // equation 6.105\n", +"\n", +"EMG_a = (yna-yn1a)/(mnIa*xna-yn1a);\n", +"EMG_b = (ynb-yn1b)/(mnIb*xnb-yn1b);\n", +"EMG_c = (ync-yn1c)/(mnIc*xnc-yn1c);\n", +"\n", +"printf('The Murphree vapor tray efficiencies for acetone, methanol and water are %f, %f and %f respectively.\n\n',EMG_a,EMG_b,EMG_c);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.1: Flash_Vaporization_of_a_Heptan_Octane_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.1\n", +"// Page: 324\n", +"\n", +"printf('Illustration 6.1 - Page: 324\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// n-heptane - a n-octane - b\n", +"T1 = 303; // [K]\n", +"P = 1; // [bar]\n", +"D = 0.6;\n", +"W = 0.4;\n", +"zf = 0.5;\n", +" \n", +"// Parameters for componenr 'A'\n", +"Tc_a = 540.3; // [K]\n", +"Pc_a = 27.4; // [bar]\n", +"A_a = -7.675;\n", +"B_a = 1.371;\n", +"C_a =-3.536;\n", +"D_a = -3.202;\n", +"\n", +"// Parameters for component 'B'\n", +"Tc_b = 568.8; // [K]\n", +"Pc_b = 24.9; // [bar]\n", +"A_b = -7.912;\n", +"B_b = 1.380;\n", +"C_b = -3.804;\n", +"D_b = -4.501;\n", +"\n", +"// Using equation 6.5\n", +"// x_a = 1-(T/Tc_a);\n", +"// P_a = Pc_a*exp((A_a*x_a+B_a*x_a^1.5+C_a*x_a^3+D_a*x_a^6)/(1-x_a)); // [bar]\n", +"\n", +"// x_b = 1-(T/Tc_b);\n", +"// P_b = Pc_b*exp((A_b*x_b+B_b*x_b^1.5+C_b*x_b^3+D_b*x_b^6)/(1-x_b)); // [bar]\n", +"\n", +"// m_a = P_a/P;\n", +"// m_b = P_b/P;\n", +"\n", +"// Solution of simultaneous equation\n", +"function[f]=F(e)\n", +" f(1) = e(2) - (e(3)*Pc_a*exp(((A_a*(1-(e(1)/Tc_a))+B_a*(1-(e(1)/Tc_a))^1.5+C_a*(1-(e(1)/Tc_a))^3+D_a*(1-(e(1)/Tc_a))^6))/(1-(1-(e(1)/Tc_a)))))/P;\n", +" f(2) = 1-e(2) - ((1-e(3))*Pc_b*exp((A_b*(1-(e(1)/Tc_b))+B_b*(1-(e(1)/Tc_b))^1.5+C_b*(1-(e(1)/Tc_b))^3+D_b*(1-(e(1)/Tc_b))^6)/(1-(1-(e(1)/Tc_b)))))/P;\n", +" f(3) = (-W/D) - ((e(2)-zf)/(e(3)-zf));\n", +" funcprot(0);\n", +"endfunction\n", +"\n", +"// Initial guess\n", +"e = [400 0.6 0.4];\n", +"y = fsolve(e,F);\n", +"T = y(1); // [K] \n", +"Yd = y(2);\n", +"Xw = y(3);\n", +"\n", +"printf('The composition of the vapor and liquid and the temperature in the separator if it behaves as an ideal stage are %f, %f and %f K respectively\n\n',Yd,Xw,T);\n", +"\n", +"// For the capculation of the amount of heat to be added per mole of feed\n", +"T0 = 298; // [K]\n", +"lambdaA = 36.5; // [Latent heats of vaporization at To = 298 K ,kJ/mole]\n", +"lambdaB = 41.4; // [Latent heats of vaporization at To = 298 K ,kJ/mole]\n", +"CpA = 0.187; // [kJ/mole.K]\n", +"CpB = 0.247; // [kJ/mole.K]\n", +"CLA1 = 0.218; // [ 298-303 K, kJ/mole.K]\n", +"CLB1 = 0.253; // [ 298-303 K, kJ/mole.K]\n", +"CLA2 = 0.241; // [ 298-386 K, kJ/mole.K]\n", +"CLB2 = 0.268; // [ 298-386 K, kJ/mole.K]\n", +"// Bubble point calculated when 'D' approaches 0 and Dew point calculated when 'D' approaches 1\n", +"Tbp = 382.2 // [Bubble point of the mixture, K]\n", +"Tdp = 387.9 // [Dew point of mixture, K]\n", +"\n", +"HF = (T1-T0)*(Xw*CLA1+CLB1*(1-Xw)); // [kJ/mole]\n", +"HW = (Tbp-T0)*(Xw*CLA2+CLB2*(1-Xw)); // [kJ/mole]\n", +"HG = (Tdp-T0)*(Yd*CpA+(1-Yd)*CpB) + Yd*lambdaA +(1-Yd)*lambdaB; // [kJ/mole]\n", +"\n", +"f =1 // [feed]\n", +"// Using equation 6.4\n", +"deff('[y] = f14(Q)','y = W/D + (HG-(HF+Q/f))/(HW -(HF+Q/f))');\n", +"Q = fsolve(40,f14);\n", +"printf('The amount of heat to be added per mole of feed is %f kJ/mole\n\n',Q);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.2: Flash_Vaporization_of_a_Ternary_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.2\n", +"// Page: 326\n", +"\n", +"printf('Illustration 6.2 - Page: 326\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-benzene b-toluene c-orthoxylene\n", +"T = 373; // [K]\n", +"P = 101.3; // [kPa]\n", +"Pa = 182.7; // [kPa]\n", +"Pb = 73.3; // [kPa]\n", +"Pc= 26.7; // [kPa]\n", +"Zfa = 0.5;\n", +"Zfb = 0.25;\n", +"Zfc = 0.25;\n", +"//*****//\n", +"// Therefore\n", +"ma = Pa/P;\n", +"mb = Pb/P;\n", +"mc = Pc/P;\n", +"// Let Feed is 1 kmole\n", +"// Therefore D+W = 1\n", +"\n", +"// Solution of simultaneous equation\n", +"function[f]=F(e)\n", +" f(1) = e(1)+e(2)-1;\n", +" f(2) = e(2)/e(1) + (e(3)-Zfa)/(e(4)-Zfa);\n", +" f(3) = e(3)-ma*e(4);\n", +" f(4) = e(5)-mb*e(6);\n", +" f(5) = 1-e(3)-e(5) -mc*(1-e(4)-e(6));\n", +" f(6) = e(2)/e(1) + (e(5)-Zfb)/(e(6)-Zfb);\n", +" funcprot(0);\n", +"endfunction\n", +"\n", +"// Initial guess\n", +"e = [0.326 0.674 0.719 0.408 0.198 0.272];\n", +"y = fsolve(e,F);\n", +"D = y(1);\n", +"W = y(2);\n", +"Yad = y(3);\n", +"Xaw = y(4);\n", +"Ybd = y(5);\n", +"Xbw = y(6);\n", +"Ycd = 1-Yad-Ybd;\n", +"Xcw = 1-Xaw-Xbw;\n", +"\n", +"printf('The amounts of liquid and vapor products are %f and %f respectively\n\n',D,W);\n", +"printf('The vapor compositions of components A, B and C are %f, %f and %f respectively\n\n',Yad,Ybd,Ycd);\n", +"printf('The liquid composition of components A, B and C are %f, %f and %f respectively\n\n',Xaw,Xbw,Xcw); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.3: Differential_Distillation_of_a_Heptane_Octane_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.3\n", +"// Page: 328\n", +"\n", +"printf('Illustration 6.3 - Page: 328\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// n-heptane - a n-octane - b\n", +"P = 1; // [bar]\n", +"\n", +"// Basis:\n", +"F = 100; // [mole]\n", +"// Therefore\n", +"D = 60; // [mole]\n", +"W = 40; // [mole]\n", +"xf = 0.5;\n", +"// Substituting in equation 6.11 yields\n", +"// log(F/W) = Integration of dx/(y_star-x) from xw to 0.50\n", +"\n", +"// The equilibrium-distribution data for this system can be generated by calculating the liquid composition (x = xw) at the dew point (D = l.O).for different feed // compositions (y_star = z).\n", +"y_star = [0.5 0.55 0.60 0.65 0.686 0.70 0.75];\n", +"x = [0.317 0.361 0.409 0.460 0.5 0.516 0.577];\n", +"for i = 1:7\n", +" f(i) = 1/(y_star(i)-x(i));\n", +"end\n", +"\n", +"area = [0.317 5.464;0.361 5.291;0.409 5.236;0.460 5.263;0.5 5.376;0.516 5.435;0.577 7.78];\n", +"// LHS of equation 6.11\n", +"a = log(F/W);\n", +"\n", +"scf(4);\n", +"plot(area(:,1),area(:,2));\n", +"xgrid();\n", +"legend('area under curve');\n", +"xlabel('x');\n", +"ylabel('1/(y_satr-x)');\n", +"\n", +"// When the area becomes equal to 0.916, integration is stopped; this occurs at \n", +"xw = 0.33; // [mole fraction of heptane in residue]\n", +"yd =( F*xf-W*xw)/D; // [mole fraction of heptane]\n", +"printf('The composition of the composited distillate and the residue are %f and %f respectively\n\n',yd,xw); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.4: Rectification_of_a_Benzene_Toluene_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.4\n", +"// Page: 342\n", +"\n", +"printf('Illustration 6.4 - Page: 342\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"T = 298; // [K]\n", +"Fa = 200; // [feed, kmole/hr]\n", +"zf = 0.6;\n", +"yd = 0.95; xd = yd;\n", +"xw = 0.05;\n", +"q = 0.5; // [Lf/F]\n", +"//*****//\n", +"\n", +"printf('Illustration 6.4(a) - Page: 342\n\n');\n", +"// Solution (a)\n", +"\n", +"// Solution of simultaneous equation \n", +"function[f]=F(e)\n", +" f(1) = Fa - e(1)-e(2);\n", +" f(2) = zf*Fa - yd*e(1) - xw*e(2);\n", +" funcprot(0);\n", +"endfunction\n", +"\n", +"// Initial guess\n", +"e = [120 70];\n", +"y = fsolve(e,F);\n", +"D = y(1);\n", +"W = y(2);\n", +"printf('Quantity of liquid and vapor products are %f kmole/h and %f kmole/h respectively\n\n',D,W);\n", +"\n", +"\n", +"printf('Illustration 6.4(b) - Page: 342\n\n');\n", +"// Solution(b)\n", +"// VLE data is generated in the same manner as generated in Example 6.1 by applying Raoult's law\n", +"// VLE_data = [T,x,y]\n", +"VLE_data = [379.4 0.1 0.21;375.5 0.2 0.37;371.7 0.3 0.51;368.4 0.4 0.64;365.1 0.5 0.71;362.6 0.6 0.79;359.8 0.7 0.86;357.7 0.8 0.91;355.3 0.9 0.96];\n", +"// From figure 6.14\n", +"// The minimum number of equilibrium stages is stepped off between the equilibrium curve and the 45 degree Iine, starting from the top, giving\n", +"Nmin = 6.7;\n", +"printf('The minimum number of theoretical stages is %f\n\n',Nmin);\n", +"\n", +"printf('Illustration 6.4(c) - Page: 342\n\n');\n", +"// Solution(c)\n", +"// Slope of q-line = Lf/F/(1-(Lf/F))\n", +"s = q/(1-q);\n", +"// For minimum reflux ratio\n", +"// From figure 6.12 y-intercept is\n", +"i = 0.457;\n", +"// Therefore Rmin is\n", +"Rmin = xd/i -1;\n", +"printf('The minimum reflux ratio is %f mole reflux/mole distillate\n\n',Rmin);\n", +"\n", +"printf('Illustration 6.4(d) - Page: 343\n\n');\n", +"// Solution(d)\n", +"R = 1.3*Rmin;\n", +"// The y-intercept of the rectifying-section operating line is\n", +"ia = xd/(R+1);\n", +"// The operating line for the stripping section is drawn to pass through the point x = y = xw = 0.05 on the 45' line and the point of intersection of the q-line // and the rectifying-section operating line.\n", +"// Therefore from figure 6.15 \n", +"Nact = 13;\n", +"// But it include boiler\n", +"Nact1 = Nact-1;\n", +"printf('The number of equilibrium stages for the reflux ratio specified is %f\n',Nact1);\n", +"// For the optimal feed-stage location, the transition from one operating line to the other occurs at the first opportunity\n", +"// after passing the operating-line intersection \n", +"// Therefore from figure 6.15 shows that \n", +"printf('The optimal location of the feed stage for the reflux ratio specified is sixth from the top\n\n');\n", +"\n", +"printf('Illustration 6.4(e) - Page: 344\n\n');\n", +"// Solution(e)\n", +"L = R*D; // [kmole/h]\n", +"V = L+D; // [kmole/h]\n", +"// From equation 6.27\n", +"Lst = L+q*Fa; // [kmole/h]\n", +"// From equation 6.28\n", +"Vst = V+(q-1)*Fa; // [kmole/h]\n", +"\n", +"// For 50% vaporization of the feed ( zf = 0.60), from calculations similar to those illustrated in Example 6.1, the separator temperature and the equilibrium // compositions are\n", +"Tf = 365.5; // [K]\n", +"yf = 0.707;\n", +"xf = 0.493;\n", +"\n", +"// Latent heat vaporisation data at temperature T = 298 K\n", +"lambdaA = 33.9; // [kJ/mole]\n", +"lambdaB = 38; // [kJ/mole]\n", +"// Heat capacities of liquids (298-366 K)\n", +"Cla = 0.147; // [kJ/mole.K]\n", +"Clb = 0.174; // [kJ/mole.K]\n", +"// Heat capacities of gases, average in the range 298 to 366 K\n", +"Cpa = 0.094; // [kJ/mole.K]\n", +"Cpb = 0.118; // [kJ/mole.K]\n", +"// Substituting in equation 6.6 gives\n", +"Hf = 0;\n", +"Hlf = (Tf-T)*(xf*Cla+(1-xf)*Clb); // [kJ/mole of liquid feed]\n", +"// From equation 6.7\n", +"Hvf = (Tf-T)*(yf*Cpa+(1-yf)*Cpb) + yf*lambdaA + (1-yf)*lambdaB; // [kJ/mole of vapor feed]\n", +"\n", +"Lf = Fa*q; // [kmole/h]\n", +"Vf = Fa*(1-q); // [kmole/h]\n", +"// From equation 6.3\n", +"Qf = (Hvf*Vf +Hlf*Lf-Fa*Hf)*1000/3600; // [kW]\n", +"\n", +"\n", +"Tlo = 354.3; // [Bubble point temperature, K]\n", +"T1 = 355.8; // [Dew point temperature, K]\n", +"y1 = 0.95; // [composition of saturated vapor at dew point]\n", +"x0 = 0.95; // [composition of saturated liquid at bubble point]\n", +"Hv1 = (T1-T)*(y1*Cpa+(1-y1)*Cpb) + y1*lambdaA + (1-y1)*lambdaB; // [kJ/mole of vapor feed]\n", +"Hlo = (Tlo-T)*(x0*Cla+(1-x0)*Clb); // [kJ/mole of liquid feed]\n", +"\n", +"// An energy balance around condenser\n", +"Qc = V*(Hv1-Hlo)*1000/3600; // [kW]\n", +"\n", +"// A flash-vaporization calculation is done in which the fraction vaporized is known (53.8/75.4 = 0.714) and the concentration\n", +"// of the liquid residue is fixed at xw = 0.05\n", +"// The calculations yield\n", +"Tr = 381.6; // [K]\n", +"x12 = 0.093;\n", +"y13 = 0.111;\n", +"T12 = 379.7; // [Bubble point of the liquid entering in the reboiler, K]\n", +"\n", +"Hl12 = (T12-T)*(x12*Cla+(1-x12)*Clb); // [kJ/mole of liquid feed]\n", +"Hv13 = (Tr-T)*(y13*Cpa+(1-y13)*Cpb) + y13*lambdaA + (1-y13)*lambdaB; // [kJ/mole of vapor feed]\n", +"\n", +"Hlw = (Tr-T)*(xw*Cla+(1-xw)*Clb); // [kJ/mole of liquid feed]\n", +"\n", +"// An energy balance around the reboiler \n", +"Qr = (Vst*Hv13+W*Hlw-Lst*Hl12)*1000/3600; // [kW]\n", +"printf('The thermal load of the condenser, reboiler, and feed preheater are %f kW, %f kW and %f kW respectively\n\n',Qc,Qr,Qf);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.7: Overall_Efficiency_of_a_Benzene_Toluene_Fractionator.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 6.7\n", +"// Page: 358\n", +"\n", +"printf('Illustration 6.7 - Page: 358\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// a-benzene b-toluene\n", +"xa = 0.46;\n", +"xb = 0.54;\n", +"Tb = 395; // [bottom temp., K]\n", +"Tt = 360; // [top temp., K]\n", +"alphab = 2.26;\n", +"alphat = 2.52;\n", +"D = 1.53; // [diameter of column, m]\n", +"f = 0.81; // [flooding]\n", +"deltaP = 700; // [average gas-pressure drop, Pa/tray]\n", +"//*****//\n", +"\n", +"Tavg = (Tb+Tt)/2; // [K]\n", +"alpha_avg = (alphab+alphat)/2;\n", +"\n", +"printf('Illustration 6.7(a) - Page: 359\n\n');\n", +"// Solution(a)\n", +"\n", +"// Constants for components 'a' and 'b'\n", +"Aa = 4.612;\n", +"Ba = 148.9;\n", +"Ca = -0.0254;\n", +"Da = 2.222*10^-5;\n", +"ua = exp(Aa+Ba/Tavg+Ca*Tavg+Da*Tavg^2); // [cP]\n", +"\n", +"Ab = -5.878;\n", +"Bb = 1287;\n", +"Cb = 0.00458;\n", +"Db = -0.450*10^-5;\n", +"\n", +"ub = exp(Ab+Bb/Tavg+Cb*Tavg+Db*Tavg^2); // [cP]\n", +"\n", +"// At the average column temperature \n", +"ul = ua^xa*ub^xb; // [cP]\n", +"K = alpha_avg*ul;\n", +"// From the O’Connell correlation\n", +"Eo = 0.52782-0.27511*log10(K) + 0.044923*(log10(K))^2;\n", +"printf('The overall tray efficiency using the O’Connell correlation is %f.\n\n',Eo);\n", +"\n", +"printf('Illustration 6.7(b) - Page: 359\n');\n", +"// Solution(b)\n", +"\n", +"Nideal = 20; // [number of ideal stages]\n", +"Nreal = Nideal/(Eo); // [nnumber of real stages]\n", +"disp(Nreal);\n", +"// Since real stages cannot be fractional, therefore\n", +"Nreal = 34; \n", +"// From Table 4.3 tray spacing \n", +"t = 0.6; // [m]\n", +"// Adding 1 m over the top tray as an entrainment separator and 3 m beneath // the bottom tray for bottoms surge capacity, the total column height is\n", +"Z = 4+Nreal*t; // [m]\n", +"printf('The number of real trays and the total tower height are %f and %f m respectively.\n\n',Nreal,Z);\n", +"\n", +"printf('Illustration 6.7(c) - Page: 359\n\n');\n", +"// Solution(c)\n", +"\n", +"// Total gas pressure drop\n", +"deltaPc = deltaP*Nreal/1000; // [kPa]\n", +"printf('The total gas-pressure drop through the column is %f kPa.\n\n',deltaPc); " + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/7-Liquid_Liquid_Extraction.ipynb b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/7-Liquid_Liquid_Extraction.ipynb new file mode 100644 index 0000000..0bc6d1f --- /dev/null +++ b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/7-Liquid_Liquid_Extraction.ipynb @@ -0,0 +1,678 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 7: Liquid Liquid Extraction" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.10: Mass_Transfer_Coefficients_in_Agitated_Extractor.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 7.10\n", +"// Page: 461\n", +"\n", +"printf('Illustration 7.10 - Page: 461\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"Dd = 1.15*10^-9; // [molecular diffusivity of furfural in water, square m/s]\n", +"Dc = 2.15*10^-9; // [molecular diffusivity of furfural in toluene, square m/s]\n", +"m = 10.15; // [equilibrium distribution coefficient, cubic m raffinate/cubic m extract]\n", +"\n", +"printf('Illustration 7.10(a) - Page: 461\n\n');\n", +"// Solution(a)\n", +"// From example 7.8 and 7.9\n", +"dvs = 3.26*10^-4; // [m]\n", +"Shd = 6.6; // [sherwood number for dispersed phase]\n", +"// From equation 7.52\n", +"kd = Shd*Dd/dvs; // [dispersed phase mass transfer coefficient, m/s]\n", +"printf('The dispersed-phase mass-transfer coefficient is %e m/s.\n\n',kd);\n", +"\n", +"printf('Illustration 7.10(b) - Page: 461\n\n');\n", +"// Solution(b)\n", +"\n", +"dd = 998;\n", +"dc = 868; // [density of continuous phase, kg/cubic m]\n", +"uc = 0.59*10^-3; // [viscosity of continuous phase, kg/m.s]\n", +"ohm = 182.2; // [rpm]\n", +"g = 9.8; // [square m/s]\n", +"Di = 0.288; // [m]\n", +"sigma = 0.025; // [N/m]\n", +"phiD = 0.385;\n", +"Dt = 0.863; // [m] \n", +"Scc = uc/(dc*Dc);\n", +"Rec = Di^2*ohm/60*dc/uc;\n", +"Fr = Di*(ohm/60)^2/g;\n", +"Eo = dd*dvs^2*g/sigma;\n", +"\n", +"// From equation 7.53\n", +"Shc = 1.237*10^-5*Rec^(2/3)*Scc^(1/3)*Fr^(5/12)*Eo^(5/4)*phiD^(-1/2)*(Di/dvs)^2*(dvs/Dt)^(1/2);\n", +"// Therefore \n", +"kc = Shc*Dc/dvs; // [continuous phase mass transfer coefficient, m/s]\n", +"printf('The continuous-phase mass-transfer coefficient is %e m/s.\n\n',kc);\n", +"\n", +"printf('Illustration 7.10(c) - Page: 462\n\n');\n", +"// Solution(c)\n", +"\n", +"a = 7065; // [square m/cubic m]\n", +"Vt = 0.504; // []\n", +"Qd = 0.097/60; // [cubic m/s]\n", +"Qc = 0.155/60; // [cubic m/s]\n", +"\n", +"// From equation 7.40\n", +"Kod = kd*kc*m/(m*kc+kd); // [m/s]\n", +"// From equation 7.45\n", +"N_tod = Kod*a*Vt/Qd;\n", +"// From equation 7.46\n", +"Emd = N_tod/(1+N_tod); \n", +"printf('The Murphree dispersed phase efficiency is %f.\n\n',Emd);\n", +"\n", +"printf('Illustration 7.10(d) - Page: 462\n\n');\n", +"// Solution(d)\n", +"// From equation 7.57\n", +"fext = Emd/(1+Emd*Qd/(m*Qc));\n", +"printf('The fractional extraction of furfural is %f.\n\n',fext);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.11: Preliminary_Design_of_an_RDC.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 7.11\n", +"// Page: 466\n", +"\n", +"printf('Illustration 7.11 - Page: 466\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// Preliminary Design of an RDC\n", +"T = 293; // [K]\n", +"F1 = 12250; // [flow rate for dispersed organic phase, kg/h]\n", +"F2 = 11340; // [flow rate for continuous aqueous phase, kg/h]\n", +"d1 = 858; // [kg/cubic m]\n", +"d2 = 998; // [kg/cubic m]\n", +"n = 12; // [Equilibrium stages]\n", +"//*****//\n", +"Qd = F1/d1; // [cubic m/h]\n", +"Qc = F2/d2; // [cubic m/h]\n", +"\n", +"// Assume that based on information in Table 7.5\n", +"// Vd+Vc = V = 22 m/h\n", +"V = 22; // [m/h]\n", +"// Therefore column cross sectional area \n", +"Ac = (Qd+Qc)/V; // [square m]\n", +"// Column diameter\n", +"Dt = sqrt(4*Ac/%pi); // [m]\n", +"\n", +"// Assume that based on information in Table 7.5\n", +"// 1/HETS = 2.5 to 3.5 m^-1\n", +"// Therefore\n", +"HETS = 1/3; // [m/theoritical stages]\n", +"// Column height\n", +"Z = n*HETS; // [m]\n", +"printf('The height and diameter of an RDC to extract acetone from a dilute toluene-acetone solution is %f m and %f square m respectively\n\n',Z,Dt); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.2: Single_Stage_Extraction.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 7.2\n", +"// Page: 433\n", +"\n", +"printf('Illustration 7.2 - Page: 433\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// 'b'-solvent 'f'-feed 'r'-raffinate 'e'-extract 'c'-one of the // component in feed\n", +"F = 50; // [feed rate, kg/h]\n", +"S = 50; // [solvent rate, kg/h]\n", +"xcf = 0.6;\n", +"xbf = 0;\n", +"ycs = 0;\n", +"ybs = 1.0;\n", +"// The equilibrium data for this system can be obtained from Table 7.1 and // Figure 7.6\n", +"// Plot streams F (xcF = 0.6, xBF = 0.0) and S (yes = 0.0, yBs = 1.0). After // locating streams F and S, M is on the line FS; its exact location is found // by calculating xcm from\n", +"\n", +"xcm = (F*xcf+S*ycs)/(F+S);\n", +"\n", +"// From figure 7.8\n", +"xcr = 0.189;\n", +"xbr = 0.013;\n", +"yce = 0.334;\n", +"ybe = 0.648;\n", +"M = F+S; // [kg/h]\n", +"// From equation 7.8 \n", +"E = M*(xcm-xcr)/(yce-xcr); // [kg/h]\n", +"R = M-E; // [kg/h]\n", +"printf('The extract and raffinate flow rates are %f kg/h and %f kg/h respectively.\n\n',E,R);\n", +"printf('The compositions when one equilibrium stage is used for the separation is %f and %f in raffinate phase for component b and c respectively and %f and %f in extract phase for component b and c respectively.\n\n',xcr,xbr,yce,ybe);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.4: Multistage_Countercurrent_Extraction.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 7.4\n", +"// Page: 439\n", +"\n", +"printf('Illustration 7.4 - Page: 439\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// C-acetic acid A-water\n", +"// f-feed r-raffinate s-solvent\n", +"f = 1000; // [kg/h]\n", +"xCf = 0.35; // [fraction of acid]\n", +"xAf = 1-xCf; // [fraction of water]\n", +"// Solvent is pure\n", +"xAr = 0.02;\n", +"yCs = 0;\n", +"//*****//\n", +"\n", +"printf('Illustration 7.4(a) - Page: 440\n\n');\n", +"// Solution(a)\n", +"\n", +"// From Figure 7.15\n", +"xCMmin = 0.144;\n", +"// From equation 7.11\n", +"Smin = f*(xCMmin-xCf)/(yCs-xCMmin); // [kg/h]\n", +"printf('The minimum amount of solvent which can be used is %f kg/h.\n\n',Smin);\n", +"\n", +"printf('Illustration 7.4(b) - Page: 441\n\n');\n", +"// Solution(b)\n", +"\n", +"S = 1.6*Smin; // [kg/h]\n", +"// From equation 7.11\n", +"xCM = (f*xCf+S*yCs)/(f+S);\n", +"\n", +"// Data for equilibrium line\n", +"// Data_eqml = [xCeq yCeq]\n", +"Data_eqml = [0.0069 0.0018;0.0141 0.0037;0.0289 0.0079;0.0642 0.0193;0.1330 0.0482;0.2530 0.1140;0.3670 0.2160;0.4430 0.3110;0.4640 0.3620];\n", +"\n", +"// Data for operating line\n", +"// Data_opl = [xCop yCop]\n", +"Data_opl = [0.02 0;0.05 0.009;0.1 0.023;0.15 0.037;0.20 0.054;0.25 0.074;0.30 0.096;0.35 0.121];\n", +"\n", +"\n", +"scf(1);\n", +"plot(Data_eqml(:,1),Data_eqml(:,2),Data_opl(:,1),Data_opl(:,2));\n", +"xgrid();\n", +"legend('Equilibrium line,Operating line');\n", +"xlabel('wt fraction of acetic acid in water solutions, xC');\n", +"ylabel('wt fraction of acetic acid in ether solutions, yC');\n", +"\n", +"// Now number of theoritical stages is determined by drawing step by step // stairs from xC = 0.35 to xC = 0.02\n", +"// From figure 7.16\n", +"// Number of theoritical stages 'N' is\n", +"N = 8; \n", +"printf('The number of theoretical stages if the solvent rate used is 60 percent above the minimum is %f.\n\n',N);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.5: Multistage_Extraction_Insoluble_Liquids.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 7.5\n", +"// Page: 444\n", +"\n", +"printf('Illustration 7.5 - Page: 444\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// C-nicotine A-water B-kerosene\n", +"// F-feed R-raffinate S-solvent\n", +"F = 1000; // [feed rate, kg/h]\n", +"xAF = 0.99; // [fraction of water in feed]\n", +"// Because the solutions are dilute therefore\n", +"xCF = 0.01; // [fraction of nicotene in feed, kg nicotene/kg water]\n", +"xCR = 0.001; // [fraction of nicotene in raffinate, kg nicotene/kg water ]\n", +"m = 0.926; // [kg water/kg kerosene]\n", +"//*****//\n", +"\n", +"printf('Illustration 7.5(a) - Page: 444\n\n');\n", +"// Solution(a)\n", +"\n", +"yCS = 0; // [kg nicotene/kg water]\n", +"\n", +"// Because, in this case, both the equilibrium and operating lines are // straight,if the minimum solvent flow rate Bmin is used, the concentration // of the exiting extract, yCmax, will be in equilibrium with xCF. Therefore\n", +"yCmax = m*xCF; // [kg nicotene/kg kerosene]\n", +"\n", +"A = F*xAF; // [kg water/h]\n", +"// From equation 7.17\n", +"Bmin = A*(xCF-xCR)/(yCmax-yCS); // [kg kerosene/h]\n", +"printf('The minimum amount of solvent which can be used is %f kg kerosene/h.\n\n',Bmin);\n", +"\n", +"printf('Illustration 7.5(b) - Page: 444\n\n');\n", +"// Solution(b)\n", +"\n", +"B = 1.2*Bmin; // [kg kerosene/h]\n", +"EF = m*B/A;\n", +"Nt = log((xCF-yCS/m)/(xCR-yCS/m)*(1-1/EF)+1/EF)/log(EF);\n", +"\n", +"printf('The number of theoretical stages if the solvent rate used is 20 percent above the minimum is %f .\n\n',Nt);\n", +"\n", +"printf('Illustration 7.5(c) - Page: 444\n');\n", +"// Solution(c)\n", +"\n", +"Eme = 0.6; // [Murphree stage efficiency]\n", +"// from equation 7.20\n", +"Eo = log(1+Eme*(EF-1))/log(EF); // [overall efficiency]\n", +"Nr = Nt/Eo; // [number of real stages]\n", +"disp(Nr);\n", +"// The nearest integer to number of real stages is 11\n", +"// Therefore\n", +"Nr = 11;\n", +"printf('The number of real stages required is %f.\n\n',Nr);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.6: Countercurrent_Extraction_with_Extract_Reflux.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 7.6\n", +"// Page: 449\n", +"\n", +"printf('Illustration 7.6 - Page: 449\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// C-styrene A-ethylbenzene B-diethylene glycol\n", +"F = 1000; // [kg/h]\n", +"XF = 0.6; // [wt fraction of styrene]\n", +"XPE = 0.9;\n", +"XN = 0.1;\n", +"// All above fractions are on solvent basis\n", +"// Equilibrium Data for Ethylbenzene (A)-Diethylene Glycol (B)-Styrene (C) at 298 K\n", +"// Data_eqm = [X Y];\n", +"// X - kg C/kg (A+C) in raffinate solution\n", +"// Y - kg C/kg (A+C) in extract solution\n", +"Data_eqm = [0 0;0.087 0.1429;0.1883 0.273;0.288 0.386;0.384 0.48;0.458 0.557;0.464 0.565;0.561 0.655;0.573 0.674;0.781 0.863;0.9 0.95;1 1];\n", +"//*****//\n", +"\n", +"printf('Illustration 7.6(a) - Page: 449\n\n');\n", +"// Solution(a)\n", +"\n", +"// Minimum theoretical stages are determined on the XY equilibrium distribution diagram, stepping them off from the diagonal line to the equilibrium curve, beginning at XPE = 0.9 and ending at XN = 0.1\n", +"\n", +"Data_opl = [0 0;0.09 0.09;0.18 0.18;0.27 0.27;0.36 0.36;0.45 0.45;0.54 0.54;0.63 0.63;0.72 0.72;0.81 0.81;0.90 0.90;1 1;];\n", +"\n", +"scf(1);\n", +"plot(Data_eqm(:,1),Data_eqm(:,2),Data_opl(:,1),Data_opl(:,2));\n", +"xgrid();\n", +"legend('Equilibrium line','Operating line');\n", +"xlabel('X,kg C/kg (A+C) in raffinate solution');\n", +"ylabel('Y,kg C/kg (A+C) in extract solution');\n", +"\n", +"// Figure 7.20\n", +"Nmin = 9; // [number of ideal stages]\n", +"\n", +"printf('The minimum number of theoretical stages are %f.\n\n',Nmin);\n", +"\n", +"printf('Illustration 7.6(b) - Page: 450\n\n');\n", +"// Solution(b)\n", +"\n", +"// Since the equilibrium-distribution curve is everywhere concave downward// ,the tie line which when extended passes through F provides the minimum\n", +"// reflux ratio\n", +"// From figure 7.19\n", +"NdeltaEm = 11.04;\n", +"NE1 = 3.1;\n", +"// From equation 7.30\n", +"// Y = R_O/P_E, external reflux ratio\n", +"Ymin = (NdeltaEm-NE1)/NE1; // [kg reflux/kg extract product]\n", +"\n", +"printf('The minimum extract reflux ratio is %f kg reflux/kg extract product.\n\n',Ymin);\n", +"\n", +"printf('Illustration 7.6(c) - Page: 450\n\n');\n", +"// Solution(c)\n", +"\n", +"Y = 1.5*Ymin; // [kg reflux/kg extract product]\n", +"// From equation 7.30\n", +"NdeltaE = Y*NE1+NE1;\n", +"// From figure 7.19\n", +"NdeltaR = -24.90;\n", +"// From figure 7.21\n", +"N = 17.5; // [number of equilibrium stages]\n", +"\n", +"// From figure 7.19\n", +"// For XN = 0.1 NRN = 0.0083\n", +"NRN = 0.0083;\n", +"// Basis: 1 hour\n", +"\n", +"// e = [P_E R_N] \n", +"// Solution of simultaneous equation\n", +"function[f]=G(e)\n", +" f(1) = F - e(1) - e(2);\n", +" f(2) = F*XF-e(1)*XPE-e(2)*XN;\n", +" funcprot(0);\n", +"endfunction\n", +"// Initial guess:\n", +"e = [600 300];\n", +"y = fsolve(e,G);\n", +"P_E = y(1); // [kg/h]\n", +"R_N = y(2); // [kg/h]\n", +"\n", +"R_O = Y*P_E; // [kg/h]\n", +"E_1 = R_O+P_E; // [kg/h]\n", +"\n", +"B_E = E_1*NE1; // [kg/h]\n", +"E1 = B_E+E_1; // [kg/h]\n", +"RN = R_N*(1+NRN); // [kg/h]\n", +"S = B_E+R_N*NRN; // [kg/h]\n", +"\n", +"printf('The number of theoretical stages are %f.\n',N);\n", +"printf('The important flow quantities at an extract reflux ratio of 1.5 times the minimum value are\n\n');\n", +"printf(' PE = %f kg/h\n RN = %f kg/h\n RO = %f kg/h\n E1 = %f kg/h\n BE = %f kg/h\n E1 = %f kg/h\n RN = %f kg/h\n S = %f kg/h\n',P_E,R_N,R_O,E_1,B_E,E1,RN,S);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.7: Design_of_a_Mixer_Settler_Extractor.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 7.7\n", +"// Page: 454\n", +"\n", +"printf('Illustration 7.7 - Page: 454\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"Ff = 1.89; // [cubic m/min]\n", +"Fs = 2.84; // [cubic m/min]\n", +"t = 2; // [min]\n", +"//*****//\n", +"\n", +"printf('Illustration 7.7(a) - Page: 454\n\n');\n", +"// Solution(a)\n", +"\n", +"Q = Ff+Fs; // [total flow rate, cubic m/min]\n", +"Vt = Q*t; // [cubic m]\n", +"// For a cylindrical vessel H = Dt\n", +"Dt = (4*Vt/%pi)^(1/3); // [m]\n", +"H = Dt; // [m]\n", +"printf('The diameter and height of each mixing vessel is %f m and %f m respectively.\n\n',Dt,H);\n", +"\n", +"printf('Illustration 7.7(b) - Page: 454\n\n');\n", +"// Solution(b)\n", +"// Based on a recommendation of Flynn and Treybal (1955),\n", +"P = 0.788*Vt; // [mixer power, kW]\n", +"printf('The agitator power for each mixer is %f kW.\n\n',P);\n", +"\n", +"printf('Illustration 7.7(c) - Page: 454\n\n');\n", +"// Solution(c)\n", +"\n", +"// Based on the recommendation by Ryan et al. (1959), the disengaging area // in the settler is\n", +"// Dt1*L1 = Q/a = Y\n", +"a = 0.2; // [cubic m/min-square m]\n", +"Y = Q/a; // [square m]\n", +"// For L/Dt = 4\n", +"Dt1 = (Y/4)^0.5; // [m]\n", +"L1 = 4*Dt1; // [m]\n", +"printf('The diameter and length of a settling vessel is %f m and %f m respectively.\n\n',Dt1,L1);\n", +"\n", +"printf('Illustration 7.7(d) - Page: 454\n\n');\n", +"// Solution(d)\n", +"// Total volume of settler\n", +"Vt1 = %pi*Dt1^2*L1/4; // [cubic m]\n", +"tres1 = Vt1/Q; // [min]\n", +"printf('The residence time in the settling vessel is %f min.\n\n',tres1); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.8: Power_Requirements_of_a_Mixer_Settler_Extractor.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 7.8\n", +"// Page: 456\n", +"\n", +"printf('Illustration 7.8 - Page: 456\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"Ff = 1.61; // [flow rate of feed, kg/s]\n", +"Fs = 2.24; // [flow rate of solvent, kg/s]\n", +"t = 2*60; // [residence time in each mixer, s]\n", +"df = 998; // [density of feed, kg/cubic m]\n", +"uf = 0.89*10^-3; // [viscosity of feed, kg/m.s]\n", +"ds = 868; // [density of solvent, kg/cubic m]\n", +"us = 0.59*10^-3; // [viscosity of solvent, kg/m.s]\n", +"sigma = 0.025; // [interfacial tension, N/m]\n", +"g = 9.8; // [square m/s]\n", +"//*****//\n", +"\n", +"Qf = Ff/df; // [volumetric flow rate of feed, cubic m/s]\n", +"Qs = Fs/ds; // [volumetric flow rate of solvent, cubic m/s]\n", +"// Volume fractions in the combined feed and solvent entering the mixer \n", +"phiE = Qs/(Qs+Qf); \n", +"phiR = 1-phiE;\n", +"\n", +"printf('Illustration 7.8(a) - Page: 457\n\n');\n", +"// Solution(a)\n", +"\n", +"Q = Qf+Qs; // [total flow rate, cubic m/s]\n", +"Vt = Q*t; // [vessel volume, cubic m]\n", +"// For a cylindrical vessel, H = Dt\n", +"// Therefore, Vt = %pi*Dt^3/4\n", +"Dt = (4*Vt/%pi)^(1/3); // [ diameter, m]\n", +"H = Dt; // [height, m]\n", +"Di = Dt/3; // [m]\n", +"printf('The height and diameter of the mixing vessel are %f m and %f m respectively.\n',Dt,H);\n", +"printf('The diameter of the flat-blade impeller is %f m.\n\n',Di);\n", +"\n", +"printf('Illustration 7.8(b) - Page: 457\n\n');\n", +"// Solution(b)\n", +"\n", +"// For the raffinate phase dispersed:\n", +"phiD = phiR;\n", +"phiC = phiE;\n", +"deltad = df-ds; // [kg/cubic m]\n", +"rowM = phiD*df+phiC*ds; // [kg/cubic m]\n", +"uM = us/phiC*(1 + 1.5*uf*phiD/(us+uf)); // [kg/m.s]\n", +"// Substituting in equation 7.34\n", +"ohm_min = sqrt(1.03*phiD^0.106*g*deltad*(Dt/Di)^2.76*(uM^2*sigma/(Di^5*rowM*g^2*deltad^2))^0.084/(Di*rowM))*60; // [rpm]\n", +"printf('The minimum rate of rotation of the impeller for complete and uniform dispersion.is %f rpm.\n\n',ohm_min);\n", +"\n", +"printf('Illustration 7.8(c) - Page: 457\n\n');\n", +"// Solution(c)\n", +"\n", +"ohm = 1.2*ohm_min; // [rpm]\n", +"\n", +"// From equation 7.37\n", +"Re = ohm/60*Di^2*rowM/uM; // [Renoylds number]\n", +"// Then according to Laity and Treybal (1957), the power number, Po = 5.7\n", +"Po = 5.7\n", +"// From equation 7.37\n", +"P = Po*(ohm/60)^3*Di^5*rowM/1000; // [kW]\n", +"// Power density\n", +"Pd = P/Vt; // [kW/cubic m]\n", +"printf('The power requirement of the agitator at 1.20 times the minimum rotation rate is %f kW.\n\n',P);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.9: Drop_Size_and_Interfacial_Area_in_an_Extractor.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 7.9\n", +"// Page: 460\n", +"\n", +"printf('Illustration 7.9 - Page: 460\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// From example 7.8\n", +"Di = 0.288; // [m]\n", +"sigma = 0.025; // [N/m]\n", +"ohm = 152*1.2/60; // [rps]\n", +"ds = 868; // [kg/cubic m]\n", +"phiD = 0.385;\n", +"\n", +"// Therefore from equation 7.49\n", +"We = Di^3*ohm^2*ds/sigma; // [Weber number]\n", +"\n", +"// From equation 7.50\n", +"dvs = Di*0.052*(We)^-0.6*exp(4*phiD); // [m]\n", +"disp(dvs);\n", +"// Substituting in equation 7.48\n", +"a = 6*phiD/dvs; // [square m/cubic m]\n", +"printf('The Sauter mean drop diameter and the interfacial area is %e m and %f square m/cubic m respectively.\n\n',dvs,a); " + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/8-Humidification_Operations.ipynb b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/8-Humidification_Operations.ipynb new file mode 100644 index 0000000..257c25e --- /dev/null +++ b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/8-Humidification_Operations.ipynb @@ -0,0 +1,630 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 8: Humidification Operations" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.1: Humidity_of_a_Saturated_Gas_Vapor_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 8.1\n", +"// Page: 479\n", +"\n", +"printf('Illustration 8.1 - Page: 479\n\n');\n", +"\n", +"// solution\n", +"// ****Data****//\n", +"P_total = 1; // [bar]\n", +"T1 = 320; // [K]\n", +"T_c = 562.2; // [K]\n", +"P_c = 48.9; // [bar]\n", +"A = -6.983;\n", +"B = 1.332;\n", +"C = -2.629;\n", +"D = -3.333;\n", +"//*****//\n", +"\n", +"x1 = 1-(T1/T_c);\n", +"deff('[y] = f12(P1)','y = log(P1/P_c)-(A*x1+B*x1^1.5+C*x1^3+D*x1^6)/(1-x1)');\n", +"P1 = fsolve(.01,f12);// [bar]\n", +"printf('Vapor pressure of benzene at 320 K is %f bar\n\n',P1);\n", +"\n", +"M_benzene = 78 // [gram/mole]\n", +"printf('Illustration 8.1 (a)\n');\n", +"\n", +"// Solution (a)\n", +"// For nitrogen\n", +"M_nitrogen = 28; // [gram/mole]\n", +"// From equation 8.2\n", +"Y = P1/(P_total - P1); //[mole C6H6/ mole N2]\n", +"Y_s1 = Y*(M_benzene/M_nitrogen); // [gram C6H6/gram N2]\n", +"\n", +"printf('Absolute humidity of mixture of benzene and nitrogen is %f gram C6H6/gram N2\n\n',Y_s1);\n", +"\n", +"printf('Illustration 8.1 (b)\n');\n", +"// Solution (b)\n", +"// For carbon dioxide\n", +"M_carbondioxide = 44; // [gram/mole]\n", +"// From equation 8.2\n", +"Y = P1/(P_total - P1); //[mole C6H6/ mole C02]\n", +"Y_s2 = Y*(M_benzene/M_carbondioxide); // [gram C6H6/gram CO2]\n", +"\n", +"printf('Absolute humidity of mixture of benzene and carbon dioxide is %f gram C6H6/gram CO2\n',Y_s2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.2: Enthalpy_of_a_Saturated_Gas_Vapor_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 8.2\n", +"// Page: 480\n", +"\n", +"printf('Illustration 8.2 - Page: 480\n\n');\n", +"\n", +"// solution\n", +"// A - water vapor B - air\n", +"// REference state is air\n", +"\n", +"// ****Data****// \n", +"T_ref = 273; // [Reference temperature, K]\n", +"T = 303; // [K]\n", +"P_total = 1; // [atm]\n", +"P_A = 4.24; // [Vapor pressure of water at 303K, kPa]\n", +"M_A = 18; // [gram/mole]\n", +"M_B = 29; // [gram/mole]\n", +"C_A = 1.884; // [kJ/kg.K]\n", +"C_B = 1.005; // [kJ/kg.K]\n", +"lambda = 2502.3; // [Latent heat of Vaporization at 273K, kJ/kg]\n", +"//*****//\n", +"\n", +"P_total = P_total*101.325; // [kPa]\n", +"\n", +"// From equation 8.2\n", +"Y_s = P_A/(P_total - P_A)*(M_A/M_B); //[kg H2O/ kg dry air]\n", +"printf('Absolute humidity of mixture of water vapor and air is %f kg H2O/kg dry air\n\n',Y_s);\n", +"\n", +"// From equation 8.3\n", +"H_s = C_B*(T-T_ref) + Y_s*(C_A*(T-T_ref) + lambda); // [kJ/kg dry air]\n", +"\n", +"printf('Enthalpy per unit mass of dry air of a saturated mixture at 303 K and 1 atm is %f kJ/kg dry air\n',H_s);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.3: Properties_of_an_Unsaturated_Gas_Vapor_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 8.2\n", +"// Page: 482\n", +"\n", +"printf('Illustration 8.3 - Page: 482\n\n');\n", +"\n", +"// solution\n", +"// A - water vapor B - air\n", +"//*****Data*****\n", +"T = 328; // [dry bulb temperature, K]\n", +"P_total = 1; // [atm]\n", +"H = 30; // [relative humidity, %]\n", +"//*****//\n", +"P_vapA = 15.73; // [vapor pressure of water, kPa]\n", +"P_total = P_total*101.325; // [kPa]\n", +"M_A = 18; // [gram/mole]\n", +"M_B = 29; // [gram/mole]\n", +"\n", +"P_A = (H/100)*P_vapA;// [partial pressure of A,kPa]\n", +"\n", +"printf('Illustration 8.3 (a)\n\n');\n", +"// At dew point partial pressure is equal to vapor pressure\n", +"// Using Antonnie equation we can find dew point temperature\n", +"\n", +"printf('Dew point temperature is 304.5 K\n')\n", +"\n", +"// From equation 8.1\n", +"Y_s = P_A/(P_total-P_A)*(M_A/M_B);\n", +"printf('Absolute humidity of air-water mixture at 328 K is %f kg H2O/kg dry air\n\n',Y_s);\n", +"\n", +"printf('Illustration 8.3 (b)\n\n');\n", +"\n", +"//soluton (b)\n", +"T_ref = 273; // [K]\n", +"C_A = 1.884; // [kJ/kg.K]\n", +"C_B = 1.005; // [kJ/kg.K]\n", +"lambda = 2502.3; // [Latent heat of Vaporization at 273 K, kJ/kg]\n", +"\n", +"// From equation 8.3\n", +"H_s = C_B*(T-T_ref) + Y_s*(C_A*(T-T_ref) + lambda);\n", +"\n", +"printf('Enthalpy per unit mass of dry air of a saturated mixture relative to 273 K is %f kJ/kg dry air\n',H_s);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.4: Adiabatic_Saturation_Temperature.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 8.4\n", +"// Page: 484\n", +"\n", +"printf('Illustration 8.4 - Page: 484\n\n');\n", +"\n", +"// Solution\n", +"// a - water vapor b - air\n", +"//*****Data*****\n", +"T_G1 = 356; // [K]\n", +"P_total = 101.325; // [kPa]\n", +"Y_1 = .03; // [kg water/kg dry air]\n", +"//*****//\n", +"\n", +"C_pa = 1.884; // [kJ/kg.K]\n", +"C_pb = 1.005; // [kJ/kg.K]\n", +"\n", +"C_s1 = C_pb + Y_1*C_pa;// [kJ/kg.K]\n", +"\n", +"T_1 = 373.15; // [K]\n", +"T_c = 647.1; // [K]\n", +"M_a = 18.02; // [gram/mole]\n", +"M_b = 28.97; // [gram/mole]\n", +"lambda_1 = 2256; // [Latent Heat of Vaporizarion at T_1, kJ/kg]\n", +"\n", +"// Using equation 8.10\n", +"// T_as = T_G1- (Y_as - Y_l)*lambda_as/C_s1\n", +"// where lambda_2 = lambda_1*((1-T_as/T_c)/(1-T_1/T_c))^.38\n", +"// Y_as = P_a/(P_total-P_a)*M_a/M_b\n", +"// and P_a = exp(16.3872-(3885.7/(T_as-42.98))) - Antoine equation for component 'a'\n", +"\n", +"deff('[y] = f12(T_as)',' y = T_as - T_G1 + ((exp(16.3872 - (3885.7/(T_as - 42.98)))/(P_total - (exp(16.3872 - (3885.7/(T_as - 42.98))))))*(M_a/M_b) - Y_1)*(lambda_1*((1-T_as/T_c)/(1-T_1/T_c))^.38/C_s1)');\n", +"T_as = fsolve(310,f12); // [K]\n", +"printf('Adiabatic Saturation Temperature is %f K\n',T_as);\n", +"\n", +"// Now using equation 8.2\n", +" \n", +"P_a = exp(16.3872-(3885.7/(T_as-42.98))); // [kPa]\n", +"Y_as = P_a/(P_total-P_a)*M_a/M_b; // [kg water/kg dry air]\n", +"\n", +"printf('Absolute humidity is %f kg water/kg dry air\n',Y_as);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.5: Wet_Bulb_Temperature_of_an_Air_Water_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 8.5\n", +"// Page: 487\n", +"\n", +"printf('Illustration 8.5 - Page: 487\n\n');\n", +"\n", +"// Solution\n", +"//*****Data*****//\n", +"T_w = 320; // [K]\n", +"T_g = 340; // [K]\n", +"lambda_w = 2413; // [Latent Heat of Vaporization at 320K, kJ/kg]\n", +"Y_w1 = 0.073; // [kg water/kg dry air]\n", +"//*****//\n", +"A = 0.95; // [For air water system,A, kJ/kg.K]\n", +"\n", +"// here A = hg/ky, psychrometric ratio\n", +"// Air-water mixture is saturated at 320K and 1 atm\n", +"// Using equation 8.15\n", +" \n", +"Y_w2 = Y_w1 - ((T_g-T_w)*A/lambda_w); // [kg water/kg dry air]\n", +"printf('Absolute humidity of air-water mixture at 340 K and 1 atm is %f kg water/kg dry air\n ',Y_w2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.6: Wet_Bulb_and_Adiabatic_Saturation_Temperatures_of_an_Air_Toluene_Mixture.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 8.6\n", +"// Page: 487\n", +"\n", +"printf('Illustration 8.6 - Page: 487\n\n');\n", +"\n", +"// a - toluene b - air\n", +"//*****Data*****\n", +"T_G1 = 333; // [K]\n", +"P_total = 101.325; // [kPa]\n", +"Y_1 = 0.05; // [kg vapor/kg dry air]\n", +"//*****//\n", +"\n", +"C_pa = 1.256; // [kJ/kg.K]\n", +"C_pb = 1.005; // [kJ/kg.K]\n", +"\n", +"C_s1 = C_pb + Y_1*C_pa\n", +"\n", +"T_1 = 383.8; // [K]\n", +"T_c = 591.8; // [K]\n", +"M_a = 92; // [gram/mole]\n", +"M_b = 28.97; // [gram/mole]\n", +"lambda_1 = 33.18*1000/92; // [Latent heat of vaporization at T_1, kJ/kg]\n", +"\n", +"// Constants of antoine equation\n", +"A = 13.9320;\n", +"B = 3057; // [K]\n", +"C = -55.52; // [K]\n", +"\n", +"printf('Illustration 8.6 (a)\n');\n", +"\n", +"// Solution (a)\n", +"\n", +"// Using equation 8.10\n", +"// T_as = T_G1 - (Y_as - Y_l)*lambda_as/C_s1\n", +"// where lambda_2 = lambda_1*((1-T_as/T_c)/(1-T_1/T_c))^.38\n", +"// Y_as = P_a/(P_total-P_a)*M_a/M_b\n", +"// P_a = exp(A-B/(T+c))\n", +"\n", +"deff('[y] = f12(T_as)',' y = T_as - T_G1 + ((exp(13.9320 - (3057/(T_as - 55.52)))/(P_total - (exp(13.9320 - (3057/(T_as - 55.52))))))*(M_a/M_b) - Y_1)*(lambda_1*((1-T_as/T_c)/(1-T_1/T_c))^.38/C_s1)');\n", +"T_as = fsolve(273,f12); // [K] \n", +"printf('Adiabatic Saturation Temperature is %f K\n',T_as);\n", +"\n", +"// Now using equation 8.2\n", +" \n", +"P_a = exp(13.9320-(3057/(T_as-55.52))); // [kPa]\n", +"Y_as = P_a/(P_total-P_a)*M_a/M_b; // [kg vapor/kg dry air]\n", +"\n", +"printf('Absolute humidity is %f kg vapor/kg dry air\n\n',Y_as);\n", +"\n", +"printf('Illustration 8.6 (b)\n');\n", +"\n", +"// Solution (b)\n", +"\n", +"// Thermodynamic properties of mixture of toluene and air\n", +"row = 1.06; // [kg/cubic m]\n", +"u = 19.5*10^-6; // [P]\n", +"Pr = 0.7;\n", +"Dab = 0.1; //[From Wilke-Lee equation, square cm/s]\n", +"Sc = u/(row*Dab*10^-4);\n", +"\n", +"// Using equation 8.16\n", +"\n", +"A_1 = C_s1*(Sc/Pr)^0.567; // [kJ/kg.K]\n", +"// here A_1 = hg/ky, psychrometric ratio\n", +"\n", +"// Using equation 8.15\n", +"// T_w = T_G1 - (Y_w-Y_1)*lambda_w/(hg/ky)\n", +"// where lambda_w = lambda_1*((1-T_w/T_c)/(1-T_1/T_c))^.38\n", +"// Y_w = P_a/(P_total-P_a)*M_a/M_b\n", +"// P_a = exp(A-B/(T+c))\n", +"\n", +"deff('[z] = f15(T_w)',' z = T_w - T_G1 + ((exp(13.9320 - (3057/(T_w - 55.52)))/(P_total - (exp(13.9320 - (3057/(T_w - 55.52))))))*(M_a/M_b) - Y_1)*(lambda_1*((1-T_w/T_c)/(1-T_1/T_c))^.38/A_1)');\n", +"T_w = fsolve(273,f15); // [K]\n", +"printf('Wet bulb Temperature is %f K\n',T_w);\n", +"\n", +"// Now using equation 8.2\n", +" \n", +"P_a = exp(13.9320-(3057/(T_w-55.52))); // [kPa]\n", +"Y_w = P_a/(P_total-P_a)*M_a/M_b; // [kg vapor/kg dry air]\n", +"\n", +"printf('Absolute humidity is %f kg vapor/kg dry air\n',Y_w);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.7: Water_Cooling_Using_Air_Graphical_Solution.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 8.7\n", +"// Page: 493\n", +"\n", +"printf('Illustration 8.7 - Page: 493\n\n');\n", +"\n", +"\n", +"// solution\n", +"\n", +"//****Data****//\n", +"L_min = 2.27;// [kg/square m.s]\n", +"G_min = 2;// [kg/square m.s]\n", +"L2_prime = 15;// [kg/s]\n", +"Templ2 = 318;// [K]\n", +"Tempg1 = 303;// [Entering air dry bulb, K]\n", +"Tempw1 = 297;// [ Entering air wet bulb, K]\n", +"Kya = 0.90;// [kg/cubic m.s]\n", +"//*******//\n", +"\n", +"H1_prime = 72.5;// [kJ/kg dry air]\n", +"Y1_prime = 0.0190;// [kg water/kg dry air]\n", +"Templ1 = 302;// [K]\n", +"Cal = 4.187;// [kJ/kg]\n", +"\n", +"// Equilibrium Data:\n", +"// Data = [Temp.(K),H_star(kJ/kg)]\n", +"Data_star = [302 100;305.5 114;308 129.8;310.5 147;313 166.8;315.5 191;318 216];\n", +"\n", +"// The operating line for least slope:\n", +"H2_star = 210;// [kJ/kg]\n", +"Data_minSlope = [Templ1 H1_prime;Templ2 H2_star];\n", +"deff('[y] = f14(Gmin)','y = ((L2_prime*Cal)/Gmin)-((H2_star-H1_prime)/(Templ2-Templ1))');\n", +"Gmin = fsolve(2,f14);// [kg/s]\n", +"Gs = 1.5*Gmin;// [kg/s]\n", +"\n", +"// For the Operating Line:\n", +"y = deff('[y] = f15(H2)','y = ((H2-H1_prime)/(Templ2-Templ1))-((L2_prime*Cal)/Gs)');\n", +"H2 = fsolve(2,f15);// [kJ/kg dry air]\n", +"Data_opline = [Templ1 H1_prime;Templ2 H2];\n", +"\n", +"scf(4);\n", +"plot(Data_star(:,1),Data_star(:,2),Data_minSlope(:,1),Data_minSlope(:,2),Data_opline(:,1),Data_opline(:,2));\n", +"xgrid();\n", +"legend('Equilibrium line','Minimum Flow Rate Line','Operating Line');\n", +"xlabel('Liquid Temperature, K');\n", +"ylabel('Enthalphy Of Air Water vapour, kJ / kg dry air');\n", +"\n", +"// Tower cross section Area:\n", +"Al = L2_prime/L_min;// [square m]\n", +"Ag = Gs/G_min;// [square m]\n", +"A = min(Al,Ag);// [square m]\n", +"printf('Cross sectional is %f square m\n',A);\n", +"\n", +"// Data from operating line:\n", +"// Data1 = [Temp.(K),H_prime(kJ/kg)]\n", +"Data1 = [302 72.5;305.5 92;308 106.5;310.5 121;313 135.5;315.5 149.5;318 164.2];\n", +"\n", +"// Driving Force:\n", +"Data2 = zeros(7,2);\n", +"// Data2 = [Temp[K],driving Force]\n", +"for i = 1:7\n", +" Data2(i,1) = Data1(i,1);\n", +" Data2(i,2) = 1/(Data_star(i,2)-Data1(i,2));\n", +"end\n", +"\n", +"// The data for operating line as abcissa is plotted against driving force;\n", +"Area = 3.28;\n", +"// From Eqn. 7.54\n", +"deff('[y] = f16(Z)','y = Area-(Kya*Z/G_min)');\n", +"Z = fsolve(2,f16);\n", +"printf('The height of tower is %f m\n',Z);\n", +"NtoG = 3.28;\n", +"HtoG = G_min/Kya;// [m]\n", +"\n", +"// Make up water\n", +"// Assuming the outlet air is essentially saturated:\n", +"Y2_prime = 0.048;// [kg water/kg dry air]\n", +"H2 = 164.2; // [kJ/kg dry air]\n", +"// This corresponds to an exit-air temperature of 312.8 K\n", +"\n", +"// Approximate rate of evaporation \n", +"R = Gs*(Y2_prime-Y1_prime);\n", +"printf('Rate of evaporation is %f kg/s\n',R); " + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8.8: Water_Cooling_Using_Air_Numerical_Solution.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 8.8\n", +"// Page: 495\n", +"\n", +"printf('Illustration 8.8 - Page: 495\n\n');\n", +"\n", +"// solution (a)\n", +"printf('Illustration 8.8 (a) - Page: 495\n\n');\n", +"\n", +"// a - water vapor b - air\n", +"//****Data****//\n", +"T_L2 = 314; // [inlet water temperature, K]\n", +"T_L1 = 303; // [outlet water temperature, K]\n", +"T_d = 306; // [dry bulb temperature ,K]\n", +"T_w1 = 298; // [wet bulb temperature, K]\n", +"Z = 3; // [packed tower depth, m]\n", +"G_x = 3; // [mass velocity, kg/square m.s]\n", +"G_s =2.7; // [mass velocity, kg/square m.s]\n", +"//*****//\n", +"\n", +"T_o = 273; // [reference temperature, K]\n", +"C_al = 4.187; // [kJ/kg.K]\n", +"C_pb = 1.005; // [kJ/kg.K]\n", +"C_pa = 1.884; // [kJ/kg.K]\n", +"P_total = 101.325; // [kPa]\n", +"lambda_0 = 2502.3; // [kJ/kg]\n", +"M_a = 18.02; // [gram/mole]\n", +"M_b = 28.97; // [gram/mole]\n", +"\n", +"// Equilibrium Data:\n", +"// Data = [Temp.(K),H_eqm(kJ/kg)],[H_eqm - Equilibrium gas enthalpy]\n", +"Data_eqm = [273 9.48;283 29.36;293 57.8;303 99.75;313 166.79;323 275.58;333 461.5];\n", +"\n", +"scf(4);\n", +"plot(Data_eqm(:,1),Data_eqm(:,2));\n", +"xgrid();\n", +"legend('Equilibrium line');\n", +"xlabel('Liquid Temperature, K');\n", +"ylabel('Enthalphy Of Air Water vapour, kJ / kg dry air');\n", +"\n", +"P_a = exp(16.3872-(3885.7/(T_w1-42.98))); // [kPa]\n", +"Y_m1 = P_a/(P_total-P_a)*(M_a/M_b); // [kg water/kg dry air]\n", +"H_g1 = C_pb*(T_w1-T_o) + Y_m1*(C_pa*(T_w1-T_o)+lambda_0); // [Enthalpy of saturated mixture, kJ/kg dry air]\n", +"\n", +"// From overall energy balance\n", +"H_g2 = H_g1 + G_x*C_al*(T_L2-T_L1)/G_s; // [Enthalpy of exit air, kJ/kg]\n", +"\n", +"// For calculation of mass transfer unit, Ntog\n", +"// Data1 = [T_L1 H_g1,.....,T_L2 H_g2]\n", +"Data1 = zeros(10,2);\n", +"deltaT = (T_L2-T_L1)/9;\n", +"for i = 1:10\n", +" Data1(i,1) = T_L1 + (i-1)*deltaT;\n", +" Data1(i,2) = H_g1 + G_x*C_al*(Data1(i,1)-T_L1)/G_s;\n", +"end\n", +"\n", +"// Data for enthalpy of exit air at different temperature varying from T_L1 to T_L2, operating line\n", +"Data1 = [303 76.17;304.22 81.85;305.44 87.53;306.67 93.22;307.89 98.91;309.11 104.59;310.33 110.28;311.56 115.96;312.78 121.65;314 127.35];\n", +"\n", +"// Data of equilibrium gas enthalpy at different temperature varying from T_L1 to T_L2 from the above equilibrium graph \n", +"Data2 = [303 100;304.22 107.93;305.44 116.12;306.67 124.35;307.89 132.54;309.11 140.71;310.33 148.89;311.56 157.14;312.78 165.31;314 177.67];\n", +"\n", +"// Driving force \n", +"Data3 = zeros(10,2);\n", +"// Data3 =[Equilibrium gas enthalpy, driving force]\n", +"for i = 1:10\n", +" Data3(i,1) = Data1(i,2);\n", +" Data3(i,2) = 1/(Data2(i,2)-Data1(i,2));\n", +"end\n", +"\n", +"// The data for Equilibrium gas enthalpy as abcissa is plotted against driving force\n", +"Area = 1.642;\n", +"N_tog = 1.642;\n", +"H_tog = Z/N_tog; // [m]\n", +"\n", +"// Overall volumetric mass-transfer coefficient, K_ya\n", +"K_ya = G_s/H_tog;\n", +"printf('Overall volumetric mass-transfer coefficient is %f kg/cubic m.s\n\n',K_ya);\n", +"\n", +"// Solution (b)\n", +"printf('Illustration 8.8 (b) - Page: 495\n\n');\n", +"\n", +"T_w2 = 288; // [New entering-air wet-bulb temperature, K]\n", +"P_a2 = exp(16.3872-(3885.7/(T_w2-42.98))); // [kPa]\n", +"Y_m2 = P_a2/(P_total-P_a2)*(M_a/M_b); // [kg water/kg dry air]\n", +"H_g11 = C_pb*(T_w2-T_o) + Y_m2*(C_pa*(T_w2-T_o)+lambda_0); // [Enthalpy of saturated mixture, kJ/kg dry air]\n", +"\n", +"// the change in water temperature through the tower must remain the same as in part (a), namely T_L2b-T_L1b = 11K \n", +"// Since N_tog is a function of both water temperatures(T_L1',T_L2'), this provides the second relation needed to calculate the values of T_L2b and T_L1b\n", +"// The two equations are solved simultaneously by trial and error method, from above we get T_L1' = 297K\n", +"T_L1b = 297; // [K]\n", +"T_L2b = T_L1b + 11; //[K]\n", +"S = T_L1b - T_w2; // [wet bulb temperature approach, K]\n", +"printf('The outlet water temperature and wet bulb temperature approach is %f K and %f K respectively ',T_L1b,S);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/9-Membranes_and_Other_Solid_Sorption_Agents.ipynb b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/9-Membranes_and_Other_Solid_Sorption_Agents.ipynb new file mode 100644 index 0000000..7ee8d5a --- /dev/null +++ b/Principles_And_Modern_Applications_Of_Mass_Transfer_Operations_by_J_Benitez/9-Membranes_and_Other_Solid_Sorption_Agents.ipynb @@ -0,0 +1,661 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 9: Membranes and Other Solid Sorption Agents" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.11: Dialysis_for_Sulfuric_Acid_Purificatio.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 9.11\n", +"// Page: 542\n", +"\n", +"printf('Illustration 9.11 - Page: 542\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"mtc = 0.02; // [mass transfer coefficient, cm/min]\n", +"p = 0.03; // [permeance, cm/min]\n", +"F = 1; // [cubic m/h]\n", +"W = 1000; // [water wash rate, kg/h]\n", +"// Density of 25% H2SO4 solution at 298 K is \n", +"d1 = 1175; // [kg/cubic m]\n", +"x = 0.25; // [fraction of H2SO4 in solution]\n", +"cF = 294; // [kg/cubic m]\n", +"//*****//\n", +"\n", +"K = (1/p+1/mtc)^-1; // [overall mass transfer coefficient, cm/min]\n", +"\n", +"// Flow of H2SO4 in feed\n", +"F_sul = F*d1*x; // [kg/h]\n", +"\n", +"// For 60% recovery and rest in dialysate\n", +"yr = 0.60;\n", +"yd = 0.40;\n", +"// Transmembrane flow of acid\n", +"Ft = F_sul*yr; // [kg/h]\n", +"// From the given water transport number, Transmembrane counterflow of water \n", +"Fw = Ft*0.8; // [kg/h]\n", +"\n", +"// Now inlet and outlet concentration from material balances\n", +"// Flow of acid in dialysate\n", +"Fad = F_sul*yd; // [kg/h]\n", +"\n", +"// Total dialysate flow\n", +"D = F*d1-Ft+Fw; // [kg/h]\n", +"x_aD = Fad/D; // [mass fraction of acid in dialysate]\n", +"disp(x_aD);\n", +"// Density of 10.3 wt % aqueous solution of sulfuric acid at 298K is\n", +"d2 = 1064; // [kg/cubic m] \n", +"\n", +"cR = x_aD*d2; // [kg/cubic m]\n", +"// Flow of acid in diffusate\n", +"Fd = Ft; // [kg/h]\n", +"// Total Diffusate flow\n", +"Di = 1000-Fw+Fd; // [kg/h]\n", +"x_aDi = Fd/Di; // [mass fraction acid in diffusate]\n", +"disp(x_aDi);\n", +"// Density of 17 wt % aqueous solution of sulfuric acid at 298 K is\n", +"d3 = 1114; // [kg/cubic m]\n", +"\n", +"cP = x_aDi*d3; // [kg/cubic m]\n", +"// At the free end of dialyzer \n", +"deltaC1 = cF-cP; // [kg/cubic m]\n", +"// At the dialysate end\n", +"deltaC2 = cR-0; // [kg/cubic m]\n", +"lmdf = (deltaC2-deltaC1)/(log(deltaC2/deltaC1)); // [Log-mean driving force, kg/cubic m]\n", +"\n", +"// Therefore\n", +"Am = Fd*100/(K*lmdf*60);\n", +"\n", +"printf('The membrane area required is %f square m.\n\n',Am);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.12: Water_Desalinization_by_Reverse_Osmosis.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 9.12\n", +"// Page: 545\n", +"\n", +"printf('Illustration 9.12 - Page: 545\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// A-NaCl\n", +"vo = 0.05; // [superficial velocity of water in the shell, m/s]\n", +"T = 298; // [K]\n", +"Pf = 70; // [bar]\n", +"Pp = 3; // [pressure at permeate side, bar]\n", +"p = 1.1*10^-5; // [water permeance, g/square cm.s.bar]\n", +"R1 = 0.97; // [salt rejection]\n", +"R = 8.314;\n", +"xAf = 0.02; // [fraction of NaCl in feed side]\n", +"xAp = 0.0005; // [fraction of NaCl in permeate side]\n", +"MA = 58.5; // [gram/mole]\n", +"//*****//\n", +"\n", +"printf('Illustration 9.12(a) - Page: 545\n\n');\n", +"// Solution(a)\n", +"\n", +"deltaP = Pf-Pp; // [bar]\n", +"// Density of both feed and permeate is 1 g/cc\n", +"df = 1000; // [kg/cubic m]\n", +"dp = df;\n", +"// Bulk feed salt concentration \n", +"csf = xAf*2*1000/MA; // [kmole/cubic m]\n", +"// Bulk permeate salt concentration\n", +"csp = xAp*2*1000/MA; // [kmole/cubic m]\n", +"\n", +"// From equation 9.76\n", +"pif = R*T*csf/100; // [osmotic pressure at feed side, bar]\n", +"pip = R*T*csp/100; // [osmotic pressure at permeate side, bar]\n", +"deltapi = pif-pip; // [bar]\n", +"\n", +"Y = deltaP-deltapi; // [bar]\n", +"// Transmembrane flux of water\n", +"nH2O = p*Y*10^-3/(df*(10^-4*1/(60*60*24))); // [cubic m/square m.day]\n", +"\n", +"printf('The transmembrane flux of water is %f cubic m/square m.day.\n\n',nH2O);\n", +"\n", +"printf('Illustration 9.12(b) - Page: 546\n\n');\n", +"// Solution(b)\n", +"\n", +"// Properties of water are\n", +"dw = 1000; // [kg/cubic m]\n", +"uw = 0.9*10^-3; // [kg/m.s]\n", +"DA = 1.6*10^-9; // [Diffusivity of NaCl in water, square m/s]\n", +"d = 290*10^-6; // [outside diameter of fibres, m]\n", +"phi = 0.4;\n", +"// For a superficial velocity of 5 cm/sec\n", +"Re = dw*vo*d/uw; // [Renoylds number]\n", +"Sc = uw/(dw*DA); // [Schmidt number]\n", +"Sh = 8.63; // [Sherwood number]\n", +"// Therefore \n", +"ks = Sh*DA/d; // [m/s]\n", +"// From equation 9.81\n", +"t = nH2O*R1/(ks*24*60*60);\n", +"printf('The concentration polarization factor is %f.\n\n',t);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.13: Ultrafiltration_of_Cheese_Whey_Proteins.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 9.13\n", +"// Page: 548\n", +"\n", +"printf('Illustration 9.13 - Page: 548\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// w-water a-proteins\n", +"T = 293; // [K]\n", +"d = 2; // [diameter of tube, cm]\n", +"dw = 1; // [g/cubic cm]\n", +"uw = 0.01; // [cP]\n", +"Da = 4*10^-7; // [Diffusivity of proteins, square cm/s]\n", +"vo = 1.5*100; // [m/s]\n", +"Qm = 250*10^-3/3600*100; // [water permeance, cm/s.atm]\n", +"cR = 40; // [g/L]\n", +"\n", +"printf('Illustration 9.13(a) - Page: 549\n\n');\n", +"// Solution(a)\n", +"\n", +"v = 25*10^-3/3600*100; // [cm/s]\n", +"\n", +"Re = d*vo*dw/uw; // [Renoylds number]\n", +"Sc = uw/(dw*Da); // [Schmidt number]\n", +"Sh = 0.0048*Re^0.913*Sc^0.346; // [Sherwood number]\n", +"ks = Sh*Da/d;\n", +"// From equation 9.87\n", +"cS = cR*exp(v/ks); // [g/L]\n", +"\n", +"// From figure 9.12\n", +"pi1 = 2; // [osmotic pressure, atm]\n", +"// For 100% rejection deltapi = pi1 because pi2 = 0\n", +"// Therefore\n", +"deltapi = pi1; // [atm]\n", +"// From equation 9.83\n", +"deltaP = deltapi+(v/Qm);\n", +"printf('The required pressure differential to produce a water transmembrane volume flux of 25 L/square m.h when the membrane is clean is %f atm.\n\n',deltaP);\n", +"\n", +"\n", +"printf('Illustration 9.13(b) - Page: 549\n\n');\n", +"// Solution(b)\n", +"\n", +"// Membrane permeance is reduced fivefold by fouling\n", +"Qm = Qm/5; // [cm/s.atm]\n", +"// Here deltaP remains same\n", +"// Equations 9.83 and 9.87, and the osmotic pressure data of Figure 9.12 must be solved simultaneously by trial and error to calculate new values for these three variables.\n", +"// The results are\n", +"cS2 = 213; // [g/L]\n", +"deltapi2 = 1.63; // [atm]\n", +"v2 = 6.53*10^-4; // [cm/s]\n", +"printf('The water flux if the applied pressure differential remains the same as calculated in part (a) is %f L/square m.hr.',v2*1000*10^-2*3600);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.1: Liquid_Flux_in_Tubular_Membrane.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 9.1\n", +"// Page: 508\n", +"\n", +"printf('Illustration 9.1 - Page: 508\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// A-solute B-solvent\n", +"ci_f = 50; // [feed side concentration, mole/cubic m]\n", +"ci_p = 15; // [permeate side concentration, mole/cubic m]\n", +"t = 2*10^-4; // [membrane thickness, cm]\n", +"q_A = 176; // [permeability, barrer]\n", +"D = 4*10^-1; // [tube inside diameter, cm]\n", +"D_A = 5*10^-5; // [diffusuvity, square cm/s]\n", +"Re = 20000; // [reynolds number]\n", +"Sc = 450; // [Schmidt number]\n", +"mtc_p = 0.12; // [square cm/s]\n", +"//*****//\n", +"\n", +"// From equation 9.6, 1 barrer = 8.3*10^-9 square cm/s \n", +"// Therefore \n", +"q_A = q_A*8.3*10^-9; // [square cm/s]\n", +"Q_A = q_A/t; // [permeance, cm/s]\n", +"// The mass-transfer coefficient on the feed side is from equation (2-75) for turbulent flow of a liquid inside a circular pipe:\n", +"Sh = 0.023*Re^0.83*Sc^(1/3);\n", +"// Now mass transfer coefficient\n", +"k_af = Sh*D_A/D; // [cm/s]\n", +"// Total resistance to mass transfer \n", +"res_total = (1/k_af)+(1/Q_A)+(1/mtc_p); // [s/cm]\n", +"// Transmembrane flux of solute A\n", +"N_A = (ci_f-ci_p)/(res_total*100); // [mole/square m.s]\n", +"\n", +"printf('The transmembrane flux of solute A is %e mole/square m.s\n\n',N_A);\n", +"\n", +"percent_mem_res = ((1/Q_A)/res_total)*100; // [%]\n", +"printf('Membrane resistance is %f percent of the total\n\n',percent_mem_res);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.2: Oxygen_Enriched_Air_by_Gas_Permeation.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 9.2\n", +"// Page: 511\n", +"\n", +"printf('Illustration 9.2 - Page: 511\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"// A-oxygen B-nitrogen\n", +"t = 0.2*10^-6; // [m]\n", +"qA = 3.97*10^-13; // [mole/m.s.kPa]\n", +"qB = 0.76*10^-13; // [mole/m.s.kPa]\n", +"v = 1; // [Air flow rate at STP, cubic m/s]\n", +"Pp = 0.1*10^6; // [Pa]\n", +"R = 8.314 // [cubic m.Pa/mole.K]\n", +"T = 298; // [K]\n", +"Pf = 1*10^6; // [Pa]\n", +"//*****//\n", +"// Using equation 9.14\n", +"alphaA = qA/qB;\n", +"QA = qA/t; // [mole/square m.s.kPa]\n", +"// molar flow rate\n", +"nf = v*1000/(22.4); // [mole/s]\n", +"r = Pp/Pf; // [pressure ratio]\n", +"QB = qB/t; // [mole/square m.s.kPa]\n", +"alphaid = QA/QB;\n", +"xFa = 0.21;\n", +"xFb = 0.79;\n", +"\n", +"// For Q = 0.1\n", +"Q1 = 0.1\n", +" // Solution of simultaneous equation\n", +"function[f]=F(e)\n", +" f(1) = e(1) - (e(3)*(1-e(2)))/((e(2)*(1-e(3))));\n", +" f(2) = e(2) - (xFa - (e(3)*Q1))/(1-Q1);\n", +" f(3) = e(1) - (alphaid*(e(2)*(e(1)-1)+1- (r*e(1))))/(e(2)*(e(1)-1)+1 - r);\n", +" funcprot(0);\n", +"endfunction\n", +"// Initial guess\n", +"e = [4 0.13 0.4];\n", +"y = fsolve(e,F);\n", +"alpha1 = y(1);\n", +"Xa1 = y(2);\n", +"Ya1 = y(3);\n", +"Am1 = Ya1*Q1*nf/(QA*(Xa1*Pf-Ya1*Pp))*1000; // [square m]\n", +"\n", +"// For Q = 0.2\n", +"Q2 = 0.2\n", +" // Solution of simultaneous equation\n", +"function[f]=F(e)\n", +" f(1) = e(1) - (e(3)*(1-e(2)))/((e(2)*(1-e(3))));\n", +" f(2) = e(2) - (xFa - (e(3)*Q2))/(1-Q2);\n", +" f(3) = e(1) - (alphaid*(e(2)*(e(1)-1)+1- (r*e(1))))/(e(2)*(e(1)-1)+1 - r);\n", +" funcprot(0);\n", +"endfunction\n", +"// Initial guess\n", +"e = [4 0.13 0.4];\n", +"y = fsolve(e,F);\n", +"alpha2 = y(1);\n", +"Xa2 = y(2);\n", +"Ya2 = y(3);\n", +"Am2 = Ya2*Q2*nf/(QA*(Xa2*Pf-Ya2*Pp))*1000; // [square m]\n", +"\n", +"// For Q = 0.9\n", +"Q9 = 0.9\n", +" // Solution of simultaneous equation\n", +"function[f]=F(e)\n", +" f(1) = e(1) - (e(3)*(1-e(2)))/((e(2)*(1-e(3))));\n", +" f(2) = e(2) - (xFa - (e(3)*Q9))/(1-Q9);\n", +" f(3) = e(1) - (alphaid*(e(2)*(e(1)-1)+1- (r*e(1))))/(e(2)*(e(1)-1)+1 - r);\n", +" funcprot(0);\n", +"endfunction\n", +"// Initial guess\n", +"e = [4 0.13 0.4];\n", +"y = fsolve(e,F);\n", +"alpha9 = y(1);\n", +"Xa9 = y(2);\n", +"Ya9 = y(3);\n", +"Am9 = Ya2*Q9*nf/(QA*(Xa9*Pf-Ya9*Pp))*1000; // [square m]\n", +"\n", +"// Similarly for Q =0.3......0.9, Xa, Ya, alpha and Am are calculated\n", +"// Therefore we obtained\n", +"// Solution = [Q,alpha,Xa,Ya]\n", +"Solution = zeros(9,4);\n", +"Solution = [0.1 4.112 0.181 0.475;0.2 4.062 0.156 0.428;0.3 4.018 0.135 0.385;0.4 3.98 0.118 0.348;0.5 3.949 0.105 0.315;0.6 3.922 0.093 0.288;0.7 3.9 0.084 0.264;0.8 3.881 0.077 0.243;0.9 3.864 0.07 0.226];\n", +"Am = [8037;17074;26963;37531;48618;60099;71876;83879;96056;];\n", +"disp(Solution);\n", +"disp(Am);\n", +"\n", +"printf('The maximum oxygen content of the permeate (%f percent) occurs with the smallest cut (Q = 0.1).\n\n',Ya1*100);\n", +"printf('The maximum nitrogen content of the retentate (%f percent) occurs at the largest cut (Q = 0.9).\n\n',(1-Xa9)*100);\n", +"\n", +"printf('The membrane area requirements are very large (e.g, Am = 60,100 square m for Q = 0.6) even though the volumetric flow rate of air is relatively small)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.4: Freundlich_and_Langmuir_Adsorption_Isotherms.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 9.4\n", +"// Page: 520\n", +"\n", +"printf('Illustration 9.4 - Page: 520\n\n');\n", +"\n", +"// solution\n", +"//*****Data*****//\n", +"\n", +"Pexp = [0.276;1.138;2.413;3.758;5.240;6.274;6.688;]; // [MPa]\n", +"V = [45.5;91.5;113;121;125;126;126;]; // [cubic cm of CH4/gram carbon]\n", +"Ma = 16; // [gram/mole]\n", +"Vstp = 22.4; // [L/mole]\n", +"q = V*Ma/Vstp; // [mg/g]\n", +"\n", +"// Linearize data for Langmuir isotherm\n", +"y = Pexp/q;\n", +"y = [0.0030667;0.01264;0.02681;0.0417556;0.0582;0.06971;0.07431;];\n", +"W = [Pexp,y];\n", +"y = 0:0.001:0.01\n", +"scf(1);\n", +"plot(W(:,1),W(:,2));\n", +"xgrid();\n", +"xlabel('Pexp, MPa');\n", +"ylabel('y, MPa.mg/g'); \n", +"\n", +"// Now qm = 1/(slope of Pexp v/s y curve)\n", +"// From graph of Pexp v/s y, the slope is \n", +"s = 0.01022;\n", +"// And intercept \n", +"i = 5.4865*10^-3;\n", +"qm = 1/s; // [mg/g]\n", +"K = 1/(qm*i); // [1/MPa]\n", +"// Therefore\n", +"// qlp = K*qm*p/(1+Kp)\n", +"printf('Data for Langmuir isotherm are K = %f MPa^-1 and qm = %f mg/g\n\n',K,qm);\n", +"\n", +"// Linearize data for Freundlich isotherm\n", +"// y1 = log(q/(mg/g)) , x1 = log(Pexp/MPa)\n", +"y1 = log(q);\n", +"x1 = log(Pexp);\n", +"\n", +"X = [x1,y1];\n", +"x1 = -2:0.571:1;\n", +"y1 = 3:0.285:5; \n", +"scf(2);\n", +"plot(X(:,1),X(:,2));\n", +"xgrid();\n", +"xlabel('log(Pexp/(Mpa))');\n", +"ylabel('log(q/(mg/g))');\n", +"\n", +"// From graph of log(q) v/s log(Pexp)\n", +"// slope = 0.31\n", +"s = 0.31;\n", +"// and intercept is\n", +"i = 4;\n", +"// Therefore n = 1/slope\n", +"n = 1/s;\n", +"k = exp(i); // [(mg CH4/g of carbon.MPa^(-1/n)]\n", +"printf('Data for Freundlich isotherm are n = %f and k = %f\n\n',n,k);\n", +"\n", +"// Therefore\n", +"// qFp = k*(p/1 Mpa)^(1/n)\n", +"printf('Figure 9.6(b) shows a q-p plot of the experimental data and the corresponding predictions of the Langmuir and Freundlich isotherms. It is evident from the plot that in this case, the Langmuir isotherm fits the data significantly better than the Freundlich isotherm.')" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.5: Ion_Exchange_Equilibrium.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 9.5\n", +"// Page: 526\n", +"\n", +"printf('Illustration 9.5 - Page: 526\n\n');\n", +"\n", +"// solution\n", +"// A-Na+ B-Cu+2\n", +"// Using the data from Table 9.1\n", +"KA = 1.98;\n", +"KB = 3.47;\n", +"\n", +"Q = 2.4; // [eq/L of resin]\n", +"// Charge ratio is 'n'\n", +"n = 2;\n", +"C = 0.05; //[total concentration, eq/L]\n", +"// From equ 9.48\n", +"KAB = KB/KA;\n", +"// From equ 9.47\n", +"// ya*(1-xa)^2/(xa*(1-ya)^2) = KAB*Q/C = T\n", +"T = KAB*Q/C;\n", +"// Substituting values of xA in the range 0.1< xa <1.0, we generate the // distribution curve\n", +"for i=1:19\n", +" deff('[y] = f16(ya)','y = ya*(1-i*0.05)^2/(i*0.05*(1-ya)^2) - T');\n", +" ya(i) = fsolve(0.99,f16);\n", +" disp(ya(i));\n", +"end\n", +"\n", +"xa = [0.05;0.1;0.15;0.2;0.25;0.3;0.35;0.4;0.45;0.5;0.55;0.6;0.65;0.7;0.75;0.8;0.85;0.9;0.95;];\n", +"A = [xa,ya];\n", +"\n", +"scf(1);\n", +"plot(A(:,1),A(:,2));\n", +"xgrid();\n", +"xlabel('xa,Fraction of Cu+2 in Solution');\n", +"ylabel('ya,Fraction of CuR2 in resin');\n", +"\n", +"printf('The curve is similar in shape to an adsorption isotherm of the very favorable type.\n\n');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.8: Fixed_Bed_Scale_Up_Using_LUB.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 9.8\n", +"// Page: 535\n", +"\n", +"printf('Illustration 9.8 - Page: 535\n\n');\n", +"\n", +"// solution\n", +"// From example 9.7 \n", +"alpha = 0.891; \n", +"// For bed length Z = 1.829\n", +"Z1 = 1.829; // [m]\n", +"LUB = (1-alpha)*Z1; // [length of unused bed, m]\n", +"// For this bed length \n", +"tb1 = 139.7; // [min]\n", +"// If the bed length is increased to Z2 = 3 m\n", +"Z2 = 3; // [m]\n", +"// New break through time will be given by equation 9.64\n", +"tb2 = tb1*(Z2/Z1)*(1-LUB/Z2)/(1-LUB/Z1); // [min]\n", +"\n", +"printf('The new time of breakthrough assuming constant LUB is %f minute.\n\n',tb2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9.9: Ion_Exchanger_Ideal_Break_Time.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"clear;\n", +"clc;\n", +"\n", +"// Illustration 9.9\n", +"// Page: 536\n", +"\n", +"printf('Illustration 9.9 - Page: 536\n\n');\n", +"\n", +"// solution\n", +"F = 7; // [water flow rate, L/s]\n", +"Z = 3; // [m]\n", +"d = 2.6; // [m]\n", +"A = %pi*d^2/4; // [cross sectional area, square m]\n", +"vo = 0.013; // [superficial velocity, m/s]\n", +"\n", +"cf = 7*10^-3; // [Ca2+ ion concentration, eq/L]\n", +"qstar_F = 2.9; // [cation capacity, eq/kg]\n", +"rowp = 1.34; // [kg/L]\n", +"e = 0.38; // [porosity]\n", +"// From equation 9.66\n", +"t_star = Z*qstar_F*rowp*(1-e)/(vo*cf*3600); // [hour]\n", +"\n", +"printf('The ideal breakthrough time for the ion exchanger is %f hour.\n\n',t_star);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} |