Main Content

Specify Multi-Input Multi-Output Plants

Most MPC applications involve plants with multiple inputs and outputs. You can usess,tf, andzpkto represent a MIMO plant model. For example, consider the following model of a distillation column[1], which has been used in many advanced control studies:

[ y 1 y 2 ] = [ 12.8 e s 16.7 s + 1 18.9 e 3 s 21.0 s + 1 3.8 e 8.1 s 14.9 s + 1 6.6 e 7 s 10.9 s + 1 19.4 e 3 s 14.4 s + 1 4.9 e 3.4 s 13.2 s + 1 ] [ u 1 u 2 u 3 ]

Outputsy1andy2represent measured product purities. The controller manipulates the inputs,u1andu2, to hold each output at a specified setpoint. These inputs represent the flow rates of reflux and reboiler steam, respectively. Inputu3is 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.

Specify the individual transfer functions for each input/output pair. For example,g12is the transfer function from inputu1to outputy2.

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');

Define a MIMO system by creating a matrix of transfer function models.

DC = [g11 g12 g13 g21 g22 g23];

Define the input and output signal names and specify the third input as a measured input disturbance.

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.

Review the resulting system.

DC
DC = From input "Reflux Rate" to output... 12.8 Distillate Purity: exp(-1*s) * ---------- 16.7 s + 1 6.6 Bottoms Purity: exp(-7*s) * ---------- 10.9 s + 1 From input "Steam Rate" to output... -18.9 Distillate Purity: exp(-3*s) * -------- 21 s + 1 -19.4 Bottoms Purity: exp(-3*s) * ---------- 14.4 s + 1 From input "Feed Rate" to output... 3.8 Distillate Purity: exp(-8.1*s) * ---------- 14.9 s + 1 4.9 Bottoms Purity: exp(-3.4*s) * ---------- 13.2 s + 1 Input groups: Name Channels Measured 3 Manipulated 1,2 Output groups: Name Channels Measured 1,2 Continuous-time transfer function.

References

[1] Wood, R. K., and M. W. Berry,Chem. Eng. Sci., Vol. 28, pp. 1707, 1973.

See Also

|||

Related Topics