MIMO Transfer Functions
MIMO transfer functions are two-dimensional arrays of elementary SISO transfer functions. There are two ways to specify MIMO transfer function models:
Concatenation of SISO transfer function models
Using
tfwith cell array arguments
Concatenation of SISO Models
Consider the following single-input, two-output transfer function.
You can specify H(s) by concatenation of its SISO entries. For instance,
h11 = tf([1 -1],[1 1]); h21 = tf([1 2],[1 4 5]);
or, equivalently,
s = tf('s')
h11 = (s-1)/(s+1);
h21 = (s+2)/(s^2+4*s+5);
can be concatenated to form H(s).
H = [h11; h21]
This syntax mimics standard matrix concatenation and tends to be easier and more readable for MIMO systems with many inputs and/or outputs.
Tip
Use zpk instead of tf to
create MIMO transfer functions in factorized
form.
Using the tf Function with Cell Arrays
Alternatively, to define MIMO transfer functions using tf,
you need two cell arrays (say, N and D) to
represent the sets of numerator and denominator polynomials, respectively. See Cell Arrays for more details on cell arrays.
For example, for the rational transfer matrix H(s), the
two cell arrays N and D should contain the
row-vector representations of the polynomial entries of
You can specify this MIMO transfer matrix H(s) by typing
N = {[1 -1];[1 2]}; % Cell array for N(s)
D = {[1 1];[1 4 5]}; % Cell array for D(s)
H = tf(N,D)
Transfer function from input to output...
s - 1
#1: -----
s + 1
s + 2
#2: -------------
s^2 + 4 s + 5
Notice that both N and D have
the same dimensions as H. For a general MIMO transfer
matrix H(s), the cell array
entries N{i,j} and D{i,j} should
be row-vector representations of the numerator and denominator of Hij(s),
the ijth entry of the transfer matrix H(s).