Beruflich Dokumente
Kultur Dokumente
Numerical solution
Copyright Brian G. Higgins (2010)
Introduction
In this notebook we consider multicomponent absorption in a tray tower. Each tray is assumed to
operate at 100% efficiency. That is, the vapor and liquid streams leaving each tray are in thermodynamic equilibrium. The traditional method for solving such problems is based on the Kremser approximation (ref. 1) first published in 1930!
The example we will consider is adapted from Seader and Henley, Chapter 5: Problem 5.18. The inlet
gas stream has six hydrocarbon components. The mole fractions of methane HC1 L, ethane (C2 ),
propane ( C3 ), nButane ( C4 ) and n-pentane ( C5 ) are
C1 = 0.949, C2 = 0.042, C3 = 0.007, C4 = 0.001, C5 = 0.001
The inlet gas flow rate is V@N + 1D = 106 lb mol/day we are also given the K-values for the 5 species in
the inlet stream:
K@1D = 2.85, K@2D = 0.36, K@3D = 0.066, K@4D = 0.017, K@5D = 0.004
The absorbent is n-heptane which at the operating conditions of the column is a liquid oil, denoted by
C7 We will assume that the n-heptane is barely stripped into the gas phase and has a K value of
0.000001. The inlet L-phase is pure C7 . The design specifications are to be based on the key component C2 : The column must be designed to remove 50% of C2 in the inlet gas stream. Our goal is to
determine the compositions of all the inlet/exit streams to the absorber. We are told that the column has
5 equilibrium stages.
Formulation
For this problem we have 6 species. We will denote the species as
C1 species 1, C2 species 2, , C5 species 5, C7 species 6
For each equilibrium tray we have 6 species balance equations
{@i, j - 1D + u@i, j + 1D = {@i, jD + u@i, jD,
j = 1, 2, , 10, i = 1, 2, , 6
(1)
where {@i, jDis the molar flow rate of species i in the absorbent phase leaving stage j, and u@i, jD
is the molar flow rate of species i in the gas phase leaving stage j. For the equilibrium stage we have
the following relationships
{@i, jD = A@i, jD u@i, jD, j = 1, 2, , 10, i = 1, 2, , 6
where A@i, jD is the absorption factor for the i
th
(2)
MultiCompAbs.nb
A@i, jD =
L@jD
(3)
K@iD V@jD
where L@jD, V@jD are the total molar flows rates of absorbent and gas leaving tray j:
6
V@jD = u@i, jD
i=1
(4)
i=1
Thus for each equilibrium tray we have 12 equations and 24 unknowns. This means that to solve the set
of equation at the tray level we need to specify 12 additional variables. Suppose for stage 1 we know
the composition of absorbent stream 0
{@i, 0D = ai , i = 1, 2, , 6
(5)
(6)
then we can use (1)-(4) to solve for {@i, 1D and u@i, 2D. This process can then be repeated to find
{@i, 2D and u@i, 3D, and so on until we reach stage 5. Note that at each stage we have to solve a
nonlinear set of equations, given by (2).
Unfortunately the approach described above will not work as the compositions in the exiting gas stream
are not known. We also do not know the molar flow rate of the entering absorbent. For our problem the
only information we are given for the entering absorbent stream is that it is pure C7 . On the exiting gas
stream all we are given is that u@2, 1D = 0.5 u@2, 6D. A Degree of Freedom analysis shows that we
cannot start our calculations at the top of the column.
The obvious procedure then is to solve the full set of nonlinear equations using the information given at
the inlet gas stream, information about the inlet absorbent stream, and the design specification , i.e.
u@2, 1D = 0.5 u@2, 6D. A Degree of Freedom analysis shows that for 5 trays we have 60 equations (
for each tray we have 6 species balances and 6 equilibrium relations) for 72 unknowns associated with
the 12 streams. Based on the information given we have 12 additional equations. Thus the problem is
well posed and we can solve for all the unknown variables.
First we will analyze this system using the approximate method put forward by Kremser in 1930
Lk0 + Hr - Ae L UkN+1
Lk0 - Ae H1 - rL UkN+1
(7)
In this expression Ae is the effective absorption factor( see definition below) , r is the recovery factor for
the key component, Lk0 is the molar flow rate of the key component in the entering absorbent stream,
and UkN+1 is the molar flow rate of the key component in the entering gas stream where N is the number
of equilibrium trays.
In our problem there is no ethane HC2 L in the entering L-phase; thus Lk0 =0 so
ANe =
Hr - Ae L UkN+1
Ae Hr - 1L UkN+1
Hr - Ae L
Ae Hr - 1L
Since we are given r, N and UkN+1 we can solve this expression for Ae . We will use Mathematica to
solve the equation. Note that there is a trivial root Ae = 1
(8)
MultiCompAbs.nb
Since we are given r, N and UkN+1 we can solve this expression for Ae . We will use Mathematica to
solve the equation. Note that there is a trivial root Ae = 1
Remove@eqns, A, Y, V, L, u, {, K, b, A, ND;
eqns = :A5 ==
H0.5 - AL
A H0.5 - 1L
>;
Solve@eqns, AD
88A - 1.01184 - 0.683959 <, 8A - 1.01184 + 0.683959 <,
8A 0.257507- 1.11879 <, 8A 0.257507+ 1.11879 <, 8A 0.50866<, 8A 1.<<
The appropriate real root is Ae = 0.50866. We can use the definition for Ae to determine an effective
flow rate. Recall the definition for Ae for the key component
Ae =
Le
(9)
K@2D Ve
where K@2D is the K-value for the key component. As a first approximation we take Le = L@0D and
Ve = V@N + 1D thus
L@0D = Ae K@2D V@N + 1D = H0.50866L H0.36L I106 M = 183 118 lb mol day
The next set of calculations involves determining the composition of the outlet stream V@1D. From the
Kremser analysis we showed that the molar flow rate of species i in the V@N + 1D stream is related to
the molar flow rate in the V@1D stream by
UiN+1 = biN Ui1 - biN-1 Li0
(10)
1
biN
u@i, N + 1D +
biN-1
biN
{@i, 0D
(11)
1 - IAie M
N+1
1 - Aie
(12)
Next we define functions to hold all the K-values, the absorption factors and the b values. Note that we
have assigned an extremely small value for the K[6] so that we can compare with the full analytical
solution
u@i_, N + 1D := y@i, N + 1D V@N + 1D
K@i_D := 82.85, 0.36, 0.066, 0.17, 0.004, 0.0000001<@@iDD
{@i_, 0D := 80, 0, 0, 0, 0, L@0D<@@iDD
Ae @i_D := L@0D HK@iD V@N + 1DL
bN_ @i_D := I1 - Ae @iDN+1 M H1 - Ae @iDL
MultiCompAbs.nb
Here are the molar flow rates for the species in the exit gas stream V@1D
TableBu@i, 1D =
1
b5 @iD
u@i, N + 1D +
b4 @iD
b5 @iD
Note that Ae @5D = 45.7795 so that b5 @5D = 2.05564 108 . This means that the molar flow rate of C5
in the exit gas phase is negligible. Its K- value suggests that it is readily absorbed into the L-phase. The
same applies to the absorbent, species 6. The total molar flow of the exit gas stream in lb mol/day is
6
V@1D = u@i, 1D
i=1
1.09231 106
Next we determine the molar flow rates of the species in the liquid stream. From an overall species
balance we have the relation
UiN+1 = LiN + Ui1 - Li0 , i = 1, 2, 6
Recall that {@i, 0D = 0 for all gas species (i = 1, 2, 3, , 6). Here is the calculation
Table@{@i, ND = u@i, N + 1D - u@i, 1D + {@i, 0D, 8i, 1, 6<D
860 975., 21 000., 6972.71, 862.706, 1000., 0.<
The above list is the molar flow rates for the 6 species in exit L-phase. The total flow rate of the L-phase
in lb mol/day is
6
L@1D = {@i, ND
i=1
90 810.5
In the next section we will compare the approximate solution to the numerical solution for all 60
equations
Numerical Solution
Let us define the following set of Mathematica equations for the jth equilibrium stage
Remove@{, u, KD
speciesBalanceEqns@j_D := Table@{@i, j - 1D + u@i, j + 1D {@i, jD + u@i, jD, 8i, 1, 6<D
MultiCompAbs.nb
speciesBalanceEqns@1D
8{@1, 0D + u@1, 2D {@1, 1D + u@1, 1D, {@2, 0D + u@2, 2D {@2, 1D + u@2, 1D,
{@3, 0D + u@3, 2D {@3, 1D + u@3, 1D, {@4, 0D + u@4, 2D {@4, 1D + u@4, 1D,
{@5, 0D + u@5, 2D {@5, 1D + u@5, 1D, {@6, 0D + u@6, 2D {@6, 1D + u@6, 1D<
We can also define a function that generates the equilibrium relations for each stage,
equilEqns@j_D := TableB{@i, jD
,
,
,
,
,
>
We also have a process equation that relates u@2, 6D to u@2, 1Dbased on the specified recovery
factor for species 2.
MultiCompAbs.nb
We are also given a set of initial data: compositions of the inlet gas stream, K factors for each species,
and that the absorbent is pure C7 . These conditions can be expressed as a set of replacement rules
initData = 8{@1, 0D 0, {@2, 0D 0, {@3, 0D 0, {@4, 0D 0,
{@5, 0D 0, u@1, 6D -> 949 000., u@2, 6D -> 42 000., u@3, 6D -> 7000.,
u@4, 6D -> 1000., u@5, 6D -> 1000., u@6, 6D 0, K@1D -> 2.85, K@2D -> 0.36,
K@3D -> 0.066, K@4D -> 0.17, K@5D -> 0.004, K@6D -> 0.0000001<;
The reason for using replacement rules to specify the initial data is that then our program can be
readily extended to handle new initial data. We can now combine all the equations that we have generated and then use the initial data to set known variables .
systemEqns = Join@processeqns, TotalEquilEqns, TotalSpeciesBalanceEqnsD . initData;
We have therefore
Length@systemEqnsD
61
We can solve the system of 61 nonlinear equations and 61 unknowns using Newton's method. The
tricky part is finding initial guesses for all 61 equations. The approach we have taken is to solve the
system of equations for a one or two stages, and then use these values for all the other variables. Thus
initialGuess = 8176 381, 106 429, 21 000., 5915., 679., 10.,
176 381, 106 429, 21 000., 5915., 679., 10., 176 381, 106 429, 21 000.,
5915., 679., 10., 176 381, 106 429, 21 000., 5915., 679., 10.,
176 381, 106 429, 21 000., 5915., 679., 10., 176 381, 842 570., 21 000.,
1084., 320., 10.9, 0.048994, 842 570., 21 000., 1084., 320., 10.9, 0.048994,
842 570., 21 000., 1084., 320., 10.9, 0.048994 , 842 570., 21 000., 1084.,
320., 10.9, 0.048994, 842 570., 21 000., 1084., 320., 10.9, 0.048994 <;
Note that all the {@i, jD and u@i, j D values are the same for each value of j. The final task is to use
FindRoot to solve the system of equations. The only tricky part is to program Mathematica to insert all
the initial guesses into FindRoot. Recall that the syntax for FindRoot for solving n equations in terms of
n unknowns is
FindRootA8eqn1 , eqn2 , , eqnn <, 9x1 , x01 =, 9x2 , x02 =, , 9xn , x0n =E
The following function does this task
the initial guesses into FindRoot. Recall that the syntax for FindRoot for solving n equations in terms of
n unknowns is
MultiCompAbs.nb
x01 =,
9x2 ,
x02 =,
, 9xn ,
x0n =E
2. H0.5- AL
A
Thus for our system we have (it may take awhile to run on your computer)
sol = FindRoot@systemEqns,
Evaluate@Apply@Sequence, Transpose@8unknownVar, initialGuess<DDDD
9{@6, 0D 94 341.2, {@1, 1D 54 650.3, {@2, 1D 10 251.2,
{@3, 1D 82.5663, {@4, 1D 149.437, {@5, 1D 0.000249293, {@6, 1D 94 341.2,
{@1, 2D 56 407., {@2, 2D 14 831.2, {@3, 2D 294.003, {@4, 2D 295.464,
{@5, 2D 0.0108902, {@6, 2D 94 341.2, {@1, 3D 57 630.1, {@2, 3D 17 341.1,
{@3, 3D 857.972, {@4, 3D 450.968, {@5, 3D 0.474591, {@6, 3D 94 341.2,
{@1, 4D 59 071.1, {@2, 4D 18 995.1, {@3, 4D 2402.31, {@4, 4D 624.789,
{@5, 4D 21.1614, {@6, 4D 94 341.2, {@1, 5D 62 700.6, {@2, 5D 21 000.,
{@3, 5D 6968.99, {@4, 5D 855.44, {@5, 5D 1000., {@6, 5D 94 341.1,
u@1, 1D 886 299., u@2, 1D 21 000., u@3, 1D 31.0091, u@4, 1D 144.56,
u@5, 1D 5.67431 10-6 , u@6, 1D 0.0536839, u@1, 2D 940 950.,
u@2, 2D 31 251.2, u@3, 2D 113.575, u@4, 2D 293.997, u@5, 2D 0.000254967,
u@6, 2D 0.0552192, u@1, 3D 942 706., u@2, 3D 35 831.2, u@3, 3D 325.012,
u@4, 3D 440.025, u@5, 3D 0.0108959, u@6, 3D 0.0541482,
u@1, 4D 943 929., u@2, 4D 38 341.1, u@3, 4D 888.982, u@4, 4D 595.528,
u@5, 4D 0.474597, u@6, 4D 0.0528958, u@1, 5D 945 370., u@2, 5D 39 995.1,
u@3, 5D 2433.32, u@4, 5D 769.349, u@5, 5D 21.1614, u@6, 5D 0.0499099=
Note that Newton's method will fail to converge if you do not have a reasonable initial guess.
The solution is in the form of a set of replacement rules. Thus the molar flow rates of all the species in
the gas streams are
TableForm@Table@u@i, jD, 8j, 1, 5<, 8i, 1, 6<D . sol,
TableHeadings -> 8Table@"j=" <> ToString@iD, 8i, 1, 5<D, Table@u@i, jD, 8i, 1, 6<D<D
u@1, jD
j=1
j=2
j=3
j=4
j=5
886 299.
940 950.
942 706.
943 929.
945 370.
u@2, jD
21 000.
31 251.2
35 831.2
38 341.1
39 995.1
u@3, jD
31.0091
113.575
325.012
888.982
2433.32
u@4, jD
144.56
293.997
440.025
595.528
769.349
u@5, jD
u@6, jD
-6
5.67431 10
0.000254967
0.0108959
0.474597
21.1614
0.0536839
0.0552192
0.0541482
0.0528958
0.0499099
The molar flow rates in the absorbent streams for trays 1-5 are
TableForm@Table@{@i, jD, 8j, 1, 5<, 8i, 1, 6<D . sol,
TableHeadings 8Table@"j=" <> ToString@iD, 8i, 1, 5<D, Table@{@i, jD, 8i, 1, 6<D<D
j=1
j=2
j=3
j=4
j=5
{@1, jD
54 650.3
56 407.
57 630.1
59 071.1
62 700.6
{@2, jD
10 251.2
14 831.2
17 341.1
18 995.1
21 000.
{@3, jD
82.5663
294.003
857.972
2402.31
6968.99
{@4, jD
149.437
295.464
450.968
624.789
855.44
{@5, jD
0.000249293
0.0108902
0.474591
21.1614
1000.
{@6, jD
94 341.2
94 341.2
94 341.2
94 341.2
94 341.1
MultiCompAbs.nb
TableForm@8Table@{@i, 0D, 8i, 1, 6<D, Table@u@i, 6D, 8i, 1, 6<D< . sol . initData,
TableHeadings 88{@i, 0D, u@i, 6D<, Table@"i=" <> ToString@iD, 8i, 1, 6<D<D
i=1
i=2
i=3
i=4
i=5
i=6
{@i, 0D 0
0
0
0
0
94 341.2
u@i, 6D 949 000. 42 000. 7000. 1000. 1000. 0
Let us now compute the absorption factor for each stream. We define the absorption factor as
A@i_, j_D :=
Using this definition we can compute the absorption factor for each species at each tray
TableForm@Table@A@i, jD . sol . initData, 8j, 1, 5<, 8i, 1, 6<D,
TableHeadings 8Table@"A@i," <> ToString@jD <> "D", 8j, 1, 5<D,
Table@"i=" <> ToString@iD, 8i, 1, 6<D<D
i=1
i=2
i=3
i=4
i=5
i=6
u@2, 1D
u@3, 1D
u@4, 1D
u@5, 1D
u@6, 1D
Note that the agreement is reasonable. Here is a comparison of the exit absorbent stream for the two
methods
MultiCompAbs.nb
Again the agreement is reasonable except for the absorbent flow rate.
Sum@{@i, 1D, 8i, 1, 6<D
{@1, 1D + {@2, 1D + {@3, 1D + {@4, 1D + {@5, 1D + {@6, 1D
TableForm@8Table@{@i, 5D . sol, 8i, 1, 6<D, 860975.01892333338`, 21000.027609007102`,
6972.709703993641`, 862.7064982678062`, 999.9999951353346`, 0.`<<,
TableHeadings 88"Numerical", "Kremser"<, Table@{@i, 1D, 8i, 1, 6<D<D
{@1, 1D {@2, 1D {@3, 1D {@4, 1D {@5, 1D {@6, 1D
Numerical 62 700.6 21 000. 6968.99 855.44 1000. 94 341.1
Kremser
60 975. 21 000. 6972.71 862.706 1000. 0.
860975.01892333338`, 21000.027609007102`,
6972.709703993641`, 862.7064982678062`, 999.9999951353346`, 0.`<
Conclusions
We have shown how to solve the full system of equations that describes multicomponent absorption in
a tray column. The key assumption is that the equilibrium K-values are constant at each tray. This
assumption is reasonable if the temperature and pressure of the column are constant and the liquid
mixture is an ideal mixture. Since all the species are hydrocarbons, the assumption of ideal mixture is
quite reasonable.
Our analysis shows that for this system the Kremser method over predicts the absorbent molar flow rate
by almost twice 183,118 lb mol/day versus 94,341 lb mol/day. However, Kremser method gives very
reasonable values for the molar flow rates of the other species in the exit streams.
Our numerical method makes use of Newton's method for solving the nonlinear system of equations. In
our Mathematica code we opted to use the built-in function FindRoot which by default computes the
Jacobian symbolically. This requires a large amount of storage when the number of equations exceeds
30-40 . To reduce storage requirements we can compute the Jacobian numerically. However this
requires 2 initial guesses for each unknown.
For Newton's method to be successful, we must have "good" initial guesses for each of the unknowns.
In the above analysis we found the initial guesses by solving a one or two stage problem, and then used
those values of all the other streams. This approach was successful for the given problem, but may not
always work.
References
1. Kremser, A., Natl., Petroleum News, 22(21), 43-49, 1930
2. Seader, J. D. and Henley, E.J. ,Separation Process Principles, John Wiley & Sons, 1998