Criterio de Jury

Fazer download em txt, pdf ou txt
Fazer download em txt, pdf ou txt
Você está na página 1de 8

encontrar K segun el criterio de jury PARA SISTEMAS DE ORDEN 4

clear all
K=1;
Ts=1;
% se el sistema en lazo abierto
nc=[K*1];
dc1=[1 2];
dc2=[1 1];
dc3=[1 3-10i];
dc4=[1 3+10i];
dc5=conv(dc4,dc3);
dc6=conv(dc2,dc5);
dc=conv(dc6,dc1);
printsys(nc,dc,'S')
[nz,dz]=c2dm(nc,dc,Ts,'zoh');
printsys(nz,dz,'Z')
%retroalimentando el sistema en forma unitaria
[nlz,dlz]=cloop(nz,dz);
printsys(nlz,dlz,'Z')

a0=[0 1]
a11=[nz(2) dz(2)]
a22=[nz(3) dz(3)]
a33=[nz(4) dz(4)]
a44=[nz(5) dz(5)];
%Coeficientes del polinomio caracteristico
pzz=[a0 a11 a22 a33]
%primera condicion
k1a=(1-a44(2))/a44(1)
k1b=(-1-a44(2))/a44(1)
%segunda condicion
x1=a0+a11+a22+a33+a44;
k2=-x1(2)/x1(1)
%tercera condicion
x2=a0-a11+a22-a33+a44;
k3=-x2(2)/x2(1)
%cuarta condicion
%para b
b3=conv(a44,a44)-conv(a0,a0);
b0=conv(a44,a11)-conv(a0,a33);
b1=conv(a44,a22)-conv(a0,a22);
b2=conv(a44,a33)-conv(a0,a11);
s=conv(b3,b3)-conv(b0,b0);
ku=roots(s)
%para c
c2=conv(b3,b3)-conv(b0,b0);
c0=conv(b3,b1)-conv(b2,b0);
r=conv(c2,c2)-conv(c0,c0);
ky=roots(r)

%%
%encontrar K segun el criterio de jury PARA SISTEMAS DE ORDEN 3

clear all
K=1;
Ts=1;
% se el sistema en lazo abierto
nc=[K*1];
dc1=[1 3];
dc2=[1 -0.2-10i];
dc3=[1 -0.2+10i];
dc4=conv(dc3,dc2);
dc=conv(dc4,dc1);
printsys(nc,dc,'S')
[nz,dz]=c2dm(nc,dc,Ts,'zoh');
printsys(nz,dz,'Z')
%retroalimentando el sistema en forma unitaria
[nlz,dlz]=cloop(nz,dz);
printsys(nlz,dlz,'Z')

a0=[0 1];
a11=[nz(2) dz(2)];
a22=[nz(3) dz(3)];
a33=[nz(4) dz(4)];
%a44=[nz(5) dz(5)];
%Coeficientes del polinomio caracteristico
pzz=[a0 a11 a22 a33];
%primera condicion
k1a=(1-a33(2))/a33(1)
k1b=(-1-a33(2))/a33(1)
%segunda condicion
x1=a0+a11+a22+a33;
k2=-x1(2)/x1(1)
%tercera condicion
x2=a0-a11+a22-a33;
k3=-x2(2)/x2(1)
%cuarta condicion
%para b
%b3=conv(a44,a44)-conv(a0,a0);
b0=conv(a33,a11)-conv(a0,a22);
%b1=conv(a44,a22)-conv(a0,a22);
b2=conv(a33,a33)-conv(a0,a0);
s=conv(b2,b2)-conv(b0,b0);
ku=roots(s)
%para c
%c2=conv(b3,b3)-conv(b0,b0);
%c0=conv(b3,b1)-conv(b2,b0);
%r=conv(c2,c2)-conv(c0,c0);
%ky=roots(r)

%%
%error en estado estacionario
%la planta en tiempo continuo y lazo abierto
nc=[1];
dc1=[1 2];
dc2=[1 0.5+10i];
dc3=[1 0.5-10i];
dca=conv(dc2,dc3);
dc=conv(dc1,dca);
printsys(nc,dc)
%encontramos elsistema en el dominio z
[nz,dz]=c2dm(nc,dc,1);
printsys(nz,dz,'Z')
%%
clear all
Ts=1;
K=135;
% se el sistema en lazo abierto
nc=[K*1];
dc1=[1 2];
dc2=[1 2.5];
dc3=[1 1-5i];
dc4=[1 1+5i];
dc5=conv(dc4,dc3);
dc6=conv(dc2,dc5);
dc=conv(dc6,dc1);
printsys(nc,dc,'S')
[nz,dz]=c2dm(nc,dc,Ts,'zoh');

