CHE654 Supplementary Notes
Flowsheet Convergence Tear Streams
Prepared by
Dr. Hong-ming Ku
Chemical Engineering Practice School Program
King Mongkuts University of Technology Thonburi
Copyright April, 2003-2013 use with permission from the author only
Solution Approaches to Process Simulation
There are 2 basic approaches to process simulation:
1. Sequential Modular Approach (SMA)
2. Equation-Oriented Approach (EOA)
Sequential Modular Approach
Process unit ----> Mathematical model ----> FORTRAN subroutines
stoichiometry?
e.g. to model a reactor --> which model to use?
plug flow?
CSTR?
Sequential Modular Approach (Contd)
Input variables
Black Box
Output variables
Process Unit
In SMA, a unit module is self-contained, i.e. independent of other modules.
SMA is most efficient for acyclic flowsheet: only 1 pass is needed.
Unit 1
Unit 2
Unit 3
Must tear the recycle stream if using the SMA approach
Tear = Provide an initial guess
such as total flow, composition, temperature, and pressure.
Sequential Modular Approach (Contd)
Consequence: Multiple-pass calculations and must solve a system of
nonlinear equations to converge the tear stream.
Advantages of SMA:
1. Conceptual simplicity
2. Correspondence to physical structure
3. Requires little storage and computer memory
Disadvantage of SMA:
- Inefficient, nested loops
making it difficult to solve optimization problems and
4
flowsheet with many recycles
Equation-Oriented Approach
Equation-Oriented Approach (EOA)
Process = Set of linear/nonlinear equations => Solve them!
So no modules!!!
Solve all equations simultaneously
Advantage of EOA:
- Efficient because there are no loops
Disadvantages of EOA:
1. Requires large number of estimates
e.g. 2000 variables to solve => 2000 initial estimates
5
Equation-Based Approach (Contd)
2. Requires good estimates
3. Requires large storage and computer memory
4. No correspondence to physical structure
5. Requires stable, reliable NLE solvers
* ASPEN PLUS is a Sequential Modular simulator
* SPEEDUP is an Equation-Oriented simulator
6
Partitioning and Tearing a Flowsheet
Most commercial steady-state simulators use the
sequential modular approach (SMA).
ASPEN Plus is a good example of a sequential
modular simulator.
Two basic problems arise in the SMA.
1. Partitioning a flowsheet Will describe and define these
terms in more details later
[Link] a flowsheet
7
Partitioning and Tearing a Flowsheet (Contd)
First, consider the following flowsheet to be solved by a sequential
modular simulator:
S6
S8
S1
S3
S4
S5 FLASH
MIXER
S2
REACTOR
HEATX
S9
S7
Do you see any problems or complications in solving this flowsheet?
Computational sequence is MIXER, REACTOR, HEATX, FLASH.
8
Partitioning and Tearing a Flowsheet (Contd)
Now, consider a slightly different flowsheet which is a modification
to the previous one.
S6
S8
S1
S3
S4
S5 FLASH
MIXER
S2
REACTOR
HEATX
S9
S7
S6 is now a recycle stream instead of a process product stream.
Do you see any complications this time? an impasse!
What is the computational sequence for this flowsheet?
Complications with Recycle Streams
To work around the problem, we must perform trial-and-error.
The workaround is to tear a stream, say S6.
Tear provide an initial guess x0 for a stream
x0 = stream composition, T, and P
Convergence block
S6
x0 (S6)
x1 (S6)
If x0 (S6) = x1 (S6) within acceptable
tolerance, then we are done.
Otherwise, must update x1(S6) somehow.
10
Complications with Recycle Streams (Contd)
Convergence block
mechanism for updating a tear stream
Numerical methods
mathematical method/algorithm for
updating a tear stream.
Example of a simple numerical method is Direct Substitution.
Other numerical methods commonly used are:
1. Wegsteins method
2. Newton-Raphsons method
3. Broydens method
11
Complications with Recycle Streams (Contd)
If S6 is the tear stream, the computational sequence of the recycled
flowsheet is: Tear S6 ---> MIXER ---> REACTOR ---> HEATX --->
FLASH ---> Update S6
Interestingly, S6 is not the only valid tear stream, i.e. a tear stream
is not unique. Can also tear S3, s4, or S5.
If S3 is the tear stream, what is the computational sequence?
Tear S3 ---> REACTOR ---> HEATX ---> FLASH ---> MIXER --->
Update S3
12
Complications with Recycle Streams (Contd)
When a model is complex with many recycle streams, it is not
possible to eyeball the flowsheet and come up with tear streams.
So 2 critical issues facing the SMA simulation
1. Minimum number of tear streams and their locations
2. Computational sequence
?
# of recycle streams = minimum # of tear streams
13
Complications with Recycle Streams (Contd)
S7
S1
S6
S3
B1
S5
S4
B2
B3
B4
S2
S8
Minimum # of tear streams = 2, namely S6 and S7.
14
Complications with Recycle Streams (Contd)
What about this one?
S7
S1
S6
S3
B1
S5
S4
B2
B3
B4
S2
S8
Minimum # of tear streams = ?
Computational sequence = ?
In conclusion: # of recycle streams > minimum # of tear streams
15
A Somewhat Complex Flowsheet
A
What is the minimum # of tear streams?
The answer is 5.
16
Complications with Recycle Streams (Contd)
Summary:
1. How many tear streams? (necessary because of recycles)
2. Which ones?
3. Convergence method?
4. In which order should one converge (partitioning)?
Many publications related to tear stream determination. The
important ones are as follows:
Sargent and Westerberg
1964
Forder and Hutchison
1969
Barkley and Motard
1972
17
Another Type of Convergence Problem
When a feedback controller is present
T=?
Called design specification in A+
Recycle of information because
guess HX outlet temperature,
calculate xC1 in S8 if xC1 = 0.01
stop; otherwise update THXguess
HEATX
FLASH
S8
FC
Want xC1 = 0.01
Design specification is a lot easier to converge than tear streams,
because it involves only 1 variable.
18
Algorithms for Determining Tear Streams
19
Partitioning and Precedence Ordering
Partitioning Locate within a flowsheet the groups of units which
must be solved together (called irreducible groups), with as fewest
number of units as possible.
Precedence Ordering Placing these groups of units in a proper
sequence for computation.
20
Simple Example of Partitioning and Precedence Ordering
F
S1
Partitioning: 3 unit groups, namely ABCD, E, and F
Procedence Ordering: ABCD, then E, then F
Actual computational sequence:
Tear S1 --> C --> D --> A --> B --> Update S1 --> E --> F
21
Partitioning Algorithm
Path Tracing algorithm by Sargent and Westerberg (1964)
- A simple algorithm for tracing unit outputs
- Basically, one traces from one unit to the next through the unit
output streams, forming a string of units.
This tracing continues until
(a) A unit in the string reappears.
All units between the repeated unit, together with the repeated unit,
become a group, which is collapsed together and treated as a single
unit, and the tracing continues from it.
(b) A unit or group of units with no more outputs is encountered.
The unit or group of units is placed at the top of a list of groups and is
deleted entirely from the problem.
22
Partitioning Algorithm (Contd)
Algorithm:
1. Select a unit/group
2. Trace outputs downstream until
(a) a unit or a group on the path reappears. Go to step 3.
(b) a unit or a group is reached with no external outputs. Go to
step 4.
3. Label all units into a group. Go to step 2.
4. Delete the unit or group. Record it in a list. Go to step 2.
Sequence is from bottom to top of list!
23
Example of S & Ws Partitioning Algorithm
A
1. Start with unit A
A
Delete K and Delete J, since no output
List
K
J
24
Example of S & W (Contd)
A
2. Start with unit A again
A
Loop => EIL is a group
25
Example of S & W (Contd)
3. A
EIL
EILD will be a group
4. Delete EILD since it has no more outputs
5. A
Delete M
6. A
Delete C, B, and then A
EIL
List
K
J
EILD
M
C
B
A
26
Example of S & W (Contd)
F
7. F
G
H
Delete GH, and then delete F
Computational sequence is:
F
GH
M
K
EILD
J
List
K
J
EILD
M
C
B
A
GH
F
27
Conclusions
1. There are two convergence loops in this flowsheet, and we
know their their relative order.
2. But we still dont know the minimum number of tear
streams in each loop and what their locations are.
3. All we know is that the tear streams in each loop
must be converged simultaneously!
28
Tearing an Irreducible Group
Given an irreducible group:
Must determine the minimum # of tear streams and their
locations.
1. Find minimum # of tear streams using
Barkley and Motards (B & M) algorithm
2. Find all loops using
Loop Finder algorithm by Forder-Hutchison
29
Barkley & Motards Algorithm
Guarantees the fewest number of tear streams in a flowsheet
Basic concepts: Treat the flowsheet as a signal flow graph
Process units = nodes
graph
Process streams = arcs connecting the nodes
1
3
5
This is a signal flow graph:
Arc
Node
30
Barkley & Motards Algorithm (Contd)
Example:
A
7
1
4
6
Transformation:
- Nodes become arcs.
- Arcs become nodes.
- Direction of arc is from
input to output.
Note that all process inputs and
outputs have been deleted.
8
31
Barkley & Motards Algorithm (Contd)
1. Graph Reduction:
- Merge nodes with single precusor
precursor: all nodes providing input to a given node are precursors
for that node e.g. nodes 2 and 5 are precursors to node 3.
The node with a single precursor is to be represented by that
precursor e.g. Node 2 has a single precursor 1. So erase node 2 and
represent it with node 1.
- Merge parallel arcs (same direction)
32
Barkley & Motards Algorithm (Contd)
2. Node Elimination (may see funny patterns after graph reductions)
a) Eliminate nodes with self-loops
b) Process two-way edges or edge pairs by eliminating a node.
Eliminate common node of a joint two-way edge pair ..
Joint two-way edge pair
Two-way edge pair
Eliminate common node to become
33
Barkley & Motards Algorithm (Contd)
Disjoint pairs
. by eliminating common node with the most output edges. If tie,
choose arbitrarily. Return to Step 1 (graph reduction) after each
elimination in (a) or (b). Every elimination is a tear stream.
3. If no progress possible, eliminate node with maximum # of output
edeges. In case of tie, choose arbitrarily. Go to step 1.
34
Barkley & Motards Algorithm (Contd)
Node-Precursor List
There is no need to draw the flow diagram
every time you modify or apply the
procedure.
Node
Precursors
1
2
3
4
5
6
7
8
7
1, 8
2, 5
3
4, 6
2, 5
2, 5
3
35
Barkley & Motards Algorithm (Contd)
Node
Precursors
1
2
3
4
5
6
7
8
7
7, 3
2, 5
3
3, 6
2, 5
2, 5
3
36
Barkley & Motards Algorithm (Contd)
2
2, 7
5, 6
2, 3
3, 5
2, 3, 5
7, 2, 3
3, 5, 6
Two-way edge pairs
So the common nodes
are 2, 3, and 5 !!!
Joint two-way edge pairs
37
Barkley & Motards Algorithm (Contd)
- But node 2 and 5 have the largest number of output streams.
- So eliminate node 2 and delete node 2 from the table.
- Stream 2 is a tear stream.
Node
Precursors
2
7, 3
3
2, 5
5
3, 6
6
2, 5
7
2, 5
so that nodes 3, 6, and 7 have single precursor.
38
Barkley & Motards Algorithm (Contd)
Node
Precursors
3
5
5
3, 6
5 self-loop
6
5
7
5
So stream 5 is another tear stream.
Tear streams are Stream 2 and Stream 5.
The computational sequence is: C --> D --> E --> A --> B
39
Forder-Hutchisons Loop Finder Algorithm
Based on path tracing also, but records both streams and blocks
encountered.
4
Example
5
First, some definitions:
Full string - sequence of units and streams on a path, e.g. A, S1, B, S2, C, S3
Stream string - full string minus units, e.g. S1, S2, S3
String loop - a full string that forms a loop, e.g. C, S3, D, S6, C
Stream loop - string loop minus units, e.g. S3, S6
40
Loop Finder Algorithm (Contd)
Algorithm:
1. Given a unit , trace outputs downstream until a unit reappears.
Record the string loop found. Go to Step 2.
A, S1, B, S2, C, S3, D, S6, C
loop
2. Return to 2nd to the last unit and resume tracing until another
unit is repeated.
A, S1, B, S2, C, S3, D, S4, A loop
Return to Step 2 and repeat.
41
Loop Finder Algorithm (Contd)
3. If the last unit has no more outputs remaining to be traced, skip to
the next upstream unit and go to Step 2.
A, S1, B, S2, C, S5, A loop
So: C, S3, D, S6, C
A, S1, B, S2, C, S3, D, S4, A
A, S1, B, S2, C, S5, A
Construct a Loop Incidence Matrix:
Loop
S1
S2
S3
S4
S5
S6
1
1
1
2
1
1
1
1
3
1
1
1
42
Loop Finder Algorithm (Contd)
Remarks:
1. The algorithm gives all valid sets of tear streams, not just one.
2. Not all valid sets of tear streams are equally desirable.
Some valid tear sets are:
{S3, S5}will break all the loops:
Computation order = Tear 3,5 --> D --> A --> B --> C -->Update tears
{S2, S6} order = Tear 2,6 --> C --> D --> A --> B --> Update tears
{S2, S3}is a valid tear set too:
But the trouble is we are breaking Loop 2 twice.
order = Tear 2,3 --> D --> C --> A --> B --> C --> Update tears
43
Loop Finder Algorithm (Contd)
Block C is calculated twice; not desirable because of unneccessary
calculations.
Define
Multiplicity of a tear set = maximum # of times a loop is broken by
a tear set.
Multiplicity = 1 for {S3, S5}, {S2,S6} = (1,1,1)
= 2 for {S2,S3} = (1,2,1)
Exclusive tear set = tear set with a multiplicity of 1
44
Another Example of Loop Finder
How about this one? How many loops? 6
B loops. They are:
A
5
1
B,
S2,
D,
S6,
B
4
2
6 2
8
A, S1, B, S5, A
7
A, S8, C, S4, A
D 3
C
4
C, S7, D, S3, C
3
5
A, S1, B, S2, D, S3, C, S4 A
6
B, S5, A, S8, C, S7, D, S6 B
1
Loop
1
2
3
4
5
6
S1 S2 S3 S4
1
1
1
1
1 1 1 1
S5 S6 S7 S8
1
1
1
1
1
45
Another Example of Loop Finder (Contd)
This flowsheet does not contain any exclusive tear set.
Some valid tear sets are:
1. {S4, S5, S6, S7} --> (1,1,1,1,1,3); multiplicity = 3
2. {S3, S8, S1, S6} --> (1,1,1,1,2,2); multiplicity = 2
However, cant say for sure which set is more desirable because all
the loops are broken 8 times in both tear sets.
46