Atraso Adelanto

19
GUIA DE PROGRAMAS, Jean Carlos Aquino Quispe function ejemplo1 %programa para una red de adelanto n=input('ingrese el numerador n=') d=input('ingrese el denominador d=') wn=input('ingrese el deseado la wn=') e=input('ingrese el factor e=') %sistema sin compensar %cuando te dan POLO DESEADO PA METER WN Y E %sigma=2 %wd=2*sqrt(3) %s1=-sigma+j*wd %wn=sqrt((sigma^2)+(wd^2)) %e=sigma/wn %cuando te da ts y mp %ts=4; %mp=0.2; %sigma=4/ts; %---%Mp =exp(-sigma*pi/wd) %wd=eval(solve('mp=exp(-sigma*pi/wd)')); %--%polos del sistema continuo %s1=-sigma+j*wd %wn=sqrt((sigma^2)+(wd^2)) %e=sigma/wn disp('funcion de transferencia a lazo abierto') la=tf(n,d) disp('funcion de transferencia a lazo cerrado') lc=feedback(la,1) %hallamos los polos y ceros dominantes de la ft p=pole(lc) p0=length(p) z=zero(lc) z0=length(z) %hallemos la frecuencia natural no mortiguada y factor de amortiguamiento [Wn,Z] = damp(lc) %Wn = abs(log(lambda))/Ts %Z = -cos(angle(log(lambda))) disp('observara el LGR del sistema sin compensar en figure(1)') figure(1) rlocus(la) title('sistema sin compensar') disp('observara rspta en el tiempo del sistema sin compensar en figure(2)') figure(2) step(lc) title('sistema sin compensar') %para poder hallar el sistema compensado hallar los polos deseados disp('hallando los polos deseados') UNIVERSIDAD NACIONAL DE SAN AGUSTIN Página 1

description

Atraso Adelanto

Transcript of Atraso Adelanto

GUIA DE PROGRAMAS, Jean Carlos Aquino Quispe

