20.07.2013 Views

Multivariable Control: An introduction

Multivariable Control: An introduction

Multivariable Control: An introduction

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!