Computing output passivity index of a simple system using getPassiveIndex
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuesta aceptada
nick
el 6 de Mayo de 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Passivity and Sector Bounds en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!