We analyzes a solute extraction process. A raffinate stream with volumetric flow
R
containing an unwanted solute enters a five-stage extraction cascade that is connected to a tank holding the extraction solvent.
​
The solvent container is modeled as a perfectly mixed tank such that the solute composition leaving the tank at any time is the same as the composition in the tank at that time.
​
This problem was solved analytically by Ugo Lelli [1].
​
Here, a numerical solution using Mathematica is given that lets you examine how two key parameters for the extraction process influence the system performance.
​
You can see the effect of varying different values of the solvent container residence time
τ
(expressed as a dimensionless parameter
h
) and the dimensionless parameter
λ=R/(mE)
(related to the volumetric flow rates
R
and
E
in the raffinate and extract phases).
​
We show how the equilibrium composition (in the raffinate phase) of each stage in the cascade varies with extraction time, expressed in terms of the dimensionless variable
*
t
. At the start
*
t
=0
, there is no solute in the solvent stream and thus
Y
1
=
Y
6
=0
. Then at
*
t
=
+
0
, the raffinate stream has a step change in solute concentration
X
1
(
+
0
)=1
.
​
For very large values of the residence time or dimensionless parameter
h
, we get the usual equilibrium cascade behavior without recycle and
Y
6
(t)≈0
for all
t
and
h=100000
. In contrast, for small values of residence time (or
h
), solvent saturation is observed at large values of the dimensionless time
*
t
.
​
For very large values of h, we get the usual cascade without recycle problem . For small values of h and large times, we get solvent saturation .
​
Finally, we extend Lelli’ s work by considering the case of a plug flow container.

Theoretical Background

A material balance over the solute phase for an arbitrary stage
n
is:​​
H
R
d
X
n
dt
=R
X
n-1
-R
X
n
-
Q
n
,
H
E
d
Y
n
dt
=E
Y
n+1
-E
Y
n
+
Q
n
,​where
H
R
and
H
E
are the stage holdup volumes expressed in
3
m
for the raffinate and extract phases;
X
n
and
Y
n
are the solute mass fractions in the raffinate and extract phases leaving the
th
n
stage, respectively;
E
and
R
are the volumetric flow rates for the extract and raffinate phases expressed in
3
m
/min
; and
Q
n
is the volumetric rate of solute that is transferred between phases at the
th
n
stage. ​If equilibrium is established at each stage so that
Y
n
=m
X
n
, the solute material balances can be combined to give a single equation for the change in mass fraction of solute in the raffinate at the
th
n
stage: ​
(
H
R
+m
H
E
)
d
X
n
dt
=R
X
n-1
-(R+mE)
X
n
+mE
X
n+1
.​For computational purposes it is convenient to work with the dimensionless form of this equation, which for the
th
n
stage is given by:​​

*
X
n

*
t
=λ
*
X
n-1
+
*
X
n+1
-(1+λ)
*
X
n
,​where
*
X
n
is the dimensionless solute composition given by
*
X
n
=
X
n
/
X
0
(t=0)
. For the dilute system approximation to hold, we require that
X
0
(t=0)≪1
. ​The specified dimensionless inlet composition of the raffinate stream for
*
t
>0
is
*
X
0
(
*
t
)=1
. ​The dimensionless time is defined as
*
t
=tEm/(
H
R
+m
H
E
)
, while the flow rate ratio parameter is given by
λ=R/(Em)
. ​Finally, the dynamic behavior of the solvent tank (when we assume a perfectly mixed tank), is governed by:​​
h

*
Y
6

*
t
=
*
Y
1
-
*
Y
6
,
*
Y
6
(0)=0
, or equivalently,
h

*
X
6