function ejemplo1%programa para una red de adelanton=input('ingrese el numerador n=')d=input('ingrese el denominador d=')wn=input('ingrese el deseado la wn=')e=input('ingrese el factor e=')%sistema sin compensar%cuando te dan POLO DESEADO PA METER WN Y E%sigma=2%wd=2*sqrt(3)%s1=-sigma+j*wd%wn=sqrt((sigma^2)+(wd^2))%e=sigma/wn%cuando te da ts y mp%ts=4;%mp=0.2;%sigma=4/ts;%---%Mp =exp(-sigma*pi/wd) %wd=eval(solve('mp=exp(-sigma*pi/wd)'));%--%polos del sistema continuo %s1=-sigma+j*wd%wn=sqrt((sigma^2)+(wd^2))%e=sigma/wndisp('funcion de transferencia a lazo abierto')la=tf(n,d)disp('funcion de transferencia a lazo cerrado')lc=feedback(la,1)%hallamos los polos y ceros dominantes de la ftp=pole(lc)p0=length(p)z=zero(lc)z0=length(z)%hallemos la frecuencia natural no mortiguada y factor de amortiguamiento[Wn,Z] = damp(lc)%Wn = abs(log(lambda))/Ts %Z = -cos(angle(log(lambda)))disp('observara el LGR del sistema sin compensar en figure(1)')figure(1)rlocus(la)title('sistema sin compensar')disp('observara rspta en el tiempo del sistema sin compensar en figure(2)')figure(2)step(lc)title('sistema sin compensar')%para poder hallar el sistema compensado hallar los polos deseadosdisp('hallando los polos deseados')pd1=-1*e*wn+wn*(sqrt(1-(e)^2))*ipd2=conj(pd1)% APLICAR CONDICION DE ANGULO %hallando zeros y polos en lazo abiertoz1=roots(n)p2=roots(d) %hallamos la deficiencia angular,%sumatoria angulos de ceros - Sumatoria%angulos de polos = -180[q,w]=size(p2);[t,r]=size(z1);angsp=(180/pi)*angle(-e*wn-p2+wn*(sqrt(1-(e)^2))*i)angsz=(180/pi)*angle(-e*wn-z1+wn*(sqrt(1-(e)^2))*i)sumang=0;for a=1:q sumang=sumang+angsp(a,w)enddisp('sumang')def=sumang-180% hallando por el compensador en adelanto, hallando la ubicacion de el zero% y el polo.por el metodo de la bisectriz hallaremos las ubicaciones del polo y zero%para el polo en controlador adelanto(pca)disp('localizacion del polo')angpca=(((180/pi)*angle(pd1))/2)-(def/2);pca=-1*((wn*(sqrt(1-(e)^2)))/(tan(angpca*pi/180))+1*e*wn)disp('localizacion del zero')anh=(((180/pi)*angle(pd1))/2)-(def/2);anj=((180/pi)*angle(pd1)-90);angzca=anj-anh;zca=-1*(1*e*wn-((wn*(sqrt(1-(e)^2)))*(tan(angzca*pi/180))))%hallando la ganancia K, se tendra que realizar por medio de la condicion%de magnitud, se tiene, primero la nueva planta(funcion de transferencia% mas el compensador en adelando.n1=[1 -zca];d1=[1 -pca];[n2,d2]=series(n,d,n1,d1);disp('funcion de transferencia a lazo abierto sin kc')sc=tf(n2,d2)s=pd1;gla1=poly2sym(n2,'z')/poly2sym(d2,'z');z=pd1;mag = abs(eval(gla1));disp('la ganancia es kc= ')kc=1/mag%respuesta en el tiempo del sistema sin compensardisp('funcion de transferencia con kc')disp('funcion de transferencia con el compensador en lazo abierto')sc1=kc*scdisp('funcion de transferencia con el compensador en lazo cerrado')sct=feedback(sc1,1)figure(3)step(sct,'g')%sitema compensadohold off%hallamos para el sistema compensadofigure(4)sla=la;rlocus(sla,'r')%sistema sin compensarhold onrlocus(sc1,'g')%sistema compensadohold offgridfigure(5)sct1=sct;step(sct1,'g')%sitema compensadofunction ejemplo2% programa para resolver sistema compensado en atrason=input('ingrese el numerador n=')d=input('ingrese el denominador d=')kv=input('ingrese la cte. error estatico k^v=')disp('funcion de transferencia a lazo abierto')la=tf(n,d)disp('funcion de transferencia a lazo cerrado')lc=feedback(la,1)%hallamos los polos y ceros dominantes de la ftp=pole(lc)z=zero(lc)%hallemos la frecuencia natural no mortiguada y factor de amortiguamiento[Wn,Z] = damp(lc)denr=input('ingrese el denominador en lazo cerrado con rampa')lc1=tf(n,denr);figure(1)rlocus(la)figure(2)step([1],[1 0])hold onstep(lc1)hold offaxis([0 40 0 40])%calcular la cte de error estatico.sistema no compensado%kv=lim(s-0).(s*G(s)), la s se va con una s del G(s),p=pole(la)lp=length(p)p1=abs(p);p2=p1(2:(lp))lp2=length(p2);multilpik=1;for k=1:lp2 multilpik=multilpik*p2(k)endam=multilpikkv1=(n/am)%ahora hallamos Bykc ,por parte del k^v ykvdisp('kc*B*kv1=k^v')B=input('eliga B=')%ahora obtenida B,Elegimos el cero y el polo del compensador de atraso (cercanos,%cerca al origen y T grande)disp('Elegimos el cero y el polo del compensador de atraso (cercanos,cerca al origen y T grande')n1=input('ingrese (1/T) del compensador atraso n1=')%halla del cero el TT=(1/n1)%se obtiene ahora EL POLO DE(1/TB)d2=(1/(T*B))disp('poner el polo domante pdomLC')pdomLC=input('ingrese el polo dominante LC=')sigma=-1*(real(pdomLC));wd=imag(pdomLC);s1=-sigma+j*wd;wn=sqrt((sigma^2)+(wd^2));e=sigma/wn;angp=(180/pi)*angle(-e*wn+d2+wn*(sqrt(1-(e)^2))*i)angz=(180/pi)*angle(-e*wn+n1+wn*(sqrt(1-(e)^2))*i)def=angz-angpwhile def1;y=(pca/zca)B=(kv*y/(kc*kv1))%ahora obtenida B,Elegimos el cero y el polo del compensador de atraso (cercanos,%cerca al origen y T grande)disp('Elegimos el cero y el polo del compensador de atraso (cercanos,cerca al origen y T grande')zpc=input('ingrese (1/T) del compensador atraso zpc=')%halla del cero zpc ,el TT=(1/zpc)%se obtiene ahora EL POLO DE(1/TB)ppc=(1/(T*B))%del polo deseado tenemossigma=-1*(real(pd1))wd=imag(pd1)s1=-sigma+j*wdwn1=sqrt((sigma^2)+(wd^2))e1=sigma/wnangp=(180/pi)*angle(-e1*wn1+ppc+wn1*(sqrt(1-(e1)^2))*i)angz=(180/pi)*angle(-e1*wn1+zpc+wn1*(sqrt(1-(e1)^2))*i)def=angz-angpwhile def