miércoles, 12 de diciembre de 2007

EJEMPLO DE COMPENSADOR DE ADELANTO



%---------------------------------------
%Diseño de un Compensador de Adelanto
%Ogata K, Ingeniería de Control Moderna
%Tercera Edición
%Ejemplo 9.1, pag. 615
%_--------------------------------------

close all, clear all, clc

%Planta
num=4; den=[1 2 0]; planta=tf(num,den);

%Requerimientos de Diseño
kv=20; MFD=50; MG=50;

%Se halla k del Compensador
kva=polyval(num,0)/polyval(deconv(den,[1 0]),0);
k=kv/kva;

%Se continúa el diseño sobre plantaux=k*planta
numaux=k*num; denaux=den; plantaux=tf(numaux,denaux);

%Se halla los vectores de Ganancia (gandB) y Fase (fase)
w=logspace(-1,2,500); [gan,fase]=bode(numaux,denaux,w); gandB=20*log10(gan);

%Se halla el margen de fase: MF
VectIndices=find(gandB<0); indice="VectIndices(1);" mf="180-(-fase(Indice));" color="#33cc00">%Se halla la fase a compensar: Fadic
Fadic=MFD-MF+5;

%alfa
alfa=(1-sin(Fadic*pi/180))/(1+sin(Fadic*pi/180));

%ganancia del compensador
r=20*log10(sqrt(1/alfa));

%Se halla la nueva frecuencia de creuce de ganancia: wm
VectIndice2=find(gandB<-r); Indice2=VectIndice2(1); wm=w(Indice2) %T
T=1/sqrt(alfa)/wm;

%Parámetros del Compensador
Zc=1/T; Pc=1/alfa/T; Kc=k/alfa;
Comp=tf(Kc*[1 Zc],[1 Pc])

%Planta Compensada
PlantaCompensada=series(planta,Comp)

%Respuesta en el Tiempo
figure(1), step(feedback(planta,1)), hold on, grid on
step(feedback(PlantaCompensada,1))

%Respuesta en Frecuencia
figure(2),bode(planta), hold on, grid onbode(PlantaCompensada)


EN LA VENTANA DE COMANDOS DE MATLAB:

wm =

8.8694


Transfer function:
40.39 s + 178.2
---------------
s + 17.82


Transfer function:
161.5 s + 713
-------------------------
s^3 + 19.82 s^2 + 35.65 s

>>



RESPUESTA PLANTA, RESPUESTA PLANTA COMPENSADA




No hay comentarios: