Why does getPassiveIndex incorrectly compute the output passivity index, rho?

2 次查看(过去 30 天)
Why does "getPassiveIndex" in Control System Toolbox MATLAB R2020a calculate a wrong value of the output passivity index?
Given the following syntax, rho should be 0.2
>> H = tf([1 0],[1 0.2 1]);
>> [rho,freq] = getPassiveIndex(H,'output')
rho =
-Inf
freq =
NaN
Why is rho calculated as "-Inf"?

采纳的回答

MathWorks Support Team
This is a limitation of the approach used to compute the output passivity index. We use a frequency-domain test which is only valid when "H" has no zero on the imaginary axis or at infinity, see Theorem 11 in
https://www.researchgate.net/publication/347232443_Sector_bounds_in_stability_analysis_and_control_design
Both conditions are not satisfied here, which is why "getPassiveIndex" returns rho = -Inf. You can recover the expected result by adding a small feedthrough to work around these technical issues:
>> [rho,freq] = getPassiveIndex(H+1e-4,'output')
rho =
  2.0000e-01
freq =
   1
In general, systems where passivity fails to hold strictly tend to be numerically problematic.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Passivity and Sector Bounds 的更多信息

产品


版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by