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.


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 What Is a Cell Array? (MATLAB) 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).

See Also


Related Examples

More About