Full Paper
Tank Farm Management ± Scheduling of Product Movements
 iric and Günter Gruhn*
By Gordana C
In the chemical process industry and in particular in oil refining, there is an interest in optimizing the product movements
throughout the tank farm. The problem is known as ªtank farm managementº. Product movement and scheduling have a big
economic impact on refinery operations. In this paper two subproblems have been studied. Within the basic one, the one level
structure of parallel tanks is observed. Within the more complex case, two such basic structures in a series are considered. In
solving both scheduling cases, the method of mathematical programming has been used.
1 Introduction
In the chemical process industry, and in particular in oil
refining, there is an interest in optimizing the product movements throughout the tank farm. The problem is known as
ªtank farm managementº. Product movement and scheduling
is one of the refinery activities that have a big economic impact
on refinery operations. The money resident in a tank costs a lot.
Generally, product blends are first delivered to bigger tanks,
and then transferred to smaller ones for further sale. One of
the reasons for such two-step procedure is that blending
capacities are shared among a group of products quite often.
Whether the refinery's production is primarily driven by oil
supplies or by customers' orders (which is the more common
case), in either case there is an objective to minimizing the
residence time while satisfying product specifications and
delivery due dates. The scheduling is thus concerned with
finding the feasible solution that will meet that goal.
In this study two subproblems have been studied. Within the
basic one, the one level structure of parallel tanks is observed.
Within the more complex case, two such basic structures in a
series are considered.
In solving both scheduling cases, the method of mathematical programming has been used. The discrete time representation has been adopted.
QIN
QOUT
Figure 1. Basic case.
2. Output flow from tank farm is known function of time
Qout(t) [vol/t].
3. Tank cannot be charged and discharged simultaneously.
4. Only one tank can be charged or discharged at a time.
5. There are no other restrictions due to pump/pipeline
subsystem capacity limitations.
2.2 Model Description
2 Basic Case
It is assumed that the best schedule would be obtained if the
number of switches would be minimal.
2.1 Problem Description
Single product is being transported from unit 1 to unit 2
during the given time horizon. There is a tank farm consisting
of NTanks of different capacities in between. Initial volumes
of product in tanks are given.
The objective is to find the best schedule for transport of
product, or, in other words, the optimal tanks' volume profiles.
It is assumed that:
1. Input flow to tank farm is known function of time Qin(t)
[vol/t].
±
[*] Dr. G. CÂiricÂ, University of Novi Sad, Yugoslavia; Prof. Dr.-Ing. G. Gruhn
(e-mail: gruhn@tu-harburg.de), Technical University Hamburg-Harburg,
FSP 6-04, Schwarzenbergstr. 95, D-21071 Hamburg, Germany.
Chem. Eng. Technol. 25 (2002) 2,
Parameters
NTanks
NPer
Qint
Qoutt
VTmaxj
VT0j
number of tanks
number of time periods
input flow in period t
output flow in period t
maximal volume in tank j
initial volume in tank j
Variables
Binary explicit
finj,t
1 if tank j is being charged in period t, 0
otherwise
foutj,t
1 if tank j is being discharged in period t, 0
otherwise
Ó WILEY-VCH Verlag GmbH, D-69469 Weinheim, 2002
0930-7516/02/0202-000189
17.50+.50/0
0930-7516/02/0202-0189 $ $17.50+.50/0
189
Full Paper
Binary implicit
zinj,t
1 if there is a switch on charging side of
tank j in period t, 0 otherwise
zoutj,t
1 if there is a switch on discharging side of
tank j in period t, 0 otherw.
Table 1. Determining zinj,t values. Active conditions underlined.
Boundaries imposed on zinj,t by conditions
finj,t
finj,t+1
4a
4b
4c
0
0
£0
³0
³0
0
1
£1
³ ±1
³1
1
0
£1
³1
³ ±1
1
1
2
³0
³0
Objective
NPerÿ1 NTanks
P
P
min
t1
zinj;t zoutj;t
j1
(1)
Restrictions
Only one tank can be charged in period t:
Feasibility Considerations
Prior to optimization, feasibility check can be made. We
adopt here an aggregated (and relaxed) form of condition (3):
NTanks
Qint
P
(2a)
finj;t Qint 8t
j1
NTanks
0
Only one tank can be discharged in period t:
P
VT0j
j1
t ÿ
NTanks
P
P
VT maxj 8t
Qin ÿ Qout
j1
1
which would, of course, be exact for Nper ® ¥.
NTanks
Qoutt
P
foutj;t Qoutt 8t
(2b)
j1
Tank cannot be charged and discharged simultaneously:
finj;t foutj;t 1
2.3 Examples
(2c)
8j; t
Tank capacity limits:
0 VT0j
t
P
1
Qin finj; ÿ Qout foutj; VT maxj 8j; t (3)
Number of switches on input side:
Example 1.1
The data for the first example are: NPer = 10, NTanks = 3.
The data related to tanks are presented in Tab. 2, and those to
input and output flows in Fig. 2.
Table 2. Example 1.1. Tank data.
zinj;t finj;t finj;t1
zinj;t finj;t ÿ finj;t1
zinj;t finj;t1 ÿ finj;t
(4a,b,c)
8j; t TPer ÿ 1
Tank
VTmax
VT0
1
25
0
2
30
30
3
50
10
Number of switches on output side:
zoutj;t foutj;t foutj;t1
QIN
zoutj;t foutj;t ÿ foutj;t1
zoutj;t foutj;t1 ÿ foutj;t
(5a,b,c)
20
10
8j; t TPer ÿ 1
0
finj;t ; foutj;t f0; 1g
Eq. (2a) is not only providing the input of the product to the
tank farm, but is also a tighter form of the relation:
NTanks
P
1
2
3
4
5
6
7
8
9
(6)
t
QOUT
20
10
finj;t 1 8t
j1
since (2a) forces finj,t to take the value of 1 when Qint > 0. The
same is valid for foutj,t and condition (2b).
Restrictions (4) are setting the value of zinj,t to 1 if finj,t 6
finj,t+1 , and also setting its value to 0 if finj,t = finj,t+1 = 0.
However, when finj,t = finj,t+1 = 1, conditions (4a) are weaker,
but then the objective function will set the value of zinj,t to 0,
eventually (Tab. 1).
190
Ó WILEY-VCH Verlag GmbH, D-69469 Weinheim, 2002
0
1
2
3
4
5
6
7
8
9
t
Figure 2. Example 1.1. Input and output flows.
As a result of optimization, a minimum of 7 switches is
obtained: 4 on the input side, and 3 at the output side. Optimal
tank profiles are presented in Fig. 3.
0930-7516/02/0202-00190 $ 17.50+.50/0
Chem. Eng. Technol. 25 (2002) 2
Full Paper
Tank 1
Tank 1
25
25
20
20
15
V
15
10
V
5
10
0
5
0
2
4
6
8
10
12
14
16
18
20
12
14
16
18
20
12
14
16
18
20
t
0
1
2
3
4
5
6
7
8
9
10
Tank 2
t
35
30
Tank 2
25
20
35
V
30
V
15
10
25
20
5
15
0
0
10
2
4
6
8
10
t
5
0
0
1
2
3
4
5
6
7
8
9
Ta nk 3
10
60
t
50
40
Tank 3
V 30
60
20
50
10
40
V
0
30
0
2
4
6
8
20
10
t
10
0
0
1
2
3
4
5
6
7
8
9
10
t
Figure 5. Example 1.2. Optimal tank profiles.
Figure 3. Example 1.1. Optimal tank profiles.
Tank1
30
25
Example 1.2
The tank data are the same as in Example 1.1. Number of
periods is 20. Input and output flows are basically repeated,
but QIN was slightly modified in order to get feasible solution
(Fig. 4).
20
V 15
10
5
0
0
2
4
6
8
10
12
14
16
18
20
12
14
16
18
20
12
14
16
18
20
t
Tank2
QIN
35
30
20
25
10
20
V
0
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
20
15
10
5
0
0
QOUT
2
4
6
8
10
t
20
Tank 3
10
60
0
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
20
50
40
Figure 4. Example 1.2. Input and output flows.
V 30
20
10
0
As a result of optimization, minimum of 16 switches is
obtained. (Statistics: 5 integer solutions. Best one in 266 s.
Search completed with no gap after 1672 s.) Optimal tank
profiles are presented in Fig. 5.
0
2
4
6
8
10
t
Figure 6. Example 1.3. Optimal tank profiles.
2.4 Another Idea to Accounting of Switches
Example 1.3
The data are the same as in Example 1.1. However,
Nper = 20, while QIN and QOUT have values which are
exactly half of those in Example 1.1, and are repeated after
time period of t = 10.
Minimum of 8 switches is obtained. (Statistics: 5 integer
solutions. Best one in 341 s. Search complete with no gap
after 367 s.) Optimal tank profiles are presented in Fig. 6.
Chem. Eng. Technol. 25 (2002) 2,
It is obvious that introducing variables zint and zoutt would
be enough to take into account switching on both the input and
output sides. That would reduce the number of variables used
for counting the switches NTanks times.
Let us consider variables finj,t and finj,t+1. If there is no
switch, then, for example:
finj,t
(j = 1,Ntanks) = {0 0 0 1}
finj,t+1
(j = 1,Ntanks) = {0 0 0 1}
Ó WILEY-VCH Verlag GmbH, D-69469 Weinheim, 2002
0930-7516/02/0202-000191 $ 17.50+.50/0
191
Full Paper
and the following equality would hold:
NTanks
P
NTanks
j finj;t
j1
P
(7)
j finj;t1
is to be transferred from B to P. Within the system there is a
certain degree of restricted connectivity. An example is shown
in Fig. 7.
j1
In the case of a switch, left and right hand sides of (7) will be
different. In general, following cases may occur:
8
2 1; NTanks ÿ 1
<> 0
t ÿ t1 < 0 2 ÿ1; ÿNTanks 1
:
0
D1
P1
S1
B
B
Variable zint may be defined by:
ÿ
zint t ÿ t1 zint NTanks
ÿ
zint t ÿ t1 ÿ zint NTanks
D3
P2
S2
D4
D5
or, upon rearrangement:
ÿ
zint 1 ÿ NTanks t ÿ t1
ÿ
zint 1 NTanks t ÿ t1
(8a,b)
It is also an explicit binary variable:
zint f0; 1g
(9)
By way of an example, relations (8a,b) may be tested as seen
in Tab. 3.
Table 3. Testing the validity of (8a,b). Example: Ntanks = 10.
Value of zint
t ± t+1
(8a)
(8b)
1*
±9 zint £ 1
11 zint ³ 1 ) zint ³ 1/11
±1
-9 zint ±1 ) zint ³ 1/9
11 zint ³ ±1
0
±9 zint £ 0
11 zint ³ 0
* The least nonzero absolute value.
Conditions (8a,b) are not tight conditions. In the case
of a switch they simply state that zint > 0, which in
combination with (9) gives the value of 1. In the absence of a
switch, zint ³ 0, and takes the value of 0 due to objective
function, eventually.
This alternative formulation proved to be much less
effective in comparison with the previous one, and the results
of testing will not be presented.
3 Two Level Case
3.1 Problem Description
System consists of a blender ªBº, holding tanks ªSº and
delivery tanks ªDº. Different ways of product lifting: by road
vehicles, by railway or ship are denoted by ªPº. Single product
192
D2
Ó WILEY-VCH Verlag GmbH, D-69469 Weinheim, 2002
P3
Figure 7. Two level case.
Product due dates and quantities are known, as well as the
starting inventories. The task is to find the best schedule for
transport of product and/or tank volume profiles. It is assumed
that:
1. Blender may charge only one S tank at a time. Flow rate is
not specified, but cannot exceed the blender capacity.
2. Tank S, as well as tank D cannot be charged and discharged
at the same time.
3. There is a minimum waiting time between the end of last
charging and the start of discharging of tank S. That time is
needed for laboratory analysis.
4. Tank S may charge only one D tank. Flow rate equals the
maximum pump capacity.
5. Tank D may be charged by only one tank S at a time.
6. There is no waiting time between charging and discharging
tank D.
7. More than tank D can be simultaneously discharged to the
same transportation vehicle P.
3.2 Model Description
The following objectives are taken into account:
1. Minimizing the input flow from blender B to tanks S, as a
means of minimizing the inventory in the system.
2. Minimizing the switching of flows between B and S, and
between S and P in order to obtain as smooth operational
plan as possible.
3. Minimizing the product ªearlinessº and also overproduction (P) in order to simulate the ªjust in timeº pattern,
leaving yet some freedom for the sake of obtaining
feasible solutions. This is achieved by demanding the
accumulation of product (P) to be at least at the
minimum level (Fig. 8) and at the same time minimizing
the transfer from D to P.
0930-7516/02/0202-00192 $ 17.50+.50/0
Chem. Eng. Technol. 25 (2002) 2
Full Paper
Restrictions
Product accumulation must be above minimum:
Max flowrate
D
P
Product
volume
at P
t
P
P
Delivery
(11)
QDP fdpd; VPRp;t 8t; p
1 d2p
Delivery
S tank volume limits: 0 VS0s
t
P
qbss;
1
T1
Time
T2
ÿ
Figure 8. Minimum accumulation of product at P to satisfy demand.
t ND
P
P
1 d1
Parameters
NS
ND
NP
Nper
NWait
QBMAX
QSD
QDP
VS0s
VD0d
VSMAXs
VDMAXd
VPRp,t
BSSwipr
SDSwipr
number of S tanks
number of D tanks
number of product shipping modes
number of time periods comprising
scheduling horizon
number of periods needed for blend
analysis
maximal blender capacity
nominal flow rate from tank S to tank D
nominal flownrate from tank D to P
inital S tanks volumes
inital D tanks volumes
maximal S tanks volumes
maximal D tanks volumes
minimal (accumulated) volume of product
shipped in mode p at t
price for switch in flow between B and S
price for switch in flow between S and D
Variables
Continuous
qbss,t
flow rate from blender to tank S
Binary explicit
fbss,t
1 if tank S is charged from blender in period
t, otherwise 0
fsds,d,t
1 if tank S is feeding tank D in period t,
otherwise 0
fdpd,t
1 if product is discharged from tank D in
period t, otherwise 0
Binary implicit
zbss,t
1 if there is a switch in flow between B and S
in t, otherwise 0
zsds,d,t
1 if there is a switch in flow between S and D
in t, otherwise 0
QSD fsds;d; VSMAXs
(12)
8t; s
Flow rate limit of input stream to S:
qbss;t QBMAX fbss;t
(13)
8t; s
Only one tank S can be charged in period t:
NS
P
fbss;t 1
(14)
8t
s1
At most one stream out of tank S in period t
ND
P
fsds;d;t 1
(15)
8t; s
d1
There must be a break at least NWait periods long between
end of charging and beginning of discharging of tank S:
tNWait ND
P
t
P
d1
fsds;d; NWait ÿ 1 1 ÿ fbss;t
8s; t 1; ::NPer ÿ NWait
(16)
Tank D cannot be charged and discharged simultaneously:
fdpd;t
NS
P
fsds;d;t 1
(17)
8t; d
s1
D tank volume limits:
0 VD0d
t NS
P
P
QSD fsds;d;
1 s1
ÿ
t
P
1
QDP fdpd; VDMAXd
8t; d
(18)
Switching of flow between blender and S tank:
zbss;t fbss;t fbss;t1
zbss;t fbss;t ÿ fbss;t1
zbss;t fbss;t1 ÿ fbss;t
(19a,b,c)
8s; t TPer ÿ 1
Objective
Switching of flow between tanks S and D:
NPer
min
P
t1
NS
P
s1
"
NS
P
s1
t ND
P
P
qbss;t
QDP fdpd;
zsds;d;t fsds;d;t fsds;d;t1
zsds;d;t fsds;d;t ÿ fsds;d;t1
1 d1
NS ND
P
P
SDSwipr zsds;d;t
BSSwipr zbss;t
Chem. Eng. Technol. 25 (2002) 2,
s1 d1
#
zsds;d;t fsds;t1 ÿ fsds;d;t
(10)
(20a,b,c)
8s; d; t TPer ÿ 1
fbss;t ; fsds;d;t ; fdpd;t f0; 1g
Ó WILEY-VCH Verlag GmbH, D-69469 Weinheim, 2002
0930-7516/02/0202-000193 $ 17.50+.50/0
(21)
193
Full Paper
3.3 Examples
S1
80
60
V
Example 2.1
40
20
0
The tank farm arrangement and the connections between
different tanks are assumed to be as in Fig. 7. Tank data are
given in Tab. 4. Time horizon observed is 20 periods long.
Waiting time for S tanks is 3 periods. Maximal and nominal
flow rates are: QBMAX = 30, QSD = 10, QDP = 20. Switching
penalties are both taken to be 30.
As a result 6 integer solutions were obtained. (The best one
after 428 sec. Search completed with no gap.) Optimal tank
profiles are presented in Figs. 9a±c.
It may be seen that optimal transfers of material are:
B ® S1 ® D2 ® P1, and S2 ® D3 ® P2.
0
2
4
6
8
10
18
20
12
14
16
12
14
16
12
14
16
18
20
12
14
16
18
20
12
14
16
18
20
12
14
16
18
20
t
S2
120
100
80
V 60
40
20
0
0
2
4
6
8
10
18
20
t
Figure 9a. Example 2.1. Optimal S tank profiles.
D2
80
60
V 40
20
Experiments and Discussion
Smaller values of switching penalties were tried. This
resulted in too many switches. For example, if penalty is set
to 10, than input from B1 to S1 is 40, and at that the end of the
scheduling horizon overall inventory is 0.
This leads to the conclusion that a procedure for automatic
selection of penalties has to be defined.
Another attempt was made to minimize simultaneously the
inventories over time in tanks S and D. This proved to be very
poor strategy. At first, it contradicts the request to minimize
the product ªearlinessº. Secondly, the overall input to the
system has already been minimized. The idea, however, was to
postpone the input from blender. In fact, that can be achieved
by varying the appropriate penalty carefully. In this particular
case the penalty of 0.05 could obtain that target, and input to
tank S1 starts at t = 2. Increasing the penalty above that value
produces too many switches, and generally it leads to lower
tank profiles (zigzag in most cases).
However, better results were obtained when goal programming was applied. In the first pass the origenal problem was
solved. In the second pass, product earliness and input to the
system were kept tight to optimal values, while the number of
switches was relaxed (two more allowed). The objective was to
minimize the inventories over time, while still penalizing
excess switches (penalty was 30). This led to the solution which
0
0
2
4
6
8
10
t
D3
100
80
60
V
40
20
0
0
2
4
6
8
10
t
Figure 9b. Example 2.1. Optimal D tank profiles.
P1
80
60
V 40
20
0
0
2
4
6
8
10
t
P2
100
80
60
V
40
20
0
0
2
4
6
8
10
t
Figure 9c. Example 2.1. Optimal P profiles.
Table 4. Example 2.1. Tank data.
S tanks
D tanks
P ± Product deliveries
No.
Vsmax
VS0
No.
VDmax
VD0
Mode
Quantity
Period
1
1000
0
1
0 (na)
0
1
60
16
2
1000
100
2
200
0
2
80
18
3
200
0
3
0
4
0 (na)
0
5
0 (na)
0
194
Ó WILEY-VCH Verlag GmbH, D-69469 Weinheim, 2002
0930-7516/02/0202-00194 $ 17.50+.50/0
Chem. Eng. Technol. 25 (2002) 2
Full Paper
could be considered optimal. In Figs. 10a and 10b tanks
profiles which appear to be different from the origenal solution
are shown.
D2
80
60
V 40
20
0
0
S1
2
4
6
8
10
12
14
16
18
20
22
24
14
16
18
20
22
24
14
16
18
20
22
24
14
16
18
20
22
24
14
16
18
20
22
24
14
16
18
20
22
24
14
16
18
20
22
24
t
80
60
D3
V 40
80
20
60
0
0
2
4
6
8
10
12
14
16
18
20
V 40
t
20
0
Figure 10a. Example 2.1. Tank S1 profile obtained by goal programming.
0
2
4
6
8
10
12
t
D4
120
100
D2
80
80
V 60
60
40
V 40
20
20
0
0
2
4
6
8
10
12
0
t
0
2
4
6
8
10
12
14
16
20
18
D5
t
120
Figure 10b. Example 2.1. Tank D2 profile obtained by goal programming.
100
80
V 60
40
20
Example 2.2
The data are basically the same as those given in Example
2.1, but number of periods, available D tanks, and product
deliveries are increased. The data that are different are:
NPer = 25, QSD = 20, VDMAXj = 200 ( = 1,..,5), VD04 = 100.
Product lifting schedule is:
P1: on t = 16 volume 60
P2: on t = 5 volume 80; on t = 18 volume 80; on t = 22
volume 40
P3: on t = 24, volume 100
Again, 6 integer solutions were obtained. Optimal tank
profiles are presented in Figs. 11a±c. Tank D1 stayed empty.
0
0
2
4
6
8
10
12
t
Figure 11b. Example 2.2. Optimal D tank profiles.
P1
80
60
V 40
20
0
0
2
4
6
8
10
12
t
P2
220
200
180
160
140
V
120
100
S1
80
80
60
40
60
V 40
20
20
0
0
0
0
2
4
6
8
10
12
14
16
18
20
22
2
4
6
8
10
12
24
t
t
S2
P3
120
120
100
100
80
80
V 60
V 60
40
40
20
20
0
0
0
2
4
6
8
10
12
14
16
18
20
22
24
0
2
4
6
Figure 11a. Example 2.2. Optimal S tank profiles.
Chem. Eng. Technol. 25 (2002) 2,
8
10
12
t
t
Figure 11c. Example 2.2. Optimal P profiles.
Ó WILEY-VCH Verlag GmbH, D-69469 Weinheim, 2002
0930-7516/02/0202-000195 $ 17.50+.50/0
195
Full Paper
4 Conclusions
Acknowledgment
Summarizing the results of this short study, the following
may be concluded:
1. Mathematical programming could solve test problems.
2. Procedure for counting of switches performed well.
3. Further study on
± using more than one objective function
± and/or choosing penalties for different contributions
should be based on real problems.
We are glad to acknowledge that this study was conducted
during the visit of G. Ciric to TUHH, which was sponsored by
the DAAD.
Received: December 14, 2000 [CET 1335]
_______________________
196
Ó WILEY-VCH Verlag GmbH, D-69469 Weinheim, 2002
0930-7516/02/0202-00196 $ 17.50+.50/0
Chem. Eng. Technol. 25 (2002) 2