Hunter and Nash Graphical Equilibrium Stage Method
Author's Data: Housam BINOUS
Department of Chemical Engineering
National Institute of Applied Sciences and Technology
Tunis, TUNISIA
Email: binoushousam@yahoo.com

Liquid Liquid Equilibrium of ternary system Isopropyl ether-water-Acetic Acid.
Component 1 = water 
Component 2= Acetic Acid
Component 3=Isopropyl ether

tbl1 = {{98.1, 0.69}, {97.1, 1.41}, {95.5, 2.89}, {91.7, 
            6.42}, {84.4, 13.30}, {71.1, 25.50}, {58.9, 36.70}, {45.1, 
            44.30}, {37.1, 46.40}};

tbl2 = {{0.5, 0.18}, {0.7, 0.37}, {0.8, 0.79}, {1.0, 1.93}, {1.9, 
            4.82}, {3.9, 11.40}, {6.9, 21.60}, {10.8, 31.10}, {15.1, 
            36.20}};

plt1 = 
      ListPlot[tbl1, PlotJoined -> True, 
        PlotStyle -> RGBColor[1, 0, 0]]

plt2 = 
      ListPlot[tbl2, PlotJoined -> True, 
        PlotStyle -> RGBColor[0, 0, 1]]

Show[plt1, plt2, PlotRange -> {{0, 100}, {0, 100}}, 
      Epilog -> Line[{{100, 0}, {0, 100}}]]

rafnt=Interpolation[tbl1,InterpolationOrder -> 1]

rafnt[90]

Extrc=Interpolation[tbl2,InterpolationOrder -> 1]

plt3 = 
      Plot[rafnt[x], {x, 37.1, 98.1}, PlotRange -> {0, 100}, 
        PlotStyle -> RGBColor[1, 0, 0]]

plt4 = 
      Plot[Extrc[x], {x, 0.5, 15.1}, PlotRange -> {0, 100}, 
        PlotStyle -> RGBColor[0, 0, 1]]

Show[plt3, plt4, PlotRange -> {{0, 100}, {0, 100}}, 
      Epilog -> Line[{{100, 0}, {0, 100}}]]

Using interpolation to get tie lines

tbl3 = {{0.5, 98.1}, {0.7, 97.1}, {0.8, 95.5}, {1.0, 91.7}, {1.9, 
            84.4}, {3.9, 71.1}, {6.9, 58.9}, {10.8, 45.1}, {15.1, 
            37.1}};

tie1=Interpolation[tbl3,InterpolationOrder -> 1]

tbl4 = {{98.1, 0.5}, {97.1, 0.7}, {95.5, 0.8}, {91.7, 1.0}, {84.4, 
            1.9}, {71.1, 3.9}, {58.9, 6.9}, {45.1, 10.8}, {37.1, 
            15.1}};

tie2=Interpolation[tbl4,InterpolationOrder -> 1]

tbl5 = 
      Table[Line[{{i, Extrc[i]}, {tie1[i], rafnt[tie1[i]]}}], {i, 1, 15, 
          2}]

Show[plt3, plt4, Graphics[{RGBColor[0, 1, 1], tbl5}], 
      Epilog -> Line[{{100, 0}, {0, 100}}], 
      PlotRange -> {{0, 100}, {0, 100}}]

Feed and Solvent

F = 1000. ; S = 1475. ; xF[1] = 65; xF[2] = 35; 
    xF[3] = 0;
xS[1] = 0; xS[2] = 0; xS[3] = 100. ;

Mixing Point

sol1 = 
      Solve[{M ==  F + S, 
          M xM[1] ==  
            F xF[1] + S xS[1], 
M xM[2] ==  
            F xF[2] + S xS[2], 
          M xM[3] ==  F xF[3] + S xS[3]}, {M,  xM[1],  xM[2],  
          xM[3]}]

xM[1] = sol1[[1, 1, 2]]

xM[2] = sol1[[1, 2, 2]]

xM[3] = sol1[[1, 3, 2]]

M =  sol1[[1, 4, 2]]

Raffinate Product is such that acetic acid wt % is 10

xR[2] = 10

