Está en la página 1de 30

DISEO DE

COMPENSADORES









Universidad Tecnolgica de Bolvar
Facultad de Ingeniera Elctrica y Electrnica
Cartagena de Indias D. T y C
Gloria Isabel Montoya Navarro T00022006
Yaqueline Del Risco Simancas T00020412
Paola Nieto Ulloque T00022

MSc. Jorge Duque Pardo



























1. Introduccin
En muchos procesos industriales la funcin de control es realizada por un operario (ser
humano), este operario es el que decide cuando y como manipular las variables de modo
tal que se obtenga una cadena productiva continua y eficiente.
La eficiencia de la produccin implica el aumento de los niveles de produccin de la
maquinaria instalada, y el mejoramiento de la calidad del producto final, la disminucin
de los costos de produccin, y la seguridad tanto para el personal como para los equipos.
Dada estas exigencias, la industria ha necesitado de la utilizacin de nuevos y mas
complejos procesos, que muchas veces el operario no es capaz de manejar dado que se
exige una velocidad de respuesta alta al igual que un grado de exactitud.
Frente a este panorama, surge la automatizacin y los sistemas de control como una
solucin que permitir la produccin a una calidad mucho mejor.
El estudio de los sistemas de control y automatizacin es muy extenso, uno de los temas
mas importantes el cual ser el objetivo de anlisis de este trabajo es el diseo de
compensadores, se ha precisado que un sistema de control adecuado es estable y que
para una seal de entrada da como resultado una respuesta aceptable, es menos sensible
a los cambios en los parmetros del sistema, produce un error mnimo en estado
estacionario para ordenes de entrada y, finalmente, puede eliminar el efecto de
perturbaciones indeseables. Un sistema de control con realimentacin que proporcione
un comportamiento ptimo sin necesidad de ningn ajuste es verdaderamente raro.
Generalmente es necesario examinar el esquema o plan del sistema y obtener un nuevo
diseo. As, el diseo de un sistema de control esta relacionado con el arreglo, o el plan,
de la estructura del sistema y la seleccin de componentes y parmetros adecuados de
dicho sistema. Por ejemplo si se desea tenga unas especificaciones determinadas es
necesario realizar un anlisis que permita adecuar el sistema y as obtener la respuesta
deseada, al anlisis anterior se le conoce como compensacin, la cual es la alteracin o
ajuste de un sistema de control para proporcionar un comportamiento adecuado.
En el siguiente trabajo se realizara la compensacin de diferentes sistemas utilizando los
mtodos del lugar de las races y de diagrama de Bode


























2. Desarrollo del trabajo
2.1 Diseo de un compensador por el mtodo del lugar de las races
Objetivo: Uso del Matlab en el diseo de varios tipos de compensadores por
el mtodo del lugar de las races
1.
) 5 . 1 (
) (
+
=
s s
K
s G Especificaciones: 2 1
2 , 1
j s = (adelanto)

A. Ubicacin deseada de los polos dominantes de lazo cerrado

B. Lugar de las races del sistema sin compensar

C. Seleccin del tipo de compensador
Como se observa en las graficas anteriores el sistema no cumple con las
especificaciones dadas, con lo que se hace necesario el diseo de un
compensador. Se diseara un compensador en adelanto por el mtodo del lugar
de las races


-3 -2.5 -2 -1.5 -1 -0.5 0
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
Ubicacin deseada de los polos dominantes de lazo cerrado
Eje Real
E
j
e

I
m
a
g
i
n
a
r
i
o
Polo deseado
Polo deseado
-3 -2.5 -2 -1.5 -1 -0.5 0
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
0.12 0.24 0.38 0.52 0.64 0.78
0.89
0.97
0.5 1 1.5 2 2.5 3
0.12 0.24 0.38 0.52 0.64 0.78
0.89
0.97
Polo deseado
Polo deseado
Lugar de las raices del sistema sin compensar
Eje Real
E
j
e

I
m
a
g
i
n
a
r
i
o
Figura 1
Figura 2




D. Clculo del compensador.
Calcular el ngulo en adelanto
El sistema original aporta un ngulo sobre el punto deseado

de
( ) ( ) ( 1.5)
d
d
s s
G s s s
=
Z = Z Z +

Se evaluara para



( ) ( 1 2 ) [( 1 2 ) 1.5]
d
G s j j Z = Z + Z + +
( ) 116.565 75.96
d
G s Z =

Las operaciones dan como resultado

( ) 192.528
d
G s Z =

Como el ngulo es diferente a -180, el punto

no pertenece al lugar de las


races. Para que el punto deseado

pertenezca al lugar de las races se agregara


un ngulo de
180 ( )
m d
G s = Z
Sustituyendo
180 ( 192.528)
m
=
12.528
m
= Este ngulo ser proporcionado por el compensador en adelanto

El ngulo que aporta el sistema sobre el punto deseado ms el ngulo que aporta el
compensador en adelanto sobre el punto deseado, ser de -180.
De esta manera el punto deseado

pertenecer al lugar de las races del sistema


compensado en adelanto ( ) 180
d m
G s Z + =


(


)


) (


)


