Azeotropes Computation using UNIQUAC Model: Case of ternary System 
1-Butanol - Water- Butyl Acetate
Author's Data: Housam BINOUS
Department of Chemical Engineering
National Institute of Applied Sciences and Technology
Tunis, TUNISIA
Email: binoushousam@yahoo.com

Off[General::"spell1"]

Vapor pressure and normal boiling points

Psat1 = Exp[A1 + B1/(C1 + T)]

Psat2 = Exp[A2 + B2/(C2 + T)]

Psat3 = Exp[A3 + B3/(C3 + T)]

A1 = 23.2256; B1 = -3835.18; 
    C1 = -45.343;
A2 = 21.9783; B2 = -3080.66; 
    C2 = -96.150;
A3 = 21.07637; B3 = -3151.09; C3 = -69.150;

FindRoot[Psat1 ==  1.01325 10^5, {T, 380}]

FindRoot[Psat2 ==  1.01325 10^5, {T, 380}]

FindRoot[Psat3 ==  1.01325 10^5, {T, 380}]

Activity coefficients using UNIQUAC model
Component 1 = Water
Component 2 = 1-Butanol
Component 3 = Butyl Acetate

tau[j_, i_] := Exp[-(U[j, i] - U[i, i])/(R T)]

U[1, 1] = 0.0; U[1, 2] = 581.1471; U[1, 3] = 461.4747;

U[2, 1] = 68.0083; U[2, 2] = 0.0; U[2, 3] = 82.5336;

U[3, 1] = 685.71; U[3, 2] = 24.6386; U[3, 3] = 0.0;

Gam1 = Exp[Log[Gam1C] + Log[Gam1R]]

Gam2 = Exp[Log[Gam2C] + Log[Gam2R]]

Gam3 = Exp[Log[Gam3C] + Log[Gam3R]]

Gam1C = 
        Exp[Log[phi[1]/x[1]] + z/2 q[1] Log[v[1]/phi[1]] + l[1] - 
            phi[1]/x[1] (∑_(j = 1)^3) x[j] l[j]];

Gam2C = 
        Exp[Log[phi[2]/x[2]] + z/2 q[2] Log[v[2]/phi[2]] + l[2] - 
            phi[2]/x[2] (∑_(j = 1)^3) x[j] l[j]];

Gam3C = 
        Exp[Log[phi[3]/x[3]] + z/2 q[3] Log[v[3]/phi[3]] + l[3] - 
            phi[3]/x[3] (∑_(j = 1)^3) x[j] l[j]];

r[1] = 0.92; r[2] = 3.4543; r[3] = 4.8274;

q[1] = 1.4; q[2] = 3.052; q[3] = 4.196;

l[i_] := z/2 (r[i] - q[i]) - (r[i] - 1)

z = 10;

Gam1R = 
        Exp[q[1] (1 - 
                Log[(∑_(j = 1)^3) v[j] tau[j, 
                        1]] - (∑_(j = 1)^3)(( v[j] tau[1, j])/((∑_(k = 1)^3) v[k] tau[k, j])))];

Gam2R = 
        Exp[q[2] (1 - 
                Log[(∑_(j = 1)^3) v[j] tau[j, 
                        2]] - (∑_(j = 1)^3)(( v[j] tau[2, j])/((∑_(k = 1)^3) v[k] tau[k, j])))];

Gam3R = 
        Exp[q[3] (1 - 
                Log[(∑_(j = 1)^3) v[j] tau[j, 
                        3]] - (∑_(j = 1)^3)(( v[j] tau[3, j])/((∑_(k = 1)^3) v[k] tau[k, j])))];

phi[i_] := r[i] x[i]/(∑_(j = 1)^3) r[j] x[j]

v[i_] := q[i] x[i]/(∑_(j = 1)^3) q[j] x[j]

R = 1.98721;

Gam1p = Gam1 /. x[1] ->  xp[1] /. x[2] ->  xp[2] /. 
          x[3] ->  xp[3];

Gam2p = Gam2 /. x[1] ->  xp[1] /. x[2] ->  xp[2] /. 
          x[3] ->  xp[3];

Gam3p = Gam3 /. x[1] ->  xp[1] /. x[2] ->  xp[2] /. 
          x[3] ->  xp[3];

Azeotropes determination. Results are similar to Venimadhavan, Malone and Doherty, A novel distillate policy for batch distillation with application to the production of butyl acetate, Ind. Eng. Chem. Res., 1999, 38, 714-722.

Homogeneous Binary Azeotrope between n-butanol and butyl acetate

FindRoot[{Gam1 x[1] Psat1 + Gam2 x[2] Psat2 + 
              Gam3 x[3] Psat3 ==  1.01325 10^5, 
          x[1] ==  y[1], x[2] ==  y[2], 
          y[1] ==  Gam1 x[1] Psat1/(1.01325 10^5), 
          y[2] ==  Gam2 x[2] Psat2/(1.01325 10^5), 
          x[3] ==  1 - x[1] - x[2]}, {x[1], 0}, {x[2], 0.7}, {y[1], 
          0}, {y[2], 0.1}, {T, 400}, {x[3], 0.5}] // Chop

