Computing output passivity index of a simple system using getPassiveIndex
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am trying to compute the output passivity index of the system,
by calling
H = tf([1 0],[1 0.2 1]);
[rho,freq] = getPassiveIndex(H,'output')
The results in
rho = -Inf
freq = NaN
However, based on the definition of output passivity index here, I think the value of rho should be 0.2.
If we did
rho = 0.2;
Hc = feedback(H,0.2,+1)
isPassive(Hc)
we get a system that is just passive, and increasing rho any further would result in a closed loop system that is not passive.
Intuitively also, this makes sense. H is the transfer function from force to velocity of a (passive) spring-mass-dashpot system. 0.2 is the damping coefficient, and may be thought of as the surplus passivity that the system has.
I am wondering why getPassiveIndex doesn't return an output passivity index of 0.2, and if I am interpreting something incorrectly.
0 commentaires
Réponse acceptée
nick
le 6 Mai 2024
Hi Siva,
This is a limitation of the approach used for computation of the "getPassiveIndex". The frequency-domain test used is only valid when "H" has no zero on the imaginary axis or at infinity.
Both conditions are not satisfied here resulting in rho = -Inf. You can add a small feedback to work around this issue and recover the appropriate rho as shown :
[rho,freq] = getPassiveIndex(H+1e-4,'output')
You may refer to the following MATLAB answer to know more about limitation of "getPassiveIndex" :
Hope this helps.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Passivity and Sector Bounds dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!