def hsvd(sys):
"""Compute Hankel singular values of a linear system.
Parameters
----------
sys : :data:`linear_system_like`
Linear system representation.
Returns
-------
``(len(sys),) np.array``
Hankel singular values.
See Also
--------
:class:`.Hankel`
:func:`.balanced_transformation`
References
----------
.. [#] Glover, Keith, and Jonathan R. Partington. "Bounds on the
achievable accuracy in model reduction." Modelling, robustness and
sensitivity reduction in control systems. Springer Berlin
Heidelberg, 1987. 95-118.
.. [#] https://www.mathworks.com/help/control/ref/hsvd.html
"""
sys = LinearSystem(sys)
R, O = control_gram(sys), observe_gram(sys)
# sort needed to be consistent across different versions
return np.sort(np.sqrt(abs(eig(np.dot(O, R))[0])))[::-1]
评论列表
文章目录