Control System Toolbox™ software supports transfer functions that are continuous-time or discrete-time, and SISO or MIMO. You can also have time delays in your transfer function representation.

A SISO continuous-time transfer function is expressed as the ratio:

$$G\left(s\right)=\frac{N\left(s\right)}{D\left(s\right)},$$

of polynomials *N*(*s*)
and *D*(*s*), called the numerator and denominator polynomials, respectively.

You can represent linear systems as transfer functions in polynomial or factorized (zero-pole-gain) form. For example, the polynomial-form transfer function:

$$G\left(s\right)=\frac{{s}^{2}-3s-4}{{s}^{2}+5s+6}$$

can be rewritten in factorized form as:

$$G\left(s\right)=\frac{\left(s+1\right)\left(s-4\right)}{\left(s+2\right)\left(s+3\right)}.$$

The `tf`

model object represents transfer functions in
polynomial form. The `zpk`

model object represents transfer
functions in factorized form.

MIMO transfer functions are arrays of SISO transfer functions. For example:

$$G\left(s\right)=\left[\begin{array}{c}\frac{s-3}{s+4}\\ \frac{s+1}{s+2}\end{array}\right]$$

is a one-input, two output transfer function.

Use the commands described in the following table to create transfer functions.

Command |
Description |
---|---|

`tf` |
Create |

`zpk` |
Create |

`filt` |
Create |

This example shows how to create continuous-time single-input, single-output
(SISO) transfer functions from their numerator and denominator coefficients using
`tf`

.

Create the transfer function $$G\left(s\right)=\frac{s}{{s}^{2}+3s+2}$$:

num = [1 0]; den = [1 3 2]; G = tf(num,den);

`num`

and `den`

are the numerator and
denominator polynomial coefficients in descending powers of *s*.
For example, `den = [1 3 2]`

represents the denominator polynomial *s*^{2} + 3*s* + 2.

`G`

is a `tf`

model object, which is a data
container for representing transfer functions in polynomial form.

Alternatively, you can specify the transfer function
*G*(*s*) as an expression in
*s*:

Create a transfer function model for the variable

*s*.s = tf('s');

Specify

*G*(*s*) as a ratio of polynomials in*s*.G = s/(s^2 + 3*s + 2);

This example shows how to create single-input, single-output (SISO) transfer
functions in factored form using `zpk`

.

Create the factored transfer function $$G\left(s\right)=5\frac{s}{\left(s+1+i\right)\left(s+1-i\right)\left(s+2\right)}$$:

Z = [0]; P = [-1-1i -1+1i -2]; K = 5; G = zpk(Z,P,K);

`Z`

and `P`

are the zeros and poles (the roots
of the numerator and denominator, respectively). `K`

is the gain of
the factored form. For example, *G*(*s*) has a
real pole at *s* = –2 and a pair of complex poles at
*s* = –1 ± *i*. The
vector `P = [-1-1i -1+1i -2]`

specifies these pole
locations.

`G`

is a `zpk`

model object, which is a data
container for representing transfer functions in zero-pole-gain (factorized) form.