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
tf
with 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).