Está en la página 1de 9

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
% CRITERIO DE JURY CON RETROALIMENTACIÓN
%
%Este programa esta orientado a determinar la ganancia K de tal manera
que%
%los valores en que oscila esta variable hagan que el sistema sea
estable.%
%
%
%El criterio de Jury, analiza un sistema de lazo cerrado de una planta.
%
%Determinando las raices del polinomio sin encontrar dichas raices.
%
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
% + ___ _______
% --->{X}---| K |---->| G(s) |---------->
% - ^ ¯¯¯ ¯¯¯¯¯¯¯ |
% | ________ |
% --------| F(s) |<---------
% ¯¯¯¯¯¯¯¯

clc
disp(' CRITERIO JURY ');
disp('ESTABILIDAD DE UN SISTEMA CON REALIMENTACION UNITARIA ');
disp(' ');
disp('SELECCIONE UNA OPCIÓN :');
disp(' 1: PARA UNA FUNCION DE TRANSFERENCIA EN EL PL "s" ');
disp(' 2: PARA FUNCION DE LA PLANTA EN ZPK ');
disp(' 3: PARA UNA FUNCION DE TRANSFERENCIA EN EL PL "Z"');
w=input('SELECCIONE LA OPCION : ');
disp(' ');

switch w
%LOS DATOS FUERON INGRESADOS EN EL PLANO s
case 1
T = input('Ingrese el valor de tiempo de muestreo : T = ');
num = input('Ingrese coeficientes del numeradorz PL "s" : num = ');
den = input('Ingrese coeficientes del denominador PL "s": den = ');
disp('LA FUNCION DE TRANSFERENCIA DE LA PLANTA ES : Gp(s) = ');
Gp = tf(num,den)
disp(' ');
disp(' ');
disp('LA FUNCION DE TRANSF. DISCRETA DE LA PLANTA : G(z) = ');
Gz = c2d(Gp,T,'zoh')
pause

%LOS DATOS FUERON INGRESADOS POR POLOS Y CEROS


case 2
Z = input('Ingrese vector de ceros : Z = ');
P = input('Ingrese vector de polos : P = ');
K = input('Ganancia es igual a : K = ');
disp('LA FUNCION DE TRANSFERENCIA DE LA PLANTA ES : Gp(s) = ');
Gp = zpk(Z,P,K)
clc
disp(' ');
T = input('Ingrese el perido de muestreo : T = ');
disp(' ');
disp('LA FUNCION DE TRANSF. DISCRETA DE LA PLANTA : G(z) = ');
Gz = c2d(Gp,T,'zoh')
pause

%LOS DATOS FUERON INGRESADOS EN EL PLANO z


case 3
T = input('Ingrese el periodo de muestreo : T = ');
num = input('Ingrese coeficientes del numerador PL "z" : num = ');
den = input('Ingrese coeficientes del denominador PL "z": den = ');
disp('LA FUNCION DE TRANSFERENCIA DE LA PLANTA ES : G(z) = ');
Glz = tf(num,den);
Gz=c2d(Glz,T,'zoh')
pause
end

[numz,denz] = tfdata(Gz,'v');
syms K
Pz = denz + K*numz;
EcuaCaract = (poly2sym(Pz,'z'));

disp('EL POLINOMIO CARACTERISTICO ES : P(z)=')


disp(EcuaCaract)
n = length(Pz);
disp('EL ORDEN DE LA ECUACION CARACTERISTICA ES : N = ')
N = length(denz)-1;
disp(N)
an = Pz(n);
a0 = Pz(1);

%%%%%%%%A QUE NUMERO DE ORDEN PERTENECE LA ECUACION CARACTERISTICA%%%%%%%


%

X=N-1;
switch X

%%%%%% SISTEMA DE ORDEN 2%%%%%%