Seleccionar el compensador en adelanto
El compensador en adelanto debe de aportar un ngulo de 12.528
m
=
Primero se escoge la ubicacin del cero (abajo del punto deseado) por ejemplo en -1, dado
que se trata de un compensador en adelanto la magnitud del polo es mayor que la del cero.

Por geometra se tiene que:
Luego el compensador en adelanto queda de la siguiente manera
El sistema compensado quedara de la siguiente manera

-3 -2.5 -2 -1.5 -1 -0.5 0
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
0.12 0.24 0.38 0.52 0.64 0.78
0.89
0.97
0.12 0.24 0.38 0.52 0.64 0.78
0.89
0.97
0.5 1 1.5 2 2.5 3
Polo deseado
Polo deseado
O
Ubicacin del polo deseado
Eje Real
E
j
e

I
m
a
g
i
n
a
r
i
o
-1+2i
P
1
X
u
m
Figura 3
|


||| || |
| |




La

se obtiene con la condicin de magnitud como |

| = 1
Sustituimos el compensador
Despejamos


Donde

, asi
De modo que el compensador es
En MATLAB se obtiene el valor de K utilizando el comando rlocfind para la funcin de
transferencia del compensador con los valores del cero y el polo obtenido anteriormente



-1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2
-5
-4
-3
-2
-1
0
1
2
3
4
5
0.03 0.065 0.1 0.15 0.21 0.3
0.44
0.7
0.03 0.065 0.1 0.15 0.21 0.3
0.44
0.7
1
2
3
4
5
1
2
3
4
5
Planta compensada sin el valor de K
Eje Real
E
j
e

I
m
a
g
i
n
a
r
i
o
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Figura 4

En la figura 5 se observa que el valor de K se aproxima bastante al obtenido analiticamente.
Con este valor se vuelve a dibujar el lugar de las raices obtenido la siguiente grafica
E. Lugar de las raices del sistema compensado



-1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2
-5
-4
-3
-2
-1
0
1
2
3
4
5
0.03 0.065 0.1 0.15 0.21 0.3
0.44
0.7
0.03 0.065 0.1 0.15 0.21 0.3
0.44
0.7
1
2
3
4
5
1
2
3
4
5
Planta compensada con el valor de K
Eje Real
E
j
e

I
m
a
g
i
n
a
r
i
o
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Polo deseado
Figura 5
Figura 6
jsjs

Se
F. Respuesta paso de la planta sin compensar y de la planta compensada

Finalmente para comprobar el rendimiento del sistema compensado, se muestra la respuesta
paso de la planta compensada y de la planta sin compensar como se muestra a continuacin


Se observa que el sistema compensado exhibe un sobre impulso mximo un poco mas
grande que el sistema sin compensar El sistema sin compensar tiene un sobre impulso
mximo de 16.8% , sistema sin compensar tiene un sobre impulso mximo de 2.83% -.
El tiempo de establecimiento del sistema compensado se reduce considerablemente al
tiempo de establecimiento del sistema sin compensar.

0 1 2 3 4 5 6 7 8
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Repuesta Paso del sistema compensado y sin compensar
T seg (sec)
S
a
l
i
d
a

c
1

y

c
2
Sistema Compensado
Sistema sin compensar
Sistema Compensado
Sistema sin compensar
Sistema Compensado
Sistema sin compensar
Sistema Compensado
Sistema sin compensar
Sistema Compensado
Sistema sin compensar
Repuesta Paso del sistema compensado y sin compensar
T seg (sec)
S
a
l
i
d
a

c
1

y

