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
MathWorks Support Team 2022 年 9 月 15 日
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 Center および File ExchangePassivity 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