*
t
=
*
X
1
-
*
X
6
,
*
X
6
(0)=0
,​where the dimensionless parameter
h=Vm/(
H
R
+m
H
E
)=τEm/(
H
R
+m
H
E
)
and
τ=V/E
is the residence time of the solvent tank with volume
V
.
First case: Solvent tank is a perfectly mixed container.
λ is proportional to the equilibrium constant. h depends on tank volume
Plotting the five stages dimensionless compositions (
*
X
1
,
*
X
2
,
*
X
3
,
*
X
4
,
*
X
5
) versus time for λ=1 and h=50.
In[]:=
λ=1;
In[]:=
X
0
[t]=1;
In[]:=
h=50;
In[]:=
sol1=NDSolve[{
X
6
[t]-(1+λ)
X
5
[t]+λ
X
4
[t]D[
X
5
[t],{t,1}],
X
5
[t]-(1+λ)
X
4
[t]+λ
X
3
[t]D[
X
4
[t],{t,1}],​​
X
4
[t]-(1+λ)
X
3
[t]+λ
X
2
[t]D[
X
3
[t],{t,1}],
X
3
[t]-(1+λ)
X
2
[t]+λ
X
1
[t]D[
X
2
[t],{t,1}],
X
2
[t]-(1+λ)
X
1
[t]+λ
X
0
[t]D[
X
1
[t],{t,1}],​​hD[
X
6
[t],{t,1}](
X
1
[t]-
X
6
[t]),
X
1
[0]0,
X
2
[0]0,
X
3
[0]0,
X
4
[0]0,
X
5
[0]0,
X
6
[0]0},{
X
1
[t],
X
2
[t],
X
3
[t],
X
4
[t],
X
5
[t],
X
6
[t]},{t,0,150}]
Out[]=