rlocus(tf(nz,dz))
grid
[nlz,dlz]=cloop(nz,dz);
printsys(nlz,dlz,'Z')
rlocus(tf(nz,dz))
grid
pause
a=polyval(nz,1);
b=polyval(dz,1);
kp=a/b;
ess=1/(1+kp)
dstep(nlz,dlz)

%%
%si entrada es rampa
%error en estado estacionario
%la planta en tiempo continuo y lazo abierto
%mejorar en un B%
B=40;
nc=[1];
dc1=[1 0];
dc2=[1 2];
dc3=[1 4];
a=[1 0];
dca=conv(dc2,dc3);
dc=conv(dc1,dca);
printsys(nc,dc)
ncl=conv(nc,dc1);
[q,r]=deconv(dc,ncl);
Kvc=1/polyval(q,0)
ess=1/Kvc
%calculando el valor de K para mejorar un B%
K=1/(1-B/100)

%encontramos el sistema en el dominio z


[nz,dz]=c2dm(nc,dc,1,'zoh');
f=[1 -1];
o=[1 0];
printsys(nz,dz,'Z')
nzz=conv(f,nz);
dzz=conv(dz,o);
printsys(nzz,dzz,'Z')
a=polyval(nzz,1);
b=polyval(dz,1);
kv=a/b
ess=1/kv
a=round(roots(nzz))
b=round(roots(dzz))
[i,u]=size(a);
[j,m]=size(b);
for y=1:i
for x=1:j
if a(y) == b(x)
a(y)=0
b(x)=0
end
end
end
a
b

%dstep(nlz,dlz)
%%
nc=1;
dc2=[1 2];
dc3=[1 4];
a=[1 0];
dc=conv(dc2,dc3);
%dc=conv(dc1,dca);
printsys(nc,dc)
[nz,dz]=c2dm(nc,dc,1,'zoh');
printsys(nz,dz,'Z')
a=polyval(nz,1)
b=polyval(dz,1)
Kv=a/b

%%
nz=[0.6321 0];
dz=[1 -1.368 0.3679];
printsys(nz,dz,'Z')
f=[1 -1];
o=[1 0];
nzz=conv(f,nz);
dzz=conv(dz,o);
printsys(nzz,dzz,'Z')
[q,r]=deconv(nzz,dzz)
%%
% determinar la planta para el calculo del pid
nc=[1];
dc1=[1 3];
dc2=[1 2-10i];
dc3=[1 2+10i];
dca=conv(dc3,dc2);
dc=conv(dc1,dca)
printsys(nc,dc)
Gp=tf(nc,dc)

%Gp=zpk([],[-1 -2 -3],1)

%%
a0=[0 1];
a1=[0.051984 -0.9639];
a2=[0.065377 0.15091];
a3=[0.0037993 -0.0052475];
ax=[0 0 1];
a4=conv(a3,a3)
b2=a4-ax
a5=conv(a3,a1)
a6=conv(a2,a0)
b0=a5-a6
bu=conv(b2,b2)-conv(b0,b0)
roots(bu)
%%
%calculo del error de estado estcionario en tiempo continuo y discreto
Ts=1;
K=5.41172;
%K=1;
nc=[K*1];
dc1=[1 1];
dc2=[1 2];
dc3=[1 3];
dc4=[1 4];
dc5=conv(dc1,dc2);
dc6=conv(dc3,dc5);
dc=conv(dc4,dc6);
printsys(nc,dc,'S')
rlocus(tf(nc,dc))
grid
pause
step(nc,dc)
grid
pause
[nlc,dlc]=cloop(nc,dc);
printsys(nlc,dlc,'S')
rlocus(tf(nc,dc))
grid
pause
step(nlc,dlc)
grid
a=polyval(nc,0);
b=polyval(dc,0);
kp=a/b;
ess=1/(1+kp)