xR[1] = FindRoot[rafnt[x] ==  xR[2], {x, 80}][[1, 
          2]]

xR[3] = 100 - xR[1] - xR[2]

Extract Product

sys = {R + EP ==  M,  xR[1] R + xE[1] EP ==  M xM[1], 
        xR[2] R + xE[2] EP ==  M xM[2], 
        xR[3] R + xE[3] EP ==  M xM[3], 
        Extrc[xE[1]] ==  xE[2]}

sol2=FindRoot[
        sys, {EP, 100}, {R, 150}, {xE[1], 5}, {xE[2], 15}, {xE[3], 
          80}]

EP = sol2[[1, 2]]

R = sol2[[2, 2]]

xE[1] = sol2[[3, 2]]

xE[2] = sol2[[4, 2]]

xE[3] = sol2[[5, 2]]

Operating Point

sol3 = 
      Solve[{OP ==  F - EP, 
          OP xOP[1] ==  
            F xF[1] - EP xE[1], 
OP xOP[2] ==  
            F xF[2] - EP xE[2], 
          OP xOP[3] ==  F xF[3] - EP xE[3]}, {OP,  xOP[1],  
          xOP[2],  xOP[3]}]

xOP[1] = sol3[[1, 1, 2]]

xOP[2] = sol3[[1, 2, 2]]

xOP[3] = sol3[[1, 3, 2]]

OP = sol3[[1, 4, 2]]

Ploting Feed, Solvent, Extract, Raffinate and Operating Point

Show[plt3, plt4, 
      Graphics[{PointSize[0.02], RGBColor[1, 0, 0], Point[{xR[1], xR[2]}], 
          RGBColor[0, 1, 1], Point[{xM[1], xM[2]}], RGBColor[0, 0, 1], 
          Point[{xE[1], xE[2]}], RGBColor[0, 1, 1], Point[{xOP[1], xOP[2]}], 
          RGBColor[0, 1, 1], Point[{xF[1], xF[2]}], Point[{xS[1], xS[2]}], 
          RGBColor[0, 1, 
            0], 
Line[{{xS[1], xS[2]}, {xF[1], 
                xF[2]}}], 
Line[{{xE[1], xE[2]}, {xR[1], 
                xR[2]}}], 
RGBColor[1, 0, 
            1], 
Line[{{xR[1], xR[2]}, {xOP[1], 
                xOP[2]}}], 
Line[{{xF[1], xF[2]}, {xOP[1], 
                xOP[2]}}]}], Epilog -> Line[{{100, 0}, {0, 100}}], 
      PlotRange -> All]

Stepping off Stages

i = 1; xR[1, 1] = xR[1]; xR[1, 2] = xR[2]; xR[1, 3] = xR[3]; 
    xE[0, 2] = xE[2] - 1;

While[
      xE[i - 1, 2] <  xE[2]  &&  
        i < 100, {
xE[i, 1] = 
          tie2[xR[i, 1]], 
xE[i, 2] = 
          Extrc[xE[i, 1]], 
xE[i, 3] = 
          100 - xE[i, 1] - 
            xE[i, 2], 
Sys = {El ==  Rl - OP, 
            El xE[i, 1] ==  
              Rl xRl[1] - 
                OP xOP[1], 
El xE[i, 2] == 
              Rl  xRl[2] - OP xOP[2], 
            El xE[i, 3] ==  
              Rl xRl[3] - OP xOP[3], 
xRl[2] ==  
              rafnt[xRl[1]]}, 
        sol[i] = 
          FindRoot[
            Sys, {El, 1700}, {Rl, 500}, {xRl[1], 80}, {xRl[2], 10}, {xRl[3], 
              5}], 
El[
            i] = sol[i][[1, 2]], 
Rl[
            i + 1] = sol[i][[2, 2]], 
xR[i + 1, 
            1] = sol[i][[3, 2]], 
xR[i + 1, 
            2] = sol[i][[4, 2]], 
xR[i + 1, 
            3] = sol[i][[5, 2]], i++}]

Ploting the Hunter and Nash Diagram. 5.35 equilibrium stages are needed to achieve the raffinate product requirement of 10 wt % acetic acid composition.

