[adsense:responsibe:9545213979]
y
y
s=%s; g=2/(s*(s^2+s+1)); gs=syslin('c',g); //Calculo de los polos de g p=roots(denom(gs)) //Calculo de la derivada, para ptos ingreso dk=derivat(-1/gs) ptsingreso=roots(numer(dk)) //Calculo de los angulos de salida aux=p(2)-p(1); aux2=atan(imag(aux),real(aux)); ap2p1=360*aux2/(2*%pi) asal=180-90-ap2p1 //Lugar de las raices de g clf; evans(gs) xgrid; mtlb_axis([-2 2 -2 2]); //Calculo de el polo dominante ts=10; mp=0.1 sig=4/ts; wd=-%pi*sig/log(mp) s1=-sig+%i*wd; //Angulo del sistema en s1 gs1=horner(gs,s1); anggs1=atan(imag(gs1),real(gs1)); aux=360*anggs1/(2*%pi) //Angulo total del compensador de adelanto angc=180-aux //Angulo de compensador de adelanto n=4 angc1=angc/n aux2=2*angc1*%pi/(360); //Calculo del polo del compensador a=-0.4; longitud=imag(s1)*tan(aux2) b=a-longitud //Compensador sin la Kc gc=(s-a)^n/(s-b)^n; //Vamos a calcular la Kc del compensador gt=gc*g; gts=syslin('c',gt); aux3=abs(horner(gt,s1)); kc=1/aux3 //Vamos a comprobar que el resultado esta bien gt2=kc*gt; gcgs1=horner(gt2,s1) //Calculo asintota sistema compensado ptosgt=roots(numer(derivat(1/gts))) //Representacion del lugar de las raices del sistema compensado: clf; evans(gt2) xgrid; mtlb_axis([-5 0.5 -4 4]) //respuesta a un escalon de todo el sistema glc=gt2/. 1 ; t=0:0.1:10; y=csim('step',t,glc); clf xgrid; plot(t,y)
Añadir nuevo comentario