Function Reference    
zpk

Specify zero-pole-gain models or convert LTI model to zero-pole-gain form

Syntax

Description

zpk is used to create zero-pole-gain models (ZPK objects) or to convert TF or SS models to zero-pole-gain form.

Creation of Zero-Pole-Gain Models

sys = zpk(z,p,k) creates a continuous-time zero-pole-gain model with zeros z, poles p, and gain(s) k. The output sys is a ZPK object storing the model data (see "LTI Objects" on page 2-3).

In the SISO case, z and p are the vectors of real- or complex-valued zeros and poles, and k is the real- or complex-valued scalar gain.

Set z or p to [] for systems without zeros or poles. These two vectors need not have equal length and the model need not be proper (that is, have an excess of poles).

You can also use rational expressions to create a ZPK model. To do so, use either:

Once you specify either of these variables, you can specify ZPK models directly as real- or complex-valued rational expressions in the variable s or z.

To create a MIMO zero-pole-gain model, specify the zeros, poles, and gain of each SISO entry of this model. In this case:

See below for a MIMO example.

sys = zpk(z,p,k,Ts) creates a discrete-time zero-pole-gain model with sample time Ts (in seconds). Set Ts = -1 or Ts = [] to leave the sample time unspecified. The input arguments z, p, k are as in the continuous-time case.

sys = zpk(M) specifies a static gain M.

sys = zpk(z,p,k,ltisys) creates a zero-pole-gain model with generic LTI properties inherited from the LTI model ltisys (including the sample time). See "Generic Properties" on page 2-26 for an overview of generic LTI properties.

To create an array of ZPK models, use a for loop, or use multidimensional cell arrays for z and p, and a multidimensional array for k.

Any of the previous syntaxes can be followed by property name/property value pairs.

Each pair specifies a particular LTI property of the model, for example, the input names or the input delay time. See set entry and the example below for details. Note that

is a shortcut for the following sequence of commands.

Zero-Pole-Gain Models as Rational Expressions in s or z

You can also use rational expressions to create a ZPK model. To do so, first type either:

Once you specify either of these variables, you can specify ZPK models directly as rational expressions in the variable s or z by entering your transfer function as a rational expression in either s or z.

Conversion to Zero-Pole-Gain Form

zsys = zpk(sys) converts an arbitrary LTI model sys to zero-pole-gain form. The output zsys is a ZPK object. By default, zpk uses zero to compute the zeros when converting from state-space to zero-pole-gain. Alternatively,

uses inversion formulas for state-space models to compute the zeros. This algorithm is faster but less accurate for high-order models with low gain at .

Variable Selection

As for transfer functions, you can specify which variable to use in the display of zero-pole-gain models. Available choices include (default) and for continuous-time models, and (default), , or for discrete-time models. Reassign the 'Variable' property to override the defaults. Changing the variable affects only the display of zero-pole-gain models.

Example

Example 1

Specify the following zero-pole-gain model.

To do this, type

Example 2

Convert the transfer function

to zero-pole-gain form by typing

Example 3

Create a discrete-time ZPK model from a rational expression in the variable z, by typing

Algorithm

zpk uses the MATLAB function roots to convert transfer functions and the functions zero and pole to convert state-space models.

See Also
frd         Convert to frequency response data models

get         Get properties of LTI models

set         Set properties of LTI models

ss          Convert to state-space models

tf          Convert to TF transfer function models

zpkdata     Retrieve zero-pole-gain data


  zgrid zpkdata