Batch Distillation of an Acetone-Methanol Mixture​
​Authors: Housam Binous and Ahmed Bellagi

The kettle of a batch still, operating at 1 atm, is charged with a 50 mol % solution of acetone in methanol. We would like to compute the fraction of the initial charge that must be distilled to reduce the composition of the solution remaining in the kettle to 20 mol % of acetone. Two methods are proposed, one using FindRoot and the other using NDSolve.
Vapor Pressure using Antoine Equation
component 1: acetone
component 2: methanol
In[]:=
A1=7.11714;B1=1210.595;C1=229.664;​​A2=8.08097;B2=1582.271;C2=239.726;
In[]:=
PS1=10^(A1-B1/(C1+T));​​PS2=10^(A2-B2/(C2+T));
Activity coefficients using the Van Laar model
In[]:=
G1=Exp[A12(A21(1-x)/(A12x+A21(1-x)))^2]​​G2=Exp[A21(A12x/(A12x+A21(1-x)))^2]
Out[]=
A12
2
A21
2
(1-x)
2
(A21(1-x)+A12x)

Out[]=
2
A12
A21
2
x
2
(A21(1-x)+A12x)

In[]:=
A21=0.6184;A12=0.5797;
Total Pressure (in mmHg)
In[]:=
P=760;
Integration of Rayleigh's Equation
In[]:=
i=0;
In[]:=
While[i<31,{x=0.2+0.01i,​​sol=FindRoot[xPS1G1+(1-x)PS2G2P,{T,75}],​​T[i]=sol[[1,2]],xa[i]=x,ya[i]=PS1xG1/P/.TT[i]/.xxa[i],i++}]
In[]:=
tbl=Table[{xa[i],1/(ya[i]-xa[i])},{i,0,30}]
Out[]=
{{0.2,7.74431},{0.21,7.6595},{0.22,7.59416},{0.23,7.54643},{0.24,7.51481},{0.25,7.4981},{0.26,7.49534},{0.27,7.50576},{0.28,7.52879},{0.29,7.56399},{0.3,7.61104},{0.31,7.66978},{0.32,7.74013},{0.33,7.8221},{0.34,7.91583},{0.35,8.02153},{0.36,8.13951},{0.37,8.27019},{0.38,8.41407},{0.39,8.57176},{0.4,8.744},{0.41,8.93163},{0.42,9.13564},{0.43,9.35714},{0.44,9.59744},{0.45,9.85803},{0.46,10.1406},{0.47,10.4471},{0.48,10.7797},{0.49,11.141},{0.5,11.534}}
In[]:=
ListPlottbl,JoinedTrue,Frame->True,AspectRatio->1,GridLines->Automatic,PlotStyle{Darker@Red,Thick},FrameLabel->Style["x",14],Style"
1
y-x
",14
Out[]=
In[]:=
intg=Interpolation[tbl,InterpolationOrder1]
Out[]=
InterpolatingFunction
Domain: {{0.2,0.5}}
Output: scalar

Fraction remaining in the kettle as a function of mole fraction of acetone in the kettle
In[]:=
L1[x_]:=Exp[-Integrate[intg[t],{t,x,0.5}]]
In[]:=
plt1=Plot[L1[x],{x,0.2,0.5},PlotStyle{Red,Thick},Frame->True,AspectRatio->1,GridLines->Automatic,FrameLabel->{Style["x",14],Style["Fraction remaining in the kettle",14]}]
Out[]=
Fraction remaining in the kettle when the mole fraction of acetone is equal to 20 mol %
In[]:=
x=.
In[]:=
Exp[-Integrate[intg[x],{x,0.2,0.5}]]
Out[]=
0.0774175
Fraction which must be distilled to get 0.2 mol of acetone in the residue
In[]:=
1-Exp[-Integrate[intg[x],{x,0.2,0.5}]]
Out[]=
0.922583
Second method to get the Fraction remaining in the kettle as a function of the mole fraction of acetone. This method uses NDSolve.
In[]:=
sol=NDSolve[{D[L[x],{x,1}]L[x]/((PS1G1/P-1)x)/.TT[x],​​0(-P+(xPS1G1+(1-x)PS2G2))/.TT[x],L[0.5]1,​​T[0.5]59.7},{L,T},{x,0.2,0.5},AccuracyGoalInfinity,MaxStepsInfinity,StartingStepSize->0.0000001,MaxStepSize0.00001]
NDSolve
:NDSolve has computed initial values that give a zero residual for the differential-algebraic system, but some components are different from those specified. If you need them to be satisfied, giving initial conditions for all dependent variables and their derivatives is recommended.
Out[]=
LInterpolatingFunction
Domain: {{0.2,0.5}}
Output: scalar
,TInterpolatingFunction
Domain: {{0.2,0.5}}
Output: scalar

In[]:=
plt2=Plot[Evaluate[L[x]]/.sol,{x,0.2,0.5},PlotStyle{Darker@Blue,Thick,Dashed},Frame->True,AspectRatio->1,GridLines->Automatic,FrameLabel->{Style["x",14],Style["Fraction remaining in the kettle",14]}]
Out[]=
Comparing both methods - The two curves are superimposed for comparison.
Fraction remaining in the kettle when the mole fraction of acetone is equal to 20 mol % is equal to 0.0774175
In[]:=
Show[plt1,plt2]
Out[]=
Below, I compare with Aspen Custom Modeler results
Activity coefficients are both above 1 hence the mixture exhibits positive deviation from ideal behavior.