Você está na página 1de 30

PRCTICA N 5

REDES DE COMPENSACION MEDIANTE RESPUESTA EN FRECUENCIA


1. OBJETIVO
Conocer las diferentes tcnicas de compensacin de sistemas de control
Realizar el control mediante respuesta en frecuencia para satisfacer las especificaciones
de desempeo.
2. FUNDAMENTO TEORICO
Respuesta en frecuencia para diversos sistemas
Mtodos de diseo de controladores mediante respuesta en frecuencia
3. TRABAJO EXPERIMENTAL
3.1. Considere el sistema de lazo abierto. Disee un compensador tal que la constante de
error esttico de velocidad sea de 4 seg-1, el margen de fase sea de 50 y el margen de
ganancia sea de 10 dB o ms.
La funcin de transferencia en laso abierto:
La funcin de tf en laso cerrado:

Diagrama de bode

Respuesta en el tiempo

La red de atraso es:

Donde

. Si definimos

, entonces tendremos:

La funcin de transferencia de lazo abierto del sistema compensado ser:

Donde:

Determinamos la ganancia

para que cumpla la especificacin de desempeo en estado

estable, o proporcione la constante de error esttico de velocidad requerida, para el


ejemplo

Donde

, por lo tanto:

De donde obtenemos:

Con

, el sistema compensado cumple el requerimiento en estado estable,

verificando:

El paso siguiente es la grfica de las diagramas de Bode de

La siguiente figura, muestra las curvas de magnitud y de fase del sistema y de


. A partir de estas diagramas, vemos que los mrgenes de fase y de ganancia del
sistema son

, respectivamente. (Un margen de fase de

implica que el sistema es muy oscilatorio. Por tanto, satisfacer la especificacin en estado
estable produce un desempeo deficiente de la respuesta transitoria)

Bode Diagram
Gm = Inf dB (at Inf rad/sec) , Pm = 18 deg (at 6.17 rad/sec)

Magnitude (dB)

50

-50

Phase (deg)

-100
-90

-135

-180

-1

10

10

10

10

Frequency (rad/sec)

Diagramas de bode de

, margen de fase

Segn las especificaciones de desempeo se requiere de un margen de fase sea al menos


. Por tanto, resulta necesario encontrar el adelanto de fase adicional a fin de
satisfacer el requerimiento de que la estabilidad relativa, para este ejemplo ser

Si consideramos que la curva de magnitud del compensador en adelanto no


modifica la curva de magnitud del sistema
requerimiento de ngulo es

y se debe dar en

. Por lo tanto tenemos:

Remplazando el valor de

, asumimos que el

, obtenemos:

La frecuencia

se selecciona como la frecuencia de

cruce de ganancia. Esta frecuencia corresponde a:

Y el cambio de fase mximo

ocurre en ella. Por lo tanto si:

Determinamos las frecuencias de esquina del compensador de adelanto:

Cero:

Polo:

El compensador en adelanto queda determinado:

El valor de

determinamos de la relacin

La funcin de transferencia del compensador en adelanto es:

La grafica de bode del sistema,

y del compensador se dan en la siguiente figura:

BodeSystem:
Diagramsys
Frequency (rad/sec): 6.16
Magnitude (dB): 25.1

Magnitude (dB)

50

0
System: sys
Frequency (rad/sec): 6.16
Magnitude (dB): -19.9

-50

-100
45
System: sys
Frequency (rad/sec): 6.16
Phase (deg): 32

Phase (deg)

0
-45
-90

System: sys
Frequency (rad/sec): 6.16
Phase (deg): -162

-135
-180

-1

10

10

10

10

10

Frequency (rad/sec)

La funcin de transferencia del sistema compensado es:

Graficas de bode del sistema compensado:


Bode Diagram
Gm = Inf dB (at Inf rad/sec) , Pm = 42 deg (at 9.33 rad/sec)

Magnitude (dB)

50
0
-50
-100

Phase (deg)

-150
-90

-135

-180

System: untitled1
Frequency (rad/sec): 6.16
Phase (deg): -130

-1

