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!