Main Content


Options for stable-unstable decomposition


opts = stabsepOptions
opts = stabsepOptions('OptionName', OptionValue)


opts = stabsepOptions returns the default options for the stabsep command.

opts = stabsepOptions('OptionName', OptionValue) accepts one or more comma-separated name/value pairs. Specify OptionName inside single quotes.

Input Arguments

Name-Value Pair Arguments


Focus of decomposition. Specified as one of the following values:

'stable'First output of stabsep contains only stable dynamics.
'unstable'First output of stabsep contains only unstable dynamics.

Default: 'stable'


Accuracy loss factor for stable/unstable decomposition. Positive scalar values. When decomposing a model G(s), stabsep ensures that the frequency responses of G and G1 + G2 differ by no more than SepTol times the absolute accuracy of the computed value of G(s). Increasing SepTol helps separate nearby stable and unstable modes at the expense of accuracy.

Default: 10


Offset for the stable/unstable boundary. Positive scalar value. The first output of stabsepincludes only poles satisfying:

Continuous time:

  • Re(s) < -Offset * max(1,|Im(s)|) (Focus = 'stable')

  • Re(s) > Offset * max(1,|Im(s)|) (Focus = 'unstable')

Discrete time:

  • |z| < 1 - Offset (Focus = 'stable')

  • |z| >1 + Offset (Focus = 'unstable')

Increase the value of Offset to treat poles close to the stability boundary as unstable.

Default: 0

For additional information on the options and how to use them, see the stabsep reference page.


Compute the stable/unstable decomposition of the system given by:


Use the Offset option to force stabsep to exclude the pole at s = 10–6 from the stable term of the stable/unstable decomposition.

G = zpk(-.5,[-1e-6 -2+5i -2-5i],10); 
opts = stabsepOptions('Offset',.001); % Create option set
[G1,G2] = stabsep(G,opts)   % treats -1e-6 as unstable

These commands return the result:

-0.17241 (s-54)
(s^2 + 4s + 29)
The pole at s = 10–6 is in the second (unstable) output.

See Also

Introduced in R2010a