c
2
0 1 2 3 4 5 6 7 8 9 10 11
0
0.2
0.4
0.6
0.8
1
1.2
System: Gt
Peak amplitude: 1.17
Overshoot (%): 16.8
At time (sec): 1.69
System: Tt
Peak amplitude: 1.03
Overshoot (%): 2.83
At time (sec): 4.8
System: Tt
Settling Time (sec): 5.74 System: Gt
Settling Time (sec): 3.84
Sistema Compensado
Sistema sin compensar
Sistema Compensado
Sistema sin compensar
Figura 7-1
Figura 7-2
%Universidad Tecnologica de Bolivar
%Diseo de compensadores
%Punto 1
%Noviembre 07 2012
%% Ubicacin deseada de los polos dominantes de lazo cerrado
figure(1)
Pd=-1+2*i;
Pd1=-1-2*i;
plot(Pd,'MarkerSize',12,'Marker','x','LineWidth',3,'LineStyle','none',...
'Color',[0.8 0 0.4]);
hold on;
plot (Pd1,'MarkerSize',12,'Marker','x','LineWidth',3,'LineStyle','none',...
'Color',[0.8 0 0.4]);
title('Ubicacin deseada de los polos dominantes de lazo
cerrado','FontName','Times New Roman','FontSize',14,'color','blue');
xlabel('Eje Real','FontName','Times New
Roman','FontSize',14,'color','green');
ylabel('Eje Imaginario','FontName','Times New
Roman','FontSize',14,'color','green');
grid on;
axis([-3 0 -2.5 2.5]);
text(-0.95,2.02,'\leftarrow Polo
deseado','HorizontalAlignment','left','FontName','Times New
Roman','FontSize',12,'color','red');
text(-0.95,-1.97,'\leftarrow Polo
deseado','HorizontalAlignment','left','FontName','Times New
Roman','FontSize',12,'color','red');
%% Lugar de las raices del sistema sin compensar
figure(2)
num = 1;
den=conv([1 0],[1 1.5]);
rlocus(num,den);
axis([-3 0.3 -2.3 2.3]);
title('Lugar de las raices del sistema sin compensar','FontName','Times New
Roman','FontSize',14,'color','blue');
grid on;
hold on;
Pd=-1+2*i;
Pd1=-1-2*i;
plot(Pd,'MarkerSize',10,'Marker','x','LineWidth',2,'LineStyle','none',...
'Color',[0 0.6 1]);
hold on;
plot (Pd1,'MarkerSize',10,'Marker','x','LineWidth',2,'LineStyle','none',...
'Color',[0.2 0.6 1])
xlabel('Eje Real','FontName','Times New
Roman','FontSize',14,'color','green');
ylabel('Eje Imaginario','FontName','Times New
Roman','FontSize',14,'color','green');
text(-1.06,2.02,'Polo deseado \rightarrow
','HorizontalAlignment','right','FontName','Times New
Roman','FontSize',12,'color','red');
text(-1.06,-1.97,'Polo deseado \rightarrow
','HorizontalAlignment','right','FontName','Times New
Roman','FontSize',12,'color','red');
Cdigo MATLAB 1.1
%% En esta parte se observa como se obtiene la ubicacion del polo deseado
figure(3)
num = 1;
den=conv([1 0],[1 1.5]);
rlocus(num,den);
axis([-3 0.3 -2.3 2.3]);
title('Ubicacin del polo deseado','FontName','Times New
Roman','FontSize',14,'color','blue');
grid on;
hold on;
Pd=-1+2*i;
Pd1=-1-2*i;
plot(Pd,'MarkerSize',10,'Marker','x','LineWidth',2,'LineStyle','none',...
'Color',[0 0.6 1]);
hold on;
plot (Pd1,'MarkerSize',10,'Marker','x','LineWidth',2,'LineStyle','none',...
'Color',[0.2 0.6 1])
xlabel('Eje Real','FontName','Times New Roman','FontSize',14,'color','green');
ylabel('Eje Imaginario','FontName','Times New Roman','FontSize',14,'color','green');
text(-1.06,2.02,'Polo deseado \rightarrow
','HorizontalAlignment','right','FontName','Times New
Roman','FontSize',12,'color','red');
text(-1.06,-1.97,'Polo deseado \rightarrow
','HorizontalAlignment','right','FontName','Times New
Roman','FontSize',12,'color','red');
text(-1.01,0,'O');
% En esta parte se ibujo en donde se observa como obtener la ubicacion del polo
% Create textbox
annotation(figure(3),'textbox',[0.5164 0.8089 0.03341 0.02707],...
'String',{'-1+2i'},...
'FontName','Times New Roman',...
'FontAngle','italic',...
'FitBoxToText','off',...
'EdgeColor',[1 1 1],...
'BackgroundColor',[1 1 1]);
% Create textbox
annotation(figure(3),'textbox',[0.3253 0.4729 0.01877 0.03822],'String',{'P'},...
'FitBoxToText','off',...
'EdgeColor',[1 1 1]);
% Create doublearrow
annotation(figure(3),'doublearrow',[0.3316 0.6069],[0.4656 0.465],...
'Color',[0.1059 0.3098 0.2078]);
% Create doublearrow
annotation(figure(3),'doublearrow',[0.6108 0.6603],[0.4647 0.4634],...
'Color',[0.07059 0.2118 0.1412]);
% Create textbox
annotation(figure(3),'textbox',[0.6276 0.4347 0.01145 0.02548],'String',{'1'},...
'FontWeight','bold',...
'FontName','Calibri',...
'FitBoxToText','off',...
'EdgeColor',[1 1 1],...
'BackgroundColor',[1 1 1],...
'Color',[0.749 0 0.749]);
% Create textbox
annotation(figure(3),'textbox',[0.471 0.4299 0.02316 0.04299],'String',{'X'},...
'FontWeight','bold',...
'FontName','Calibri',...
'FitBoxToText','off',...
'EdgeColor',[1 1 1],...
'Color',[0.8 0 0.6]);
% Create line
annotation(figure(3),'line',[0.6025 0.604],[0.8312 0.4999],'LineStyle','--',...
'LineWidth',2,...
'Color',[0.8471 0.1608 0]);
% Create line
annotation(figure(3),'line',[0.5974 0.3331],[0.8328 0.5064],'LineStyle','--',...
'LineWidth',2,...
'Color',[0.8471 0.1608 0]);
% Create textbox
annotation(figure(3),'textbox',[0.5823 0.7781 0.0195 0.04407],'String',{'\Phi_m'},...
'FontWeight','bold',...
'FontName','Times New Roman',...

%% Planta compensada
%Primero se realiza el lugar de las raices suponiendo que no se ha
%calculado el valor de K
figure(4)
title('Planta compensada sin el valor de K','FontName','Times New
Roman','FontSize',14,'color','blue');
xlabel('Eje Real','FontName','Times New Roman','FontSize',14,'color','green');
ylabel('Eje Imaginario','FontName','Times New
Roman','FontSize',14,'color','green');
Pd=-1+2*i;
Pd1=-1-2*i;
plot(Pd,'MarkerSize',12,'Marker','x','LineWidth',3,'LineStyle','none',...
'Color',[0.8 0 0.4]);
hold on;
plot (Pd1,'MarkerSize',12,'Marker','x','LineWidth',3,'LineStyle','none',...
'Color',[0.8 0 0.4]);
grid on;
numc=[1 1];
denc=[1 1.44];
[num1,den1]=series(numc,denc,num,den);
rlocus(num1,den1)
k= rlocfind(num1,den1)
annotation(figure(4),'textarrow',[0.4766 0.407],[0.654 0.655],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontWeight','bold',...
'FontName','Times New Roman',...
'FontAngle','italic',...
'String',{'Polo deseado'},...
'LineWidth',2,...
'Color',[1 0 0]);
annotation(figure(4),'textarrow',[0.4746 0.4051],[0.3483 0.3493],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontWeight','bold',...
'FontName','Times New Roman',...
'FontAngle','italic',...
'String',{'Polo deseado'},...
'LineWidth',2,...
'Color',[1 0 0]);
%%
%% Lugar de las raices para la planta compensada con el valor de k
figure(5)
title('Planta compensada con el valor de K','FontName','Times New
Roman','FontSize',14,'color','blue');
Pd=-1+2*i;
Pd1=-1-2*i;
plot(Pd,'MarkerSize',12,'Marker','x','LineWidth',3,'LineStyle','none',...
'Color',[0.8 0 0.4]);
hold on;
plot (Pd1,'MarkerSize',12,'Marker','x','LineWidth',3,'LineStyle','none',...
'Color',[0.8 0 0.4]);
xlabel('Eje Real','FontName','Times New Roman','FontSize',14,'color','green');
ylabel('Eje Imaginario','FontName','Times New
Roman','FontSize',14,'color','green');
annotation(figure(5),'textarrow',[0.4553 0.4019],[0.6611 0.6596],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontWeight','bold',...
'FontName','Times New Roman',...
'FontAngle','italic',...
'String',{'Polo deseado'},...
'LineWidth',2,...
'Color',[0 0.8 0.8]);

annotation(figure(5),'textarrow',[0.4592 0.4058],[0.3493 0.3478],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontWeight','bold',...
'FontName','Times New Roman',...
'FontAngle','italic',...
'String',{'Polo deseado'},...
'LineWidth',2,...
'Color',[0 0.8 0.8]);
grid on;
rlocus(k*num1,den1) % Con el valor de K obtenido se multiplica por la funcion de
transferencia del compensador
T=tf(num,den)
G=tf(k*num1,den1)
Tt=feedback(T,1);
Gt=feedback(G,1);
% Aqui se observa que el lugar de las raices del sistema compensado pasa
% por los polos deseados
%%
%%
%****** RESPUESTA PASO *****
figure(6)% SE HACE LA FUNCION PASO
step(Gt); % Sitema sin compesado
grid on;
hold on;
step(Tt); % Sistema sin compensar
title('Repuesta Paso del sistema compensado y sin compensar','FontName','Times
New Roman','FontSize',14,'color','blue');
xlabel('T seg','FontName','Times New Roman','FontSize',14,'color','green');
ylabel('Salida c1 y c2','FontName','Times New
Roman','FontSize',14,'color','green');
% Create textarrow
annotation(figure(6),'textarrow',[0.4041 0.3375],[0.7452 0.7447],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontName','Times New Roman',...
'FontAngle','italic',...
'String',{'Sistema Compensado'},...
'LineWidth',2,...
'Color',[0 0 1]);
% Create textarrow
annotation(figure(6),'textarrow',[0.448 0.3433],[0.4777 0.4772],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontName','Times New Roman',...
'FontAngle','italic',...
'String',{'Sistema sin compensar'},...
'LineWidth',2,...
'Color',[0 0.498 0]);
hold off

2.
) 4 (
16
) (
+
=
s s
s G

Especificaciones: 20 K , 3 2 2
v
> = j s (atraso)

A. Ubicacin deseada de los polos dominantes de lazo cerrado






%lugar del polo dominante deseado de lazo cerrado
figure(1)
PD1 = -2 + i*3.4641;
PD2 = -2 - i*3.4641;
plot(PD1,'X','MarkerSize',12,'Marker','x','LineWidth',2,'LineStyle','none');
% Create textarrow
annotation(figure(1),'textarrow',[0.4312 0.3755],[0.8014 0.8024],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontName','Times New Roman',...
'String',{'Polo deseado',''},...
'LineWidth',2,...
'Color',[0.8471 0.1608 0]);
% Create textarrow
annotation(figure(1),'textarrow',[0.4356 0.3751],[0.2337 0.2353],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontName','Times New Roman',...
'String',{'Polo deseado',''},...
'LineWidth',2,...
'Color',[0.8471 0.1608 0]);
hold on;
plot(PD2,'X','MarkerSize',12,'Marker','x','LineWidth',2,'LineStyle','none');
title('Ubicacin deseada de los polos dominantes de lazo cerrado','FontName','Times
New Roman','FontSize',14,'color','blue');
xlabel('Real Axis','FontName','Times New Roman','FontSize',14,'color','green');
ylabel('Imaginary Axis','FontName','Times New Roman','FontSize',14,'color','green');
grid on;
axis([-3 0.3 -5 5]);
hold off;


2.1
Cdigo MATLAB - Ubicacin de los polos
Figura 8


B. Lugar de las races del sistema sin compensar


C. Seleccin del tipo de compensador

Como se observa en la figura 9, la planta no cumple con las especificaciones deseadas
debido a que los polos deseados estn ubicados sobre el lugar geomtrico de la raz, por
tal motivo es necesario disear un compensador que solucione lo anterior. Para esto se
utiliza el meto del lugar geomtrico de la raz en atraso
D. Calculo del compensador

Lo primero para esta parte es calcular la constante de error Kv

Luego teniendo en cuenta la constante Kv deseada que para este caso es de 20 y Kv sin
compensar hallada en el tem anterior, se comparan dichas constantes para calcular el
aumento necesario ()


-4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0
-4
-3
-2
-1
0
1
2
3
4
0.1 0.2 0.32 0.44 0.56 0.7
0.84
0.95
0.5 1 1.5 2 2.5 3 3.5 4
0.1 0.2 0.32 0.44 0.56 0.7
0.84
0.95
Lugar de las raices del sistema sin compensar
Real Axis
I
m
a
g
i
n
a
r
y

A
x
i
s
Polo deseado
Polo deseado
Figura 9






Teniendo esto, se escoge un cero cualquiera muy cercano al origen, en este caso se
escoge , el cual se utiliza para hallar el polo para la planta ya compensada.

Luego |



Por tanto la planta compensada seria:

E. Lugar de las raices del sistema compensado

Haciendo una comparacin entre la grafica del LGR del sistema no compensado (Fig.9)
y de la figura 10, se observa que no es mucha la diferencia, por consiguiente las
especificaciones de sistema temporal se mantienen.

-3 -2.5 -2 -1.5 -1 -0.5 0
-5
-4
-3
-2
-1
0
1
2
3
4
5
0.06 0.12 0.18 0.26 0.36 0.5
0.66
0.88
0.06 0.12 0.18 0.26 0.36 0.5
0.66
0.88
1
2
3
4
5
1
2
3
4
5
Lugar de las raices del sistema compensado
Real Axis
I
m
a
g
i
n
a
r
y

A
x
i
s
Polo Deseado
Polo Deseado
Figura 10
F. Respuesta paso de la planta sin compensar y de la planta compensada







0 1 2 3 4 5 6 7 8 9 10
0
0.2
0.4
0.6
0.8
1
1.2
1.4


Repuesta Paso del sistema compensado y sin compensar
T seg (sec)
S
a
l
i
d
a

c
1

y

c
2
compensado
sin compensar
En esta figura se observa la respuesta del sistema ante una entrada paso compensado y
no compensado. La lnea verde indica la respuesta para el sistema sin compensar,
mientras que la lnea azul muestra la respuesta para el sistema compensado.
Es posible observar que las respuestas transitorias son relativamente iguales, con la
diferencia que el error en estado estacionario para la respuesta del sistema compensado
disminuye en comparacin con la respuesta del sistema sin compensar, hasta se podra
decir que es cero. Lo anterior debido al cero y el polo que se encuentra muy cerca al
origen. De esta manera se concluye que el diseo del compensador en retardo fue
satisfactorio y adecuado.

Figura 11
%lugar de las raices del sistema sin compensar
figure(2)
PD1 = -2 + i*3.4641;
PD2 = -2 - i*3.4641;
num = 16;
den=conv([1 0],[1 4]);
rlocus(num,den);
axis([-4.3 0.3 -4 4]);
title('Lugar de las raices del sistema sin compensar','FontName','Times New Roman','FontSize',14,'color','blue');
xlabel('Real Axis','FontName','Times New Roman','FontSize',14,'color','green');
ylabel('Imaginary Axis','FontName','Times New Roman','FontSize',14,'color','green')
grid on;
hold on;
plot(PD1,'X','MarkerSize',10,'Marker','x','LineWidth',2,'LineStyle','none',...
'Color',[1 0 0]);
plot(PD2,'X','MarkerSize',10,'Marker','x','LineWidth',2,'LineStyle','none',...
'Color',[1 0 0]);
% Create textarrow
annotation(figure(2),'textarrow',[0.5922 0.5351],[0.8356 0.8366],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'String',{'Polo deseado'},...
'LineWidth',2,...
'Color',[0 0.6 0]);
% Create textarrow
annotation(figure(2),'textarrow',[0.5932 0.5361],[0.162 0.163],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'String',{'Polo deseado'},...
'LineWidth',2,...
'Color',[0 0.6 0]);
hold off
%%
%Comentario: Para esta parte se dibuja el LGR del sistema sin compensar, es necesario declarar los valores de los dos polos dominantes PD1 y PD2,
%adems se declara el numerador y el denominador, y se dibujan los polos por medio del comando plot, para luego ser mostrados en la figura 1.
%Lo dems es simplemente ttulos y textos para indicar que es lo que se esta dibujando.
%lugar de las raices del sistema compensado
%%
figure(3)
Kv=16;
numc =[1 0.1];
G=conv([1 0],[1 4]);
denc=conv([1 0.02],G);
rlocus(Kv*numc,denc);
axis([-3 0.3 -5 5]);
title('Lugar de las raices del sistema compensado','FontName','Times New Roman','FontSize',14,'color','blue');
xlabel('Real Axis','FontName','Times New Roman','FontSize',14,'color','green');
ylabel('Imaginary Axis','FontName','Times New Roman','FontSize',14,'color','green');
grid on;
hold on;
plot(PD1,'X','MarkerSize',10,'Marker','x','LineWidth',2,'LineStyle','none',...
'Color',[1 0 0]);
plot(PD2,'X','MarkerSize',10,'Marker','x','LineWidth',2,'LineStyle','none',...
'Color',[1 0 0]);
% Create textarrow
annotation(figure(3),'textarrow',[0.3062 0.3575],[0.2313 0.2308],...
'TextEdgeColor','none',...
'TextLineWidth',3,...
'FontName','Times New Roman',...
'String',{'Polo Deseado'},...
'HeadStyle','deltoid',...
'LineWidth',3,...
'Color',[0.4 0 0.4]);
% Create textarrow
annotation(figure(3),'textarrow',[0.3097 0.3609],[0.7726 0.772],...
'TextEdgeColor','none',...
'TextLineWidth',3,...
'FontName','Times New Roman',...
'String',{'Polo Deseado'},...
'HeadStyle','deltoid',...
'LineWidth',3,...
'Color',[0.4 0 0.4]);
hold off;
%%
%Comentario: En esta segunda parte del cdigo se dibuja el LGR del sistema ya compensado, para esto previamente se debi calcular el compensador y
%as obtener la nueva funcin de transferencia y luego ser mostradas en la figura 2. Se hace un mtodo parecido al anterior, con la diferencia
%que ahora el numerador y denominador han cambiado.
%graficas de la respuesta paso de la planta sin compensar y de la planta compensada
%%
figure(4)
[num2,den2]=cloop(num,den);
[numc2,denc2]=cloop(Kv*numc,denc);
step(num2,den2);
title('Repuesta Paso del sistema compensado y sin compensar','FontName','Times New Roman','FontSize',14,'color','blue');
xlabel('T seg','FontName','Times New Roman','FontSize',14,'color','green');
ylabel('Salida c1 y c2','FontName','Times New Roman','FontSize',14,'color','green');
grid on;
hold on;
step(numc2,denc2);
hleg1 = legend('compensado','sin compensar');
hold off;
%%



2.2 Cdigo MATLAB


























3. Se tiene la siguiente planta en lazo abierto:
1
1
) (
2
+
=
s
s G

Se desea disear un controlador PID de tal forma que el sistema en lazo cerrado cumpla las
siguientes especificaciones: .
A. Ubicacin deseada de los polos dominantes de lazo cerrado

B. Lugar de las races del sistema sin compensar


-1 -0.5 0 0.5
-4
-3
-2
-1
0
1
2
3
4
Polo deseado
Polo deseado
LUGAR DE LAS RAICES DEL SISTEMA SIN COMPENSAR
EJE REAL (seconds
-1
)
E
J
E

I
M
A
G
I
N
A
R
I
O

(
s
e
c
o
n
d
s
-
1
)
Figura 12
Figura 13

Z Z



C. Seleccin del tipo de compensador

D. Calculo del compensador

Se observa claramente en la grfica que el lugar de la races no pasa por la
ubicacin deseada, lo cual quiere decir que el sistema no cumple con las
especificaciones en lazo cerrado.
Calculo de los parmetros del compensador tipo PI D:
Se calcula la deficiencia angular en la ubicacin deseada, la cual se puede
hallar a partir de la condicin de ngulo:





Como el sistema no presenta ceros en lazo abierto, los ngulos de los polos sern
negativos y ser la deficiencia angular:

Para que el resultado de un resultado menor que 180, se toma solo en signo negativo.

Figura 14

E. Lugar de las races del sistema compensado




F. Respuesta paso de la planta sin compensar y de la planta compensada


Claramente se observa, que el sistema presenta inestabilidad (oscilacin) antes de la
accin del compensador. Del mismo modo se observa, que el diseo del compensador
tipo PID para este problema result satisfactorio para proporcionar la estabilidad
requerida por el sistema.

0 5 10 15
-0.2
0
0.2
0.4
0.6
0.8
1


Step Response
Time (seconds)
A
m
p
l
i
t
u
d
e
Sin Compensar
Compensado
Figura 15
Figura 16
3.1
Cdigo MATLAB
%XXXXXXXXX--UBICACION DE LOS POLOS DESEADOS----XXXXXXX

Pd= -1 + 1i*3^(1/2);
Pd1 = -1 - 1i*3^(1/2);
figure (1)
plot(Pd,'x','MarkerSize',12,'LineWidth',2);
hold on;
plot(Pd1,'x','MarkerSize',12,'LineWidth',2);
title('UBICACION DE LOS POLOS DOMINANTES DESEADOS EN LAZO CERRADO');
xlabel('EJE REAL');
ylabel('EJE IMAGINARIO');
grid on;
axis([-2.5 0.5 -5 5]);
text(real(Pd),imag(Pd),' \leftarrow Polo deseado','HorizontalAlignment','left');
text(real(Pd1),imag(Pd1),' \leftarrow Polo deseado','HorizontalAlignment','left');
hold off;

%XXXXXXXXX--LUGAR DE LAS RAICES DEL SISTEMA SIN COMPENSAR----XXXXXXX
num = 1;
den=[1 0 1];
figure (5)
rlocus(num,den);
xlabel('EJE REAL');
ylabel('EJE IMAGINARIO');
axis([-1.2 0 -4 4]);
title('LUGAR DE LAS RAICES DEL SISTEMA SIN COMPENSAR');
grid on
hold on;
plot(Pd,'x','MarkerSize',12,'LineWidth',3);
plot(Pd1,'x','MarkerSize',12,'LineWidth',3);
% Create textarrow
annotation(figure(5),'textarrow',[0.3023 0.2745],[0.6707 0.6702],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontName','Times New Roman',...
'FontAngle','italic',...
'String',{'Polo Deseado'},...
'LineWidth',2,...
'Color',[0.8 0 0]);
% Create textarrow
annotation(figure(5),'textarrow',[0.3048 0.277],[0.3316 0.3311],...
'TextEdgeColor','none',...
'TextLineWidth',2,...
'FontName','Times New Roman',...
'FontAngle','italic',...
'String',{'Polo Deseado'},...
'LineWidth',2,...
'Color',[0.8 0 0]);
hold off;

%XXXXXXXXX--CALCULO DEL COMPENSADOR----XXXXXXX
num = 1;
den=[1 0 1];
figure (2)
% Create arrow
annotation(figure(2),'arrow',[0.234992679355783 0.6800878477306],...
[0.662251655629139 0.667977825076861],'LineStyle','--','LineWidth',2,...
'Color',[1 0 0]);
% Create arrow
annotation(figure(2),'arrow',[0.230600292825769 0.677159590043924],...
[0.662131519274376 0.589569160997732],'LineWidth',2);
% Create line
annotation(figure(2),'line',[0.679355783308931 0.679355783308931],...
[0.675736961451247 0.587301587301587],'LineStyle',':','LineWidth',3,...
'Color',[1 0 0]);
% Create line
annotation(figure(2),'line',[0.678571428571429 0.855357142857143],...
[0.58947619047619 0.59047619047619],'LineStyle',':','LineWidth',2,...
'Color',[0.749019622802734 0 0.749019622802734]);
% Create line
annotation(figure(2),'line',[0.682053963605941 0.846998535871157],...
[0.398598715890851 0.4],'LineStyle',':','LineWidth',2,...
'Color',[0.749019622802734 0 0.749019622802734]);
% Create arrow
annotation(figure(2),'arrow',[0.232796486090776 0.680819912152269],...
[0.659509202453988 0.399092970521542],'LineWidth',2);
% Create doublearrow
annotation(figure(2),'doublearrow',[0.231332357247437 0.232796486090776],...
[0.65484289011097 0.409681599788389],'LineStyle','--','LineWidth',2,...
'Color',[1 0 0]);
% Create doublearrow
annotation(figure(2),'doublearrow',[0.22913616398243 0.671303074670571],...
[0.406441717791411 0.401840490797546],'LineStyle','--','LineWidth',2,...
'Color',[1 0 0]);
% Create arrow
annotation(figure(2),'arrow',[0.232796486090776 0.680357142857143],...
[0.661122661122661 0.5],'LineWidth',2);
% Create line
annotation(figure(2),'line',[0.680819912152269 0.855051244509517],...
[0.495881496881497 0.496881496881497],'LineStyle',':','LineWidth',2,...
'Color',[0.749019622802734 0 0.749019622802734]);
% Create textarrow
annotation(figure(2),'textarrow',[0.231332357247438 0.231332357247438],...
[0.743329896907217 0.68659793814433],'TextEdgeColor','none',...
'String',{'Polo deseado'});
rlocus(num,den);
xlabel('EJE REAL');
ylabel('EJE IMAGINARIO');
axis([-1.2 0.5 -4 4]);
title('CALCULO DEL COMPENSADOR');
hold on;
plot(Pd,'x','MarkerSize',12,'LineWidth',3);
plot(Pd1,'x','MarkerSize',12,'LineWidth',3);
text(real(Pd1),imag(Pd1),' \leftarrow Polo deseado','HorizontalAlignment','left');
hold off;

%XXXXXXXXX--CALCULO DE LOS PARAMETROS DEL COMPENSADOR----XXXXXXX
fi1 = pi - atan(sqrt(3)-1);
fi2 = pi - atan(sqrt(3)+1);
fi3 = pi - atan(sqrt(3));
def =-pi+fi1+fi2;
fi3 = pi - atan(sqrt(3));%----corresponde al ngulo del polo del PID
fi = -pi + fi1 + fi2 + fi3;%---ANGULO DE LOS CEROS
fi = fi/2;
def = angle(Pd) - fi;
ang2 = def;
dis = abs(Pd1);
X = dis*sin(ang2)/sin(fi);
numc= conv([1 X],[1 X]);
alfa = numc(2);%--- numerador compensador
beta = numc(3);
denc = [1 0];%---denominador compensador

nums = conv(num,numc);%--- numerador compensador y planta
dens = conv(den,denc);%----- denominador compensador y planta
K= abs(polyval(dens,Pd1)/polyval(nums,Pd1));%---condicion de magnitud
figure(3)
rlocus(K*nums,dens);
grid on;
hold on;
plot(Pd,'X','MarkerSize',12,'LineWidth',2);
plot(Pd1,'X','MarkerSize',12,'LineWidth',2);
text(real(Pd),imag(Pd),' \leftarrow Polo
deseado','HorizontalAlignment','left');
text(real(Pd1),imag(Pd1),' \leftarrow Polo
deseado','HorizontalAlignment','left');

%%
%XXXXXXXXX--GRAFICAS DE LA PLANTA ANTES Y DEPUES DE COMPENSAR----XXXXXXX
[num,den]=cloop(num,den);
[nums,dens]=cloop(K*nums,dens);
figure(4)
step(num,den);
axis([0 15 -0.2 1.2]);
grid on;
hold on;
step(nums,dens);
hleg1 = legend('Sin Compensar','Compensado');
hold off;


2.2 Diseo de un compensador por diagrama de bode
Objetivo: Uso del MATLAB en el diseo de un compensador utilizando los
diagramas de bode




1. Realizar el diseo del compensador adecuado para la planta por mtodo de
respuesta en frecuencia:
- Margen de fase y margen de ganancia del sistema sin compensar

Diseo analtico:

Se empieza por calcular la ganancia de la planta para cumplir con las
especificaciones.


Por tanto la planta debe ser:

Luego la grafica de bode de la funcin de transferencia de la planta es:


%Diagrama bode Planta sin compensar
num=50;
den=[1 1 0];
margin(num,den)

1.1 Cdigo MATLAB - Planta sin compensar
|| |





Posteriormente se halla matemticamente que es la frecuencia de corte de ganancia
para luego hallar el margen de fase Pm:
Teniendo en cuanta la condicin de magnitud ||
Luego las races son:
Luego se calcula Pm, remplazando en la ecuacin de fase del sistema:
Entonces el Pm ser:

Figura 17


|
|





Adems se calcula el ngulo de adelanto de fase


Ya teniendo el valor del ngulo de adelanto de fase, se halla el factor de atenuacin :
Teniendo esto se halla la nueva frecuencia de cruce as:
Teniendo esto se puede hallar el valor del cero y del polo para la planta compensada as:
Y el polo seria:
Por ultimo La ganancia del compensador es:
Luego la planta compensada quedara de la siguiente forma:


1.2
Cdigo MATLAB - Planta compensada
%Diagrama bode Planta compensada
Kv=320.92;
numc=[1 4.43];
G=conv([1 0],[1 1]);
denc=conv([1 28.5],G);
margin(numc,denc)
title('diagrama de bode sistema compensado');





- Grafica de bode de la planta compensada:
Para graficar en bode la planta compensada se dibuja el diagrama de bode de:

Que para este caso sera:



Figura 18
- Respuesta entrada paso para el sistema compensado y no compensado

%respuesta escalon unitario
num=50;
den=[1 1 0];
Kv=320.92;
numc=[1 4.43];
G=conv([1 0],[1 1]);
denc=conv([1 28.5],G);
[num2,den2]=cloop(num,den);
[numc2,denc2]=cloop(Kv*numc,denc);
step(num2,den2);
hold on;
step(numc2,denc2);
hleg1 = legend('sin compensar','compensado');
hold off;

1.3
Cdigo MATLAB - Respuesta entrada paso para el sistema compensado y
no compensado

Figura 19
Esta figura grafica la respuesta del sistemas en el tiempo ante una entrada paso para el
sistema compensado (lnea verde) y no compensado (lnea azul). Se observa claramente
la mejora del sistema compensado en comparacin con el no compensado tanto en la
respuesta transitoria como en estado estacionario, presentando un tiempo de
establecimiento menor a 1seg en sistema compensado y mayor a 8 seg para el no
compensado.

[


]



2. Realizar el diseo del compensador adecuado para la planta por mtodo de
respuesta en frecuencia:
1
1
) (
2
+
=
s
s G Especificaciones: Kv=4 s
-1
Pm > 50 Gm > 10 dB (atraso)
- Desarrollo analtico:
Suponemos un compensador que tiene la siguiente forma:
Para el anlisis en el dominio de la frecuencia:
Donde es el parmetro necesario para que se cumpla el margen de fase y


Definimos:
Como primer paso es necesario ajustar la ganancia de la planta para que cumpla con las
especificaciones de
Estado estacionario. De esta manera que tiene que:



Entonces la planta seria:
Con el anterior resultado, vemos que no es posible encontrar un valor apropiado para K,
con el fin de satisfacer la especificacin requerida, circunstancia que ms adelante
generar conflicto tambin para encontrar el valor del parmetro beta y que posiblemente
proporcionar inestabilidad al sistema. No es posible llegar a un diseo apropiado
mediante este enfoque

También podría gustarte