Upload
gabriel-correa
View
3.771
Download
20
Embed Size (px)
DESCRIPTION
Laboratorio de Control AutomáticoFecha = Junio 2000
Citation preview
CCOONNTTRROOLL DDEE UUNN LLEEVVIITTAADDOORR MMAAGGNNÉÉTTIICCOO
GGAABBRRIIEELL JJAAIIMMEE CCOORRRREEAA HHEENNAAOO
JJAAIIRROO DDEE JJEESSÚÚSS GGIIRRAALLDDOO GGIIRRAALLDDOO
AANNTTOONNIIOO MMAANNUUEELL TTAAPPIIAA MMOORRFFIILL
Presentado a:
Ing. Ovidio Rueda
APLICACIONES DEL DSP
MMEEDDEELLLLÍÍNN
UUNNIIVVEERRSSIIDDAADD NNAACCIIOONNAALL DDEE CCOOLLOOMMBBIIAA
FFAACCUULLTTAADD DDEE MMIINNAASS
EESSCCUUEELLAA DDEE IINNGGEENNIIEERRÍÍAA EELLÉÉCCTTRRIICCAA YY MMEECCÁÁNNIICCAA
1
LISTADO DE FIGURAS 3
INTRODUCCIÓN 5
PROBLEMA PLANTEADO 6
DESCRIPCIÓN DEL SISTEMA 6
ESTRATEGIA DE SOLUCIÓN 8
ESTUDIO DEL SISTEMA 9
DISEÑO DEL CONTROLADOR 12
DEDUCCIÓN DE LAS REGLAS DIFUSAS PARA EL SISTEMA LEVITADOR –
CONTROLADOR PI 17
CONSTRUCCIÓN DE LAS REGLAS DIFUSAS 19
RESULTADOS 21
DEDUCCIÓN DE LAS REGLAS DIFUSAS PARA EL SISTEMA LEVITADOR –
CONTROLADOR PID 23
1A TÉCNICA: RESULTADOS CON LA DERIVADA DEL ERROR 23
CONSTRUCCIÓN DE LAS REGLAS DIFUSAS, CON EL CONTROLADOR PID 25
RESULTADOS MEDIANTE EL USO DE LA 1ª TÉCNICA 27
2A TÉCNICA: RESULTADOS CON LA DERIVADA DE LA SALIDA DEL SISTEMA 28
CONSTRUCCIÓN DE LAS REGLAS DIFUSAS, CON EL CONTROLADOR PID 29
RESULTADOS MEDIANTE EL USO DE LA 2ª TÉCNICA 31
2
RESULTADOS CONSIDERANDO LA INTERFERENCIA DE LA GRAVEDAD 33
RESULTADOS CON INTERFERENCIA 0.58 33
CONTROL DIGITAL DEL LEVITADOR 36
CONSTRUCCIÓN DE LA FUNCIÓN QUE SE ENTRA AL DSP 38
CÓDIGO DEL PROGRAMA A IMPLEMENTAR EN EL DSP 41
CONCLUSIONES 46
3
LLIISSTTAADDOO DDEE FFIIGGUURRAASS
Figura 1. Esquema del Levitador _________________________________________________________________ 7
Figura 2. Configuración Simple del Diagrama de Bloques para el Levitador Manético _______________________ 8
Figura 3. Configuración del Sistema sobre el que se trabaja el Diseño del Controlador _____________________ 10
Figura 4. Respuesta del Sistema en Lazo Abierto, ante un Escalón Unitario ______________________________ 11
Figura 5. Respuesta del Sistema en Lazo Cerrado, ante un Escalón Unitario ______________________________ 11
Figura 6. Lugar Geométrico de las Raíces para el Sistema en Lazo Abierto _______________________________ 14
Figura 7. Lugar Geométrico de las Raíces para el Sistema en Lazo Cerrado. _____________________________ 15
Figura 8. Respuesta del Sistema Levitador – Controlador ante un Escalón Unitario ________________________ 16
Figura 9. Comportamiento del Error del Sistema (Control PI) _________________________________________ 17
Figura 10. Respuesta de la Derivada del Error del Sistema (Control PI) _________________________________ 18
Figura 11. Respuesta de la Salida del Controlador PI________________________________________________ 19
Figura 12. Función de Pertencencia para la Variable “Error” (Controlador PI) __________________________ 20
Figura 13. Función de Pertencencia para la Variable “Derivada del Error” (Controlador PI) _______________ 20
Figura 14. Función de Pertencencia para la Variable “Control” (Controlador PI) _________________________ 21
Figura 15. Implementación del Sistema de Control Difuso, considerando el cambio en el error _______________ 21
Figura 16. Salida del Sistema Planta-Controlador difuso, considerando la Derivada del Error _______________ 22
Figura 17. Implementación del Sistema de Control Difuso, considerando el cambio en el error _______________ 23
Figura 18. Comportamiento del Error del Sistema (Control PID) ______________________________________ 24
Figura 19. Respuesta de la Derivada del Error del Sistema (Control PID) _______________________________ 24
Figura 20. Respuesta de la Salida del Controlador PID ______________________________________________ 25
Figura 21. Función de Pertencencia para la Variable “Error” (Controlador PID) _________________________ 26
Figura 22. Función de Pertencencia para la Variable “Derivada del Error” (Controlador PID) ______________ 26
Figura 23. Función de Pertencencia para la Variable “Salida” (Controlador PID) _______________________ 27
Figura 24. Salida del Sistema Planta-Controlador difuso, considerando la Derivada del Error con el Controlador
PID _____________________________________________________________________________ 27
Figura 25. Implementación del Sistema de Control Difuso, considerando el cambio en la salida del sistema _____ 28
Figura 26. Respuesta de la Derivada de la Salida del Sistema (Control PID) _____________________________ 29
Figura 27. Función de Pertencencia para la Variable “Error” (Controlador PID) _________________________ 30
Figura 28. Función de Pertencencia para la Variable “Derivada de la Salida” (Controlador PID) ____________ 30
Figura 29. Función de Pertencencia para la Variable “Salida” (Controlador PID) _______________________ 31
Figura 30. Salida del Sistema Planta-Controlador difuso, considerando la Derivada de la Salida con el Controlador
PID _____________________________________________________________________________ 31
4
Figura 31. Sistema a implementar, considerando la interferencia de la gravedad __________________________ 33
Figura 32. Respuesta del sistema planta-controlador, considerando interferencia de gravedad 0.58 __________ 34
Figura 33. Respuesta del sistema planta-controlador, considerando interferencia de gravedad > 0.58 (en este caso
1.55) ____________________________________________________________________________ 35
Figura 34.. Respuesta del Sistema Planta – Controlador Digital (Muestreo a 0.1 segundos) __________________ 38
Figura 35.. Configuración del módulo de segundo orden para implementar en el DSP ______________________ 39
Figura 36..Conexión del DSP al Levitador ________________________________________________________ 39
Figura 37..Flujograma de la implementación en el DSP ______________________________________________ 40
5
IINNTTRROODDUUCCCCIIÓÓNN
La lógica difusa, junto con todos los campos de conocimientos afines afines a la inteligencia
artificial, ha pasado en poco tiempo de ser un tema especializado y de difícil entendimiento, hasta
convertirse en un pilar fundamental para los requerimientos prácticos para el control de algunos
sistemas, donde por su complejidad son impracticables los controles convencionales.
La lógica difusa encuentra una de sus aplicaciones más esenciales, en el desarrollo de sistemas de
controlen plantas o procesos para los cuales los controladores diseñados según otros patrones
clásicos no dan los resultados esperados o simplemente fallan del todo. Son procesos de elevada
complejidad: no lineales, variables en el tiempo, sujetos a grandes perturbaciones, sin un modelo
adecuado y que en general solo pueden ser manejados satisfactoriamente por operarios humanos
expertos.
En estos procesos nos damos cuenta que las acciones de control y las acciones deben ser
procesadas y manejadas de un modo netamente cualitativo; de allí la necesidad de, por medio de
la lógica difusa, construir modelos de racionamiento humano que reflejen el carácter vago y
cualitativo que este tiene; para así, utilizar las técnicas del control difuso como una alternativa o
un complemento de las técnicas de control convencionales.
El trabajo presente se desarrollará en un proceso de características complejas, como es la
graduación del campo magnético en el dispositivo de un levitador magnético. El trabajo consta de
dos partes principales:
1. El diseño de un control PID (proporcional integral derivativo), y luego su implementación
como control digital en un DSP (procesador digital de señales).
2. El diseño de un control lógico difuso, con su estructura general tipo Mandami, del cual se
realizará una simulación en su funcionamiento. La respuesta más apropiada se puede localizar
en el capítulo llamado “DEDUCCIÓN DE LAS REGLAS DIFUSAS PARA EL SISTEMA
LEVITADOR – CONTROLADOR PID” (Figura 30)
6
PPRROOBBLLEEMMAA PPLLAANNTTEEAADDOO
El objetivo de control es mantener una masa de metal en suspensión por acción de un
electroimán. La fuerza magnética, que se opone al peso, es generada por una bobina por la que se
hace circular una corriente de valor RMS controlado. El controlador (Que puede ser implementado
en PC), determina el valor de esta corriente en función de la posición de la masa, según sea la
información que se le suministre al controlador.
El sistema sobre el cual vamos a realizar el control es un levitador magnético. Este levitador
magnético, que existe actualmente en la facultad para fines didácticos, tiene una perilla de
precisión mediante la cual se controla y calibra el campo magnético. Este control es llevado a
cabo manualmente; nuestro objetivo es conseguir un control que realice la operación de una
manera tan óptima como la haría un operario humano.
DDEESSCCRRIIPPCCIIÓÓNN DDEELL SSIISSTTEEMMAA
El sistema consta de una pequeña masa, la cual ocupa la función del levitador tiene un peso
determinado, de una bobina que se encarga de crear el campo necesario para equilibrar la fuerza
de gravedad que actúa sobre la masita y así mantenerla en el aire; también tenemos la estructura
que soporta la bobina y entre la cual se mueve la masita. El rango de movimiento de esta masa es
de cerca de 21 mm; aparte de esto encontramos un montaje electrónico que sirve para adaptar el
control proporcionado por la perilla, y la energía que alimenta la bobina.
7
Controlador
Bobina
Fuente de Corriente
Masa Metálica
Figura 1. Esquema del Levitador
La construcción se basa en la utilización de bobinas separadas eléctricamente que están unidas
físicamente por la placa en donde se montará el circuito de control.
Una idea de cómo funciona el circuito de control es que consta de un procesador al cual se le
ingresa la señal que indica la distancia a la cual está la masa del electroimán, la cual es entregada
por un sensor, y, después de ser procesada por él, entrega la corriente que alimenta las bobinas; la
magnitud de esta corriente nos va a dar la magnitud de la fuerza magnética que está creando la
bobina. El sensor es óptico, es decir, la distancia de separación de la masa la indicará la magnitud
de luminosidad que reciba un fototransistor obtenida de la emisión de un fotodiodo.
Se amplia la posibilidad de poder, a futuro, controlarlo con un computador y poder ocupar un
programa como Matlab para esto.
A continuación se muestra un diagrama de bloques, donde encontramos todas las partes del
levitador y la manera en que están relacionadas.
8
Figura 2. Configuración Simple del Diagrama de Bloques para el Levitador Manético
EESSTTRRAATTEEGGIIAA DDEE SSOOLLUUCCIIÓÓNN
La secuencia a seguir para llevar a cabo la solución del problema es el diseño de una planta PID
(proporcional integral derivativo) para realizar el control del sistema. Esta planta controladora
será diseñada por el método del lugar geométrico de las raíces, luego se procederá a encontrar los
parámetros para implementar la planta en un DSP (procesador digital de señales). Para él calculo
se utilizará como herramienta básica el programa MatLab mediante el cual evaluaremos los
parámetros y comprobaremos el comportamiento de las variables gráficamente.
La segunda parte del trabajo es básicamente el diseño del control lógico difuso, para esto se
necesita la selección de las variables; que en este caso serán la posición, el error en la posición, y
la velocidad y cambio en el error. Debemos definir también las funciones de pertenencia que se
utilizan, para este caso las triangulares.
9
EESSTTUUDDIIOO DDEELL SSIISSTTEEMMAA
Este sistema del levitador cumple unas características especiales que lo hacen ideal para la
aplicación de un control difuso.
Nuestro objetivo particular es mantener la masita en el aire. No se va a mantener quieta en una
sola posición, sino que vamos a permitir que su posición fluctue en un rango en el que se va a
considerar que los objetivos de control se están cumpliendo.
El sistema consta de una bobina, cuya función es crear un campo magnético el cual tiene un
manejo complejo por la no-linealidad del mismo sustentado en la histéresis, y en las variaciones
de corriente de energizacion.
Además es un sistema cuyo trabajo se va a efectuar bajo la influencia de diferentes
perturbaciones, en su mayor parte proveídas por el ambiente.
Presumimos que el sistema es de por sí inestable, pues físicamente, la masa es imposible que se
quede en el lugar apropiado por sí misma.
Al simular dicho diagrama de bloques (Empleando la herramienta SIMULINK del Matlab), se
obtiene la siguiente respuesta al excitar con un escalón.
Para representar el sistema en un diagrama de bloques, se acude a la sugerencia emitida por un
fabricante del levitador que se va a controlar. El modelo para el sistema en lazo abierto queda
determinado por el siguiente diagrama de bloques
10
Suma1Suma
450
Sensor de
Posición
75
PM + EM
OsciloscopioEntrada R(S)
0.5
EM
1
0.155s 2
Cuerpo Levitado
PID
Controlador
1
0.018s+4.4
Bobina
Figura 3. Configuración del Sistema sobre el que se trabaja el Diseño del Controlador
El Sistema de la PLANTA arroja una Función de Transferencia, en lazo abierto, simplificada de
3er orden:
33035.1682.000279.0
5.023
SSS
SGLAP
Por efectos prácticos del diseño del controlador, se prefiere despreciar el efecto de entrada
interferentes, como la gravedad. Sin embargo, las mismas se tendrán en cuenta más adelante, una
vez se haya diseñado el controlador.
Por otro lado, la función de transferencia de la planta, que incluye el lazo cerrado es:
55535.1682.000279.0
5.023
SSS
SGLCP
La siguiente es la respuesta del sistema del Levitador Magnético, una vez se excita con una
entrada escalón. (Obsérvese que de por sí, el sistema es inestable).
11
Time (sec.)
Am
plit
ude
Step Response
0 0.5 1 1.50
0.2
0.4
0.6
0.8
1
1.2
1.4Respuesta en lazo abierto ante un escalón
Figura 4. Respuesta del Sistema en Lazo Abierto, ante un Escalón Unitario
Figura 5. Respuesta del Sistema en Lazo Cerrado, ante un Escalón Unitario
12
DDIISSEEÑÑOO DDEELL CCOONNTTRROOLLAADDOORR
El controlador que se implementa es del tipo PID. La técnica que mejor resultado arroja es la del
Lugar Geométrico de las Raíces (LGR).
En MatLab se procede a escribir un programa en el que se realiza el diseño de un controlador
PID, a partir del método LGR.
Programa MATLAB
%DISEÑO DE UN CONTROLADOR PID PARA LEVITADOR
%MÉTODO DE LUGAR GEOMÉTRICO DE LAS RAÍCES
%DESCRIPCIÓN DE LA PLANTA
hc1=tf([1],[.155 0 0]);
h2=feedback(hc1,75);
hbobina=tf([0.5],[0.018 4.4])
h3=h2*hbobina
%FUNCIÓN DE TRANSFERENCIA EN LAZO ABIERTO
habierto=h3*450;
%RESPUESTA EN LAZO ABIERTO A UN ESCALÓN UNITARIO
step(habierto)
title('Respuesta en lazo abierto ante un escalón')
pause
%RAÍCES (POLOS) EN LAZO ABIERTO
[num1,den1]=tfdata(habierto,'v');
polos1a=roots(den1);
%RESPUESTA EN LAZO CERRADO SIN CONTROLADOR
hcerrado=feedback(h3,450);
pause
%POLOS EN LAZO CERRADO
[num2,den2]=tfdata(hcerrado,'v')
poloscerrado=roots(den2);
%LUGAR GEOMÉTRICO DE LAS RAÍCES
rlocus(habierto)
pause
a=input('Entre el cero cerca al eje imaginario (Sugerencia = 5) ')
b=input('Entre el otro cero cerca al eje imaginario (Sugerencia = 50) ')
hcon=tf([1 (a+b) a*b],[1 0]);
hpc=habierto*hcon;
step(hpc)
13
pause
rlocus(hpc)
[k,polos]=rlocfind(hpc)
pause
%CÁLCULO DEL CONTROLADOR PID
kd=input('Entre la Ganancia Seleccionada = ')
ki=(a*b)*kd;
kc=(a+b)*kd;
%RESPUESTA DEL SISTEMA PLANTA CONTROLADOR
controlador=tf([kd kc ki],[1 0]);
hplantacontrol=habierto*controlador;
hlcpc=feedback(hplantacontrol,1);
t1=[0:0.001:0.3]
y1=step(hlcpc,t1);
plot(t1,y1),grid
title('Respuesta Levitador-Controlador PID')
xlabel('Tiempo (Segundos)')
%VERIFICACIÓN DE QUE EL SISTEMA ES ESTABLE
[num3,den3]=tfdata(hlcpc,'v');
polos=roots(den3)
disp('Si la parte real de los polos son negativos, entonces el sistema es
estable')
pause
%CÁLCULO DEL ERROR
PI=tf([kc ki],[1 0]);
h4=habierto*PI;
h5=1/(1+h4);
[num4,den4]=tfdata(h5,'v');
[a,b,c,d]=tf2ss(num4,den4);
t1=[0:0.01:1];
u=ones(1,101); %VECTOR DE UNA FILA Y 101 ELEMENTOS
y1=lsim(a,b,c,d,u,t1);
plot(t1,y1);
grid;
xlabel('Tiempo (seg)');
ylabel('Amplitud');
title('Respuesta del Error Levitador-Controlador');
pause
%CÁLCULO DE LA DERIVADA DEL ERROR
[num5,den5]=polyder(num4,den4);
derror=tf([num5],[den5]);
[num6,den6]=tfdata(derror,'v');
[a1,b1,c1,d1]=tf2ss(num6,den6);
y3=lsim(a1,b1,c1,d1,u,t1);
plot(t1,y3), grid;
xlabel('Tiempo (Segundos)');
ylabel('Amplitud');
title('Respuesta de la Derivada del Error Levitador-Controlador');
pause
14
%CÁLCULO DE LA SALIDA DEL CONTROLADOR
h6=PI/(1+h4);
[num2,den2]=tfdata(h6,'v');
[a,b,c,d]=tf2ss(num2,den2);
y3=lsim(a,b,c,d,u,t1);
plot(t1,y3);
grid;
xlabel('Tiempo (seg)');
ylabel('Amplitud');
title('respuesta de la salida del controlador');
La siguiente es la respuesta del Lugar Geométrico de las Raíces del sistema en lazo Abierto:
-300 -250 -200 -150 -100 -50 0 50-200
-150
-100
-50
0
50
100
150
200
Real Axis
Imag A
xis
Figura 6. Lugar Geométrico de las Raíces para el Sistema en Lazo Abierto
Sin embargo, se diseña el controlador para el sistema en lazo cerrado. El programa en Matlab está
concebido para que de manera interactiva se elija la Magnitud de Ganancia que se desea
establecer para que el sistema sea estable. Se eligen los ceros cercanos al eje imaginario como
a = 5 y b = 50.
En consecuencia, sobre la figura 6 se elige el margen de ganancia, para establecer el factor
derivativo del Controlador PID.
15
-250 -200 -150 -100 -50 0 50-400
-300
-200
-100
0
100
200
300
400
Real Axis
Imag A
xis
Figura 7. Lugar Geométrico de las Raíces para el Sistema en Lazo Cerrado.
En consecuencia, el controlador que entrega el programa es el siguiente:
S
SSSGC
5.7295.1529.0 2
El sistema Planta-Controlador, con realimentación, será estable, ya que se verifica la condición
de que todos los polos se encuentran ahora en el semiplano izquierdo del plano complejo.
polos = [ -1.4460 , ( -0.4768 + J0.8205) , (-0.4768 - J0.8205), -0.0449 ]
Finalmente, la Salida Y(S) tendrá la siguiente respuesta, una vez el sistema planta controlador se
excita con una entrada escalón unitaria.
16
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
0.2
0.4
0.6
0.8
1
1.2
1.4Respuesta Levitador-Controlador PID
Tiempo (Segundos)
Figura 8. Respuesta del Sistema Levitador – Controlador ante un Escalón Unitario
Nótese que la salida es estable. Como se trata del control adecuado de una planta (Levitador),
entonces se puede decir que el controlador permite actuar como un experto.
17
DDEEDDUUCCCCIIÓÓNN DDEE LLAASS RREEGGLLAASS DDIIFFUUSSAASS PPAARRAA EELL SSIISSTTEEMMAA LLEEVVIITTAADDOORR ––
CCOONNTTRROOLLAADDOORR PPII
Conociendo la función de transferencia, obtendremos la información que un experto podría
suministrar, en orden a la implementación de un control difuso. Con base a las respuestas del
controlador, se construyen las reglas del control difuso. (Pues las mismas no se pueden obtener
experimentalmente). Para lograr este objetivo, se requieren analizar las respuestas de error, de la
derivada del error y de la salida del controlador. Así se puede construir una tabla de reglas
difusas.
0 0.2 0.4 0.6 0.8 1-8
-6
-4
-2
0
2
4
6x 10
4
Tiempo (seg)
Am
plit
ud
Respuesta del Error Levitador-Controlador
Figura 9. Comportamiento del Error del Sistema (Control PI)
18
Dado que las respuestas del controlador suministran los datos que un experto puede entregar,
entonces se puede obtener la información necesaria para deducir las reglas de inferencia de un
controlador Difuso.
0 0.2 0.4 0.6 0.8 1-4
-2
0
2
4
6
8x 10
4
Tiempo (Segundos)
Am
plit
ud
Respuesta de la Derivada del Error Levitador-Controlador
Figura 10. Respuesta de la Derivada del Error del Sistema (Control PI)
Por otro lado, la salida del controlador PI que se empleó para regular el sistema, arroja la
siguiente respuesta:
19
0 0.2 0.4 0.6 0.8 1-12
-10
-8
-6
-4
-2
0
2
4
6
8x 10
5
Tiempo (seg)
Am
plit
ud
respuesta de la salida del controlador
Figura 11. Respuesta de la Salida del Controlador PI
CCOONNSSTTRRUUCCCCIIÓÓNN DDEE LLAASS RREEGGLLAASS DDIIFFUUSSAASS
Con base a la información entregada en estas gráficas, Figuras 9, 10, 11, se pueden definir las
variables difusas y las implicaciones de las mismas.
Inicialmente, asignamos el nombre de las variables, las cuales se han seleccionado como:
NG = Valor Negativo Grande
NM = Valor Negativo Medio
NP = Valor Negativo Pequeño
Ze = Valor Cero
PP = Valor Positivo Pequeño
PM = Valor Positivo Medio
PG = Valor Positivo Grande
20
Las funciones de pertenencia que se ilustran más adelante, se realizan analizando efectivamente
las figuras 9, 10 y 11. Resulta la siguiente tabla:
erro
dt
de NG NM NP Ze PP PM PG
NG PG
NM PM
NP PP
Ze Ze
PP NP
PM NM
PG NG
Las siguientes son las funciones de pertenencia que se han obtenido:
Figura 12. Función de Pertencencia para la Variable “Error” (Controlador PI)
Figura 13. Función de Pertencencia para la Variable “Derivada del Error” (Controlador PI)
21
Figura 14. Función de Pertencencia para la Variable “Control” (Controlador PI)
RREESSUULLTTAADDOOSS
Finalmente, al momento de generar un modelo en el que se implemente un sistema de control,
con lógica difusa, empleando el método de inferencia Mandami, se crean las reglas difusas, con
la implicación And (Se deducen en base al controlador PI). A continuación se citan las reglas con
las cuales se programa el controlador:
1. If (Error is NG) and (Derivada is PG) then (Control is NG) (1)
2. If (Error is NM) and (Derivada is PM) then (Control is NM) (1)
3. If (Error is NP) and (Derivada is PP) then (Control is NP) (1)
4. If (Error is Ze) and (Derivada is Ze) then (Control is Ze) (1)
5. If (Error is PP) and (Derivada is NP) then (Control is PP) (1)
6. If (Error is PM) and (Derivada is NM) then (Control is PM) (1)
7. If (Error is PG) and (Derivada is NG) then (Control is PG) (1)
La figura 15 ilustra la implementación del sistema de control.
Error
Suma
Y
Salida Controlada
del LevitadorPunto de
Suma
Perturbación
75
PM + EM1
75
PM + EM
Mux
MuxFuzzy Logic Controller
0.5
EM
du/dt
Derivada del
Error
1
0.155s 2
Cuerpo Levitado
1
0.018s+4.4
Bobina
Figura 15. Implementación del Sistema de Control Difuso, considerando el cambio en el error
22
Finalmente, la respuesta del Sistema, empleando las Reglas de Mandami, considerando el cambio
del error, realizado en base a un controlador PI, generan la siguiente salida:
0 20 40 60 80 100 120 140 1600
0.5
1
1.5
2
2.5x 10
-3 Salida del Sistema Planta-Controlador Fuzzy MAMDAMI
Tiempo en milisegundos
Figura 16. Salida del Sistema Planta-Controlador difuso, considerando la Derivada del Error
Obsérvese la variabilidad de la respuesta en el control. Se trata de un sistema oscilatorio, muy
inestable.
Se recomienda entonces seguir otra alternativa de control, la cual se expone en el siguiente
capítulo, en el cual se construyen las reglas difusas en base a la respuesta entregada por un
controlador PID.
23
DDEEDDUUCCCCIIÓÓNN DDEE LLAASS RREEGGLLAASS DDIIFFUUSSAASS PPAARRAA EELL SSIISSTTEEMMAA LLEEVVIITTAADDOORR ––
CCOONNTTRROOLLAADDOORR PPIIDD
11AA TTÉÉCCNNIICCAA:: RREESSUULLTTAADDOOSS CCOONN LLAA DDEERRIIVVAADDAA DDEELL EERRRROORR
Conociendo la función de transferencia, obtendremos la información que un experto podría
suministrar, en orden a la implementación de un control difuso. Con base a las respuestas del
controlador, se construyen las reglas del control difuso. (Pues las mismas no se pueden obtener
experimentalmente).
En esta sección, se analizan las implicaciones obtenidas con el análisis de un controlador PID. A
diferencia del anterior capítulo se tiene en cuenta el término derivativo, ya que anteriormente no
se tenía un control efectivo sobre la planta con el control PI.
Para lograr este objetivo, se requieren analizar las respuestas de error, de la derivada del error y
de la salida del controlador.
En esta primera técnica, sólo se exponen las consecuencias de trabajar con el análisis del error y
de la derivada del error.
Error
Suma
Y
Salida Controlada
del LevitadorPunto de
Suma
Perturbación
75
PM + EM1
75
PM + EM
Mux
MuxFuzzy Logic Controller
0.5
EM
du/dt
Derivada del
Error
1
0.155s 2
Cuerpo Levitado
1
0.018s+4.4
Bobina
Figura 17. Implementación del Sistema de Control Difuso, considerando el cambio en el error
Las siguientes gráficas ilustran el comportamiento de las variables de salida del sistema Planta-
Controlador PID.
24
0 0.2 0.4 0.6 0.8 1-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Tiempo (seg)
Am
plit
ud
Respuesta del Error Levitador-Controlador
Figura 18. Comportamiento del Error del Sistema (Control PID)
0 0.2 0.4 0.6 0.8 1-0.01
-0.005
0
0.005
0.01
0.015
0.02
Tiempo (seg)
Am
plit
ud
Respuesta de la derivada del error
Figura 19. Respuesta de la Derivada del Error del Sistema (Control PID)
25
Nótese que en esta oportunidad, el error tiende a 0 (Cero), lo cual es un buen indicio de que se
está trabajando con el controlador adecuado (A diferencia de la anterior respuesta en la figura 10)
Por otro lado, la salida del controlador PID que se empleó para regular el sistema, arroja la
siguiente respuesta:
0 0.2 0.4 0.6 0.8 10
0.5
1
1.5
2
2.5
3
3.5x 10
-3
Tiempo (seg)
Am
plit
ud
respuesta salida del sistema
Figura 20. Respuesta de la Salida del Controlador PID
Aunque las respuestas de ambas salidas con el control PI o con el PID son muy parecidas, es
importante anotar que el análisis del error es diferente
CONSTRUCCIÓN DE LAS REGLAS DIFUSAS, CON EL CONTROLADOR PID
Con base a la información entregada en estas gráficas, Figuras 18, 19, 20, se pueden definir las
variables difusas y las implicaciones de las mismas.
Inicialmente, asignamos el nombre de las variables, las cuales se han seleccionado como:
NG = Valor Negativo Grande
NM = Valor Negativo Medio
NP = Valor Negativo Pequeño
Ze = Valor Cero
26
PP = Valor Positivo Pequeño
PM = Valor Positivo Medio
PG = Valor Positivo Grande
Las funciones de pertenencia que se ilustran más adelante, se realizan analizando efectivamente
las figuras 18, 19 y 20. Resultan las siguientes reglas de inferencia:
1. If (error is PM) and (derror is NM) then (salida is PM) (1)
2. If (error is PM) and (derror is ZE) then (salida is PP) (1)
3. If (error is PP) and (derror is PP) then (salida is PP) (1)
4. If (error is ZE) and (derror is PM) then (salida is PP) (1)
5. If (error is PP) and (derror is PM) then (salida is PP) (1)
6. If (error is PG) and (derror is PM) then (salida is PM) (1)
7. If (error is NG) and (derror is PG) then (salida is PM) (1)
8. If (error is ZE) and (derror is PG) then (salida is PP) (1)
Las siguientes son las funciones de pertenencia que se han obtenido:
Figura 21. Función de Pertencencia para la Variable “Error” (Controlador PID)
Figura 22. Función de Pertencencia para la Variable “Derivada del Error” (Controlador PID)
27
Figura 23. Función de Pertencencia para la Variable “Salida” (Controlador PID)
RESULTADOS MEDIANTE EL USO DE LA 1ª TÉCNICA
La respuesta del Sistema, empleando las Reglas de Mandami, considerando el cambio del error,
realizado en base a un controlador PID, generan la siguiente salida:
0 20 40 60 80 100 120 140 160 1800
0.002
0.004
0.006
0.008
0.01
0.012
0.014Respuesta del Sistema Planta-Controlador Difuso
Regla
s c
onsid
era
ndo e
l cam
bio
en e
l err
or
Tiempo en deciseg
Figura 24. Salida del Sistema Planta-Controlador difuso, considerando la Derivada del Error con el Controlador PID
Obsérvese la increible similitud con la figura 17, la cual corresponde a la misma implementación
del controlador difuso, pero construido en base a la información de un PI. Se puede afirmar que
esta técnica no es procedente, por obtener el mismo resultado. Se recurre entonces a un tercer
28
análisis, según la información entregada por las variables de la salida del sistema Planta –
Controlador PID.
Recuérdense las reglas difusas, las cuales se consignan en esta tabla:
erro
dt
de NG NM NP Ze PP PM PG
NG
NM PM
NP
Ze PP
PP PP
PM PP PP PM
PG PM PP
22AA TTÉÉCCNNIICCAA:: RREESSUULLTTAADDOOSS CCOONN LLAA DDEERRIIVVAADDAA DDEE LLAA SSAALLIIDDAA DDEELL SSIISSTTEEMMAA
Al igual que en la primera técnica, se construyen las reglas difusas con base a la información
entregada por el controlador PID, pero esta vez, teniendo en cuenta la salida del sistema levitador
– Controlador.
En esta segunda técnica, sólo se exponen las consecuencias de trabajar con el análisis del error y
de la derivada de la salida del sistema, tal y como se ilustra en la siguiente figura.
Error
Suma
Y
Salida Controlada
del LevitadorPunto de
Suma
Perturbación
450
PM + EM1
75
PM + EM
Mux
MuxFuzzy Logic Controller
0.5
EM
du/dt
Derivada de la
Salida
1
0.155s 2
Cuerpo Levitado
1
0.018s+4.4
Bobina
Figura 25. Implementación del Sistema de Control Difuso, considerando el cambio en la salida del sistema
Se contruyen las reglas difusas con base en la información entregada por las figuras 18, 20 y 26.
29
0 0.2 0.4 0.6 0.8 1-5
-4
-3
-2
-1
0
1
2
3x 10
-5
Tiempo (seg)
Am
plit
ud
respuesta de la derivada de la salida del sistema
Figura 26. Respuesta de la Derivada de la Salida del Sistema (Control PID)
CONSTRUCCIÓN DE LAS REGLAS DIFUSAS, CON EL CONTROLADOR PID
Con base a la información entregada en estas gráficas, Figuras 18, 20, 26, se pueden definir las
variables difusas y las implicaciones de las mismas.
Inicialmente, asignamos el nombre de las variables, las cuales se han seleccionado como:
NG = Valor Negativo Grande
NM = Valor Negativo Medio
NP = Valor Negativo Pequeño
Ze = Valor Cero
PP = Valor Positivo Pequeño
PM = Valor Positivo Medio
PG = Valor Positivo Grande
Las funciones de pertenencia que se ilustran más adelante, se realizan analizando efectivamente
las figuras 18, 19 y 20. Resultan las siguientes reglas de inferencia:
1. If (error is NG) and (dsalida is NG) then (salida is PM) (1)
2. If (error is ZE) and (dsalida is NG) then (salida is PP) (1)
30
3. If (error is PP) and (dsalida is NM) then (salida is PP) (1)
4. If (error is PG) and (dsalida is NM) then (salida is PM) (1)
5. If (error is PM) and (dsalida is NP) then (salida is PP) (1)
6. If (error is PP) and (dsalida is NP) then (salida is PP) (1)
7. If (error is PM) and (dsalida is ZE) then (salida is PP) (1)
8. If (error is PM) and (dsalida is PM) then (salida is PM) (1)
Las siguientes son las funciones de pertenencia que se han obtenido:
Figura 27. Función de Pertencencia para la Variable “Error” (Controlador PID)
Figura 28. Función de Pertencencia para la Variable “Derivada de la Salida” (Controlador PID)
31
Figura 29. Función de Pertencencia para la Variable “Salida” (Controlador PID)
Obsérvese la necesidad de usar funciones de pertenencia del tipo trapezoidal y traingulares.
RESULTADOS MEDIANTE EL USO DE LA 2ª TÉCNICA
La respuesta del Sistema, empleando las Reglas de Mandami, considerando el cambio de la
salida, realizado en base a un controlador PID, generan la siguiente salida:
0 100 200 300 400 500 6000
0.002
0.004
0.006
0.008
0.01
0.012Respuesta del Sistema Planta-Controlador Difuso
Regla
s c
onsid
era
ndo e
l cam
bio
en la S
alid
a
Tiempo en deciseg
Figura 30. Salida del Sistema Planta-Controlador difuso, considerando la Derivada de la Salida con el Controlador PID
32
Recuérdese que las reglas de inferencia en base a las cuales se realizó el controlador difuso de
Mandami son:
erro
dt
dY NG NM NP Ze PP PM PG
NG PM PP
NM PP PM
NP PP PP
Ze PP
PP
PM PM
PG
Nótese la clara tendencia a estabilizar el sistema. Es decir, este tipo de control funciona, con
pocas reglas y con una simplicidad considerable.
Obsérvese además, que a diferencia de los demás controladores implementados, se obtuvo una
salida del sistema planta – controlador Mandami que tiende a un valor definido, después de
someterlo a una perturbación tipo escalón.
33
RREESSUULLTTAADDOOSS CCOONNSSIIDDEERRAANNDDOO LLAA IINNTTEERRFFEERREENNCCIIAA DDEE LLAA GGRRAAVVEEDDAADD
En orden a evaluar la efectividad del controlador difuso, es conveniente analizar los efectos de
interferencias que no se hayan considerado previamente, como por ejemplo, la Gravedad.
En la siguiente figura se ilustra la manera como se debe tener en cuenta el efecto de la
interferencia de la gravedad. Nótese que dicho efecto debe considerarse en el lugar donde se
ubica la masa.
Error
Suma
Y
Salida Controlada
del LevitadorPunto de
Suma
Perturbación
450
PM + EM1
75
PM + EM
Mux
Mux
G
Interferencia de la
Gravedad
Fuzzy Logic Controller
0.5
EM
du/dt
Derivada de la
Salida
1
0.155s 2
Cuerpo Levitado
1
0.018s+4.4
Bobina
Figura 31. Sistema a implementar, considerando la interferencia de la gravedad
RREESSUULLTTAADDOOSS CCOONN IINNTTEERRFFEERREENNCCIIAA 00..5588
Al momento de considerar la constante de la interferencia con un valor hasta 0.58, se obtienen
respuestas estables del sistema planta-controlador, pero con valor negativo. Es decir, la ubicación
de la masa se situaría por debajo de la posición de estabilidad.
La figura 32 permite observar la tendencia que toma el sistema.
34
0 100 200 300 400 500 600 700-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
0.5x 10
-3Respuesta del Sistema Planta-Controlador, considerando la interferencia de la Gravedad
Interferencia (g=0.58)
Figura 32. Respuesta del sistema planta-controlador, considerando interferencia de gravedad 0.58
Por otro lado, vale la pena considerar el tipo de respuesta que se obtiene en caso de considerar
una interferencia mayor que 0.58. Por ejemplo, el manual del levitador magnético sugiere que la
constante con la cual se ajusta el modelo debe ser 1.55
Una simulación de un sistema con dicha constante, debe brindar la respuesta que se ilustra en la
figura 33.
35
0 100 200 300 400 500 600-0.035
-0.03
-0.025
-0.02
-0.015
-0.01
-0.005
0
0.005Respuesta del Sistema Planta-Controlador, considerando la interferencia de la Gravedad
Interferencia (g=1.55)
Figura 33. Respuesta del sistema planta-controlador, considerando interferencia de gravedad > 0.58 (en este caso 1.55)
Nótese la inestabilidad de la respuesta del sistema Ello es fácilmente explicable porque en la
medida que la gravedad aumenta, también lo hace la fuerza del peso que la fuerza magnetomotriz
del electroimán del levitador debe vencer. Por esa razón, la masa caerá cuando se someta a
perturbación.
A la hora de verificar lo que ocurre en la realidad cuando se somete el sistema a perturbación, se
comprueba que efectivamente la masa puede salirse de los 21 mm de rango en el levitador y caer.
Sin embargo, la forma de onda que se muestra en la figura 33, coincide con la forma de onda que
se obtiene en un osciloscopio con el sistema Levitador – Controlador PID, después de someter la
masa a una perturbación.
36
CCOONNTTRROOLL DDIIGGIITTAALL DDEELL LLEEVVIITTAADDOORR
Para implementar el uso del DSP con el objetivo de controlar apropiadamente el Levitador
Magnético, se procede a realizar inicialmente un controlador digital. El mismo se elabora con
base en información suministrada por el sistema de la planta en lazo cerrado.
Antes que nada es necesario encontrar el tiempo de muestreo del sistema. El siguiente es el
procedimiento que se empleó para encontrar el tiempo de muestreo.
Las raíces del sistema de la planta realimentada son: 77.245
44.2866.0
3
2,1
S
JS
22,1 1 nn JS . En consecuencia, si se igualan las partes imaginarias y reales
correspondientemente, se obtiene el siguiente valor para la frecuencia natural del sistema.
Como la frecuencia de muestreo debe ser mayor al doble del ancho de banda (Por teorema de
Nyquist), entonces se obtiene la siguiente desigualdad: BWs 2 .
Además, en un sistema de control digital, es válido aproximar el Ancho de Banda a la frecuencia
natural del sistema. En consecuencia: ns 2 . Lo anterior quiere decir que el tiempo de
muestreo se encuentra por:
nst .
En consecuencia, para el sistema en estudio, el tiempo de muestreo debe ser: ts < 0,108 segundos
El método que se usa para diseñar el controlador digital es el Analítico. Se emplea la herramienta
poderosa del MatLab, que permitirá encontrar un buen controlador digital. Por cierto, para
diseñar el controlador, se tuvieron en cuenta las siguientes condiciones deseadas:
Tiempo de Establecimiento 0.3 segundos
Amortiguación 0.707
Error en estado estable 20%
El siguiente es el código del programa en MatLab que permitirá deducir el controlador digital
respectivo:
37
%PROGRAMA PARA LA IMPLEMENTACIÓN DE UN CONTROLADOR
% DIGITAL EN EL LEVITADOR MAGNÉTICO
%ESPECIFICACIÓN DE LA FUNCIÓN DE TRANSFERENCIA
%EN LAZO CERRADO
num=[.5]
den=[.00279 .682 1.35 555]
%ESPECIFICACIÓN DEL TIEMPO DE MUESTREO
T=0.100
%TRANSFORMACIÓN DEL PLANO CONTINUO AL PLANO DISCRETO
[nz,dz]=c2dm(num,den,T)
%ESPECIFICACIÓN DE LAS CARACTERÍSTICAS DEL CONTROLADOR
tsd=input('Entre tiempo de establecimiento deseado= ');
zetad=input('Entre la relación de amortiguación= ');
wnd=4/(zetad*tsd);
esd=input('Entre error de estado estable= ');
kv=1/esd;
k=ddcgain(nz,dz);
ki=kv/k;
%POLOS DESEADOS
s1=-zetad*wnd+j*wnd*sqrt(1-zetad^2);
z1=exp(s1*T);
%APLICACIÓN DEL MÉTODO ANALÍTICO
nz1=polyval(nz,z1);
dz1=polyval(dz,z1);
gz1=nz1/dz1;
r=-real((1/gz1)+ki*z1*T/(z1-1));
x=-imag((1/gz1)+ki*z1*T/(z1-1));
alfa=real((z1-1)/(z1*T));
beta=imag((z1-1)/(z1*T));
kd=real(x/beta);
kp=real(r-kd*beta);
%OBTENCIÓN DEL CONTROLADOR EN EL PLANO DISCRETO
npid=[kp*T+kd+ki*T^2 -kp*T-2*kd kd];
dpid=[T -T 0];
printsys(npid,dpid,'z');
[nk,dk]=series(npid,dpid,nz,dz);
%SALIDA DEL SISTEMA EN LAZO CERRADO
[nt,dt]=cloop(nk,dk);
Intervalo=[0:20];t=Intervalo*T;
yd=dstep(nt,dt,21);
plot(t,yd);grid;
title('Respuesta del Sistema Planta-Controlador en el Plano Discreto')
xlabel('Tiempo en Segundos')
El resultado, es el diseño del siguiente controlador:
38
ZZ
ZZZHd
1.01.0
076395.00076.61584.52
2
La respuesta del sistema Planta – Controlador Discreto, se ilustra en la figura 20.
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.2
0
0.2
0.4
0.6
0.8
1
1.2Respuesta del Sistema Planta-Controlador en el Plano Discreto
Tiempo en Segundos
Figura 34.. Respuesta del Sistema Planta – Controlador Digital (Muestreo a 0.1 segundos)
CCOONNSSTTRRUUCCCCIIÓÓNN DDEE LLAA FFUUNNCCIIÓÓNN QQUUEE SSEE EENNTTRRAA AALL DDSSPP
En orden a la implementación del control digital en el Procesador Digital de Señales, se requiere
formar estructuras de segundo orden. La idea es obtener la señal de control, usando como base un
programa previamente escrito en lenguaje Assembler para implementar filtros IIR.
Por otro lado, el módulo en cascada que se debe implementar, se basa en la siguiente estructura
del controlador digital:
1
21
22
11
22
110
1
76395.0076.61084.55
1
Z
ZZ
ZbZb
ZaZaaZHd
39
Z-1
Z-1
S S
-b11
-b21
w(n)
w(n-1)
w(n-2)
E(n) a01
a11
a21
MN
Z-1
Z-1
S S
1
w(n)
w(n-1)
w(n-2)
E(n)
610.076
7.6395
MN
1 -55.84
Figura 35.. Configuración del módulo de segundo orden para implementar en el DSP
Igualmente, hay que anotar que al momento de programar el DSP, se debe tener en cuenta el
Formato IEEE Q15. Lo anterior indica que las constantes que se programen deben considerarse
como si el DSP fuera de 15 bits (y no de 16). Es decir, la longitud de palabra se entra por la
siguiente fórmula: 5.0214 ecoeficientword
Hay que anotar, que el levitador posee un actuador electrónico, que a su vez, contiene un puerto,
conocido como BPS2, que no es más que un conector hembra tipo DB-15, por medio del cual se
puede realizar supervisión y control de la planta (Levitador). En nuestro caso, se utilizan los
siguientes pines:
Para realizar observaciones de la salida del sistema, con el osciloscopio: Pines 3 y 13
Para obtener la señal entregada por el sensor: Pines 1 y 9
Para llevar la señal de control externo: Pines 8 y 15
La siguiente figura ilustra la manera como debe configurarse el sistema para que interactúe con el
DSP:
DSP LEVITADOR
SENSOR
Controlador
IN OUTSetPoint por
programa
Pines 8 y 15
Pines 1 y 9
Salida
Figura 36..Conexión del DSP al Levitador
El diagrama de flujo que permitirá implementar el algoritmo de control, se expone en la figura
22.
40
SUSTITUCIÓN Y DECLARACIÓN
DE VARIABLES Y DE
CONSTANTES
INICIALIZACIÓN DEL
PROCESADOR
INICIALIZACIÓN DE LAS
ÁREAS VARIABLES DE
MEMORIA
PROCESO DE
INTERRUPCIÓN DEL RELOJ
ENTRADA DEL
CONVERTIDOR A/D
CONTROL PID
ALMACENAMIENTO DE
DATOS
SALIDA AL CONVERTIDOR
D/A
DETECCIÓN DE LA
FINALIZACIÓN DEL
PROGRAMA
FINALIZACIÓN DEL
PROGRAMA
ESPERA DE LA
INTERRUPCIÓN DEL RELOJ
ESTRUCTURACIÓN DE LA
INTERRUPCIÓN DEL RELOJ
ERROR EN EL PROCESO
Figura 37..Flujograma de la implementación en el DSP
41
CCÓÓDDIIGGOO DDEELL PPRROOGGRRAAMMAA AA IIMMPPLLEEMMEENNTTAARR EENN EELL DDSSPP
El siguiente es el código del programa en Assembler que se implementaría en el DSP
.mmregs
.ds 0f00h
;
;
TA .word 256;
RA .word 256;
TB .word 2025;
RB .word 2025;
AIC_CTR .word 08h ;
;------------------------
;DECLARACIÓN DE VARIABLES
;------------------------
MODELO BBS
SETPOINT BBS
CONTROL BBS
MEDICIÓN BBS
ERROR BBS
.include contdig.flt
;***************************************************************
; CONFIGURA EL VECTOR DE INTERRUPCIONES *
;***************************************************************
.ps 080ah ;
rint: B RECIBIR ;0A; Interrupción RINT de recepción
; del puerto serial
xint: B TRANSMIT ;0C; Interrupción XINT de transmisión
; del puerto serial
;
;*****************************************************************
; INICIALIZACION DEL TMS32C05X *
; *
;*****************************************************************
.ps 0a00h
.entry
SETC INTM ; Deshabilita las interupciones
LDP #0 ; Carga la página 0
OPL #0834h,PMST ; OR del registro de estado
LACC #0
SAMM CWSR ; Estado de espera a 0
SAMM PDWSR ;
SETC SXM ; Habilita la extensión de signo
SPLK #022h,IMR ; Habilita XINT
CALL AICINIT ; Inicializa el AIC y habilita las
; interrupciones.
SPLK #12h,IMR ; Habilita RINT
CLRC OVM ; Sobre flujo normal
SPM 0 ; Desactiva el desplazamiento de P
CLRC INTM ; Habilita las interrupciones
siempre IDLE
42
B siempre
;------- Fin del programa principal ----------;
;-------------------------- RECIBIR --------------------------
RECIBIR:
LDP #tablcoef
CLRC INTM ; Habilita las interrupciones
LAR ar1,#wn2
LAR ar2,#tablcoef
LAR ar4,#YN
LAR ar3,#XN
LAMM DRR ; entrada del A/D al ACC
SACL XN
MAR *,ar3
CALL MAIN ; Ir al programa del controlador
SAMM DXR
RETE
;-------------------------- TRANSMITIR--------------------------
;
TRANSMIT:
RETE
;******************************************************************
;* Esta rutina inicializa el TLC32040 para *
;* la frecuencia de muestreo deseada *
;******************************************************************
AICINIT:
SPLK #01h,PRD
SPLK #20h,TCR ; Genera una señal de reloj de 10 MHz
MAR *,AR0
LACC #0008h
SACL SPC ; FSX como entrada
LACC #00c8h
SACL SPC ; Resetea RRST y XRST
LACC #080h
SACH DXR
SACL GREG ; Inicializa la memoria
LAR AR0,#0FFFFh
RPT #10000 ; Toma un alto después de 10000 ciclos
LACC *,0,AR0 ; (.5ms at 50ns)
SACH GREG
LDP #TA ;
SETC SXM ;
LACC TA,9 ; Initializa los registros TA y RA
ADD RA,2 ;
CALL AIC_2ND ;
;------------------------
LDP #TB
LACC TB,9 ; Initializa los registros TB y RB
ADD RB,2 ;
ADD #02h ;
CALL AIC_2ND ;
;------------------------
43
LDP #AIC_CTR
LACC AIC_CTR,2 ; Inicializa el registro de control
ADD #03h ;
;LACC #11100000b
CALL AIC_2ND ;
RET ;
AIC_2ND:
LDP #0
SACH DXR ;
CLRC INTM
IDLE
ADD #6h,15 ; 0000 0000 0000 0011 XXXX XXXX XXXX XXXX b
SACH DXR ;
IDLE
SACL DXR ;
IDLE
LACL #0 ;
SACL DXR ; Se asegura de que la palabra fué enviada
IDLE
SETC INTM
RET ;
MAIN:
CLRC INTM ; Habilita las interrupciones
IN MEDICION, PAD ; Entrada de la medición del sensor
LAC MEDICION ; Cargar la variable medida
SACL MEDICION ; Almacenar en el acumulador bajo
;------------------------
;MODELO DE REFERENCIA
;------------------------
LAC MODELO
SUB SETPOINT
BGEZ CONTROL ; Si MODELO >= SETPOINT, Entonces HACER CONTROL
LAC MODELO
ADLK 8 ; Desplazamiento de 8 bits
SACL MODELO ; MODELO = MODELO + 8
CONTROL:
LDP #0
ZPR ;Limpia el registro P
LACC *,15,AR1 ;Entrada del A/D en formato Q15
SPLK #2,INDX ;
SPLK #N-1,BRCR
RPTB ELOOP-1 ;repite N veces el bloque LOOP
LAC MODELO
SUB MEDICION
SACL ERROR ;Medición de la variable de error
AR2 = ERROR
LOOP: LT *-,AR2 ;T = w(n-2)
MPYA *+,AR1 ;Acc = x(n), P = w(n-2)b2
LTA *-,AR2 ;Acc += w(n-2)b2, T = w(n-1)
MPY *+ ;P = w(n-1)b1
LTA *+,AR1 ;Acc += w(n-1)b1, T = a2
SACH *0+,1 ;Alamacena el resultado en w(n)
MPY *- ;P = w(n-2)a2
LACL #0 ;Acc = 0
LTD *-,AR2 ;T = w(n-1), w(n-2) = w(n-1)
MPY *+,AR1 ;Acc += w(n-2)a2, P = w(n-1)a1
LTD *-,AR2 ;T = w(n), w(n-1) = w(n)
44
ELOOP-1 MPY *+,AR1 ;Acc += w(n-1)a1, P = w(n)a0
ELOOP:
LTA *,AR4 ;Acumulación final
SACH *,1
LACC *,9 ;Cambiar este número (0 a 15)
;para mejorar la amplitud de
;salida del filtro
RET
.end
Se incluye además la construcción del controlador digital
; CONTROLADOR DIGITAL
; DISEÑADO POR EL MÉTODO ANALÍTICO
; PARA EL LEVITADOR MAGNÉTICO
; TIEMPO DE MUESTREO: 0.1 SEGUNDOS
; Este programa implementa un Controlador Digital
; de segundo orden en la forma directa II.
; Para cada sección se tiene la función:
;
; a0+a1z^-1+a2z^-2
; HN(z) = -----------------
; 1+b1z^-1+b2z^-2
;
; Cada sección necesita 3 lugares de memoria de datos para
; w(n),w(n-1),w(n-2), y 5 lugares para los coeficientes
; a0,a0,a2,-b1,-b2.
;
; w(n) = x(n)-w(n-1)b1-w(n-2)b2
; y(n) = w(n)a0+w(n-1)a1+w(n-2)a2
;
; Almacenamiento de coeficientes:
; -b2,-b1,a2,a1,a0, ... ,-b2,-b1,a2,a1,a0
; Sección 1 Sección N
;
; Variables de estado:
; w(n),w(n-1),w(n-2), ... ,w(n),w(n-1),w(n-2)
; Sección N Sección 1
;
; Condiciones de entrada:
; AR1 -> w(n-2) de la primera sección
; AR2 -> -b2 de la primera sección
; AR3 -> entrada
; AR4 -> salida
; El diseño del controlador arrojó la siguiente función
; de transferencia:
; -55.84+61.0076z^-1+0.76395z^-2
; HD(z) = -------------------------------
; 1 - z^-1
;-----------------------------------------------------------
N-1 .set 4
tablcoef
; Sección 1
;-b2=0.000000000000000
.word 0
;-b1=1
.word 16385
; a2=7.6395
.word 125166
45
; a1=610.076
.word 9995453
; a0=-55.84
.word -55.84
; Variables de estado
.word 0,0,0
.word 0,0,0
.word 0,0,0
.word 0,0,0
.word 0,0,0
wn2 .word 0
XN
.word 0
YN .word 0
46
CCOONNCCLLUUSSIIOONNEESS
Tal como lo dice su nombre, la idea de este proyecto es la simulación del control de un levitador
magnético a base de bobinas que levitan por efectos de atracción magnética.
Para efectos de simulación se puede considerar el sistema completo, como dos sistemas con una
sola entrada cada uno y asi simplificar la etapa de diseño del control.
Se considera de gran ventaja que sea posible crear un controlador lógico difuso especifico según
las necesidades que se tengan , haciendo su propio programa, con la capacidad de reformarlo o
cambiarlo cuando el proceso lo requiera, sin necesidad de acudir a equipos sofisticados y
costosos.
Se comprueba en las figuras 4 y 5, que la respuesta del sistema planta-controlador PID ante un
escalón unitario es inestable, esto únicamente considerando el sistema con un controlador PID
(datos suministrados por el fabricante).
El controlador PID diseñado para este trabajo con ayuda del Matlab, utilizando el método del
lugar geométrico de las raíces, será estable para un sistema planta-controlador con ealimentación,
ya que todos los polos obtenidos se encuentran en el semiplano izquierdo del plano complejo
(figura 7). Se evidencia que el controlador es el adecuado para la planta, por ser estable la
respuesta obtenida en la salida cuando se aplica un escalón al sistema planta-controlador (figura
8).
Generando un modelo para implementar un sistema de control difuso, obteniendo reglas difusas
en base a la respuesta de error, de la derivada del error y de la salida del controlador PI (figuras 9,
10 y 11), se obtiene una salida del sistema planta-controlador difuso muy inestable como se ve en
la figura 16.
Obteniendo las reglas difusas considerando la respuesta del error, la derivada del error y la salida
del controlador PID (considerando ahora el termino derivativo), figuras 18, 19 y 20, se obtiene
una respuesta para la salida del sistema planta-controlador difuso similar al caso anterior
(numeral 3), inestable, por lo que se considera que no es la técnica adecuada.
47
Si se obtienen las reglas difusas considerando la respuesta del error, la derivada de la salida del
sistema planta-controlador difuso y la salida del controlador PID (figuras 18, 20 y 26), se obtiene
una respuesta para la salida del sistema planta-controlador difuso muy tendiente a la
estabilización del sistema (figura 30), que ha diferencia de los casos anteriores se obtiene una
salida del sistema que tiende a un valor definido luego de someterse a una perturbación tipo
escalón. Esto nos indica que esta técnica es la adecuada para la implementación del controlador
difuso.
Para la implementación en el DSP, el controlador digital fue obtenido en base al sistema de la
planta en lazo cerrado, este controlador genera una respuesta del sistema planta-controlador
digital estable (figura 34).
Para la aplicación en el DSP se utilizó como guía un programa escrito en lenguaje assembler para
implementar filtros IIR. No fue posible cargar este programa en el DSP para verificar su
funcionamiento. Se considera que la codificación utilizada para esta tecnología es un poco
compleja, que a nuestro modo de ver tal vez un semestre completo dedicado a la comprensión de
este lenguaje sería insuficiente. Es conveniente contar con más bibliografía disponible para el
estudio de ésta.
La idea para otro prosible proyecto, surge de simular los trenes de alta velocidad que existen en el
mundo, por lo tanto, aunque por el momento no se incluye la posibilidad de moverse si está esto
considerado para futuros upgrades del proyecto.