case 1
pz1=sym2poly(Pz(1));
pz2=sym2poly(Pz(2));
pz3=sym2poly(Pz(3));
fprintf('COEFICIENTES DEL POLINOMIO CARACTERISTICO\n')
fprintf(' a2z^2 a1z a0\n')
fprintf('%10d %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.2f',pz1,pz2,pz3)
pause
disp(' ');
for i=1:n
a1(i)=Pz(i);
end
disp('[a2, a1, a0]')
a=fliplr(a1);
disp(a)
aa1=sym2poly(a(1));
aa2=sym2poly(a(2));
aa3=sym2poly(a(3));
fprintf('%10d %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f
%8.2f\n',aa3,aa2,aa1);
disp(' ');
disp('[a0, a1, a2,]')
disp(a1);
fprintf('%10d %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f
%8.2f\n',aa1,aa2,aa3);
pause
disp(' ');
disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 1:')
disp('|a3|<a0 ')
disp('___________________________________________________________________
_')

Limite1 = solve(abs(an)-a0,'K');
Max1 =double(Limite1(1))
Min1 =double(Limite1(2))
disp(' ');
pause
clc
disp(' ');
disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 2:')
disp('P(z)|z=1>0')
disp('___________________________________________________________________
_')
z=1;
Pz1 = eval(EcuaCaract)
Pz11=sym2poly(Pz1);
fprintf('coeficientes del polinomio Pz1\n')
disp(Pz11)
Min2=solve(Pz1,'K');
Min2 =double((Min2))
pause
clc
disp(' ');
disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 3:')
disp('P(z)|z=-1>0 por ser par')
disp('___________________________________________________________________
_')
z= - 1;
Pz2 = eval(EcuaCaract)
Pz22=sym2poly(Pz2);
fprintf('coeficientes del polinomio Pz2\n')
disp(Pz22)
Max2 = solve(Pz2,'K');
Max2 = double((Max2))
pause
clc
disp(' ');

%%%%%% SISTEMA DE ORDEN 3%%%%%%


case 2
pz1=sym2poly(Pz(1));
pz2=sym2poly(Pz(2));
pz3=sym2poly(Pz(3));
pz4=sym2poly(Pz(4));
fprintf('COEFICIENTES DEL POLINOMIO CARACTERISTICO\n')
fprintf(' a3z^3 a2z^2 a1z
a0z\n')
fprintf('%10d %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f
%8.2f',pz1,pz2,pz3,pz4)

disp(' ');
for i=1:n
a1(i)=Pz(i);
end

disp('[a3, a2, a1, a0]')


a=fliplr(a1);
disp(a)
aa1=sym2poly(a(1));
aa2=sym2poly(a(2));
aa3=sym2poly(a(3));
aa4=sym2poly(a(4));
fprintf('%10d %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f
%8.2f\n',aa4,aa3,aa2,aa1)
disp(' ');
disp('[a0, a1, a2, a3]')
disp(a)
fprintf('%10d %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f
%8.2f\n',aa1,aa2,aa3,aa4)

pause

j=[Pz(end) Pz(end-1);Pz(1) Pz(2)];


k=[Pz(end) Pz(1);Pz(1) Pz(end)];
l=[Pz(end) Pz(2);Pz(1) Pz(end-1)];
B0=det(j)
R0=sym2poly(B0);
fprintf('COEFICIENTES DE LA MATRIZ B0\n')
disp(R0)

B1=det(l)
R1=sym2poly(B1);
fprintf('COEFICIENTES DE LA MATRIZ B1\n')
disp(R1)

B2=det(k)
R2=sym2poly(B2);
fprintf('COEFICIENTES DE LA MATRIZ B2\n')
disp(R2)
pause

disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 1:')
disp('|a3|<a0 ')

disp('___________________________________________________________________
_')
Limite1 = solve(abs(an)-a0,'K');
Max1 =double(Limite1(1))
Min1 =double(Limite1(2))
disp(' ');
pause
clc
disp(' ');

disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 2:')
disp('P(z)|z=1>0')

disp('___________________________________________________________________
_')
z=1;
Pz1 = eval(EcuaCaract)
Pz11=sym2poly(Pz1);
fprintf('coeficientes del polinomio Pz1\n')
disp(Pz11)
Min2=solve(Pz1,'K');
Min2 =double((Min2))
pause
clc
disp(' ');

disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 3:')
disp('P(z)|z=-1<0 por ser impar')

disp('___________________________________________________________________
_')
z= - 1;
Pz2 = eval(EcuaCaract)
Pz22=sym2poly(Pz2);
fprintf('coeficientes del polinomio Pz2\n')
disp(Pz22)
Max2 = solve(Pz2,'K');
Max2 = double((Max2))
pause
clc
disp(' ');
disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 4:')
disp('|b2|>|b0|')

disp('___________________________________________________________________
_')
Limite2 = solve(abs(B2)-abs(B0),'K');
Max1 =double(Limite2(1))
Min1 =double(Limite2(2))
Max2 =double(Limite2(3))
Min2 =double(Limite2(4))
disp(' ');
pause
clc
disp(' ');

%%%%%% SISTEMA DE ORDEN 4%%%%%%


case 3
pz1=sym2poly(Pz(1));
pz2=sym2poly(Pz(2));
pz3=sym2poly(Pz(3));
pz4=sym2poly(Pz(4));
pz5=sym2poly(Pz(5));
fprintf('COEFICIENTES DEL POLINOMIO CARACTERISTICO\n')
fprintf(' a4z^4 a3z^3 a2z^2
a1z a0z\n')
fprintf('%10d %13.4f %13.4f %13.4f %13.4f %13.4f %13.4f
%13.2f',pz1,pz2,pz3,pz4,pz5)

pause
disp(' ');
for i=1:n
a1(i)=Pz(i);
end
disp('[a4, a3, a2, a1, a0]')
a=fliplr(a1);
aa1=sym2poly(a(1));
aa2=sym2poly(a(2));
aa3=sym2poly(a(3));
aa4=sym2poly(a(4));
aa5=sym2poly(a(5));
disp(a)
disp(' ');
fprintf('%10d %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f
%8.2f\n',aa1,aa2,aa3,aa4,aa5)
disp(' ')
disp('[a0, a1, a2, a3, a4]')
disp(' ')
disp(a1)
fprintf('%10d %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f
%8.2f\n',aa5,aa4,aa3,aa2,aa1)
disp(' ')

pause
j=[Pz(end) Pz(end-1);Pz(1) Pz(2)];
k=[Pz(end) Pz(3);Pz(1) Pz(3)];
l=[Pz(end) Pz(2);Pz(1) Pz(end-1)];
m=[Pz(end) Pz(1);Pz(1) Pz(end)];
B0=det(j)
R0=sym2poly(B0);
fprintf('COEFICIENTES DE LA MATRIZ B0\n')
disp(R0)

B1=det(l)
R1=sym2poly(B1);
fprintf('COEFICIENTES DE LA MATRIZ B1\n')
disp(R1)

B2=det(k)
R2=sym2poly(B2);
fprintf('COEFICIENTES DE LA MATRIZ B2\n')
disp(R2)

B3=det(m)
R3=sym2poly(B3);
fprintf('COEFICIENTES DE LA MATRIZ B3\n')
disp(R3)

pause
j1=[B3 B2;B0 B1];
k1=[B3 B1;B0 B2];
l1=[B3 B0;B0 B3];

C0=det(j1)
P0=sym2poly(C0);
fprintf('COEFICIENTES DE LA MATRIZ C0\n')
disp(P0)

C1=det(k1)
P1=sym2poly(C1);
fprintf('COEFICIENTES DE LA MATRIZ C1\n')
disp(P1)

C2=det(l1)
P2=sym2poly(C2);
fprintf('COEFICIENTES DE LA MATRIZ C2\n')
disp(P2)
pause
disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 1:')
disp('|a3|<a0 ')
disp('___________________________________________________________________
_')
Limite1 = solve(abs(an)-a0,'K');
Max1 =double(Limite1(1))
Min1 =double(Limite1(2))
disp(' ');
pause
clc
disp(' ');
disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 2:')
disp('P(z)|z=1>0')
disp('___________________________________________________________________
_')
z=1;
Pz1 = eval(EcuaCaract)
Pz11=sym2poly(Pz1);
fprintf('coeficientes del polinomio Pz1\n')
disp(Pz11)
Min2=solve(Pz1,'K');
Min2 =double((Min2))
pause
clc
disp(' ');
disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 3:')
disp('P(z)|z=-1>0 por ser par')
disp('___________________________________________________________________
_')
z= - 1;
Pz2 = eval(EcuaCaract)
Pz22=sym2poly(Pz2);
fprintf('coeficientes del polinomio Pz2\n')
disp(Pz22)
Max2 = solve(Pz2,'K');
Max2 = double((Max2))
pause
clc
disp(' ');
disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 4:')
disp('|b3|>|b0|')
disp('___________________________________________________________________
_')
Limite2 = solve(abs(B3)-abs(B0),'K');
Max1 =double(Limite2(1))
Min1 =double(Limite2(2))
Max2 =double(Limite2(3))
Min2 =double(Limite2(4))
disp(' ');
pause
clc
disp(' ');
disp('___________________________________________________________________
_')
disp('PARA LA CONDICION 5:')
disp('|c2|>|c0|')
disp('___________________________________________________________________
_')
Limite3 = solve(abs(C2)-abs(C0),'K');
Max11 =double(Limite3(1))
Min11 =double(Limite3(2))
Max21 =double(Limite3(3))
Min21 =double(Limite3(4))
disp(' ');
pause
clc
disp(' ');
end

También podría gustarte