[adsense:responsibe:9545213979]
s=%s; g=6/(s*(s+2)*(s+3)); gs=syslin('c',g); //Calculo de los polos de g p=roots(denom(gs)) //Angulo de la asintota angas=(p(1)+p(2)+p(3))/3 //Calculo de la derivada, para ptos ingreso dk=derivat(-1/gs) ptsingreso=roots(numer(dk)) //puntos de interseccion con los ejes auxptos=denom(gs) //Lugar de las raices de g clf; evans(gs) xgrid; mtlb_axis([-4 2 -4 4]); //Calculo de el polo dominante ts=5; mp=0.1; sig=4/ts; wd=-%pi*sig/log(mp) s1=-sig+%i*wd; //Angulo del sistema en s1 gs1=horner(gs,s1); angsgs1=atan(imag(gs1),real(gs1)); aux=360*angsgs1/(2*%pi) //Angulo total del compensador de adelanto angc=180-aux //Angulo de s1 auxangs1=atan(imag(s1),real(s1)); angs1=360*auxangs1/(2*%pi) angs1a=angs1-angc auxangs1a=2*%pi*angs1a/360; //Calculo del polo del compensador a=-real(s1)-(imag(s1)/tan(%pi-auxangs1a)) //Compensador sin la Kc gc=s/(s+a); //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) //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) xtitle('Respuesta a un escalon','t','y(t)')
Añadir nuevo comentario