pause
[nz,dz]=c2dm(nc,dc,Ts,'zoh');
printsys(nz,dz,'Z')
rlocus(tf(nz,dz))
grid
[nlz,dlz]=cloop(nz,dz);
printsys(nlz,dlz,'Z')
rlocus(tf(nz,dz))
grid
pause
a=polyval(nz,1);
b=polyval(dz,1);
kp=a/b;
ess=1/(1+kp)
dstep(nlz,dlz)
%%
%ecuacion de estado retroalimentacion y referencia
nc=1;
dc1=[1 1.5];
dc2=[1 2];
dc3=[1 2.5];
dc4=conv(dc1,dc2);
dc=conv(dc3,dc4);
printsys(nc,dc)
%encontramos la ecuacion de estado
[A,B,C,D]=tf2ss(nc,dc)
%polinomio optimo deseado
wn=10;
dc3=[1 1.75*wn 2.15*power(wn,2) power(wn,3)];
p=roots(dc3);
%determinamos si es controlable
%y observable
ob=rank(obsv(A,C));
co=rank(ctrb(A,B));
[M,N]=size(A);
%calcula la ganancia K si
%cumple la condicion de observable y controlable
%|S*I-A+B*K|
if ob == M
if co == M
K=acker(A,B,p)
else
disp 'no es controlable ni obs'
end
end
A1=A-B*K;
[nc,dc]=ss2tf(A1,B,C,D);
Ko=polyval(dc,0)/polyval(nc,0)

%%
clear all
K=1;
Ts=1;
% se el sistema en lazo abierto
nc=[K*1];
%dc1=[1 0];
%dc2=[1 3];
%dc3=[1 2.5];
%dc4=conv(dc1,dc2);
%dc=conv(dc3,dc4);
dc=[6 3.7 5 0];
printsys(nc,dc,'S')
[nz,dz]=c2dm(nc,dc,Ts,'zoh');
printsys(nz,dz,'Z')
%retroalimentando el sistema en forma unitaria
[nlz,dlz]=cloop(nz,dz);
printsys(nlz,dlz,'Z')

a0=[0 1]
a11=[nz(2) dz(2)]
a22=[nz(3) dz(3)]
a33=[nz(4) dz(4)]
%Coeficientes del polinomio caracteristico
pzz=[a0 a11 a22 a33]
%primera condicion
k1a=(1-a33(2))/a33(1)
k1b=(-1-a33(2))/a33(1)
%segunda condicion
x1=a0+a11+a22+a33;
k2=-x1(2)/x1(1)
%tercera condicion
x2=-a0+a11-a22+a33;
k3=-x2(2)/x2(1)
%cuarta condicion
b2=conv(a33,a33)-conv(a0,a0);
b0=conv(a33,a11)-conv(a0,a22);
s=conv(b2,b2)-conv(b0,b0);
ku=roots(s)

%%
%encontrar K segun el criterio de jury PARA SISTEMAS DE ORDEN 3

clear all
K=1;
Ts=1;
% se el sistema en lazo abierto
nc=[K*1];
dc1=[1 4];
dc2=[1 0.2-10i];
dc3=[1 0.2+10i];
dc4=conv(dc3,dc2);
dc=conv(dc4,dc1);
printsys(nc,dc,'S')
[nz,dz]=c2dm(nc,dc,Ts,'zoh');
printsys(nz,dz,'Z')
%retroalimentando el sistema en forma unitaria
[nlz,dlz]=cloop(nz,dz);
printsys(nlz,dlz,'Z')
a0=[0 1];
a11=[nz(2) dz(2)];
a22=[nz(3) dz(3)];
a33=[nz(4) dz(4)];
%a44=[nz(5) dz(5)];
%Coeficientes del polinomio caracteristico
pzz=[a0 a11 a22 a33];
%primera condicion
k1a=(1-a33(2))/a33(1)
k1b=(-1-a33(2))/a33(1)
%segunda condicion
x1=a0+a11+a22+a33;
k2=-x1(2)/x1(1)
%tercera condicion
x2=a0-a11+a22-a33;
k3=-x2(2)/x2(1)
%cuarta condicion
%para b
%b3=conv(a44,a44)-conv(a0,a0);
b0=conv(a33,a11)-conv(a0,a22);
%b1=conv(a44,a22)-conv(a0,a22);
b2=conv(a33,a33)-conv(a0,a0);
s=conv(b2,b2)-conv(b0,b0);
ku=roots(s)
%para c
%c2=conv(b3,b3)-conv(b0,b0);
%c0=conv(b3,b1)-conv(b2,b0);
%r=conv(c2,c2)-conv(c0,c0);
%ky=roots(r)

Você também pode gostar