jury test code for stability in digital controls
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I've been asked for a program that performs the jury test,could u help me please since i have never used matlab.
0 commentaires
Réponses (4)
zaynab El Mawass
le 27 Fév 2019
function stability = Jury(coef)
stability=0;
n=size(coef,2);
if(polyval(coef,1)<0)
stability=1;
return
end
if(mod((n-1),2)==0)
if(polyval(coef,-1)<0)
stability=2;
return
end
else
if(polyval(coef,-1)>0)
stability=2;
return
end
if(abs(coef(1)>abs(coef(n))))
stability=3;
return
end
matrice=zeros(n,2*n-3);
for i=1:1:n
matrice(1,i)=coef(i);
matrice(2,i)=coef(n-i+1);
end
for i=3:2:2*n-3
for j=1:1:n-i+2
matrice(i,j)=matrice(i-2,1)*matrice(i-2,j)-matrice(i-1,1)*matrice(i-1,j);
matrice(i,n-j+1)=matrice(i,j);
for k=2:1:j
if(abs(matrice(i,k))>abs(matrice(i,1)))
stability=4;
else
stability=0;
end
end
end
end
end
2 commentaires
Walter Roberson
le 27 Fév 2019
zaynab, I notice that you set stability to 0 or 4 inside the nested for loops, but you do not store the values and you do not return or break upon detecting a particular value. That would result in later iterations overwriting the stability variable. That does not sound appropriate.
Polat Alemdar
le 13 Nov 2022
Modifié(e) : Polat Alemdar
le 13 Nov 2022
This function accepts only numerical inputs. So coefficients of the denominator of TF are determined. In this case, Jury's stability test does not needed. One can find the poles check locations of the poles (inside or outside the unit circle). Jury's stability test is useful for undetermined denominator coefficients.
zaynab El Mawass
le 14 Mar 2019
Hello Walter,
I used the return expression because there is no need to go further in the test if one of the cases is broken. The system is considered directly instable.
As for the numbers, they tell which Jury test condition led to the instability. This a symbolic way.
1 commentaire
Walter Roberson
le 15 Mar 2019
You do not have a break or return in your for i loop, so your loops keep going after you find a case 4.
Le Truc
le 14 Mai 2019
Hello Zaynab. I am come from Viet Nam. I tried your source code, but there is an error with my matlab : "Not enough input arguments". Can you help me to fix?
1 commentaire
Walter Roberson
le 15 Mai 2019
You cannot run this code by clicking the green Run button: you need to go down to the command line and invoke
output_statbility = jury(vector_of_input_coefficients)
such as
output_stability = jury([-1 3.2 71])
riccardo agnesi
le 2 Août 2019
see this, please
https://it.mathworks.com/matlabcentral/fileexchange/72082-jury-stability-criterion?s_tid=srchtitle
0 commentaires
Voir également
Catégories
En savoir plus sur Dynamic System Models 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!