10

10

10

10

10

Frequency (rad/sec)

Del diagrama de bode concluimos que por el efecto de la magnitud del compensador de
adelanto no se cumple los requerimientos de margen de fase (

).

Para obtener un margen de fase de

sin disminuir el valor de K y considerando el

aporte de magnitud del compensador; el compensador de adelanto debe contribuir al


ngulo de fase requerido, tomando en cuenta que la adicin del compensador de adelanto
modifica la curva de magnitud de las diagramas de Bode, vemos que la frecuencia de cruce
de ganancia se mover hacia la derecha y disminuye el margen de fase, de la siguiente
figura:

BodeSystem:
Diagramsys
Frequency (rad/sec): 6.16
Magnitude (dB): 25.1

Magnitude (dB)

50

0
System: sys
Frequency (rad/sec): 6.16
Magnitude (dB): -19.9

-50

-100
45
System: sys
Frequency (rad/sec): 6.16
Phase (deg): 32

Phase (deg)

0
-45
-90

System: sys
Frequency (rad/sec): 6.16
Phase (deg): -162

-135
-180

-1

10

10

10

10

10

Frequency (rad/sec)

Considerando el cambio de la frecuencia de cruce de ganancia, suponemos que


adelanto de fase mximo requerido, es de aproximadamente
(Esto significa que se han agregado

para compensar el cambio en la frecuencia de

cruce de ganancia; pudiendo ser entre 5 y 12 )


Por lo tanto tenemos:

Remplazando el valor de

, obtenemos:

La modificacin de magnitud a la frecuencia

por la inclusin de la red de adelanto

se puede calcular:

Que en dB es igual a:

Determinar la frecuencia a la cual la magnitud del sistema no compensado