X
1
[t]InterpolatingFunction
Domain: {{0.,150.}}
Output: scalar
[t],
X
2
[t]InterpolatingFunction
Domain: {{0.,150.}}
Output: scalar
[t],
X
3
[t]InterpolatingFunction
Domain: {{0.,150.}}
Output: scalar
[t],
X
4
[t]InterpolatingFunction
Domain: {{0.,150.}}
Output: scalar
[t],
X
5
[t]InterpolatingFunction
Domain: {{0.,150.}}
Output: scalar
[t],
X
6
[t]InterpolatingFunction
Domain: {{0.,150.}}
Output: scalar
[t]
In[]:=
Plot[Evaluate[{
X
1
[t],
X
2
[t],
X
3
[t],
X
4
[t],
X
5
[t]}/.sol1],{t,0,150},PlotRange{0,1},PlotStyleTable[Hue[(2i-1)/7],{i,1,5}],Frame->True,GridLines->Automatic,FrameLabel->{Style["time",14],Style["stage compositions",14]},AspectRatio->1,ImageSize->400{1,1}]
Out[]=
Plotting the first stage dimensionless composition (
*
X
1
) versus time for λ=1 (solid line) and 0.8 (dashed line).
​
h is set equal to 50, 100, 500 and 10^10.
​
We obtain the case without recycle for h very large (i.e. 10^10).
​
For h small, we reach solvent saturation (
*
X
1
=1
) after a short period of time.
In[]:=
sol[h_,λ_]:=NDSolve[{
X
6
[t]-(1+λ)
X
5
[t]+λ
X
4
[t]D[
X
5
[t],{t,1}],
X
5
[t]-(1+λ)
X
4
[t]+λ
X
3
[t]D[
X
4
[t],{t,1}],​​
X
4
[t]-(1+λ)
X
3
[t]+λ
X
2
[t]D[
X
3
[t],{t,1}],
X
3
[t]-(1+λ)
X
2
[t]+λ
X
1
[t]D[
X
2
[t],{t,1}],
X
2
[t]-(1+λ)
X
1
[t]+λ
X
0
[t]D[
X
1
[t],{t,1}],​​hD[
X
6
[t],{t,1}](
X
1
[t]-
X
6
[t]),
X
1
[0]0,
X
2
[0]0,
X
3
[0]0,
X
4
[0]0,
X
5
[0]0,
X
6
[0]0},{
X
1
[t],
X
2
[t],
X
3
[t],
X
4
[t],
X
5
[t],
X
6
[t]},{t,0,150}]
In[]:=
plt1=Plot[Evaluate[{
X
1
[t]/.sol[50,1],
X
1
[t]/.sol[100,1],
X
1
[t]/.sol[500,1],
X
1
[t]/.sol[10^10,1]}],{t,0,150},PlotRange{0.5,1},PlotStyleTable[Hue[(2i-1)/7],{i,1,5}],FrameTrue,GridLines->Automatic];
In[]:=
plt2=Plot[Evaluate[{
X
1
[t]/.sol[50,0.8],
X
1
[t]/.sol[100,0.8],
X
1
[t]/.sol[500,0.8],
X
1
[t]/.sol[10^10,0.8]}],{t,0,150},PlotRange{0.5,1},PlotStyle{{Dashing[{0.02}],Hue[1/7]},{Dashing[{0.02}],Hue[3/7]},{Dashing[{0.02}],Hue[5/7]},{Dashing[{0.02}],Hue[7/7]}},FrameTrue,GridLines->Automatic];
In[]:=
Show[plt1,plt2,FrameLabel->{Style["time",14],Style["composition of first stage",14]},AspectRatio->1,ImageSize->400{1,1}]
Out[]=
Second case: Solvent tank is a plug flow container.
λ is proportional to the equilibrium constant. h depends on tank volume
Plotting the dimensionless composition (
*
X
1
,
*
X
2
,
*
X
3
,
*
X
4
,
*
X
5
) versus time (
150>=
*
t
>=0
) for λ=1 and h=50.
In[]:=
λ=1;
In[]:=
X
0
[t]=1;
In[]:=
h=50;
In[]:=
X
6
[t]=0;
In[]:=
sol2=NDSolve[{
X
6
[t]-(1+λ)
X
5
[t]+λ
X
4
[t]D[
X
5
[t],{t,1}],
X
5
[t]-(1+λ)
X
4
[t]+λ
X
3
[t]D[
X
4
[t],{t,1}],​​
X
4
[t]-(1+λ)
X
3
[t]+λ
X
2
[t]D[
X
3
[t],{t,1}],
X
3
[t]-(1+λ)
X
2
[t]+λ
X
1
[t]D[
X
2
[t],{t,1}],
X
2
[t]-(1+λ)
X
1
[t]+λ
X
0
[t]D[
X
1
[t],{t,1}],
X
1
[0]0,
X
2
[0]0,
X
3
[0]0,
X
4
[0]0,
X
5
[0]0},{
X
1
[t],
X
2
[t],
X
3
[t],
X
4
[t],
X
5
[t]},{t,0,50}]
Out[]=

X
1
[t]InterpolatingFunction
Domain: {{0.,50.}}
Output: scalar
[t],
X
2
[t]InterpolatingFunction
Domain: {{0.,50.}}
Output: scalar
[t],
X
3
[t]InterpolatingFunction
Domain: {{0.,50.}}
Output: scalar
[t],
X
4
[t]InterpolatingFunction
Domain: {{0.,50.}}
Output: scalar
[t],
X
5
[t]InterpolatingFunction
Domain: {{0.,50.}}
Output: scalar
[t]
In[]:=
Show[plt3,plt4,plt5,PlotRange-> All]

References

[1] U. Lelli, Annali di Chimica, 56, 1966 pp. 113–125.
​
[2] J. Ingham, I. J. Dunn, E. Heinzle, and J. E. Prenosil, Chemical Engineering Dynamics, 2nd ed., Weinheim, Germany: Wiley-VCH, 2000.

CITE THIS NOTEBOOK

Dynamics of a Five Equilibrium Stages Extraction Cascade with Solvent Recycle​
by Housam Binous and Ahmed Bellagi
Wolfram Community, STAFF PICKS, November 4, 2023
​https://community.wolfram.com/groups/-/m/t/3060194