Specifications
Specify Multi-Input Multi-Output (MIMO) Plants
2-17
Specify Multi-Input Multi-Output (MIMO) Plants
Most Model Predictive Control Toolbox applications involve plants having multiple
inputs and outputs. You can use ss, tf, and zpk to represent a MIMO plant model. For
example, consider the following model of a distillation column [11], which has been used
in many advanced control studies:
y
y
e
s
e
s
e
s
s s s
1
2
3 8 1
12 8
16 7 1
18 9
21 0 1
3 8
14 9 1
6
È
Î
Í
˘
˚
˙
=
+
-
+ +
- - -
.
.
.
.
.
.
.
..
.
.
.
.
.
.
6
10 9 1
19 4
14 4 1
4 9
13 2 1
7 3 3 4
e
s
e
s
e
s
s s s- - -
+
-
+ +
È
Î
Í
Í
Í
Í
˘
˚
˙
˙
˙
˙
u
u
u
1
2
3
È
Î
Í
Í
Í
˘
˚
˙
˙
˙
Outputs y
1
and y
2
represent measured product purities. The control objective is to hold
each at specified setpoints. To do so, the controller manipulates inputs u
1
and u
2
, the flow
rates of reflux and reboiler steam, respectively. Input u
3
is a measured feed flow rate
disturbance.
The model consists of six transfer functions, one for each input/output pair. Each transfer
function is the first-order-plus-delay form often used by process control engineers.
The following code shows how to define the distillation column model for use in the
toolbox:
g11 = tf( 12.8, [16.7 1], 'IOdelay', 1.0,'TimeUnit','minutes');
g12 = tf(-18.9, [21.0 1], 'IOdelay', 3.0,'TimeUnit','minutes');
g13 = tf( 3.8, [14.9 1], 'IOdelay', 8.1,'TimeUnit','minutes');
g21 = tf( 6.6, [10.9 1], 'IOdelay', 7.0,'TimeUnit','minutes');
g22 = tf(-19.4, [14.4 1], 'IOdelay', 3.0,'TimeUnit','minutes');
g23 = tf( 4.9, [13.2 1], 'IOdelay', 3.4,'TimeUnit','minutes');
DC = [g11 g12 g13
g21 g22 g23];
DC.InputName = {'Reflux Rate', 'Steam Rate', 'Feed Rate'};
DC.OutputName = {'Distillate Purity', 'Bottoms Purity'};
DC = setmpcsignals(DC, 'MD', 3)
-->Assuming unspecified input signals are manipulated variables.
DC =
From input "Reflux Rate" to output...
12.8