igual a la magnitud determinada previamente (

es

De la siguiente grafica de bode, podemos obtener que a la magnitud de


tenemos a una frecuencia de

Bode Diagram

M a g n itu d e ( d B )

50

System: sys
Frequency (rad/sec): 8.88
Magnitude (dB): -6.04

-50

P h a s e (d e g )

-100
-90

-135

-180
10

System: sys
Frequency (rad/sec): 8.88
Phase (deg): -167

-1

10

10

10

Frequency (rad/sec)

La frecuencia hallada se selecciona como la nueva frecuencia de cruce de ganancia. Esta


frecuencia corresponde a
ella. Por lo tanto si:

, y el cambio de fase mximo

ocurre en

Determinamos las frecuencias de esquina del compensador de adelanto:

Cero:

Polo:

El compensador en adelanto queda determinado:

El valor de

determinamos de la relacin

, donde:

La funcin de transferencia del compensador en adelanto es:

La grafica de bode del compensador, figura a.


Bode Diagram

M a gn itu d e ( d B)

35

30

25

Ph a s e (d e g )

20
40
System: sys
Frequency (rad/sec): 8.89
Phase (deg): 37

30
20
10
0

-1

10

10

10

10

Frequency (rad/sec)

Figura a.
La grafica de Bode del sistema y del compensador, figura b.

10

Bode Diagram

M agnitude (dB)

50

System: sys
Frequency (rad/sec): 8.98
Magnitude (dB): 26.1

0
System: sys
Frequency (rad/sec): 8.98
Magnitude (dB): -26.2

-50
-100

Phas e (deg)

-150
45
System: sys
Frequency (rad/sec): 8.89
Phase (deg): 37

0
-45
-90

System: sys
Frequency (rad/sec): 8.89
Phase (deg): -167

-135
-180

-1

10

10

10

10

10

Frequency (rad/sec)

Figura N b.
La funcin de transferencia del sistema compensado es:

Graficas de bode del sistema sin compensar y compensado:


Bode Diagram
Gm = Inf dB (at Inf rad/sec) , Pm = 49.8 deg (at 8.83 rad/sec)

Magnitude (dB)

50
0
-50
-100

Phas e (deg)

-150
-90

-135

-180

-1

10

10

10

10

10

Frequency (rad/sec)

La respuesta ante una entrada escaln y rampa al sistema no compensado y compensado la


hallamos a partir de las funciones de transferencia de lazo cerrado, las cuales se hallan:

Sistema no compensado:
Lazo abierto

Lazo cerrado

Sistema compensado:
Lazo abierto

Lazo cerrado

La respuesta escaln del sistema sin compensar y compensado:


Step Response

1.4

1.2

A m p litu de

0.8

0.6

0.4

0.2

Time (sec)

La respuesta ante una entrada rampa para los sistemas no compensado y compensado:

Step Response

5
4.5
4
3.5

Amplitude

3
2.5
2
1.5
1
0.5
0

0.5

1.5

2.5

3.5

4.5

Time (sec)

3.2. Disee un compensador de atraso-adelanto tal que la constante de error


esttico de velocidad Kv sea de 20 seg-1, el margen de fase sea de 60 y el
margen de ganancia no sea menor que 8 dB.

En la figura esta el diagrama de Bode para el sistema no compensado, la FT de lazo abierto


del sistema

Las especificaciones de desempeo para el sistema:

Constante de error esttico de velocidad sea de

Margen de fase sea de

Margen de ganancia sea de

Suponemos el compensador adelanto:

Para cumplir la constante de error esttico de velocidad sea de


, hacemos:

Si definimos

, constante del sistema:

La nueva FT que satisface los requerimientos de la constante de error esttico de


velocidad, con el nuevo valor de

Verificando el cumplimiento de

es:

Los diagramas de bode para este nuevo valor de constante tenemos en la siguiente
figura c. para la funcin de transferencia siguiente

Bode Diagram
Gm = 8.79 dB (at 3.16 rad/sec) , Pm = 17.7 deg (at 1.86 rad/sec)

Magnitude (dB)

100
50
0
-50
-100

Phas e (deg)

-150
-90
-135
-180
-225
-270
10

-2

-1

10

10

10

10

10

Frequency (rad/sec)

Figura N c.
La figura N 2.32, muestra las curvas de magnitud y de fase del sistema y de

.A

partir de estas diagramas, vemos que los mrgenes de fase y de ganancia del sistema son
y

, respectivamente.

Segn las especificaciones de desempeo se requiere de un margen de fase de cuando


menos

. Por tanto, resulta necesario encontrar el adelanto de fase adicional a fin de

satisfacer el requerimiento de que la estabilidad relativa, para este ejemplo ser

Para obtener un margen de fase de

sin disminuir el valor de K, el compensador de

adelanto debe contribuir al ngulo de fase requerido. Tomando en cuenta que la adicin de

un compensador de adelanto modifica la curva de magnitud de las diagramas de Bode,


vemos que la frecuencia de cruce de ganancia se mover.
Debemos compensar el incremento en el atraso de fase de

, debido a este

incremento en la frecuencia de cruce de ganancia. Considerando el cambio de la frecuencia


de cruce de ganancia, suponemos que
aproximadamente

adelanto de fase mximo requerido, es de


. (Esto significa que se han agregado

para compensar el cambio en la frecuencia de cruce de ganancia; pudiendo ser


entre 5 y 12 )
Por lo tanto tenemos:

Remplazando el valor de

, obtenemos:

De donde obtenemos:

Lo que se modifica en la frecuencia


expresar:

Que en dB es igual a:

por la inclusin de la red de adelanto se puede

Determinar la frecuencia a la cual la magnitud del sistema no compensado


igual a la magnitud determinada previamente (

es

De la grafica de bode, figura d. podemos obtener que a la magnitud de


tenemos a una frecuencia de

Bode Diagram

100

System: sys
Frequency (rad/sec): 2.71
Magnitude (dB): -6.1

Magnitude (dB)

50
0
-50
-100

Phase (deg)

-150
-90
-135
-180
-225
-270

-2

10

-1

10

10

10

10

10

Frequency (rad/sec)

La frecuencia hallada se selecciona como la nueva frecuencia de cruce de ganancia. Esta


frecuencia corresponde a:

Y el cambio de fase mximo

ocurre en ella. Por lo tanto si:

Determinamos las frecuencias de esquina del compensador de adelanto:

Cero:

Polo:

El compensador en adelanto queda determinado:

El valor de

determinamos de la relacin

, si asumimos

La funcin de transferencia del compensador en adelanto es:

La grafica de bode del sistema y compensador separados :

Bode Diagram

Magnitude (dB)

25

20

15

Phase (deg)

10
40
System: sys
Frequency (rad/sec): 2.71
Phase (deg): 37.3

30
20
10
0
10

-1

10

10

10

Frequency (rad/sec)

La grafica de Bode del sistema y del compensador:

Bode Diagram

100

System: sys
Frequency (rad/sec): 2.7
Magnitude (dB): 18.1

Magnitude (dB)

50
0
System: sys
Frequency (rad/sec): 2.7
Magnitude (dB): -5.99

-50
-100

Phase (deg)

-150
90
0

System: sys
Frequency (rad/sec): 2.7
System: sys
Phase (deg): 37.3
Frequency (rad/sec): 2.7
Phase (deg): -175

-90
-180
-270

-2

10

10

-1

10

10

10

10

Frequency (rad/sec)

La funcin de transferencia del sistema compensado es:

Graficas de bode del sistema compensado:


Bode Diagram
Gm = 13.4 dB (at 7.04 rad/sec) , Pm = 42.5 deg (at 2.7 rad/sec)

Magnitude (dB)

50
0
-50
-100
-150
-90

Phase (deg)

-135
-180
-225
-270

-1

10

10

10

Frequency (rad/sec)

10

10

La respuesta ante una entrada escaln al sistema no compensado y compensado la


hallamos a partir de las funciones de transferencia de lazo cerrado, las cuales se hallan:

Sistema no compensado:
Lazo abierto

Lazo cerrado

Sistema compensado:
Lazo abierto

Lazo cerrado

La respuesta del sistema no compensado y del sistema compensado ambos en la misma


grfica:

Step Response

1.4

1.2

Amplitude

0.8

0.6

0.4

0.2

10

12

Time (sec)

La respuesta ante una entrada rampa para los sistemas no compensado y compensad:

Step Response

10
9
8
7

Amplitude

6
5
4
3
2
1
0

10

Time (sec)

3.3. Disee un compensador de atraso-adelanto tal que la constante de error


esttico de velocidad Kv sea de 10 seg-1, el margen de fase sea de 50 y el
margen de ganancia no sea menor que 10 dB.

3.4. Proponer un programa en MATLAB que realice la compensacin para los casos
Compensacin en adelanto
clc, clear all,
disp('===================================================================
')
disp('
INGRESO DE DATOS: ')
disp('===================================================================
')

num=input('Ingrese el Numerador: ');


%den=conv([1 0],conv([1 1],[1 5]));
den=input('Ingrese el Denominador: ');
KVc=input('Ingrese el KVc: ');
%MGc=8;
MGc=input('Ingrese el Margen de Ganancia: ');
%MFc=60;
MFc=input('Ingrese el Margen de Fase: ');
Realim=1;
integr=tf([1],[1 0]);
disp('===================================================================
')
disp('
Caracteristicas Iniciales: ')
disp('===================================================================
')
PlantaLA=tf(num,den);
PlantaLC=feedback(PlantaLA,Realim);
clear x;
syms x;
numsim=poly2sym(num);
densim=poly2sym(den);
GsNoComp=factor(simplify(x*numsim/densim));
KVnc=limit(GsNoComp,x,0);
KVnc=double(KVnc);
disp(['Kv: Coeficiente de Error Estatico: ' num2str(KVnc)])
% ECUACION DE BODE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Y1=20*log10(2)-20*log10(abs(i*X))-20*log10(abs(X*i/2+1))20*log10(abs(X*i/6+1))
[z,p,k]=tf2zp(num,den);
ceros=roots(num);
ceros1=ceros;
for d=1:length(ceros1);
if ceros1(d)==0,
ceros1(d)=1;
end,
end % Con el for se reemplaza los ceros por unos
polos=roots(den);
polos1=polos;
for d=1:length(polos1);
if polos1(d)==0,
polos1(d)=1;
end,
end

ECBODE=20*log10(k*abs(prod(ceros1))/abs(prod(polos1)));
syms x w;
for m=1:length(ceros) % SUMA LOS 20LOGS DEL NUMERADOR
if ceros(m)==0
ECBODE=ECBODE+20*log10(sqrt((w)^2));

else
ECBODE=ECBODE+20*log10(sqrt(1+(w/ceros(m))^2));
end
end
for m=1:length(polos) % RESTA LOS 20LOGS DEL NUMERADOR
if polos(m)==0
ECBODE=ECBODE-20*log10(sqrt((w)^2));
else
ECBODE=ECBODE-20*log10(sqrt(1+(w/polos(m))^2));
end
end

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ECUACION DE BODE PARA HALLAR WF
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%ECWBODEN=k*abs(prod(ceros1))/abs(prod(polos1));
ECWBODEN=1;
syms x w;
for m=1:length(ceros) % SUMA LOS 20LOGS DEL NUMERADOR
if ceros(m)==0
ECWBODEN=ECWBODEN*(sqrt((w)^2));
else
ECWBODEN=ECWBODEN*(sqrt(1+(w/ceros(m))^2));
end
end
ECWBODED=1;
for m=1:length(polos) % RESTA LOS 20LOGS DEL NUMERADOR
if polos(m)==0
ECWBODED=ECWBODED*(sqrt((w)^2));
else
ECWBODED=ECWBODED*(sqrt(1+(w/polos(m))^2));
end
end
ECWBODE=(ECWBODEN/ECWBODED)^2(((k*abs(prod(ceros1))/abs(prod(polos1))))^-1)^2;
WFFS=sort(double(solve(ECWBODE)));

WF1R=imag(WFFS);
WF11=[];
for c=1:length(WFFS)
if and(0<=WF1R(c),WF1R(c)<=10^-5)
WF11=[WF11 WFFS(c)]; %solo soluciones reales
end
end
if length(WF11)==3
WF=sum(abs(WF11))/2;
else
if length(WF11)==0
WF=[];

else
end

WF=abs(max(WF11(end)));

end
WF=abs(WF);
if 10^15<WF
WF=[];
end
disp(['Frecuencia para el margen de fase: ' num2str(WF)])

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ECUACION DE ANG. DE BODE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ECANGBODE=0;
syms x w;
for m=1:length(ceros)
if ceros(m)==0
ECANGBODE=ECANGBODE+pi/2;
else
ECANGBODE=ECANGBODE+atan(-w/ceros(m));
end
end
for m=1:length(polos)
if polos(m)==0
ECANGBODE=ECANGBODE-pi/2;
else
ECANGBODE=ECANGBODE-atan(-w/polos(m));
end
end

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ECUACION DE ANG. DE BODE PARA HALLAR WG
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ECANGBODE1=-pi;
ECANGBODE2=0;
syms x w;
for m=1:length(ceros)
if ceros(m)==0
ECANGBODE1=ECANGBODE1-pi/2;
else
ECANGBODE2=(ECANGBODE2+(-w/ceros(m)))/(1-ECANGBODE2*(w/ceros(m))); %Teorema de suma de Arctgs
ECANGBODE2=factor(ECANGBODE2);
ECANGBODE2=simplify(ECANGBODE2);
end
end

ECANGBODE21=0;
for m=1:length(polos)
if polos(m)==0
ECANGBODE1=ECANGBODE1+pi/2;
else
ECANGBODE21=(ECANGBODE21+(-w/polos(m)))/(1-ECANGBODE21*(w/polos(m))); %Teorema de suma de Arctgs
ECANGBODE21=factor(ECANGBODE21);
ECANGBODE21=simplify(ECANGBODE21);
end
end
ECANGBODE22=simplify(ECANGBODE2-ECANGBODE21);
WG1=sort(double((solve(ECANGBODE22-tan(ECANGBODE1)))));
WG
WG1R=imag(WG1);
WG11=[];
for c=1:length(WG1)
if and(0<=WG1R(c),WG1R(c)<=10^-5)
WG11=[WG11 WG1(c)]; %solo soluciones reales
end
end
if length(WG11)==3
WG=sum(abs(WG11))/2;
else
if length(WF11)==0
WF=[];
else
WG=abs(max(WG11(end)));
end
end

% soluciones de

WG=abs(WG);
if 10^15<WG
WG=[];
end
disp(['Wg: Frecuencia para el margen de ganancia: ' num2str(WG)])
MG=-subs(ECBODE,WG); % El signo menos para indicar que el MG es positivo
o negativo (despues de wf)
disp(['MG: Margen de Ganancia: ' num2str(MG)])
MF=-(-180-subs(ECANGBODE,WF)*180/pi);
disp(['MF: Margen de Fase: ' num2str(MF)]) % el signo menos para indicar
si el MF es positivo o negativo y -180 para restar y ver solo el margen
de fase
disp('FIGURA 1: Diagrama de bode de la Funcin sin compensar ')
figure (1),
bode(PlantaLA),
legend('Sin Compensar'), grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% ECUACION DE NIQUIST
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ECNIQUIST=k*prod(ceros1)/prod(polos1);
syms x w;
for m=1:length(ceros)
if ceros(m)==0
ECNIQUIST=ECNIQUIST*sqrt(w^2);
else
ECNIQUIST=ECNIQUIST*sqrt(1+(w/ceros(m))^2);
end
end
for m=1:length(polos)
if polos(m)==0
ECNIQUIST=ECNIQUIST/sqrt(w^2);
else
ECNIQUIST=ECNIQUIST/sqrt(1+(w/polos(m))^2);
end
end

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ECUACION DE NICHOLS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ECNICHOLS=20*log10((ECNIQUIST^2/(1+2*ECNIQUIST*cos(ECANGBODE)
+ECNIQUIST^2))^0.5);

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ECUACION DEL ANGULO DE NICHOLS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ECANGNICHOLS=ECANGBODE-atan(ECNIQUIST*sin(ECANGBODE)/
(1+ECNIQUIST*cos(ECANGBODE)));

disp('===================================================================
')
disp('
Caracteristicas Deseadas: ')
disp('===================================================================
')
disp(['Kv: Coeficiente de Error Estatico: ' num2str(KVc)])
disp(['MG: Margen de Ganancia: ' num2str(MGc)])
disp(['MF: Margen de Fase: ' num2str(MFc)])

disp('===================================================================
')

disp('1: COMPENSADOR EN ADELANTO:


')
disp('===================================================================
')
disp('KVc=lim(sGc(s)G(s)); Gc(s)=K*(Ts+1)/(aTs+1)')
K=KVc/KVnc;
disp(['K: La Ganancia K que satisface KVc es: ' num2str(K)]),
hold on, bode(K*PlantaLA), legend('Sin Compensar','Con ganancia K'), hold
off

disp('===================================================================
')
disp('2: Calcule el valor del margen de fase para G1(s)=K.G(s):
')
disp('===================================================================
')
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ECUACION DE BODE PARA HALLAR WF
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%ECWBODEN=k*abs(prod(ceros1))/abs(prod(polos1));
ECWBODEN=1;
syms x w;
for m=1:length(ceros) % SUMA LOS 20LOGS DEL NUMERADOR
if ceros(m)==0
ECWBODEN=ECWBODEN*(sqrt((w)^2));
else
ECWBODEN=ECWBODEN*(sqrt(1+(w/ceros(m))^2));
end
end
ECWBODED=1;
for m=1:length(polos) % RESTA LOS 20LOGS DEL NUMERADOR
if polos(m)==0
ECWBODED=ECWBODED*(sqrt((w)^2));
else
ECWBODED=ECWBODED*(sqrt(1+(w/polos(m))^2));
end
end
ECWBODE=(ECWBODEN/ECWBODED)^2(((K*k*abs(prod(ceros1))/abs(prod(polos1))))^-1)^2;
WFFS=sort(double(solve(ECWBODE)));

WF1R=imag(WFFS);
WF11=[];
for c=1:length(WFFS)
if and(0<=WF1R(c),WF1R(c)<=10^-5)
WF11=[WF11 WFFS(c)]; %solo soluciones reales
end
end
if length(WF11)==3
WFK=sum(abs(WF11))/2;
else
if length(WF11)==0

WFK=[];
else

WFK=abs(max(WF11(end)));

end

end
WFK=abs(WFK);
if 10^15<WFK
WFK=[];
end
disp(['Frecuencia para el margen de fase: ' num2str(WFK)])
MFK=-(-180-subs(ECANGBODE,WFK)*180/pi);
disp(['MF: Margen de Fase con Ganancia K: ' num2str(MFK)]) % el signo
menos para indicar si el MF es positivo o negativo y -180 para restar y
ver solo el margen de fase
disp('===================================================================
')
disp(['3: El MF debe ser al menos: ',num2str(MFc)])
disp('===================================================================
')
disp(['Entonces se requiere: ', num2str(MFc), ' - ', num2str(MFK), ' = ',
num2str(MFc-MFK)])
disp(['PHIm = ', num2str(MFc-MFK)])
disp('Considerando el cambio de la frecuecia de cruce de ganancia
suponemos:')
%aume=ceil((MFc-MFK)/10)*10-round(MFc-MFK);
aume=input('Ingrese cuantos grados se va adicionar (5 a 12): ');
disp(['Se Puede Aumentar 5 ~ 12; ', num2str(round(MFc-MFK)), ' + ' ,
num2str(aume) ' = ', num2str(aume+round(MFc-MFK)) ])
%PHIm=ceil((MFc-MFK)/10)*10;
%PHIm=37
PHIm=aume+round(MFc-MFK);
disp('===================================================================
')
disp(['4: Hallamos alfa, a partir del valor PHIm = ', num2str(PHIm)])
disp('===================================================================
')
disp('alfa = (1-sin(PHIm))/(1+sin(PHIm))')
disp(['alfa = (1-sin(', num2str(PHIm) ,'))/(1+sin(',
num2str(PHIm) ,'))'])
alfa=(1-sind(PHIm))/(1+sind(PHIm));
disp(['alfa = ', num2str(alfa)])
disp('Determinamos la fecuencia a la cual la magnitud del sistema G1(s)
es igual:')
disp('-20*log10(1/sqrt(alfa))')
MG1=-20*log10(1/sqrt(alfa));
disp(['-20*log10(1/sqrt(', num2str(alfa), '))', ' = ', num2str(MG1)])
% ECUACION DE BODE
[z,p,k]=tf2zp(num,den);
ceros=roots(num); ceros1=ceros; for d=1:length(ceros1); if ceros1(d)==0,
ceros1(d)=1; end,end % Con el for se reemplaza los ceros por unos
polos=roots(den); polos1=polos; for d=1:length(polos1); if polos1(d)==0,
polos1(d)=1; end,end
ECBODE1=20*log10(K*k*abs(prod(ceros1))/abs(prod(polos1)));

syms x w;
for m=1:length(ceros) % SUMA LOS 20LOGS DEL NUMERADOR
if ceros(m)==0
ECBODE1=ECBODE1+20*log10(sqrt((w)^2));
else
ECBODE1=ECBODE1+20*log10(sqrt(1+(w/ceros(m))^2));
end
end
for m=1:length(polos) % RESTA LOS 20LOGS DEL NUMERADOR
if polos(m)==0
ECBODE1=ECBODE1-20*log10(sqrt((w)^2));
else
ECBODE1=ECBODE1-20*log10(sqrt(1+(w/polos(m))^2));
end
end
ECBODE1=ECBODE1-MG1;
WFFS=sort(double(solve(ECBODE1)));

WF1R=imag(WFFS);
WF11=[];
for c=1:length(WFFS)
if and(0<=WF1R(c),WF1R(c)<=10^-5)
WF11=[WF11 WFFS(c)]; %solo soluciones reales
end
end
if length(WF11)==3
WM=sum(abs(WF11))/2;
else
if length(WF11)==0
WM=[];
else
WM=abs(max(WF11(end)));
end
end
WM=abs(WM);
if 10^15<WM
WM=[];
end
disp(['Frecuencia para esta Magnitud es: ' num2str(WM)])
disp('A esta nueva frecuencia w=wm, le corresponde la fase mxima PHIm:')
disp(['Wm=1/(T*sqrt(alfa)) = ', num2str(WM)])
disp('===================================================================
')
disp('5: Determinar las frecuencias de esquina del comp. Adelanto')
disp('===================================================================
')
CERO=WM*sqrt(alfa);
disp(['CERO: 1/T = Wm*sqrt(alfa) = ', num2str(WM),'*sqrt(',
num2str(alfa), ') = ' num2str(CERO)])
POLO=WM/sqrt(alfa);
disp(['POLO: 1/alfa*T = Wm/sqrt(alfa) = ', num2str(WM),'/sqrt(',
num2str(alfa), ') = ' num2str(POLO)])

disp(' ')
disp('El Compensador en Adelanto queda determinado: ')
disp('Gc(s)=Kc*alfa*(Ts+1)/(alfa*Ts+1) = Kc*(s+1/T)/(s+1/alfaT) ')
disp(['Gc(s)=Kc*(s+', num2str(CERO), ')/(s+', num2str(POLO), ')'])
Kc=K/alfa;
disp(['Kc = K/alfa = ', num2str(K), '/', num2str(alfa) , ' = ',
num2str(Kc)])
Gc=tf(Kc*[1 CERO],[1 POLO]);
disp(' ')
disp('El Compensador queda: ')
Gc
disp(' ')
disp('FIGURA 2: La Grafica de bode del Compensador en Adelanto')
figure (2), bode(Gc), grid
disp('FIGURA 3: La Grafica de bode del Sistema y del Compensador')
figure (3), bode(PlantaLA,K*PlantaLA,Gc), grid, legend('Sin
Compensar','Con ganancia K','Compensador en Adelanto')
disp('===================================================================
')
disp('6: EL SISTEMA COMPENSADO QUEDA:')
disp('===================================================================
')
disp('LAZO ABIERTO')
PlantaCLA=series(Gc,PlantaLA)
disp('LAZO CERRADO')
PlantaCLC=feedback(PlantaCLA,Realim)
disp('FIGURA 4: La Grafica de bode del Sistema, del Compensador y del
Sistema Compensado')
figure (4), bode(PlantaLA,K*PlantaLA,Gc,PlantaCLA), grid, legend('Sin
Compensar','Con ganancia K','Compensador en Adelanto','Sistema
Compensado')
disp('FIGURA 5: Rpta. Escalon Sin Compensar y Compensado')
figure (5), step(PlantaLC,PlantaCLC), grid, legend('Sin
Compensar','Compensado en Adelanto')
disp('FIGURA 6: Rpta. Rampa Sin Compensar y Compensado')
figure (6), step(series(PlantaLC,integr),series(PlantaCLC,integr)), hold
on, plot(0:0.1:10,0:0.1:10,'-r'), grid, legend('Sin
Compensar','Compensado en Adelanto','Entrada Rampa'), axis([0 10 0 10]),
hold off
disp('===================================================================
')
disp('
Caracteristicas Finales del Sistema: ')
disp('===================================================================
')
[Gmc,Pmc,Wgc,Wpc] = margin(PlantaCLA);
disp(['MP = ', num2str(Pmc)]);
disp(['MG = ', num2str(20*log10(Gmc))]);

Compensacin en atraso
Compensacin atraso adelanto.

3.5. Realizar un VI que permita visualizar la funcin de transferencia del sistema, el


compensador y visualizacin de los diagramas de Bode del sistema compensado y sin
compensar
4. CONCLUSIONES
Se logr conocer las diferentes tcnicas de compensacin de sistemas de control mediante
respuesta en frecuencia para satisfacer las especificaciones de desempeo.

Você também pode gostar