390.095 - 273.15

Heterogeneous Binary Azeotrope between water and butyl acetate

Minimize[{(Gam1 x[1] Psat1 + Gam2 x[2] Psat2 + 
                  Gam3 x[3] Psat3 -  
                  1.01325 10^5)^2 + 
(Gam1p xp[
                      1] Psat1 + Gam2p xp[2] Psat2 + 
                  Gam3p xp[3] Psat3 -  
                  1.01325 10^5)^2 + 
(x[3] - ( 
                    1 - x[1] - x[2]))^2 + (xp[3] - ( 
                    1 - xp[1] - xp[2]))^2 + (Gam1p xp[1] -  
                  Gam1 x[1])^2 + (Gam2p xp[2] -  
                  Gam2 x[
                      2])^2 + ((xo2 - x[2]) (xp[1] - 
                        x[1]) - (xp[2] - x[2]) (xo1 - 
                        x[1]))^2 + (xo1 -  
                  Gam1 x[1] Psat1/(1.01325 10^5))^2 + (xo3 -  
                  Gam3 x[3] Psat3/(1.01325 10^5))^2 + (xo1 + xo2 + 
                  xo3 - 1)^2, 1 > x[1] >  0.9988, x[2] == 0, 
          0.1 < xp[1] < 0.2, 360 < T < 370, 0 < xo1 < 1, xo2 == 0 , 
          0 < xo3 < 1, 0.8 < xp[3] < 1, 0 < x[3] < 0.05, xp[2] == 0, 
          0 < xp[2] < 1, 0 < x[2] < 1}, {x[1], x[2], x[3], xp[1], xp[2], 
          xp[3], xo1, T, xo2, xo3}] // Chop

364.33 - 273.15

Heterogeneous Binary Azeotrope between water and n-butanol

Minimize[{(Gam1 x[1] Psat1 + Gam2 x[2] Psat2 + 
                  Gam3 x[3] Psat3 -  
                  1.01325 10^5)^2 + 
(Gam1p xp[
                      1] Psat1 + Gam2p xp[2] Psat2 + 
                  Gam3p xp[3] Psat3 -  
                  1.01325 10^5)^2 + 
(x[3] - ( 
                    1 - x[1] - x[2]))^2 + (xp[3] - ( 
                    1 - xp[1] - xp[2]))^2 + (Gam1p xp[1] -  
                  Gam1 x[1])^2 + (Gam2p xp[2] -  
                  Gam2 x[
                      2])^2 + ((xo2 - x[2]) (xp[1] - 
                        x[1]) - (xp[2] - x[2]) (xo1 - 
                        x[1]))^2 + (xo1 -  
                  Gam1 x[1] Psat1/(1.01325 10^5))^2 + (xo2 -  
                  Gam2 x[2] Psat2/(1.01325 10^5))^2 + (xo1 + xo2 + 
                  xo3 - 1)^2, 0.5 > x[1] >  0.4, x[3] == 0, 
          0.999 > xp[1] > 0.97, 360 < T < 370, 0 < xo1 < 1, xo3 == 0 , 
          0 < xo2 < 1, 0 < xp[3] < 1, 0 < x[3] < 1, xp[3] == 0, 
          0 < xp[2] < 0.05, 0 < x[2] < 0.6}, {x[1], x[2], x[3], xp[1], xp[2], 
          xp[3], xo1, T, xo2, xo3}] // Chop

365.978 - 273.15

Heterogeneous Ternary Azeotrope between water, n-butanol and butyl acetate

Minimize[{(Gam1 x[1] Psat1 + Gam2 x[2] Psat2 + 
                  Gam3 x[3] Psat3 -  
                  1.01325 10^5)^2 + 
(Gam1p xp[
                      1] Psat1 + Gam2p xp[2] Psat2 + 
                  Gam3p xp[3] Psat3 -  
                  1.01325 10^5)^2 + 
(x[3] - ( 
                    1 - x[1] - x[2]))^2 + (xp[3] - ( 
                    1 - xp[1] - xp[2]))^2 + (Gam1p xp[1] -  
                  Gam1 x[1])^2 + (Gam2p xp[2] -  
                  Gam2 x[
                      2])^2 + ((xo2 - x[2]) (xp[1] - 
                        x[1]) - (xp[2] - x[2]) (xo1 - 
                        x[1]))^2 + (xo1 -  
                  Gam1 x[1] Psat1/(1.01325 10^5))^2 + (xo2 -  
                  Gam2 x[2] Psat2/(1.01325 10^5))^2 + (xo1 + xo2 + 
                  xo3 - 1)^2, 1 > x[1] >  0.99, 0.4 > xp[1] > 0.20, 
          350 < T < 370, 0 < x[3] < 0.005, 0.18 < xp[2] < 0.22, 
          0 < x[2] < 0.005, 0.6 < xo1 < 0.8, 0 < xp[3] < 1}, {x[1], x[2], 
          x[3], xp[1], xp[2], xp[3], xo1, T, xo2, xo3}] // Chop

364.068 - 273.15