Main Content

Poles of dynamic system

returns the poles of the SISO or MIMO dynamic system
model
`P`

= pole(`sys`

)`sys`

. The output is expressed as the reciprocal of the time
units specified in `sys.TimeUnit`

. The poles of a dynamic system
determine the stability and response of the system.

An open-loop linear time-invariant system is stable if:

In continuous-time, all the poles of the transfer function have negative real parts. When the poles are visualized on the complex s-plane, then they must all lie in the left-half plane (LHP) to ensure stability.

In discrete-time, all the poles must have a magnitude strictly smaller than one, that is they must all lie inside the unit circle.

Multiple poles are numerically sensitive and cannot be computed with high accuracy. A pole

*λ*with multiplicity*m*typically results in a cluster of computed poles distributed on a circle with center*λ*and radius of order$$\rho \approx {\epsilon}^{1/m},$$

where ε is the relative machine precision (

`eps`

).For more information on multiple poles, see Sensitivity of Multiple Roots.

If

`sys`

has internal delays, poles are obtained by first setting all internal delays to zero so that the system has a finite number of poles, thereby creating a zero-order Padé approximation. For some systems, setting delays to zero creates singular algebraic loops, which result in either improper or ill-defined, zero-delay approximations. For these systems,`pole`

returns an error.To assess the stability of models with internal delays, use

`step`

or`impulse`

.