i

Nu = i - 1

(xE[2] - xE[5, 2])/(xE[6, 2] - xE[5, 2])

tbl5 = 
      Table[Point[{xE[i, 1], xE[i, 2]}], {i, 1, 
          Nu}]
tbl6 = 
      Table[Point[{xR[i, 1], xR[i, 2]}], {i, 1, 
          Nu}]
tbl7 = 
      Table[Line[{{xR[i, 1], xR[i, 2]}, {xOP[1], xOP[2]}}], {i, 1, 
          Nu}]
tbl8 = 
      Table[Line[{{xE[i, 1], xE[i, 2]}, {xR[i, 1], xR[i, 2]}}], {i, 1, 
          Nu}]

plt5 = 
      Show[plt3, plt4, 
        Graphics[{PointSize[0.02], RGBColor[0, 0, 1], Point[{xR[1], xR[2]}], 
            RGBColor[0, 1, 0], Point[{xE[1], xE[2]}], RGBColor[0, 0, 1], 
            Point[{xOP[1], xOP[2]}], RGBColor[0, 0, 1], 
            Point[{xF[1], xF[2]}], Point[{xS[1], xS[2]}], 
            RGBColor[0, 1, 0], 
tbl5, 
            tbl6, 
RGBColor[1, 0, 
              1], 
tbl7, 
RGBColor[0, 1, 
              0], 
tbl8
}], 
        Epilog -> Line[{{100, 0}, {0, 100}}], AspectRatio -> 1.5, 
        PlotRange -> {-10, 100}]

Show[plt5, PlotRange -> All]

Cheking our results

S - R

EP - F

El[5] + Rl[5]

El[4] + Rl[6]

El[1] + Rl[3]

El[2] + Rl[2]

Relationship between McCabe-Thiele and Triangular Diagrams

Equilibrium Curve

tbl6 = {{0.69, 0.18}, {1.41, 0.37}, {2.89, 0.79}, {6.42, 
            1.93}, {13.30, 4.82}, {25.50, 11.40}, {36.70, 21.60}, {44.30, 
            31.10}, {46.40, 36.20}};

eqcurve=Interpolation[tbl6,InterpolationOrder -> 1]

plt6 = 
      Plot[eqcurve[x], {x, 0.69, 46.4}, PlotStyle -> RGBColor[1, 0, 0], 
        Epilog -> Line[{{0, 0}, {100, 100}}]]

Curved Operating Line

xE[0, 2] = xS[2]

sys = {FO + EP ==  IO, 
        xF[1] FO + xE[1] EP ==  IO xIO[1], 
        xF[2] FO + xE[2] EP ==  IO xIO[2],  
        xF[3] FO + xE[3] EP ==  IO xIO[3], 
        rafnt[xIO[1]] ==  xIO[2]}

sol = 
      FindRoot[sys, {IO, 1500}, {FO, 1000}, {xIO[1], 50}, {xIO[2], 
          35}, {xIO[3], 5}]

xIO[2] = sol[[4, 2]]

tbl7 = 
      Append[Table[{xR[i + 1, 2], xE[i, 2]}, {i, 0, Nu - 1}], {xIO[2], 
          xE[2]}]

opline=Interpolation[tbl7,InterpolationOrder -> 1]

plt7 = 
      Plot[opline[x], {x, 10. , 33.98114395848671}, 
        PlotStyle -> RGBColor[0, 0, 1]]

From the McCabe and Tiele Diagram, we conclude that 5.35 equilibrium stages are needed.

Show[plt7, plt6]

tbl8 = 
      Table[Line[{{xR[i, 2], xE[i - 1, 2]}, {xR[i, 2], xE[i, 2]}}], {i, 1, 
          Nu}]

tbl9 = 
      Table[Line[{{xR[i, 2], xE[i, 2]}, {xR[i + 1, 2], xE[i, 2]}}], {i, 1, 
          Nu - 1}]

Show[plt7, plt6, 
      Graphics[{tbl8, tbl9, RGBColor[0, 1, 0], PointSize[0.02], 
          Point[{xIO[2], xE[2]}]}]]