1. http://lonely113.blogspot.com
CONTROL PID DISCRETO DE UN LEVITADOR MAGNÉTICO
I. INTRODUCCIÓN
La levitación magnética consiste en mantener objetos suspendidos sin existir
contacto mecánico gracias a la fuerza magnética. Este proceso es por naturaleza
inestable y no lineal, esto hace que el control de estos sistemas sea altamente
desafiante. Además, se hace obligatoria la utilización del control en lazo cerrado
para mantener la levitación.
Para el diseño y simulación de los sistemas de control propuestos, se ha utilizado
LabVIEW y Matlab, herramientas poderosa tanto para el cálculo matemático, así
como para la simulación de la respuesta de los sistemas de control usados en esta
investigación y validar su desempeño.
Cuando el sistema se encuentra en equilibrio estático, una fuerza fm actúa sobre la
esfera, además del peso de la misma. Es aquí donde se aplica la segunda ley de
Newton.
II. ANÁLISIS
El sistema en estudio es un Levitador Magnético de naturaleza inestable, que se
muestra en su forma básica en la imagen:
La corriente que circula por el electroimán, resultado de la aplicación de un voltaje
DC, genera un campo magnético concentrado en el eje “y”. Como consecuencia la
esfera metálica está sometida a las fuerzas Gravitacional y Magnética. Cuando
2. http://lonely113.blogspot.com
estas fuerzas se equilibran la esfera llega a levitar en la posición de equilibrio,
manteniéndose en esta posición gracias al sistema de control que se aplique.
Es posible aumentar o disminuir la fuerza magnética aumentando o disminuyendo
la corriente a través del electroimán dependiendo de la posición de la esfera, que
se determina mediante un sensor.
Variables de entrada
Voltaje a través del electroimán: u(t)
Corriente a través del electroimán: i(t)
Variables de salida
Posición de la esfera: y(t)
2.1. Modelado del sistema
El siguiente esquema representa el sistema a controlar en su forma básica.
Para el análisis no se tomará en cuenta el transductor (sensor) que se utiliza
para determinar la posición de la esfera.
A continuación se determinará la función de transferencia del sistema
considerando:
Entrada u(t): Tensión en voltios.
Salida y(t): Posición de la esfera tomando como referencia el electroimán
La obtención del modelo parte de la formulación de las ecuaciones físicas y
eléctricas que gobiernan el sistema, estas son:
3. http://lonely113.blogspot.com
Ecuación eléctrica
Se determina a partir de la malla que forman la fuente de tensión u(t), la
resistencia R del electroimán, y la inductancia L del mismo.
………………….. (1)
………..……….. (2)
Ecuación física
La segunda Ley de Newton:
Aplicado al sistema:
……………..…… (3)
Dónde:
m: Masa de la esfera
a: Aceleración
g: Constante gravitacional
fm: Fuerza magnética del electroimán.
La fuerza magnética se expresa mediante:
Siendo K la constante del electroimán que viene dado por:
Dónde:
N: Número de espiras de la bobina.
μ: Permeabilidad del núcleo.
μ0: Permeabilidad del vacío.
4. http://lonely113.blogspot.com
Reemplazando fm en la ecuación (3):
………………………….. (4)
Definición de las variables de estado:
Siendo:
y(t): Posición de la esfera tomando como referencia al
electroimán.
y’(t): Velocidad de la esfera.
i(t): Corriente a través del electroimán.
Ecuaciones de estado en tiempo continuo
Reemplazando en las ecuaciones (2) y (4).
Como se observa en las ecuaciones obtenidas, el modelo matemático del
sistema es no lineal, siendo necesario linealizarlo en torno a la posición de
equilibrio.
5. http://lonely113.blogspot.com
Para esto se utiliza la serie de Taylor, dando como resultado la matriz de
estado siguiente:
Resolviendo se obtiene:
Es necesario hallar la corriente de equilibrio x30 para la posición de
equilibrio x10 = cte.
De la segunda ecuación de estado:
6. http://lonely113.blogspot.com
Reemplazando en las matrices de estado:
Reemplazando datos del sistema; para este caso particular:
Finalmente se obtienen la matriz de ecuaciones de estado en tiempo
continuo:
7. http://lonely113.blogspot.com
Ecuaciones de estado en tiempo discreto
La discretización se realiza en Matlab mediante el comando “c2dm”,
considerando:
Ts=0.001 s
Retenedor de órden 0: “zoh”
Dando como resultado la matriz de ecuaciones de estado en tiempo
discreto:
2.2. Simulación
2.2.1. En tiempo continuo
Se obtiene la función de transferencia en Lazo Abierto a partir de las
ecuaciones de estado.
Se obtienen los polos del sistema:
La existencia de un polo en el semiplano derecho nos indica que el sistema
es inestable.
A continuación se observan los gráficos de respuesta al escalón del sistema
en lazo abierto y el gráfico del lugar geométrico de raíces en Matlab (El
código se adjunta en el Anexo B)
8. http://lonely113.blogspot.com
25
x 10 Respuesta al escalón unitario del sistema en Lazo Abierto
0
-0.5
-1
Amplitude
-1.5
-2
-2.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Time (seconds)
Respuesta al Escalón
Gráfico de lugar geométrico de raíces
800
600
400
Imaginary Axis (seconds-1)
200
0
-200
-400
-600
-800
-600 -400 -200 0 200 400 600 800
Real Axis (seconds -1)
Lugar Geométrico de Raíces
2.2.2. En tiempo discreto
Se obtiene la función de transferencia en lazo abierto a partir de las
ecuaciones de estado en tiempo discreto:
9. http://lonely113.blogspot.com
Se obtienen los polos del sistema:
La presencia de un polo fuera del círculo unitario nos indica la inestabilidad
del sistema.
A continuación se observan los gráficos de respuesta al escalón del sistema
en lazo abierto y el gráfico de polos y ceros en Matlab (El código se adjunta
en el Anexo B).
25
x 10 Respuesta al escalón unitario del sistema
0
-0.5
-1
Amplitude
-1.5
-2
-2.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Time (seconds)
Respuesta al Escalón
Gráfico de Polos y Ceros
1.5
1
0.5
Imaginary Part
0
-0.5
-1
-1.5
-3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1
Real Part
Gráfico de Polos y Ceros
10. http://lonely113.blogspot.com
2.3. Requerimientos de diseño del control PID
Se requiere diseñar un controlador PID tal que el sistema cumpla los
siguientes requisitos:
Tiempo de establecimiento: 1 s
Sobreimpulso máximo: 50 %
Error en estado estacionario: 0.
El controlador PID discreto se realiza mediante el método del rediseño, es
decir, diseñando primero un controlador PID para el sistema en tiempo
continuo y posteriormente discretizándolo con las consideraciones de
Frecuencia de muestreo y aproximación trapezoidal de la parte integral.
Como el sistema que representa a la “planta” es de Tercer Órden no es
posible diseñar el controlador para que cumplan los requisitos (como se
realiza con sistemas de segundo órden). En este caso se utilizará el método
de Routh-Hurwitz para determinar los rangos de las ganancias Kp, Ki, Kd que
estabilizan al sistema, posteriormente se sintonizará el controlador PID
utilizando LabVIEW, pues éste a diferencia de Matlab permite variar los
valores de las ganancias en forma interactiva y muestra la respuesta en
tiempo real.
Función de transferencia en lazo abierto:
Función de transferencia del controlador:
11. http://lonely113.blogspot.com
Implementación de un control PD mediante el método de Routh-
Hurtwiz.
Función de transferencia del controlador PD:
Ecuación característica del sistema en lazo cerrado
s3
s2
s1 0
s0 0
Para que el sistema sea estable se obtiene:
12. http://lonely113.blogspot.com
Simulando con estos valores en LabVIEW.
Efectivamente, el sistema se estabiliza, pero existe el problema del error
en estado estacionario, que en este caso es muy grande, además del
tiempo de establecimiento. Es necesario implementar también un
controlador PI.
13. http://lonely113.blogspot.com
Implementación de un controlador PI mediante el método de Routh-
Hurwitz.
Función de transferencia del controlador PI:
Ecuación característica del sistema en lazo cerrado:
s4 1 -1304 -1142.6·Ki
s3 268.2011 -349700-1142.6·Kp 0
s2 -0.128+4.26·Kp -1142.6·Ki 0
s1 … 0 0
s0 -1142.6·Ki 0 0
Se obtiene:
………….…..tercera línea
……………...cuarta línea
El valor de Ki que hace estable al sistema es incongruente, por lo que se
deduce que un controlador PI no puede estabilizar el sistema.
14. http://lonely113.blogspot.com
Implementación del controlador PID
Se realiza la sintonización en LabVIEW tratando de lograr los requisitos,
partiendo de las restricciones de Kp y Kd obtenidas en el paso anterior.
15. http://lonely113.blogspot.com
Se procede a simular en Matlab con estos valores. El código se adjunta en
el Anexo C.
Respuesta al escalón unitario del sistema con controlador
1.5
Amplitude 1
0.5
0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
Time (seconds)
Respuesta al Escalón
Gráfico del lugar geométrico de raíces
250
200
150
100
Imaginary Axis (seconds-1)
50
0
-50
-100
-150
-200
-250
-140 -120 -100 -80 -60 -40 -20 0 20
Real Axis (seconds -1)
Lugar Geométrico de Raíces
16. http://lonely113.blogspot.com
Se observa que los polos están en el semiplano izquierdo.
Se obtienen los siguientes parámetros:
Se calculan las ganancias del controlador PID en tiempo discreto. Se
utiliza aproximación trapezoidal para la componente integral.
De dónde:
Se procede a simular en LabVIEW para obtener los parámetros de la
respuesta al escalón unitario.
17. http://lonely113.blogspot.com
Simulación en Matlab. El código se adjunta en el Anexo C.
Respuesta al escalón unitario del sistema con controlador
1.5
1
Amplitude
0.5
0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
Time (seconds)
Respuesta al Escalón
Gráfico de polos y ceros
1.5
1
0.5
Imaginary Part
0
-0.5
-1
-1.5
-3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1
Real Part
Gráfico de Polos y Ceros
Se observa que los polos están dentro del círculo unitario.
Se obtienen los siguientes parámetros:
18. http://lonely113.blogspot.com
III. SIMULACIÓN EN TIEMPO REAL DEL SISTEMA CON CONTROL PID
Se realiza en LabVIEW. La programación es en lenguaje G.
Se diseñan los controladores P, PD y PI independientemente para unirlos
posteriormente en un bloque PID paralelo.
Los tres controladores (P, PI y PD) se guardan como “VIs” (Instrumentos virtuales)
con sus ícono respectivos para que puedan ser llamados por otro VI: el
controlador PID. Los diagramas se adjuntan en el Anexo D.
Sistema de control en lazo cerrado:
Este es el esquema del sistema de control en Lazo Cerrado. Permite seleccionar
Kp, Ki, Kd, Referencia, Periodo de muestreo y límites de salida del controlador
desde el panel frontal.
La simulación se muestra a continuación:
19. http://lonely113.blogspot.com
Se observa la respuesta del sistema al escalón, si se varía la señal de referencia se
observa que la salida sigue a la referencia, dando como resultado error en estado
estacionario nulo.
IV. RESULTADOS
Estrategia ts (s) Sobrepico (%) Error estacionario (%)
Control PID 0.425 51.63 0
V. ANEXOS
Anexo A. Programa en Matlab para la obtención del modelo del sistema.
m=36; %Masa de esfera
R=9; %Resistencia de bobina
N=1595; %Número de vueltas de la bobina
l=0.04; %Longitud de bobina
r=0.035/2; %Radio de bobina
h0=0.015; %Posición de equilibrio
u0=4*pi*10^-7; %Permeabilidad del medio
ur=0.4364; %Permeabilidad relativa del acero
A=r^2*pi; %Área de bobina
L=u0*ur*N^2*A/l; %Inductancia de la bobina
K=N^2*(u0*ur)^2/(2*u0); %Constante del electroimán
I0=sqrt(m*9.78*h0^2/K); %Corriente en punto de equilibrio
Ts=0.001; %Periodo de muestreo
A=[0 1 0 ; 2*K*I0^2/(m*h0^3) 0 -2*K*I0/(m*h0^2) ; 0 0 -R/L];%Matriz de
estado en tiempo continuo
20. http://lonely113.blogspot.com
Anexo B. Programa en Matlab de la respuesta del modelo del proceso en Lazo
Abierto en tiempo continuo y en tiempo discreto.
En Tiempo Continuo:
num=[-1.1426e+003];
den=[1 268.2011 -1304 -349730];
FTLA=tf(num,den);
Polos=pole(Gp);
figure(1),step(FTLA)
En tiempo discreto:
num=[-1.1426e+003];
den=[1 268.2011 -1304 -349730];
FTLA=tf(num,den);
Ts=0.001;
Tf=Ts;
FTLAd=c2d(FTLA,Ts);
numd=FTLAd.num{:};
21. http://lonely113.blogspot.com
Anexo C. Programa en Matlab del Sistema de Control PID en tiempo continuo y en
tiempo discreto.
En tiempo continuo:
num=[-1.1426e+003];
den=[1 268.2011 -1304 -349730];
FTLA=tf(num,den);
Kp=-1000;
Ki=-7500;
Kd=-30;
PID=pid(Kp,Ki,Kd,0);
FTLC=feedback(series(PID,FTLA),1);
figure(1), step(FTLC)
title('Respuesta al escalón unitario del sistema con controlador')
figure(2), rlocus(FTLC)
title('Gráfico del lugar geométrico de raíces')
En tiempo discreto:
num=[-1.1426e+003];
den=[1 268.2011 -1304 -349730];
FTLA=tf(num,den);
Ts=0.001;
Tf=Ts;
FTLAd=c2d(FTLA,Ts);
Kp=-1000;
Ki=-7500;
Kd=-30;
PIDd=pid(Kp,Ki,Kd,0,Ts,'IFormula','Trapezoidal');
22. http://lonely113.blogspot.com
Anexo D. Diseño del controlador PID en tiempo discreto en LabVIEW
a) Controlador Proporcional
b) Controlador Proporcional – Derivativo
c) Controlador Proporcional-Integral