Why does getPassiveIndex incorrectly compute the output passivity index, rho?
2 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2022 年 9 月 15 日
回答済み: MathWorks Support Team
2022 年 12 月 22 日
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
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Passivity and Sector Bounds についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!