Cocurrent-Flow Model for Gas Separation by Membranes 
Author's Data: Housam BINOUS
Department of Chemical Engineering
National Institute of Applied Sciences and Technology
Tunis, TUNISIA
Email: binoushousam@yahoo.com

Reference:

C. J. Geankoplis, Transport Processes and Unit Operations, 3rd edition, Prentice Hall, 1993.

W. P. Walawender and S. A. Stern, Separation Science, 7 (5), pp. 553-584, 1972.

The separation factor for this binary mixture (components A and B) that we want to separate by membrane permeation is \(TraditionalForm\`\(α\^*\)\)=((Subscript[(P '), A])/(Subscript[(P '), B]))=10.

α = 10;

The pressure of the feed side is (Subscript[p, h]) = 190 cmHg while (Subscript[p, l])=19 cmHg is the pressure on the permeate side.

(Subscript[p, l]) = 19;

(Subscript[p, h]) = 190;

Stage cut is equal to θ=0.2. The material balance is given by the following equation:

θ = 0.2;

Mole fraction at end of separation module is (Subscript[y, i]). It is related to (Subscript[x, f])by the following equation:

sol = 
      Solve[y/(1 - 
                y) == 
(α ((xf - 
                      (Subscript[p, l])/(Subscript[p, h]) y)/(1 - xf - 
                      (Subscript[p, l])/(Subscript[p, h]) (1 - y)))), y]

yi=y/.sol[[1]];

t= 2.54 (10^(-3))cm is membrane thickness. \(TraditionalForm\`q\_O = \(\((1 - θ)\)\(\ \)\(q\_f\)\(\ \)\)\)is reject out flow rate. (Subscript[q, f]) = 1 (10^6) (cm^3) (STP)/s is feed flow rate. (Subscript[(P'), B])=50 \(TraditionalForm\`10\^\(-10\)\ cm\^3\ \((STP)\)\ \(\(cm/\((s\ cm\^2\ cmHg)\)\)\(\ \)\)\)is the permeability of component B. 
Governing equations for mole fraction x and y in the reject and permeate sides are given by:

L'Hôpital rule gives the derivatives as (Subscript[A, m]) -> 0.

(Subscript[q, f]) = 1 10^6;

t=2.54 10^-3;

(Subscript[(P'), B]) = 50 10^-10;

xf=0.209;

eq1 = 
        D[x[(Subscript[A, m])], {(Subscript[A, m]), 1}] == 
          If[(Subscript[A, m]) == 0, 
            Evaluate[((Subscript[p, l]) (Subscript[(P'), B]))/((Subscript[q, f]) t) α (xf (Subscript[p, h])/(Subscript[p, l]) - yi) (xf - yi)/yi /. t -> 2.54 10^-3 /. 
                        (Subscript[p, h]) -> 190 /. (Subscript[p, l]) -> 19 /. α -> 
                      10 /. (Subscript[(P'), B]) -> 50 10^-10 /. 
                (Subscript[q, f]) -> 8 10^5], 
            Evaluate[((Subscript[p, l]) (Subscript[(P'), B]))/((Subscript[q, f]) t) (x[
                                    (Subscript[A, m])] - y[(Subscript[A, m])])/(y[(Subscript[A, m])] - 
                                  xf) ((1 - 
                                      x[(Subscript[A, m])]) α ((Subscript[p, h])/(Subscript[p, l]) x[
                                        (Subscript[A, m])] - y[(Subscript[A, m])]) - 
                                x[(Subscript[A, m])] ((Subscript[p, h])/
                                        (Subscript[p, l]) (1 - x[(Subscript[A, m])]) - (1 - 
                                        y[(Subscript[A, m])]))) /. 
                          t -> 2.54 10^-3 /. (Subscript[p, h]) -> 190 /. 
                      (Subscript[p, l]) -> 19 /. α -> 10 /. (Subscript[(P'), B]) -> 
                    50 10^-10 /. (Subscript[q, f]) -> 8 10^5]];

eq2 = 
        D[y[(Subscript[A, m])], {(Subscript[A, m]), 1}] == 
          If[(Subscript[A, m]) == 0, 
            Evaluate[(xf - yi) (Subscript[p, h])/
                              (Subscript[p, l]) (α - 
                                  yi (α - 
                                        1))/(((Subscript[q, f]) t)/((Subscript[p, l]) (Subscript[(P'), B])) - ((xf - 
                                        yi)/(((Subscript[p, l]) (Subscript[(P'), B]))/((Subscript[q, f]) t) α (xf (Subscript[p, h])/(Subscript[p, l]) - yi) (xf - yi)/
                                        yi)) ((α - 
                                        1) (2  yi - (Subscript[p, h])/(Subscript[p, l]) xf - 
                                        1) - (Subscript[p, h])/(Subscript[p, l]))) /. 
                          t -> 2.54 10^-3 /. (Subscript[p, h]) -> 190 /. 
                      (Subscript[p, l]) -> 19 /. α -> 10 /. (Subscript[(P'), B]) -> 
                    50 10^-10 /. (Subscript[q, f]) -> 8 10^5], 
            Evaluate[((Subscript[p, l]) (Subscript[(P'), B]))/((Subscript[q, f]) t) (x[
                                    (Subscript[A, m])] - y[(Subscript[A, m])])/(x[(Subscript[A, m])] - 
                                  xf) ((1 - 
                                      y[(Subscript[A, m])]) α ((Subscript[p, h])/(Subscript[p, l]) x[
                                        (Subscript[A, m])] - y[(Subscript[A, m])]) - 
                                y[(Subscript[A, m])] ((Subscript[p, h])/
                                        (Subscript[p, l]) (1 - x[(Subscript[A, m])]) - (1 - 
                                        y[(Subscript[A, m])]))) /. 
                          t -> 2.54 10^-3 /. (Subscript[p, h]) -> 190 /. 
                      (Subscript[p, l]) -> 19 /. α -> 10 /. (Subscript[(P'), B]) -> 
                    50 10^-10 /. (Subscript[q, f]) -> 8 10^5]];

eq3=y[0]==yi;

myODEsoln[Ω_] := 
      NDSolve[{eq1, eq2, eq3, x[0] == xf}, {x[(Subscript[A, m])], y[(Subscript[A, m])]}, {(Subscript[A, m]), 
          0, Ω}]

Use FindRoot to compute surface area of the separation module. Surface area must verify \(TraditionalForm\`\(\(\ \)\(the\ material\ \(\(balance\)\(.\)\)\)\)\)

Off[InterpolatingFunction::dmval]

Off[NDSolve::mxst]

Off[General::spell1]

xend[Ω_?NumericQ] := 
      Flatten[(x[(Subscript[A, m])] /. myODEsoln[Ω]) /. 
          (Subscript[A, m]) -> Ω]
yend[Ω_?NumericQ] := 
      Flatten[(y[(Subscript[A, m])] /. myODEsoln[Ω]) /. 
          (Subscript[A, m]) -> Ω]
(Subscript[P, sol]) = 
      FindRoot[0.2 yend[Ω] + 
            0.8 xend[Ω] == xf, {Ω, 
          3.  10^8, 5.  10^8}, MaxIterations -> 1000]

Surface area is equal to 2.95525 (10^8)(cm^2).

(Subscript[P, sol])

Checking the values of the mole fractions x and y at the entrance and exit of the module. Permeate mole fraction is 0.558456 and reject out mole fraction (Subscript[x, O])= 0.121636.

x[(Subscript[A, m])] /. myODEsoln[Ω /. (Subscript[P, sol])] /. 
        (Subscript[A, m]) -> Ω /. (Subscript[P, sol])

x[(Subscript[A, m])] /. myODEsoln[Ω /. (Subscript[P, sol])] /. 
      (Subscript[A, m]) -> 0

y[(Subscript[A, m])] /. myODEsoln[Ω /. (Subscript[P, sol])] /. 
        (Subscript[A, m]) -> Ω /. (Subscript[P, sol])

y[(Subscript[A, m])] /. myODEsoln[Ω /. (Subscript[P, sol])] /. 
      (Subscript[A, m]) -> 0

Checking Material Balance: θ (Subscript[y, P])+(1-θ) (Subscript[x, O])= (Subscript[x, f])= 0.209

0.558456 0.2+0.121636 0.8

Plotting x and y versus surface area of the separation module.

First[y[(Subscript[A, m])] /. myODEsoln[Ω /. (Subscript[P, sol])]] /. 
      (Subscript[A, m]) -> area

Plot[%, {area, 0.001, Ω /. (Subscript[P, sol])}, 
      PlotStyle -> RGBColor[1, 0, 0]]

First[x[(Subscript[A, m])] /. myODEsoln[Ω /. (Subscript[P, sol])]] /. 
      (Subscript[A, m]) -> area

Plot[%, {area, 0.001, Ω /. (Subscript[P, sol])}, 
      PlotStyle -> RGBColor[0, 1, 0]]