## Transfer Functions

### Transfer Function Representations

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.

### Commands for Creating Transfer Functions

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

Command

Description

`tf`

Create `tf` objects representing continuous-time or discrete-time transfer functions in polynomial form.

`zpk`

Create `zpk` objects representing continuous-time or discrete-time transfer functions in zero-pole-gain (factorized) form.

`filt`

Create `tf` objects representing discrete-time transfer functions using digital signal processing (DSP) convention.

### Create Transfer Function Using Numerator and Denominator Coefficients

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 s2 + 3s + 2.

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

Tip

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

1. Create a transfer function model for the variable s.

`s = tf('s'); `
2. Specify G(s) as a ratio of polynomials in s.

`G = s/(s^2 + 3*s + 2); `

### Create Transfer Function Model Using Zeros, Poles, and Gain

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.