Documentation |
Hankel singular values of dynamic system
hsv = hsvd(sys)
hsv = hsvd(sys,'AbsTol',ATOL,'RelTol',RTOL,'Offset',ALPHA)
hsv = hsvd(sys, opts)
hsvd(sys)
[hsv,baldata] = hsvd(sys)
hsv = hsvd(sys) computes the Hankel singular values hsv of the dynamic system sys. In state coordinates that equalize the input-to-state and state-to-output energy transfers, the Hankel singular values measure the contribution of each state to the input/output behavior. Hankel singular values are to model order what singular values are to matrix rank. In particular, small Hankel singular values signal states that can be discarded to simplify the model (see balred).
For models with unstable poles, hsvd only computes the Hankel singular values of the stable part and entries of hsv corresponding to unstable modes are set to Inf.
hsv = hsvd(sys,'AbsTol',ATOL,'RelTol',RTOL,'Offset',ALPHA) specifies additional options for the stable/unstable decomposition. See the stabsep reference page for more information about these options. The default values are ATOL = 0, RTOL = 1e-8, and ALPHA = 1e-8.
hsv = hsvd(sys, opts) computes the Hankel singular values using the options specified in the hsvdOptions object opts.
hsvd(sys) displays a Hankel singular values plot.
[hsv,baldata] = hsvd(sys) returns additional data to speed up model order reduction with balred. For example
sys = rss(20); % 20-th order model [hsv,baldata] = hsvd(sys); rsys = balred(sys,8:10,'Balancing',baldata); bode(sys,'b',rsys,'r--')
computes three approximations of sys of orders 8, 9, 10.
There is more than one hsvd available. Type
help lti/hsvd
for more information.
Compute Hankel Singular Values
This example illustrates how to compute Hankel singular values.
First, create a system with a stable pole very near to 0, then calculate the Hankel singular values.
sys = zpk([1 2],[-1 -2 -3 -10 -1e-7],1) hsvd(sys) Zero/pole/gain: (s-1) (s-2) ----------------------------------- (s+1) (s+2) (s+3) (s+10) (s+1e-007)
For a better view of the Hankel singular values, switch the plot to log scale by selecting Y Scale > Log from the right-click menu.
Notice the dominant Hankel singular value with 1e5 magnitude, due to the mode s=-1e-7 near the imaginary axis. Set the offset=1e-6 to treat this mode as unstable
hsvd(sys,'Offset',1e-7)
The dominant Hankel singular value is now shown as unstable.
balreal | balred | hsvdOptions