Multivariable Control: An introduction
Multivariable Control: An introduction
Multivariable Control: An introduction
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Multivariable</strong> <strong>Control</strong>: <strong>An</strong> <strong>introduction</strong><br />
Dr M.J. Willis<br />
Department of Chemical and Process Engineering<br />
University of Newcastle upon Tyne<br />
email: mark.willis@ncl.ac.uk<br />
Written: 4 th November, 1998<br />
Modified: 8 th November, 1999<br />
Aims and Objectives<br />
To introduce the basic concepts of multivariable control (a continuous stirred tank<br />
reactor will be used as the motivating example). To highlight the phenomenon of<br />
loop interactions. To learn how to model multivariable systems using input-output<br />
descriptions. To introduce the relative gain array (RGA) - a tool for the selection of<br />
input-output pairings.<br />
At the end of this section of the course you should be able to select appropriate<br />
manipulated variable - controlled variable pairings to minimise the effect of loop<br />
interactions in multivariable systems. You should know how to formulate and<br />
interpret the RGA.<br />
Plan<br />
• Define the terms SISO and MIMO.<br />
• Introduce MIMO control and loop interaction using a CSTR as the motivating<br />
example.<br />
• discuss systems modelling for MIMO systems (the transfer function approach).<br />
• clarify discussions using a worked example (modelling and control of a mixing<br />
process).<br />
• introduce the RGA and discuss how it may be used to select input-output<br />
pairings.<br />
1
Introduction<br />
Processes with only one output being controlled by a single manipulated variable are<br />
classified as single-input single output (SISO) systems. It should be noted however,<br />
that most unit operations in chemical engineering have more than one control loop.<br />
In fact, each unit typically requires the control of at least two variables, e.g. product<br />
rate and product quality. There are therefore usually at least two control loops.<br />
Systems with more than one control loop are known as multi-input multi-output<br />
(MIMO) or multivariable systems.<br />
A Continuous Stirred Tank Reactor (CSTR)<br />
A continuous stirred tank reactor (CSTR) is used to convert a reactant (A) to a<br />
product (B). The reaction is liquid phase, first order and exothermic. Perfect mixing is<br />
assumed. A cooling jacket surrounds the reactor to remove the heat of reaction.<br />
A B<br />
Exothermic, first order<br />
Constant Volume<br />
Coolant<br />
TC<br />
T j<br />
Effluent<br />
C Ao, F o, T o<br />
F, C A, T<br />
Fig 1 A basic control scheme for a CSTR<br />
In this system variables of interest (from a control engineers perspective) could be,<br />
for example, product composition and temperature of the reacting mass. There will<br />
therefore be a composition control loop as well as a temperature control loop. Feed<br />
to the reactor is often used to manipulate product composition while temperature is<br />
controlled by adding (removing) energy via heating (cooling) coils or jackets. This<br />
basic control configuration is demonstrated in Fig (1). 'TC' represents a temperature<br />
controller, the mv for this loop being coolant flowrate to the jacket. 'CC' represents<br />
the composition controller, the mv being reactant feedrate.<br />
Assuming that the control system has been configured in this manner, lets consider<br />
a change in feed flowrate. Perhaps this is necessary to bring composition back to its<br />
desired level. This manipulation of feedflow will also change the temperature of the<br />
reaction mass. Heat removal or addition, on the other-hand, would influence the<br />
rate of reaction and hence composition. This phenomenon, known as loop<br />
interaction, occurs in many processes and must be considered when developing a<br />
CC<br />
2
control strategy. If it is not, it may be difficult to run the unit under closed loop<br />
control, creating many operational problems.<br />
Thus, for two loops to work successfully together each loop must “know” what the<br />
other is doing. Otherwise, in trying to achieve their respective objectives each loop<br />
may act against the interests of the other.<br />
Developing Process Models for <strong>Multivariable</strong> Systems <strong>An</strong>alysis<br />
When designing a multivariable control strategy, the process must first be modelled.<br />
This can be achieved either analytically using sets of differential equations to<br />
describe a systems behaviour or empirically, using data obtained from an open loop<br />
step test fitted to an assumed model structure. For the purposes of the control<br />
system design we often use the latter, parameterising the model using 1 st order plus<br />
time-delay transfer functions.<br />
Input-Output <strong>Multivariable</strong> System Models 1<br />
For systems with more than one output, input-output models may assume a number<br />
of structural forms. However, discussions will be restricted to the model structure<br />
shown in the diagram below,<br />
mv 1<br />
mv 2<br />
G 11(s)<br />
G 21(s)<br />
G 12(s)<br />
G 22(s)<br />
+<br />
+<br />
cv 1<br />
Loop 1<br />
Loop 2<br />
cv 2<br />
Fig 2 (2 x 2) <strong>Multivariable</strong> model structure<br />
Here G11(s) is a symbol used to represent the forward path dynamics between mv1<br />
and cv1, while G22(s) describes how cv2 responds after a change in mv2. The<br />
interaction effects are modelled using transfer functions G21(s) and G12(s). G21(s)<br />
describes how cv2 changes with respect to a change in mv1 while G12(s) describes<br />
how cv1 changes with respect to a change in mv2.<br />
1 For sake of simplicity during these, and subsequent discussions only (2 x 2) processes will be considered.<br />
3
For the CSTR shown in figure (1) mv1 could be the coolant flowrate, while mv2 could<br />
be the flowrate of the reactant. The output cv1 may be the reactor temperature while<br />
the output cv2 would be the effluent concentration.<br />
The mathematical model written in matrix-vector notation<br />
The elements within the blocks of Figure (2) are transfer functions, defining the<br />
relationship between the respective input output pairs. As usual, the following<br />
general transfer function description will be used,<br />
−sϑ kpe Gp()= s<br />
τ s + 1<br />
p<br />
where kp is a process gain, τp the process time constant and θ the process time<br />
delay. Note that each of the 4 blocks in Figure (2) will have different parameters that<br />
must be determined.<br />
Referring to fig. 2., on a loop by loop basis, the outputs of the system model are<br />
related to the inputs as follows,<br />
Loop 1: cv1 = G11 mv1 + G12mv2 (2)<br />
Loop 2: cv2 = G21 mv1 + G22mv2 (3)<br />
Equations (2) and (3) may be expressed more compactly in matrix-vector notation<br />
as:<br />
cv = G mv (4)<br />
where cv = [cv1, cv2] T ; mv = [mv1 mv2] T<br />
G G<br />
and, G =<br />
G G<br />
⎡<br />
⎢<br />
⎣<br />
11 12<br />
21 22<br />
⎤<br />
⎥<br />
⎦<br />
Note that this is a matrix of transfer function elements.<br />
Incorporation of load disturbance terms into the systems model<br />
Thus far, only the “major” part of the process has been considered. In many<br />
situations, processes are influenced by external factors such as changes in ambient<br />
conditions, changes in the quality of raw materials; changes in the operating<br />
environment and so on. To cater for these effects, load disturbance terms may also<br />
(1)<br />
4
e incorporated within the model. Incorporation of load disturbance terms in the<br />
model representation leads to the following expression:<br />
cv = Gmv + Gddv (5)<br />
G<br />
⎣0<br />
0<br />
G<br />
d<br />
where Gd<br />
= and [ dv ,dv ]<br />
⎡ 1 ⎤<br />
⎢ ⎥ dv = 1 2<br />
d 2<br />
⎦<br />
The block diagram representation of this system model is given by,<br />
u 1<br />
u 2<br />
d 1<br />
G 11 (s)<br />
G 21 (s)<br />
G 12 (s)<br />
G 22 (s)<br />
d 2<br />
G d1 (s)<br />
+<br />
+<br />
+<br />
G d2 (s)<br />
y 1<br />
Loop 1<br />
Loop 2<br />
Fig. 3. Incorporating load disturbances into the system model<br />
In other words, disturbances are added to the process output in exactly the same<br />
fashion as considered for single loop systems in process control 1.<br />
Worked Example<br />
Consider the following mixing process,<br />
f 2<br />
f 1<br />
<strong>Control</strong> objective: regulate fo and c # to desired levels<br />
c #<br />
y 2<br />
f o<br />
5
Manipulated variables: f1 and f2<br />
Assume that the system is a two component system. Let f1 be the flowrate (kg/hr) of<br />
stream 1, f2 be the flowrate of stream 2 (kg/hr) while fo is the total flowrate. Also, if c1<br />
and c2 are the mass fractions of component A in each stream and c # the mass<br />
fraction of component A in the mixed stream:<br />
1. What are the material balance equations for this system ?<br />
2. Develop a linear (2 x 2) model representation by linearisation of the material<br />
balance equations around the following steady-state operating point, fo = 100<br />
kg/hr, c # = 60% with c1=80% and c2=20%.<br />
3. If the dynamics of the mixed streams concentration and measurement sensors<br />
and are characterised by the following expressions,<br />
m<br />
f o<br />
Gm()= s 1 = and Gms f<br />
o<br />
−sϑ2 e c<br />
= =<br />
1 c<br />
m<br />
() #<br />
i.e measurement of flow is assumed instantaneous, while the measurement of mass<br />
fraction is assumed to be affected by an analyser delay (which is modelled as a pure<br />
time delay process). Develop the overall linearised dynamic model of the system.<br />
Draw the block diagram representation of the system.<br />
Solution<br />
1) The overall mass balance is given by,<br />
fo = f1 + f2<br />
The component balance is given by,<br />
foc # =f1c1 + f2c2<br />
2) We require the mathematical relationship between the two outputs and the two<br />
manipulated variables. Equation (7) provides one expression. Rewriting the material<br />
balance equations (7) and (8) gives the other as,<br />
c<br />
# =<br />
fc + fc<br />
f + f<br />
1 1 2 2<br />
1 2<br />
Equation (1) is linear however, equation (3) is not a linear function. To linearise the<br />
relationship between c # and the manipulated variables, fo and f1 it is necessary to<br />
use a 1 st order Taylor series expansion of equation (9) around the steady-state<br />
(6)<br />
(7)<br />
(8)<br />
(9)<br />
6
operating point (see the Appendix for an explanation about linearisation via the<br />
Taylor series). The basic structure of the linear equation is:<br />
#<br />
#<br />
'<br />
# dc ' dc '<br />
c = f f<br />
df df<br />
⎛ ⎞<br />
⎜ ⎟ +<br />
⎝ ⎠<br />
⎛ ⎞<br />
1 ⎜ ⎟ 2<br />
⎝ ⎠<br />
1<br />
ss 2 ss<br />
The following partial differentials are required 2<br />
dc<br />
df<br />
#<br />
1<br />
f2( c1 − c2)<br />
=<br />
2 and<br />
( f + f )<br />
dc<br />
df<br />
1 2<br />
This gives the linearised model,<br />
c<br />
#<br />
2<br />
f1( c1 c2)<br />
= 2<br />
( f f )<br />
− −<br />
+<br />
1 2<br />
f ( c − c ) f ( c c )<br />
= [ ] f + [<br />
]<br />
( f + f ) ( f f )<br />
− −<br />
2 1 2<br />
1 1 2<br />
2 1<br />
+<br />
f<br />
(10)<br />
'<br />
#<br />
ss<br />
'<br />
2 ss<br />
'<br />
2 (11)<br />
1 2<br />
1 2<br />
where c # ’ = c # - c # ss , f1’ = f1 - f1ss and f2’ = f2 - f2ss are deviation variables.<br />
To calculate the steady-state conditions required by equation (12), solve the material<br />
balance. We have two algebraic expressions,<br />
100 = f1 + f2<br />
0.6*100 = 0.8*f1 + 0.2*f2<br />
Solving for f1 and f2 gives,<br />
Therefore,<br />
f1 = 66 2 /3 kg/hr and f2 = 33 1 /3 kg/hr<br />
(13)<br />
c#’ = 2x10 -3 f1’ + (-4x10 -3 )f2’ (14)<br />
where c # ’ = c # -0.6, f1’ = f1 - 66 2 /3 and f2’ = f2 - 33 1 /3<br />
Using a block diagram to visualise this system model we have,<br />
du ( / v)<br />
2<br />
To do this differentiation I have used the quotient rule, i.e =<br />
dx<br />
v du<br />
−<br />
dx<br />
v<br />
2<br />
u dv<br />
dx<br />
7
f 1<br />
f 2<br />
and this may be written as,<br />
Summary<br />
1<br />
1<br />
2 x 10 -3<br />
-4 x 10 -3<br />
m<br />
⎡ fo() s ⎤ ⎡ 1 1<br />
⎢ ⎥ = ⎢ 3 3<br />
⎣ c s x e x e<br />
m () ⎦ ⎣210<br />
− 410<br />
+<br />
+<br />
f o<br />
c # 2<br />
⎤ f () s<br />
⎥<br />
⎦ f () s<br />
⎡ 1 ⎤<br />
⎢ ⎥<br />
⎣ 2 ⎦<br />
1<br />
e s − θ<br />
− −θs − −θ<br />
s<br />
(15)<br />
So far, these notes have introduced multivariable systems modelling by<br />
consideration of a 2 x 2 (2 input - 2 output) representation. The block diagram<br />
representation is used to clearly illustrate system dynamics and interactions. Once a<br />
mathematical model of the system has been developed, and the presence of<br />
process interactions identified, the next stage of the control design procedure is to<br />
synthesise the control law.<br />
With multivariable systems, where loop interactions exist, configuration of two single<br />
loop PI(D) controllers could cause system instability, or at the very least result in<br />
poor control performance. This can be overcome by,<br />
• choosing a manipulated variable - controlled variable pairing so that system<br />
interactions are minimised. The basic question for a 2 x 2 system is do we want<br />
mv1-cv1, mv2-cv2 (i.e. mv1 to control cv1 and mv2 to control cv2) or the other way<br />
round ?<br />
• the design a multivariable controller that achieves non interacting control.<br />
Design of multivariable controllers will be considered later in the course. The next<br />
section of the notes concentrates on a systematic technique for choosing a<br />
manipulated variable - controlled variable pairing so that system interactions are<br />
minimised.<br />
f o m<br />
c m<br />
8
The Relative Gain Array (RGA)<br />
One of the most important factors, common to all process control applications, is the<br />
correct (best) pairing of the manipulated and controlled variables. A number of<br />
quantitative techniques are available to assist in the selection process. One of the<br />
earliest methods proposed was the Relative Gain Array (RGA), Bristol (1966). The<br />
original technique is based upon the open loop steady state gains of the process<br />
and is relatively simple to interpret 2 .<br />
Determining relative gains from process experiments<br />
Consider the 2x2 system shown in Figure 2. Suppose mv2 remains constant, then a<br />
step change in mv1 of magnitude ∆mv1 will produce a change ∆cv1 in output cv1.<br />
Thus, the gain between mv1 and cv1 when mv2 is kept constant is given by:<br />
g11|mv2 = ∆<br />
cv<br />
∆mv<br />
mv<br />
1<br />
1<br />
2<br />
If instead of keeping mv2 constant, cv2 is now kept constant by closing the loop<br />
between cv2 and mv2. A step change in mv1 of magnitude ∆mv1 will result in another<br />
change in cv1. The gain in this case is denoted by:<br />
g11|y2 = ∆<br />
cv<br />
∆mv<br />
cv<br />
1<br />
1<br />
2<br />
The gain relationships, equations (16) and (17) may have different values. If<br />
interaction exists, then the change in cv1 due to a change in mv1 for the two cases<br />
when mv2 and cv2 are kept constant, will be different.<br />
The ratio: λ11 = g11|<br />
mv2<br />
(18)<br />
g<br />
|<br />
11 cv2<br />
is a dimensionless value and it defines the relative gain between the output cv1 and<br />
the input mv1.<br />
Interpretation of the relative gain<br />
1. λij = 1. There is no interaction with other control loops.<br />
2. λij = 0. Manipulated input, i, has no affect on output, j.<br />
2 As no information about the process dynamics is used a "health-warning" should be attached to the results<br />
although in practice the interpretation is normally valid.<br />
(16)<br />
(17)<br />
9
3. λij = 0.5. There is a high degree of interaction. The other control loops have the<br />
same effect on the output, j, as the manipulated input, i.<br />
4. 0.5 < λij < 1. There is interaction between the control loops. However, this would<br />
be the preferable pairing as it would minimise interactions.<br />
5. λij > 1. The interaction reduces the effect gain of the control loop. Higher<br />
controller gains are required.<br />
6. λij > 10. The pairing of variables with large RGA elements is undesirable. It can<br />
indicate a system sensitive to small variations in gain and possible problems<br />
applying model based control techniques.<br />
7. λij < 0. Care must be taken with negative RGA elements. Negative off-diagonal<br />
elements indicate that closing the loop will change the sign of the effective gain.<br />
More importantly, negative diagonal elements can indicate ‘integral instability’ i.e.<br />
the control loop is unstable for any feedback controller.<br />
Elements of the RGA<br />
For the 2 x 2 process, three other relative gain elements can be defined yielding the<br />
matrix,<br />
Ω 3 ⎡λ11<br />
λ12<br />
⎤ ⎡ λ11 1−<br />
λ11⎤<br />
= ⎢<br />
λ21 λ<br />
⎥ = ⎢<br />
⎣ 22 ⎦ ⎣1<br />
− λ11 λ<br />
⎥<br />
11 ⎦<br />
Determining relative gains from process models<br />
A computational method is possible if a steady-state model of the system is<br />
available. If this model is given by:<br />
cv1 = g11mv1 + g12mv2<br />
cv2 = g21mv1+ g22mv2<br />
then g11|mv2 = (∂cv1/∂mv1)|mv2 = g11<br />
Eliminating mv2 from the steady-state relationships, Eqs. (19) and (20), results in:<br />
from which:<br />
cv1 = g11mv1 + g12(cv2-g21 mv1)/g22<br />
g11|cv2 = (∂cv1/∂mv1)|cv2 = g11-g12 g21/g22<br />
3 A property of the RGA is that the rows and columns sum to 1.<br />
(19)<br />
(20)<br />
(21)<br />
10
The relative gain λ11 is therefore given by: λ11 = g<br />
g<br />
Therefore: λ11 =<br />
A general calculation procedure for the RGA<br />
11<br />
11<br />
| u2<br />
| y2<br />
g<br />
=<br />
11<br />
g11<br />
g g<br />
−<br />
g<br />
12 21<br />
22<br />
1<br />
1− ( g12g21)/( g11g22 )<br />
Skogestad (1987) demonstrated that the RGA calculation can be expressed in<br />
matrix notation, facilitating computation for systems larger than 2x2.<br />
( )<br />
RGA G G T<br />
= .*<br />
−1<br />
where, G is the process gain matrix, '.* ' represents Schur (element by element)<br />
matrix multiplication, [.] -1 denotes a matrix inverse and [.] T is the transpose operator.<br />
The mixing example revisited: calculation of the RGA<br />
For the mixing process the following two control schemes are possible:<br />
F 1 , x 1<br />
F 2 , x 2<br />
F 1 , x 1<br />
F 2 , x 2<br />
CC<br />
FC<br />
Mixer<br />
CC<br />
Mixer<br />
FC<br />
CT<br />
FT<br />
FT<br />
CT<br />
F , x<br />
(22)<br />
(23)<br />
F , x<br />
Now that the steady-state gain matrix has been calculated, it is possible to use the<br />
RGA to determine the "best" manipulated variable control variable pairings.<br />
11
Calculating the RGA in Matlab<br />
To illustrate how the RGA is calculated in Matlab, consider the steady-state gain<br />
matrix of the mixer,<br />
⎡ 1 1<br />
G = ⎢<br />
⎣210<br />
x − 410 x<br />
−3 −3<br />
⎤<br />
⎥<br />
⎦<br />
Enter the MATLAB environment and enter the commands preceeded by the<br />
MATLAB prompt ‘>>’. The text after the ‘%’ is intended to tell you what you are doing<br />
(and should not be typed).<br />
% enter the steady-state gain matrix<br />
>>g = [1 1 ; 2e-3 -4e-3]<br />
% calculate the RGA 4<br />
>> rga = g.*inv(g’)<br />
This should give the result,<br />
rga =<br />
0.6667 0.3333<br />
0.3333 0.6667<br />
In other words, the RGA analysis suggests f1 should be used to control fo, while f2<br />
should be used to control c #<br />
Exercises<br />
1. Simulate the following transfer function representation of a 2 x 2 process using<br />
simulink<br />
4 In Matlab, inv calculates the inverse of a matrix while ‘calculates the transpose of the matrix<br />
12
mv 1<br />
mv 2<br />
1<br />
10s + 1<br />
1<br />
20s + 1<br />
− 02 .<br />
5s+ 1<br />
08 .<br />
10s + 1<br />
a) discuss the dynamic response characteristics of cv1 and cv2 with respect to<br />
changes in mv1 and mv2.<br />
b) Tune two PI(D) controllers the first to control cv1 using mv1 and the second to<br />
control cv2 using mv2. (use the simulink simulation environment). Make critical<br />
comments on the functionality of the system.<br />
Summary<br />
Using a simple process example these notes have:<br />
• introduced the concept of systems interaction.<br />
• demonstrated how multivariable systems can be represented (modelled).<br />
• introduced the relative gain array (RGA).<br />
• shown how the RGA may be used to select loop pairings.<br />
If the RGA indicates little interaction within the system then it may be possible to use<br />
single loop controllers. In some situations this may not be possible in which case it<br />
will be necessary to develop a multivariable control law. The design of multivariable<br />
controllers will be covered in detail in later lectures.<br />
+<br />
+<br />
cv 1<br />
cv 2<br />
13
Appendix: Linearisation<br />
Given a function,<br />
dx<br />
dt<br />
= f ( x)<br />
Expand f(x) using a Taylor series around xo,<br />
df<br />
f ( x) = f ( xo)<br />
+ ( ) x ( x− x<br />
o o)<br />
(Ignoring higher order terms)<br />
dx<br />
<strong>Control</strong> system models are always expressed in terms of deviation variables. That<br />
deviation (or difference) being the difference between the actual value and a steadystate<br />
value. If xss is the steady-state value of x, then,<br />
and so,<br />
dx<br />
dt<br />
ss<br />
= f ( x ) = 0<br />
ss<br />
d( x−xss ) df<br />
= ( ) x ( x− x<br />
ss ss)<br />
dt dx<br />
or, if the deviation variable is defined as x’=x-xss,<br />
'<br />
d( x ) df<br />
= ( )<br />
dt dx<br />
x ss<br />
x<br />
'<br />
This concept generalises if there is more than one variable. For instance if there are<br />
two variables we have,<br />
df<br />
' df<br />
f ( x1, x2)<br />
= ( ) , x1<br />
+<br />
( )<br />
dx<br />
dx<br />
1<br />
x1, ss x2, ss x1, ss , x2,<br />
ss<br />
2<br />
x<br />
'<br />
2<br />
14