Main Content

Zero-Pole

Model system using zero-pole-gain transfer function

  • Zero-Pole block

Libraries:
Simulink / Continuous

Description

The Zero-Pole block models a system that you define by specifying the zeros, poles, and gain of a Laplace-domain transfer function. You can use this block to model single-input single-output (SISO) and single-input multiple-output (SIMO) systems.

The Zero-Pole block has these requirements:

  • The transfer function must have the form

    H(s)=KZ(s)P(s)=K(sZ(1))(sZ(2))(sZ(m))(sP(1))(sP(2))(sP(n)),

    where Z represents the zeros, P represents the poles, and K represents the gain of the transfer function.

  • The number of poles must be greater than or equal to the number of zeros.

  • Complex poles and zeros must be complex-conjugate pairs.

  • For a multiple-output system, all transfer functions must have the same poles. The zeros can differ in value, but the number of zeros for each transfer function must be the same.

Tip

To model a multiple-output system in which the transfer functions have different numbers of zeros or a single zero each, use multiple Zero-Pole blocks.

Model Single-Output Systems

A single-output system has scalar time-domain input and output signals. To model this type of system:

  1. Enter a vector for the zeros of the transfer function in the Zeros field.

  2. Enter a vector for the poles of the transfer function in the Poles field.

  3. Enter a scalar for the gain of the transfer function in the Gain field.

Model Multiple-Output Systems

A multiple-output system has a scalar time-domain input signal and a vector time-domain output signal. Each element in the vector output is an output of the system. To model this type of system:

  1. Enter a matrix of zeros in the Zeros field.

    Each column of the matrix contains the zeros of a transfer function that relates the system input signal to one of the elements in the output signal.

  2. Enter a vector for the poles common to all transfer functions of the system in the Poles field.

  3. Enter a vector of gains in the Gain field.

    Each element is the gain of the corresponding transfer function in the zeros matrix.

Examples

Ports

Input

expand all

The scalar time-domain input signal for the system.

Data Types: double

Output

expand all

Output of the system modeled as a zero-pole-gain transfer function, provided as a scalar or vector signal.

  • When modeling a single-output system, the block produces a scalar time-domain signal.

  • When modeling a multiple-output system, the block produces a vector, where each element of the vector is an output of the system.

Data Types: double

Parameters

expand all

Define the matrix of zeros.

  • For a single-output system, enter a vector for the zeros of the transfer function.

  • For a multiple-output system, enter a matrix. Each column of this matrix contains the zeros for a transfer function that relates the system input to an element of the output vector.

  • To model a system without zeros, enter [].

Programmatic Use

Block Parameter: Zeros
Type: string | character vector
Value: vector | matrix
Default: '[1]'

Define the vector of poles.

  • For a single-output system, enter a vector for the poles of the transfer function.

  • For a multiple-output system, enter a vector for the poles common to all transfer functions of the system.

Programmatic Use

Block Parameter: Poles
Type: string | character vector
Value: vector
Default: '[0 -1]'

Define the vector of gains.

  • For a single-output system, enter a 1-by-1 vector for the gain of the transfer function.

  • For a multiple-output system, enter a vector of gains. Each element is the gain of the corresponding transfer function in the zeros matrix.

Programmatic Use

Block Parameter: Gain
Type: string | character vector
Value: vector
Default: '[1]'

Specify whether the zeros, poles, and gains are tunable in accelerator and rapid accelerator simulations and in simulations deployed using Simulink® Compiler™.

  • Auto — The software determines the level of parameter tunability.

  • Optimized — The software generates an optimized representation of the zeros, poles, and gain for accelerator, rapid accelerator, and deployed simulations. The zeros, poles, and gain values in the optimized representation are not tunable.

  • Unconstrained — The values of the Zeros, Poles, and Gain parameters are tunable between accelerator, rapid accelerator, and deployed simulations.

Programmatic Use

Block Parameter: ParameterTunability
Type: string | character vector
Values: 'Auto' | 'Optimized' | 'Unconstrained'
Default: 'Auto'

Variable-step solvers use absolute and relative tolerances to determine whether the error in state calculations is acceptable when choosing the step size. This parameter specifies the absolute tolerance to use for states in the system implemented by this block.

  • auto — Use the absolute tolerance specified by the Absolute tolerance configuration parameter.

  • Real, positive, scalar — Use the specified value as the absolute tolerance for all states.

  • Real, positive vector — Specify an absolute tolerance for each state. The number of elements in the vector must be the same as the number of states in the system.

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: AbsoluteTolerance
Values: 'auto' (default) | "-1" | positive real scalar | positive real vector
Data Types: string | char

Example: set_param("MyModel/Descriptor State-Space",AbsoluteTolerance="-1")

If you do not specify a custom name for every state in the system:

  • Each specified name is used for more than one state.

  • The number of states must be evenly divisible by the number of specified names.

For example, if the system has four states, you must specify one, two, or four names. If you specify two names, the first two states use the first name and the last two states use the second name.

To specify a single custom state name using the Property Inspector or the Block Parameters dialog box, include single quotes ('') around the name. For example, to specify the name position, enter 'position'. If you omit the single quotes, the software interprets the value as the name of a MATLAB® variable.

To use default state names, specify this parameter as an empty character vector ('').

Programmatic Use

To set the block parameter value programmatically, use the set_param function.

To get the block parameter value programmatically, use the get_param function.

Parameter: ContinuousStateAttributes
Values: '' (default)
Data Types: char | cell

Example: set_param("MyModel/Descriptor State-Space",ContinuousStateAttributes={'position','velocity'})

Block Characteristics

Data Types

double

Direct Feedthrough

yes

Multidimensional Signals

no

Variable-Size Signals

no

Zero-Crossing Detection

no

Tips

The appearance of the transfer function in the Zero-Pole block icon depends on how you specify the zero, pole, and gain parameters.

  • If you specify each parameter as an expression or a vector, the block shows the transfer function with the specified zeros, poles, and gain. If you specify a variable in parentheses, the block evaluates the variable.

    For example, the image shows how the block looks when you specify the Zeros parameter as [3 2 1], the Poles parameter as (poles), where poles is a variable with the value [7 5 3 1], and the Gain parameter as gain.

    The Zero-Pole block shows the transfer function with the zero and pole values populated from the block parameter values.

  • If you specify each parameter as a variable, the block shows the name of the variable that defines the value for the Gain parameter followed by a generic transfer function.

    For example, the image shows how the block looks when you specify the Zeros parameter as the variable zeros, the Poles parameter as the variable poles, and the Gain parameter as the variable gain.

    The Zero-Pole block shows the Gain parameter value with a generic transfer function representation.

  • When the block is not large enough to display the transfer function using the parameter values, the transfer function is shown with a numerator of zeros(s) and a denominator of poles(s).

    The Zero Pole block shows the transfer function with a generic numerator and denominator.

Extended Capabilities

expand all

Version History

Introduced before R2006a