UNIVERSIDAD DE CHILE
FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA
ESTRATEGIAS AVANZADAS PARA EL CONTROL DE UN SISTEMA MIMO
DE 2 ROTORES
MEMORIA PARA OPTAR AL TÍTULO DE INGENIERO CIVIL ELECTRICISTA
JAVIER OLGUÍN PIZARRO
PROFESOR GUÍA:
MANUEL DUARTE MERMOUD
MIEMBROS DE LA COMISIÓN:
HECTOR AGUSTO ALEGRIA
DORIS SAEZ HUEICHAPAN
SANTIAGO DE CHILE
OCTUBRE 2007
RESUMEN DE LA MEMORIA PARA OPTAR AL TÍTULO DE INGENIERO CIVIL ELECTRICISTA POR: JAVIER OLGUÍN PIZARROFECHA: PROF. GUÍA: SR. MANUEL DUARTE MERMOUD
“ESTRATEGIAS AVANZADAS PARA EL CONTROL DE UN SISTEMA MIMO DE 2 ROTORES”
El control de un sistema de dos rotores acoplados es un problema abordado frecuentemente en la literatura técnica, debido a la complejidad derivada de la no linealidad de este sistema y a la fuerte interacción que se tiene entre sus diferentes variables. Así, en esta Memoria se realiza un estudio sobre los modelos fenomenológicos existentes para este tipo de sistemas y se deriva uno nuevo que representa adecuadamente el comportamiento de la planta con que se trabajó (parte del Laboratorio de Automática del Edificio de Electrotecnologías de la Facultad de Ciencias Físicas y Matemáticas de la Universidad de Chile). Posteriormente se analiza una estrategia de control básica PID convencional para establecer una base de comparación y se diseñan además dos tipos de controladores avanzados, los cuales son analizados y comparados mediante simulaciones computacionales y pruebas experimentales.
La nueva modelación del sistema se realiza en gran medida con datos empíricos obtenidos directamente de la planta, pues los modelos fenomenológicos basados puramente en la 2da Ley de Newton, proporcionados por el fabricante del equipo, dejan fuera ciertas dinámicas y condiciones de borde importantes para un buen funcionamiento del modelo.
Con respecto al esquema PID convencional, se destaca su simpleza tanto en el diseño como en sus excelentes tiempos de respuesta, pero tiene grandes defectos en cuanto al ruido en la señal de control generada y además no garantiza la estabilidad frente a perturbaciones.
Para sobrellevar estas dificultades se recurre a la adaptabilidad y al control no lineal, los cuales son la base de los otros dos controladores diseñados en este trabajo. Primero, se considera un controlador adaptable directo por modelo de referencia que ocupa funciones no lineales conocidas, mientras que el segundo es un controlador indirecto donde sólo se conoce la estructura de la planta, ocupando observadores difusos adaptables óptimos para su funcionamiento. Ambos controladores muestran mejorías (en la señal de control y estabilidad) con respecto al PID, tanto en seguimiento de referencias como en respuesta frente a perturbaciones. Sin embargo, la complejidad asociada a cada uno de estos controladores (diseño, aplicación y tiempo computacional) es un punto a considerar a la hora de la implementación. También se hace necesario el uso de redes neuronales para invertir funciones no conocidas, agregando aún más dificultades para su aplicación.
En conclusión, se presenta un nuevo modelo específico para el sistema de dos rotores acoplados del laboratorio. Se diseñan y comparan en simulaciones y aplicaciones en tiempo real, tres tipos de controladores, discutiendo las ventajas y desventajas de cada uno de ellos.
i
(CHARLES M. SCHULZ IN MEMORIAM)
ii
Agradecimientos
Quiero agradecer a mi madre, padre y hermano, amigos y profesores.
... A Samantha y Andrew Largeman.
iii
Índice General
RESUMEN ............................................................................... ................................ I
AGRADECIMIENTOS ..................................................................................... .......... III
CAPÍTULO 1
INTRODUCCIÓN............................................................................... ..........................5
1.1 Planteamiento del Problema...........................................................................5
1.2 Discusión Bibliográfica............................................................................. .......6
1.1.1 Sobre el Sistema de 2 Rotores.................................................................6
1.1.2 Sistemas Difusos.....................................................................................7
1.1.3 Sistemas Adaptables...............................................................................8
1.3 Objetivos y Metodología...............................................................................10
1.4 Estructura de la Memoria..............................................................................11
1.5 Referencias............................................................................................. ......12
CAPÍTULO 2
SISTEMA MULTIVARIABLE DE 2 ROTORES ACOPLADOS.............................................14
2.1 Introducción e Hipótesis Simplificatorias.......................................................14
2.2 Modelación Fenomenológica.........................................................................16
2.2.1 Modelo de Entrada............................................................................. ....16
2.2.2 Modelo Vertical......................................................................................16
2.2.3 Modelo Horizontal..................................................................................19
2.3 Instrumentación...........................................................................................21
1
2.3.1 Posición.......................................................................... .......................21
2.3.2 Velocidad..................................................................................... ..........22
2.4 Determinación de Parámetros.......................................................................22
2.4.1 Modelo de Entrada............................................................................. ....22
2.4.2 Modelo Vertical......................................................................................24
2.4.3 Modelo Horizontal..................................................................................25
2.5 Referencias............................................................................................. ......26
CAPÍTULO 3
DESCRIPCIÓN DE LOS CONTROLADORES.................................................................27
3.1 Red Neuronal Como Función Inversa.............................................................27
3.1.1 Justificación...........................................................................................27
3.1.2 Análisis de la Función.............................................................................28
3.1.3 Entrenamiento............................................................................ ...........29
3.1.4 Resultados y Modificaciones..................................................................32
3.2 PID Convencional.................................................................................. ........34
3.2.1 Desarrollo Matemático del Controlador..................................................34
3.2.2 Esquemas de Control.............................................................................34
3.2.3 Sintonización de Parámetros..................................................................36
3.3 Control Adaptable Convencional...................................................................37
3.3.1 Desarrollo Matemático del Controlador..................................................37
3.3.2 Esquemas de Control.............................................................................38
3.3.3 Sintonización de Parámetros..................................................................41
3.4 Control Difuso Adaptable..............................................................................42
3.4.1 Desarrollo Matemático del Controlador..................................................42
3.4.2 Esquemas de Control.............................................................................45
3.4.3 Sintonización de Parámetros..................................................................49
3.5 Referencias............................................................................................. ......53
CAPÍTULO 4
APLICACIÓN DE LAS ESTRATEGIAS DE CONTROL......................................................54
4.1 Ensayos Tipo................................................................................................54
4.1.1 Seguimiento de Referencia....................................................................54
2
4.1.2 Respuesta Frente a Perturbaciones........................................................55
4.1.3 Índices de Desempeño.......................................................................... .57
4.2 Controlador PID Convencional.......................................................................57
4.2.1 Simulaciones.........................................................................................57
4.2.2 Aplicación al Sistema Real.....................................................................60
4.2.3 Índices para Controlador 2-PID...............................................................62
4.3 Controlador Adaptable..................................................................................62
4.3.1 Simulaciones.........................................................................................62
4.3.2 Aplicación al Sistema Real.....................................................................64
4.3.3 Índices para Controlador Adaptable convencional..................................66
4.4 Controlador Difuso Adaptable.......................................................................67
4.4.1 Simulaciones.........................................................................................67
4.4.2 Aplicación al Sistema Real.....................................................................69
4.4.3 Índices para Controlador Difuso Adaptable............................................71
CAPÍTULO 5
CONCLUSIONES Y TRABAJO FUTURO........................................................................72
5.1 Conclusiones................................................................................................72
5.2 Trabajo Futuro........................................................................................ .......77
ANEXOS................................................................................... ..............................78
Anexo 1 Código para Interfaz MATLAB-OPTO22...................................................78
Anexo 2 Código para PIC16F873.........................................................................85
Anexo 3 Código para Óptimo Difuso (S-Function)................................................88
Anexo 4 Bloques Simulink para Modelo Vertical..................................................91
Anexo 5 Bloques Simulink para Modelo Horizontal..............................................92
APÉNDICE A
REACONDICIONAMIENTO DEL SISTEMA MIMO DE 2 ROTORES..................................93
A.1 Introducción.................................................................................................93
A.2 Diseño del Nuevo Sistema............................................................................94
A.2.1 Análisis del Sistema Físico.....................................................................94
A.2.2 Diseño Interfaz TRMS-PC.......................................................................95
3
A.2.3 Diseño del Modulador para los Motores.................................................96
A.2.4 Diseño para los Encoders de Posición....................................................96
A.2.5 Diseño para las Salidas del Circuito.......................................................97
A.3 Construcción del Nuevo Sistema...................................................................97
A.3.1 PIC.................................................................................................... .....98
A.3.2 Modulador por Ancho de Pulso...............................................................98
A.3.3 Decodificación y Conversores D/A..........................................................99
A.4 Referencias del Apéndice............................................................................100
APÉNDICE B
MODELO FENOMENOLÓGICO ORIGINAL DE FEEDBACK INSTRUMENTS LTD.............101
B.1 Introducción...............................................................................................101
B.2 Modelo No Lineal........................................................................................102
B.2.1 Introducción al Sistema e Hipótesis Simplificatorias.............................102
B.2.2 Modelo Vertical....................................................................................103
B.2.3 Modelo Horizontal......................................................................... .......105
B.2.4 Modelo Final........................................................................................106
B.2.5 Modelo de Entrada..............................................................................107
B.3 Parámetros y Modelos Experimentales.......................................................107
B.3.1 Parámetros Físicos...............................................................................107
B.3.2 Característica del Rotor Principal.........................................................108
B.3.3 Característica del Rotor de Cola...........................................................109
B.4 Referencias del Apéndice.......................................................................... ..111
4
Capítulo 1 Introducción
1.1 PLANTEAMIENTO DEL PROBLEMA
El control del sistema compuesto por dos rotores acoplados (Twin Rotor MIMO
System o TRMS) es un desafío complejo debido a la no linealidad del mismo y la
fuerte interacción que existe entre sus diferentes variables. Los trabajos que han
sido desarrollados por la empresa Feedback Instruments Ltd. [5] (la cual construyó
el sistema), además de trabajos como los mostrados en [1][2][18], son un buen
punto de partida, pues desarrollan metodologías de modelación del tipo
fenomenológica y del tipo caja negra para el TRMS. Por otro lado los trabajos
desarrollados en [5][11][12] servirán para una comparación teórica en cuanto al
comportamiento y control del sistema. En particular, en [5] se trabaja sobre el
mismo sistema que se ocupa en este trabajo y su controlador PID convencional será
la base de comparación para las pruebas experimentales estudiadas en esta
memoria.
Diferentes tipos de control no lineal pueden ser aplicados a este tipo de plantas,
tanto para la estabilización [9][13][15][17] como para seguimiento de referencias,
algunos de los cuales pueden ser revisados en [4][7][8][16][17][19]. Sin embargo, a
pesar de que algunos de éstos pueden ser más complicados que otros, se elegirán
dos líneas de trabajo que, aunque tienen aspectos en común, abarcan dos áreas
diferentes del control automático.
Por un lado, se sabe que un sistema difuso se puede ocupar como un aproximador
universal de cualquier función matemática definida sobre un conjunto compacto
5
U⊂ℝn [19]. Ello será un elemento clave en este desarrollo, pues el control con el
que se trabajará es del tipo indirecto, lo cual supone la estimación de algunos
parámetros con buen grado de precisión. Desafortunadamente, por la misma no
linealidad que existe en el sistema y simplificaciones que se deben realizar, un
controlador basado y sintonizado sobre un modelo tiende a perder calidad cuando se
aplica directamente a la planta real.
Por el otro lado, la adaptabilidad [14][16][17] se hace necesaria para resolver
muchos de los problemas antes mencionados. Este concepto será aplicado a los dos
controladores propuestos en este trabajo y pretende, además de mejorar el
desempeño del sistema en condiciones de simulación (ideales), mejorar
sustancialmente el comportamiento del sistema real, tanto en régimen permanente
como la respuesta frente a perturbaciones externas.
1.2 DISCUSIÓN BIBLIOGRÁFICA
En esta sección se realiza una breve introducción a los trabajos de modelación y
control desarrollados específicamente para el TRMS, tanto en simulaciones como
aplicaciones al sistema real. También se entrega una reseña mínima sobre conceptos
de sistemas difusos y adaptables que serán empleados en el control del TRMS.
1.1.1 SOBRE EL SISTEMA DE 2 ROTORES
El problema del sistema de 2 rotores acoplados ha sido abordado en la literatura
con diferentes grados de complejidad, tanto en la modelación como en el control del
mismo (en ambientes simulados o en el sistema real). Así, en [1] se presenta un
esquema de identificación del sistema del tipo caja negra modelando sólo el eje
vertical (transformando al sistema en monovariable). También se encuentran
técnicas de modelación a través de redes neuronales [2] o derivadas directamente
de ecuaciones matemáticas [5][18]. Sin embargo, los modelos fenomenológicos
mostrados son para un sistema general y, como se verá en este trabajo, existen
diferencias sustanciales con el sistema real que obligarán a una nueva modelación e
identificación.
Con respecto al control de este sistema, los trabajos [11] y [12] pretenden (al igual
que lo desarrollado en esta memoria) mejorar el control PID convencional [5]
introduciendo técnicas no lineales que permiten aventajarlo en su desempeño
6
general aún cuando se ve notoriamente perjudicada la simpleza de los esquemas de
control1. Sin embargo, muy pocos controladores presentan capacidad de
adaptabilidad en línea y/o no están aplicados a la planta real.
1.1.2 SISTEMAS DIFUSOS
Dentro de los sistemas difusos que se pueden encontrar en la literatura, los más
conocidos son los sistemas difusos puros del tipo Takagi & Sugeno y Mamdani [19].
Los primeros son la base de todo sistema difuso y consisten en una serie de reglas
del tipo SI-ENTONCES, donde tanto las premisas como las consecuencias son
conjuntos lingüísticos. Matemáticamente, cada una de las reglas R(l) se expresan
como
Rl : SI x1 es F1l ∧...∧ xn es Fn
l ENTONCES y es Gl
donde Fil y Gl son conjuntos difusos, x=x1,... , xn
T∈U⊂ℝn y y∈V⊂ℝn son
variables lingüísticas de entrada y salida respectivamente. l=1,2 ,... ,M representa
la cantidad de reglas difusas. Así, cada regla define un conjunto difuso
F1l×...×Fn
l Gl en el espacio U×V . Los grados de pertenencia frente a una
entrada A difusa, para cada regla, quedan definidos por
A°Rl y=supx∈U[Ax✭F1l ×...×F
nl Glx , y ]
donde ✭ representa la operación mínimo, producto o alguna otra, dependiendo del
sistema que se ocupe. La salida de un sistema difuso puro es un conjunto difuso
combinación de lo mostrado anteriormente
A°R 1 , ...,RMy=A°R1 y...A°RMy
donde es el operador máximo, suma algebraica u otro.
A pesar de ser un sistema fácil de entender por las personas por sus entradas y/o
salidas lingüísticas (e.g. ALTA, BAJA, CALIENTE, FRÍO), éstas mismas son un problema
pues son de poca aplicación directa en la ingeniería. Es por esta razón que Takagi &
Sugeno desarrollan el siguiente tipo de sistemas difusos, los cuales cambian las
premisas y consecuencias por valores reales, de la siguiente manera
1 Esto será un tema constante en esta Memoria, pues hay un balance entre complejidad y desempeño.
7
Ll : SI x1 es F1l ∧...∧ xn es Fn
l ENTONCES yl=c0l c1
l x1...cnl xn
donde cil son valores reales para cada regla. Es fácil ver que la salida para una
entrada x=x1,... , xnT de todo este sistema es la suma ponderada de las salidas de
cada una de las reglas, según
yx =∑l=1
M
w l y l
∑l=1
M
wl
donde
w l=∏i=1
n
F ilx i
con Filxi el grado de pertenencia de xi para cada regla F i
l .
Con este tipo de sistemas surge el problema de incorporar reglas lingüísticas
basadas en la experiencia de personas, lo cual es solucionado con el tipo de
sistemas llamados sistemas difusos de Mamdani.
Estos sistemas incluyen un fuzzificador y defuzzificador2 a la entrada y a la salida
de un sistema difuso puro; El primero tiene como entrada un valor real y devuelve
un elemento de conjunto difuso utilizable por el sistema difuso puro, mientras que el
segundo recibe un elemento de conjunto difuso y devuelve un valor real. La
aplicación a la ingeniería es directa sin perder el conocimiento lingüístico que se
podría tener.
1.1.3 SISTEMAS ADAPTABLES
En lo que sigue se realiza una pequeña descripción de los sistemas adaptables
simples, para el caso escalar con un control del tipo directo. Para mayor detalle, se
aconseja al lector revisar [16], desde donde se extrae la siguiente información.
Supongamos una planta de la forma
xpt =apt xpt kptut
donde ap(.) y kp(.) son parámetros de la planta que puedan ser ajustados
2 Abuso de notación desde el inglés, por falta de traducción en esta aplicación.
8
directamente. Además, se tiene un modelo de referencia definido como
xmt =amxm tkmr t
donde am<0 y km son constantes conocidas. Se entiende que r(t) es la señal de
referencia acotada y continua por tramos y xm(.) representa la salida deseada (Las
funciones de transferencia asociadas a la planta y al modelo de referencia se
definen como Wp(s) y Wm(s), respectivamente). Luego, se quiere encontrar las leyes
de adaptabilidad para ap(t) y kp(t) tal que el error de control tienda a cero, es decir
limt∞
∣xpt −xmt ∣=limt∞
∣et∣=0
El error entre la salida de la planta y la del modelo de referencia
et=xp t −xmt queda determinado por
et=ametapt−amxpt kpt −kmr t
Está demostrado en [16] que si se ocupan las leyes adaptables
apt=−et xp t
kpt=−et r t
el sistema es estable y el límite antes mostrado tiende a cero.
Sin embargo, no siempre es posible cambiar directamente los parámetros de la
planta, por lo que hay que pensar en una acción de control que cumpla los mismos
objetivos. Idealmente, si se utiliza
u=am−apkp xptkmkp r t=*⋅xpt k *⋅r t
se puede ver que el comportamiento de la planta sería igual al del modelo de
referencia excepto por el efecto de las condiciones ideales. Dado que * y k * son
desconocidos, el problema es encontrar las leyes de adaptabilidad para (t) y k(t)
usadas en la siguiente ley de control que si es realizable
ut =txptk t r t
Definiendo
et=xpt −xmt , t =t−* , t=k t −k *
9
y recordando que con la nueva acción de control la planta se transforma en
xpt =apkpt xptkpk t r t
se tiene
et=ametkp t xpt kpt r t
Suponiendo que sólo el signo de kp es conocido, se eligen las siguientes leyes de
adaptabilidad
t =t =−sgn kpet xpt
t =k t=−sgnkpet r t
Para probar la estabilidad del sistema adaptable resultante, se escoge la función
de Lyapunov
V e, ,=12[e2∣kp∣
22 ]
cuya primera derivada temporal, al ser evaluada con et , t , t antes
descritos, se obtiene
V e , ,=ame20
Con esto se demuestra que todas las señales permanecen acotadas.
Como e está acotado y e ∈ ℒ2, es posible demostrar que
limt∞
et =0
1.3 OBJETIVOS Y METODOLOGÍA
Los objetivos generales que se pretenden alcanzar con este trabajo son
● Estudiar estrategias de control avanzadas para sistemas multivariables, y
compararlas con estrategias convencionales.
● Implementar dichas estrategias mediante simulaciones y aplicaciones de
laboratorio.
Igualmente, los objetivos específicos son
● Realizar un estudio sobre las siguientes estrategias y su aplicación en el
sistema Twin Rotor MIMO System, del Laboratorio de Automática de
10
Electrotecnologías de la Universidad de Chile:
○ Control PID Convencional.
○ Control Adaptable Convencional.
○ Control Difuso Adaptable.
● Implementar las estrategias seleccionadas mediante simulaciones y luego a
la planta de laboratorio.
● Comparar los resultados entre los controladores determinando así
debilidades y fortalezas de cada uno.
1.4 ESTRUCTURA DE LA MEMORIA
El presente trabajo está dividido en cinco capítulos los cuales se resumen a
continuación.
El Capítulo 1 contiene una introducción tanto al sistema de dos rotores como al
estado actual del control de sistemas no lineales y multivariables, ubicando al lector
en el área donde se trabajará.
En el Capítulo 2 se presenta el sistema TRMS, dando una pequeña introducción al
sistema mismo, para luego mostrar la modelación fenomenológica y la identificación
de sus parámetros. Se presentan también algunos problemas detectados y las
soluciones planteadas al tratar de hacer coincidir un modelo fenomenológico ideal
con el sistema real con que se cuenta en laboratorio.
El Capítulo 3 describe en detalle el diseño de los controladores propuestos, asi
como el procedimiento para la sintonización de cada uno de ellos. Además, se
justifica el uso de una red neuronal como función inversa para eliminar una función
no lineal que realiza directamente el control propuesto.
En el Capítulo 4 se muestran los resultados para cada uno de los controladores,
tanto en simulaciones como en la planta real. Se discute además sobre el porqué de
cada uno de los resultados, comparándolos entre ellos.
El Capítulo 5 se refiere a las conclusiones del trabajo, donde se discuten cada uno
de los aspectos involucrados en el desarrollo de éste.
11
1.5 REFERENCIAS
[1]. AHMAD, S.M. CHIPPERFIELD, A.J. y TOKHI, M.O. "Modelling and control of a twin
rotor multi-input multi-output system". Proceedings of the 2000 American
Control Conference. 28-30, Jun. 2000. Vol. 3, pp. 1720-1724.
[2]. ALBEDREZ, F. M. DARUS, I. Z. M. y TOKHI, M. O. "Dynamic modelling of a twin
rotor system in hovering position". First International Symposium on Control,
Communications and Signal Processing. 2004 pp. 823–826.
[3]. BING, C. XIAOPING, L. y SHACHENG, T. "Adaptive fuzzy output tracking control
of MIMO nonlinear uncertain systems" . IEEE Transactions on Fuzzy Systems.
Abr. 2007. Vol. 15, Núm. 2, pp. 287–300.
[4]. DONG-LING, T. HUNG-YUAN, C. y CHING-JUNG, L. "The adaptive control of
nonlinear systems using the Sugeno-type of fuzzy logic". IEEE Transactions on
Fuzzy Systems. Abr. 1999. Vol. 7, Núm. 2, pp. 225-229.
[5]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, advanced teaching
manual 1; 33-007-4M5". Crowborough, Inglaterra. Nov. 1999.
[6]. FISCHLE, K. y SCHRODER, D. "An improved stable adaptive fuzzy control
method". IEEE Transactions on Fuzzy Systems. Feb. 1999. Vol. 7, Núm. 1, pp.
27-40.
[7]. HAN-XIONG, L. y SHAOCHENG, T. "A hybrid adaptive fuzzy control for a class of
nonlinear MIMO systems". IEEE Transactions on Fuzzy Systems. Feb. 2003. Vol.
11, Núm. 1, pp. 24-34.
[8]. HOJATI, M. y GAZOR, S. "Hybrid adaptive fuzzy identification and control of
nonlinear systems". IEEE Transactions on Fuzzy Systems. Abr. 2002. Vol. 10,
Núm. 2, pp. 198-210.
[9]. ISIDORI, A. y BYRNES, C. I. "Output regulation of nonlinear systems". IEEE
Transactions on Automatic Control. Feb. 1990. Vol. 35, Núm. 2, pp. 131–140.
[10]. ISIDORI, A. MARCONI, L. y SERRANI, A. "Robust nonlinear motion control of a
helicopter". IEEE Transactions on Automatic Control. Mar. 2003. Vol. 48, Núm
3, pp. 413–426.
[11]. ISLAM, B. U. AHMED, N. BHATTI, D. L. y KHAN, S. "Controller design using fuzzy
12
logic for a twin rotor MIMO system". 7th International Multi Topic Conference,
INMIC. 8-9 Dic. 2003, pp. 264-268.
[12]. JIH-GAU, J. WEN-KAI, L. y CHENG-YU, T. "Intelligent control scheme for twin
rotor MIMO system". IEEE International Conference on Mechatronics, ICM. 10-
12 Jul. 2005, pp. 102-107.
[13]. KARAGIANNISA, D. ASTOLFI, A. y ORTEGA, R. "Two results for adaptive output
feedback stabilization of nonlinear systems". Automatica 39, Brief Paper.
2003, pp. 857–866.
[14]. KOO, T.J. "Stable model reference adaptive fuzzy control of a class of nonlinear
systems". IEEE Transactions on Fuzzy Systems. Ago. 2001. Vol. 9, Núm 4, pp.
624–636.
[15]. MITTAL, M. PRASAD, J. V. R. y SCHRAGE, D. P. "Nonlinear adaptive control of a
twin lift helicopter system". IEEE Control Systems Magazine. Abr. 1991. Vol.
11, Núm. 3, pp. 39-45.
[16]. NARENDRA, K. S. ANNASWAMY, A. M. "Stable adaptive systems". Englewood
Cliffs, N.J. : Prentice Hall, 1989, Capítulos 1,3.
[17]. NARENDRA, K.S. y PARTHASARATHY, K. "Identification and control of dynamical
systems using neural networks". IEEE Transactions on Neural Networks. Mar.
1990. Vol. 1, Núm. 1, pp. 4–27.
[18]. VERHAEVERT, J. y BEYENS, J. "Study and realisation of controlling a twin rotor".
Vehicular Technology Conference, VTC2007-Spring. IEEE 65 th . 22-25 Abr. 2007,
pp. 2535–2539.
[19]. WANG, Li-Xin. Adaptive Fuzzy Systems and Control. New Jersey : Prentice Hall,
1994. Capítulos 1, 2.
13
Capítulo 2 Sistema Multivariable
de 2 Rotores Acoplados
2.1 INTRODUCCIÓN E HIPÓTESIS SIMPLIFICATORIAS
El sistema multivariable de 2 rotores acoplados (Twin Rotor MIMO System, TRMS)
está diseñado para simular la dinámica de un helicóptero. Se compone básicamente
de un pivote que permite una rotación en los ejes vertical y horizontal, un rotor
principal y un rotor de cola.
Es fácil ver el comportamiento multivariable del sistema pues, tal como se
muestra en la Figura 2.1, existen 2 entradas que corresponden al voltaje aplicado en
cada uno de los bornes de los motores de corriente continua (en verde), y 4 salidas
14
Figura 2.1: Esquema del TRMS
MR
TR v
h
uv
uh
que corresponden a los ángulos de inclinación para cada eje y las velocidades de
cada uno de los motores (azul y rojo, respectivamente). Además, la misma figura
muestra la nomenclatura que se ocupa en el resto de este trabajo con:
v : Ángulo de elevación del sistema (eje vertical).
h : Ángulo de rotación del sistema (eje horizontal).
MR : Velocidad angular del rotor principal (main rotor).
TR : Velocidad angular del rotor de cola (tail rotor).
uv : Voltaje (normalizado) para el rotor principal.
uh : Voltaje (normalizado) para el rotor de cola.
Es importante mencionar en este punto que el voltaje normalizado se encuentra
en el rango [0,1], donde 0 corresponde al mínimo y 1 al máximo. Esto se hace así
pues no necesariamente los voltajes máximos de los rotores serán los mismos. En
particular para este trabajo, se ocupan 20 [V] máximos en el rotor principal mientras
que 15 [V] en el rotor de cola, para compensar la diferencia entre las hélices
principal y de cola.
Las hipótesis simplificatorias que se ocupan para el modelo fenomenológico que
se presenta son las mismas que entrega Feedback Instruments Ltd. en [1] (ver
Apéndice 2) y son
● La dinámica de las hélices se puede expresar como ecuaciones
diferenciales de 1er orden.
● La fricción del sistema se considera del tipo viscosa.
Por último, los modelos vertical y horizontal se obtendrán a partir de la 2da ley de
Newton, es decir
Mi= J id2i
dt2 , i∈{h,v}
donde
Mi : Suma de momentos de torque en el plano i.
Ji : Suma de los momentos de inercia relativos al plano i.
15
i : Ángulo para el plano i, según lo mencionado anteriormente.
2.2 MODELACIÓN FENOMENOLÓGICA
2.2.1 MODELO DE ENTRADA
Para poder comenzar la modelación fenomenológica, se debe conocer la relación
entre el voltaje de entrada aplicado a cada uno de los motores y la fuerza de empuje
que se obtiene (ver Figura 2.2). Esta relación se compone básicamente de 2 etapas:
Relación entre voltaje (uv,uh) y velocidad angular (m,t), y relación entre velocidad
angular y la fuerza de empuje (Fv,Fh), cuyos parámetros deben ser determinados
experimentalmente.
La velocidad angular se obtiene, a su vez, en 2 partes: Una dinámica de 1er orden
y una estática polinomial, relacionadas a través de (uvv,uhh) (Figura 2.2). La relación
entre velocidad y fuerza es un polinomio que depende exclusivamente del modelo y
forma de la hélice que se ocupe.
2.2.2 MODELO VERTICAL
El modelo vertical acá descrito es el mismo que se propone en [1][Apéndice 2],
por lo que algunas partes resultan redundantes. Sin embargo, es importante detallar
todo el desarrollo para una mayor claridad.
De la Figura 2.3 es fácil ver que el primero de los momentos Mv1 se expresa como
16
Figura 2.2: Modelos de entrada
mPv uvv
uvv1Tmr s1
uv Fv m Fv
tPhuhh
uhh1T tr s1
uh Fh t Fh
Figura 2.3: Diagrama de momentos de fuerza para el eje vertical
−v
Fv m
g
Mv2Mv4
Mv1
Mv3
Mv1=g{[mt
2mtrmts lt−mm
2mmrmms lm ]cosv−mb
2lbmcb lcbsinv }
con
Mv1 : Torque de retorno para las fuerzas de gravedad.
mmr : Masa del motor CC con el rotor principal.
mm : Masa del rayo pivote-motor principal.
mtr : Masa del motor CC con el rotor de cola.
mt : Masa del rayo pivote-motor de cola.
mcb : Masa del contrapeso.
mb : Masa del rayo pivote-contrapeso.
mms : Masa del escudo principal.
mts : Masa del escudo de cola.
lm : Largo del rayo pivote-motor principal.
lt : Largo del rayo pivote-motor de cola.
lb : Largo del rayo pivote-contrapeso.
lcb : Distancia pivote-contrapeso.
g : Aceleración de gravedad.
Definiendo las constantes
A=mt
2mtrmts lt
B=mm
2mm rmms lm
C=mb
2lbmcb lcb
se obtiene una forma compacta para esta expresión
Mv1=g {[A−B]cosv−Csinv }
17
Mv2 y Mv4 se determinan fácilmente pues corresponden a al momento de fuerza de
empuje producida por el rotor principal y el momento de roce asociada a la
velocidad de giro, respectivamente, cuyas expresiones son
Mv2=lmF vm
Mv4=−vkv=−v kv
con
m : Velocidad angular del rotor principal.
Fv : Fuerza propulsora del rotor principal.
v : Velocidad angular alrededor del eje horizontal.
kv : Constante de roce.
La última expresión Mv3 corresponde al momento de fuerzas centrífugas
relacionadas al movimiento del rayo alrededor del eje definida como
Mv3=−h2 {mt
2mtrmts ltmm
2mmrmms lmmb
2lbmcb lcb}sinv cosv
con
h : Velocidad angular alrededor del eje vertical.
Agrupando constantes se obtiene
Mv3=−h2 {ABC }sinv cosv
Las componentes de los momentos de inercia relativos al eje horizontal se
expresan como
Jv1=mmr lm2 , Jv2=mm
lm2
3,
Jv3=mcb lcb2 , Jv4=mb
lb2
3,
Jv5=mtr lt2 , Jv6=mt
lt2
3,
18
Jv7=mms
2rms
2mms lm
2 , Jv8=mts r ts2mts lt
2 .
con
rms : Radio del escudo principal.
rts : Radio del escudo de cola.
Es importante mencionar que estos momentos de inercia no dependen de la
posición del sistema y son constantes en el tiempo.
2.2.3 MODELO HORIZONTAL
Este modelo horizontal, aún cuando tiene una base en la 2da ley de Newton y en el
modelo fenomenológico del modelo vertical, se obtiene en su mayoría a partir de
datos experimentales [2] pues el modelo mostrado en [Apéndice 2] para este eje no
representa de fiel manera el comportamiento del sistema. Esto sucede
principalmente por 2 razones: No considerar las limitaciones físicas del equipo y no
considerar factores externos que si afectan el comportamiento general.
Para el primer problema, el ejemplo más simple es que a pesar de la libertad de
movimiento que se tiene en los ejes horizontal y vertical existen límites que no
pueden ser violados, como que h supere los [rad].
Lo segundo es, tal como lo muestra la Ilustración 2.1, la existencia de cables que
limitan el movimiento del eje horizontal. En particular, se descubre que este
conjunto de cables produce un efecto muy parecido al péndulo (contrapeso) del
modelo vertical y esto motiva al nuevo modelo. Entonces, para el modelo horizontal
19
Ilustración 2.1: Cables de conexión
(Figura 2.4) se considera un sistema muy parecido al mostrado en la Figura 2.3,
modelando el efecto de los cables como un péndulo virtual.
Haciendo la analogía con el eje vertical, Mh1 se representa como
Mh1=D {Ecosh−F sinh }
con D, E, F constantes a determinar experimentalmente.
Mh2 y Mh4 son momentos análogos al modelo vertical dados por
Mh2= ltF ht
Mh4=−hkh=−hkh
Mh3 corresponde al momento de fuerza producido por el rotor principal y se modela
simplemente como
Mh3=k1F1m
Las componentes de los momentos de inercia relativos al eje vertical se suponen
constantes, independientes de la posición del sistema y su suma será una nueva
constante a determinar experimentalmente.
Por último, después de realizar pruebas con este modelo se verifica que si bien la
dinámica se comporta adecuadamente en cuanto a tiempos de estabilización y
tamaño y cantidad de oscilaciones, existe un desplazamiento en la salida producido
por el rotor principal. Esto se soluciona agregando una función de m sumada a la
salida del modelo.
h=hPm
20
Figura 2.4: Momentos de fuerza para el nuevo modelo horizontal
−h
Fh t g
Mh1
Mh2Mh4
F1m
Mh3
2.3 INSTRUMENTACIÓN
2.3.1 POSICIÓN
Para medir la posición (ángulos) de elevación y rotación se utiliza un encoder del
tipo HEDS9000 [3], el cuál no sólo permite medir con gran precisión (dependiendo
de la rueda dentada que se ocupe) sino que además mide el sentido de giro.
Básicamente, el sensor consiste en un rayo de luz que es interrumpido por la
rueda, produciendo un tren de pulsos de ancho variable en función de la velocidad
de giro. Luego, basta detectar cuando la señal sube o baja para determinar la
posición. El sentido de giro se logra determinar mediante dos señales en cuadratura
(desfasadas en 90º). Así, dependiendo cuál canal adelante en fase se sabrá el
sentido de giro.
Nótese que los pulsos entregados por el sensor no son perfectos y demoran un
tiempo en llegar a sus valores máximos y mínimos, pero este tiempo es lo
suficientemente pequeño para que el sistema lo considere como instantáneo. Para
mayor detalle se recomienda al lector dirigirse a [Apéndice 1], donde se explica la
21
Ilustración 2.2: Encoder HEDS9000
Figura 2.5: Desfases según sentido de giro
Canal
AC
anal
B
rotación
−90º 90º
construcción completa del sistema.
2.3.2 VELOCIDAD
En este sistema existen 2 velocidades que se pueden medir: i y i (velocidad de
giro de los ejes y velocidad angular de los rotores, respectivamente). Para la primera
no se consideraron sensores especiales debido principalmente al espacio con el que
se trabaja, pero una aproximación de 1er orden para la derivada de la posición suele
ser suficiente para los cálculos requeridos.
Para la velocidad angular de los rotores se tiene, para cada motor, un tacómetro
acoplado al eje [4] que convierte velocidad de giro en una señal de voltaje según la
relación
Vf [V ]=0.52[V ]∗1000 [rpm]
2.4 DETERMINACIÓN DE PARÁMETROS
2.4.1 MODELO DE ENTRADA
El procedimiento descrito en esta sección será detallado para el eje vertical. Para
el caso horizontal se repite el mismo procedimiento, por lo que sólo se darán a
conocer los resultados finales.
Para determinar la característica estática del rotor principal se hace una prueba en
lazo abierto, fijando el eje horizontal tal que no existan rotaciones y se le aplica una
entrada del tipo ruido blanco a la entrada de voltaje del motor con el tiempo
suficiente para que el rotor llegue a régimen permanente.
Con los datos experimentales (Gráfico 2.1) se puede realizar un modelo polinomial
de 4to orden, utilizando el Toolbox de interpolación de MATLAB [5]. Con esto, el
modelo queda como
22
Gráfico 2.1: Característica estática
muvv =−1558uvv4 3894uvv
3 −3920uvv2 2878uvv−4.761
La característica dinámica se obtiene por prueba y error, concluyendo en la
función de transferencia
uvv
uv=
10.9s1
Finalmente se realiza un experimento aplicando la misma entrada a la planta y al
modelo, obteniéndose el Gráfico 2.2.
Para la fuerza de empuje, se supone que el modelo entregado por Feedback [1]
está lo suficientemente bien calibrado y al no haber cambio en la hélice el modelo
sigue siendo válido. Sin embargo, al cambiar los voltajes de entrada para los
motores, se debe realizar un nuevo ajuste en el rango de operación, tal como lo
muestra el Gráfico 2.3.
Nótese que el modelo antiguo es válido para un intervalo (0,800) [rpm], lo que
resulta insuficiente para el nuevo sistema. También se realiza una simplificación en
el orden del polinomio, determinando que un 2do orden está bien. El modelo final
queda como
Fv m=0.002m2
Para el rotor de cola, los nuevos modelos son
23
Gráfico 2.2: Modelo para el rotor principal
Gráfico 2.3: Comparación entre modelos para Fv(m)
t uhh=2020uhh5 −194.69uhh
4 −4283.15uhh3 262.27uhh
2 3796.83uhh
uhh
uh=
10.3842 s1
Fht =11⋅10−5t2
2.4.2 MODELO VERTICAL
Para la sintonización del modelo vertical se realizan pruebas en lazo abierto,
dejando el rotor de cola con velocidad angular constante y se varía la entrada del
rotor principal. Partiendo por los valores entregados en el modelo original, se ajustan
cada uno de las correcciones (1 hasta 6 mostradas en el [Anexo 4]) hasta llegar al
mejor modelo posible. El método propuesto en [1] para la sintonización vertical no
es aplicado, pues existen dinámicas no modeladas e interacciones entre ejes que no
permiten un buen modelamiento si tantos factores se dejan de lado.
Aún cuando el proceso podría parecer engorroso, cada uno de los parámetros
modificados tiene una influencia directa sobre alguna de las características del
modelo. Por ejemplo, al modificar el torque de fricción se modifica la amplitud de las
oscilaciones, mientras que el momento de inercia modifica el decaimiento. El Gráfico
2.4 muestra el modelo final con respecto a datos experimentales frente a la misma
entrada.
Se deben destacar dos cosas del Gráfico 2.4. El tipo de decaimiento logrado en el
modelo nunca se pudo igualar con el de la planta (trade-off entre amplitud de
oscilación con tiempo de decaimiento), pues existen roces mecánicos (más allá del
con el aire) que hacen del decaimiento un proceso en 2 partes: El primero es cuando
las velocidades son altas y podría parecer del tipo cuadrático, pero cuando las
velocidades disminuyen se debería considerar otro modelo. Sin embargo, se
considera que el modelo es lo suficientemente bueno como para realizar las pruebas
24
Gráfico 2.4: Modelo Vertical
y realizar sintonización de controladores antes de probarlos en planta.
El segundo punto es que el comportamiento de la planta no es el mismo para
ángulos mayores que 0 [rad] pero como es en esta región donde el control se vuelve
más crítico, se le da prioridad a la modelación en ésta estimando que un controlador
bien sintonizado aquí se comportará de buena manera en el resto del espacio; Es
por esto que los puntos de equilibrio no calzan exactamente para ángulos negativos.
2.4.3 MODELO HORIZONTAL
El modelo horizontal se sintoniza de la misma manera que el vertical (por tener la
misma forma). El problema, tal como se mencionó antes, radica en el
desplazamiento que se produce frente a diferentes velocidades del rotor principal y
que no es lineal. El Gráfico 2.5 muestra 2 casos (uv=0.4 y uv=0.8, rojo y azul,
respectivamente) de esta situación.
Debido a esto, se calcula un polinomio que modifica la salida según
h=h−1.744e-6m20.003546m0.7
El resultado se muestra en el Gráfico 2.6, modificando sólo la entrada en el eje
vertical.
25
Gráfico 2.6: Modelo horizontal
Gráfico 2.5: Desplazamiento producido por el rotor principal
2.5 REFERENCIAS
[1]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, advanced teaching
manual 1; 33-007-4M5". Crowborough, Inglaterra. Noviembre, 1999.
[2]. GONZALEZ, Guillermo. "Apuntes del curso EM717. Identificación para el control
de sistemas". Universidad de Chile, Departamento de Ingeniería Eléctrica.
[2006]
[3]. HEWLETT Packard. "Two channel optical incremental encoder modules ,
technical data (heds9000-heds9100)". Octubre, 2006.
[4]. MAXON Motor. "DC Tacho DCT 22, 0.52 Volt, Technical Data". Agosto, 2006.
[5]. THE MATHWORKS. Curve Fitting Toolbox. [en línea]
<www.mathworks.com/access/helpdesk/help/pdf_doc/curvefit/curvefit.pdf>
[consulta: Mayo 2007].
26
Capítulo 3 Descripción de los
Controladores
3.1 RED NEURONAL COMO FUNCIÓN INVERSA
El TRMS presenta una estructura matemática que no es apropiada para los
controladores avanzados que se proponen en este trabajo, por lo que una función
inversa que elimine ciertas características es necesaria. Desafortunadamente la
función a invertir es no lineal y dinámica, por lo que se decide ocupar una red
neuronal (entrenada fuera de línea) para invertirla y alcanzar así la forma de
problema deseada.
3.1.1 JUSTIFICACIÓN
Para la mayoría de los sistemas de control y en particular para el controlador
difuso adaptable, se requiere de un sistema que tenga la forma [11]
xn=f x , x ,..., xn−1gx , x ,... , xn−1u
El problema para el TRMS es que no sigue esta estructura, sino
x n=f x, x ,... , x n−1gx , x ,... , xn−1 F u j
donde uj corresponde a la entrada de voltaje a los motores horizontal o vertical (j=h
ó j=v, respectivamente, notación que se mantendrá por el resto del trabajo). La
función (modelo) F . se muestra en la Figura 3.1
27
Para poder eliminar esta función no lineal, se propone una red neuronal (NN, por
sus siglas en inglés) entrenada para comportarse como la inversa de la función. Así,
al poner la red neuronal a la entrada del sistema se podrá suponer la estructura
descrita al comienzo de esta sección.
3.1.2 ANÁLISIS DE LA FUNCIÓN
Antes de entrenar la NN, se requiere establecer de adecuada manera la estructura
de la red y la cantidad de datos de entrenamiento [1][7]. Para lo primero se necesita
establecer cuántas neuronas de entrada, cuántas en la capa oculta y cuántas en la
salida. Un modelo general de una NN se muestra en la Figura 3.2.
Al elegir sólo una neurona con función de activación lineal a la salida y la misma
cantidad de neuronas en la capa oculta que en la capa de entrada (al no buscar
optimalidad en la estructura), el único parámetro de la estructura de la red que debe
determinarse es la cantidad de neuronas en la capa de entrada. Habrá que recordar
que para el caso del control, las entradas a la red son regresores de la entrada y de
la salida.
Como primeras aproximaciones, se ocuparán sólo regresores de la salida para la
red neuronal. Se realiza una prueba (Gráfico 3.1) para determinar cuántos de estos
regresores serán necesarios para un desempeño aceptable estudiando los casos de
28
Figura 3.1: Función no lineal en la entrada
Figura 3.2: Estructura de la Red Neuronal
.
.
.
.
.
.
capa entrada
capa oculta
capa salida
Xh
ih
ji
X1
3, 5 y 7 regresores. Nótese que los rangos en la entrada no corresponden
exactamente a los que se ocuparán en el controlador final, pero esto se permite por
2 razones: La primera es que al estar fuera de rango la red neuronal tendrá más
capacidad de adaptación, luego podrá soportar diferentes regiones de operación. La
segunda razón tiene que ver con la simplificación de los primeros aprontes, pues el
entrenamiento de una red neuronal consume bastante tiempo (como se verá más
adelante) y al tener que realizar varios entrenamientos antes de escoger la NN que
se utilizará, el tiempo total que se podría ocupar sólo en este ejercicio ascendería a
varias horas. Finalmente, se establecen 3 tipos de redes y 1000 [s] de datos, de los
cuales 700 [s] serán para el entrenamiento y 300 [s] para la validación.
Del Gráfico 3.1 es posible notar que las redes que tienen 5 y 7 regresores tienen
un comportamiento bastante similar. Como se trata de un experimento bastante
aproximado, se empleará una red con 7 regresores en la entrada.
3.1.3 ENTRENAMIENTO
El entrenamiento de la red se realizará fuera de línea pues la salida que se
necesitaría para hacerlo en línea no está disponible físicamente. Aún así, se estima
que el modelo está lo suficientemente bien sintonizado como para que la red quede
bien entrenada (Figura 3.1).
El control directo neuronal propuesto en [7] se muestra en la Figura 3.3, donde es
posible notar que se ocupan referencias y salidas futuras, pero esto es en realidad
sólo notación y, obviamente, se ocupará la salida en el tiempo actual. Además, el
sistema mostrado en amarillo será en realidad la función F . mencionada en la
sección anterior “Justificación”.
29
Gráfico 3.1: Resultados para diferentes n
Por otra parte, la función objetivo que se buscará minimizar viene dada por
J , ZN =1
2N∑t=1
N
[u t − ut∣]2
donde N corresponde al número de muestras, u(t) es la entrada al sistema y û(t|) es
la salida del modelo inverso. Esto difiere con el modelamiento neuronal en que se
busca minimizar el error en las salidas.
Para la obtención de los datos de entrenamiento se crea un nuevo modelo
Simulink con los parámetros mostrados en la Figura 3.4.
Éstos son importantes pues son los mismos parámetros que se ocuparán en la
planta real. Merece la pena mencionar el tiempo de de muestreo 0.05 [s] fijo y que
el Tasking Mode es del tipo SingleTasking 1.
El diagrama de bloques se muestra en la Figura 3.5. La entrada uv(.) aleatoria está
en el rango [0,1] y el tiempo entre cambios es de 5 [s]. Ésta es de vital importancia
porque debe ser capaz de incluir la mayor cantidad de modos posibles en la entrada
para que éstos queden identificados por la red. No se utilizan señales de control
1 Esto se hace para poder manejar diferentes tiempos de trabajo en la aplicación. Habrá que realizar otro estudio para ver si esto afecta numéricamente en los cálculos.
30
Figura 3.3: Control Directo Inverso
NN
ModeloInverso
r t1
q−2
Sistemaut
q−1
q−2
y t1
Figura 3.4: Opciones para el Solver de MATLAB
reales en el entrenamiento pues no cubren necesariamente todo el espectro de
entradas, además de necesitarse muchos datos para un entrenamiento efectivo (del
orden de 150 [hrs]).
Con todo lo anterior en consideración se procede al entrenamiento de la red,
donde se utilizarán 8000 [s] en el entrenamiento y 2000 [s] para la validación. Es
importante mostrar la Tabla 3.1 para dar una idea al lector sobre este proceso. En
particular, se entenderá que donde la tabla muestre simulación serán segundos
simulados, no así el tiempo total que es en tiempo real.
Con el comando gensim(net, 0.05) se puede transformar la red neuronal en un
bloque Simulink, donde net es la red entrenada por MATLAB y que se encuentra en
el workspace, y 0.05 es el tiempo de muestreo.
31
Figura 3.5: Simulink para obtención de datos
Tabla 3.1: Datos sobre el entrenamiento
simulacióntiempo muestreo muestras MSE
[1] [s] [s] [1] [1] [s]7 8000 0,05 160000 0,0016827 791,93
inputs tpo total
El Gráfico 3.2 muestra el comportamiento (validación) del sistema completo. La
línea punteada muestra el valor al que se quiere llegar, mientras que la roja muestra
la salida del sistema NN-Fv(.).
3.1.4 RESULTADOS Y MODIFICACIONES
Al realizar pruebas con este nuevo sistema, se detecta un nuevo problema que
necesita solución: La respuesta del tipo impulso que se produce a la salida de la red
neuronal debido a la anulación de ceros [7] y que se ve claramente en el Gráfico
3.3.b.
La solución consiste en filtrar la señal de control, pero existen 2 lugares donde
colocar dicho filtro: A la entrada de la red o a la salida. Ambas soluciones producen
el mismo efecto (con diferentes constantes de tiempo) y permiten señales como la
32
Gráfico 3.2: Validación para la red neuronal
Gráfico 3.3: Detalle del sistema NN-Fv(.)
mostrada en el Gráfico 3.4.b, la cual ha perdido en gran medida los cambios tipo
impulso. Obviamente existe un trade-off entre la velocidad de “estabilización” y la
suavidad de la señal de control; A mayor suavidad en la señal de control, más tarda
el sistema en llegar a la señal deseada uv,des.
Se decide poner el filtro antes del cálculo de regresores (ver Figura 3.6, la cual
corresponde al eje vertical), lo que será una acertada decisión, ya que más adelante
en el trabajo se necesitará un filtro de segundo orden en esta misma posición para
permitir estabilidad en lazo cerrado.
La respuesta del sistema con el filtro, junto con la acción de control asociada, se
muestra en el Gráfico 3.4.
Por último se prueba el sistema con una señal de control verdadera, obtenida
desde el TRMS y calculada por un controlador simple PID. Los resultados se
muestran en el Gráfico 3.5.
33
Gráfico 3.4: Detalle del sistema NN-Fv(.) con filtro
Figura 3.6: Sistema con filtro
Claramente el filtro atenúa la señal original, pero se estima que esto no afectará el
sistema debido a que las variaciones de alta frecuencia no alcanzan a perturbar el
sistema total.
3.2 PID CONVENCIONAL
3.2.1 DESARROLLO MATEMÁTICO DEL CONTROLADOR
El control PID es ampliamente discutido en la literatura [8][9][10] y se espera que
el lector tenga ya conocimientos básicos sobre éste. Sin embargo, se justifica esta
sección pues se presentarán diagramas con colores y bloques que serán estándar
durante todo el desarrollo de este trabajo. Además se mostrará como se sintonizó el
controlador para responder frente al nuevo sistema.
3.2.2 ESQUEMAS DE CONTROL
Al ser un controlador inherentemente monovariable, el PID convencional que se
ocupa tendrá 2 lazos de control separados. El esquema general de control se
muestra en la Figura 3.7
Nótese que como colores estándar se utilizará el naranjo para el controlador,
amarillo para la planta (real y modelo) y el verde como salida. Los bloques verdes
34
Gráfico 3.5: Sistema con señal de control real
Figura 3.7: Esquema de Control General
con bordes circulares representan salidas del subsistema, mientras que los bloques
verdes con bordes rectos representan sensores virtuales para la señal. Esto permite
ocupar la señal desde cualquier parte del esquema Simulink sin la necesidad de
poner una línea explícita2. Se ocupará el color rojo para las entradas a los
subsistemas.
Los nombres ocupados son un abuso de notación de LaTeX. Así, el caracter “_”
corresponde a un subíndice (alfa_v v), mientras que el tamaño de la primera letra
corresponde a mayúscula o minúscula del alfabeto griego (omega_MR MR ,
Omega_MR MR). Estas variables corresponden a las mismas ocupadas en el
modelo fenomenológico.
Como se ve en la Figura 3.8, el primer esquema de control PID que se propone es
bastante sencillo. A cada lazo se le asigna un controlador, los cuales son
independientes el uno del otro. Esto, obviamente, no permite control sobre las
interacciones entre ejes, por lo que en [4] se propone el esquema de la Figura 3.9
Esto permite regular las interacciones entre cada eje pero agrega la complejidad
2 Esto conlleva a un esquema Simulink muy limpio y fácil de leer.
35
Figura 3.8: Esquema de Control PID simple
Figura 3.9: Esquema de Control PID Complejo
de la sintonización de 6 parámetros más y, teniendo en consideración lo crítico que
puede llegar a ser el eje vertical, esta sintonización tiene que ser muy precisa.
3.2.3 SINTONIZACIÓN DE PARÁMETROS
La sintonización para los dos casos mostrados anteriormente se realiza de la
misma manera: Primero mediante simulaciones y luego se realiza un ajuste fino en
el sistema de dos rotores.
Para la parte de simulaciones se realiza el procedimiento descrito en [5], el cual
indica que primero se debe correr la simulación con algunos parámetros, para luego
cambiarlos según el algoritmo de Gauss-Seidel. Luego observar si el criterio de los
mínimos cuadrados descrito como
Q=∫0
∞
m2 t dt
es óptimo. Si no, volver a correr el algoritmo Gauss-Seidel y repetir el proceso.
Feedback Instruments ya ha realizado este algoritmo con bastante precisión pero
para su modelo. Entonces, tomando estos valores como punto inicial se comienza un
procedimiento de prueba y error para lograr no sólo valores que logren un Q lo más
pequeño posible sino que cumplan además con condiciones reales de tiempos y
puntos de estabilización en el nuevo modelo. Luego, estos valores son puestos en el
sistema de control real, donde se realiza una sintonización fina de los parámetros.
Los valores finales obtenidos, tanto para la Figura 3.8 y Figura 3.9, se muestran en la
Tabla 3.2.
36
Tabla 3.2: Parámetros para el control PID
PIDh PIDv PIDvv PIDvh PIDhv PIDhhP 1.000 0.380 0.540 0.045 0.230 1.000I 0.130 1.400 0.980 0.021 0.100 0.120D 0.500 1.300 1.980 -0.430 0.100 0.500
3.3 CONTROL ADAPTABLE CONVENCIONAL
3.3.1 DESARROLLO MATEMÁTICO DEL CONTROLADOR
Al realizar un análisis sobre el modelo fenomenológico mostrado en el Capítulo 2,
es posible darse cuenta que al separar los ejes (es decir, tomar como nula cualquier
entrada que provenga del otro eje) ambos modelos tienen una forma como
j=C1 jC2cos jC3sin jCuu j , j∈{h,v} , C i ctes.
Aún cuando se tienen funciones no lineales (conocidas), este modelo tiene la
forma requerida para realizar un control adaptable convencional para plantas con
grado relativo n*=2. Es de gran importancia destacar este hecho, pues el caso n*=2
es especial [6]: Para plantas con grado relativo mayor que 1, el hecho de agregar
diferenciación explícita y además ocupar el factor de normalización 1T
introduce ruido y bruscas variaciones en la acción de control que deberían ser
evitadas cada vez que es posible [2]. El método que se muestra a continuación evita
esto por medio de la utilización de filtros que aseguren limt∞
e1=0 , donde e1
corresponderá al modelo de error del sistema.
Así, los vectores a definirse son
=[ r j 1 2 3]T
=[k1 0 1 2 3]T
donde 1, 2 y 3 son las señales filtradas de u(t), cos(j) y sin(j) respectivamente
a través de un filtro (,ℓ), el cuál debe cumplir que dicho par sea controlable [6].
Según lo mostrado en el Capítulo 1, si se define L(s)=s+a tal que el producto
Wm(s)L(s) sea estrictamente real positiva (ERP), se puede considerar un nuevo
vector t =L−1s t . Así, una nueva acción de control u(t) puede escribirse
como
37
ut =T t t T t t aT t t =T t t T t t
Entonces, si t está determinado por una ley adaptable, u(t) no tendrá
derivación implícita. Se deduce además que la ecuación del error toma la forma
e1t =kp
km
WmsLsT t t
Si se ocupa la ley adaptable
t=−sgnkpect t
y se remplaza en u(t), se tiene la acción de control final
ut =T t t −sgnkpe1t T t t
3.3.2 ESQUEMAS DE CONTROL
El controlador adaptable convencional propuesto se diseña para sistemas
monovariables. A pesar de esto, se espera que las interacciones entre ambos ejes
puedan ser reconocidas de forma rápida por el controlador a través de la
identificación de constantes variables en el tiempo. Por ejemplo, aún cuando no
existe una clara dependencia entre el lazo de control vertical y el ángulo del eje
horizontal en el esquema, se puede decir que la constante que acompaña a los
términos del modelo es función de h, por lo que se tendría un modelo del estilo
v=C1 h vC2hcos jC3 hsin jCu tu j
Entonces, la interacción entre ejes (sistema multivariable) se reduce al problema
de verificar la respuesta del controlador frente a cambios en los parámetros del
sistema.
Por otro lado, como se trabaja con miras a controlar el sistema físico real es
importante darle tiempo al controlador para que adapte sus parámetros lo mejor
posible antes de comenzar a realizar las pruebas de seguimiento y respuesta a
38
perturbaciones. Esto se puede lograr de 2 maneras: La primera es realizar una serie
de experimentos para determinar las condiciones iniciales para cada uno de los
parámetros. La segunda (y es la que se usa en este trabajo) es comenzar con un
controlador PID por un tiempo fijo determinado a través de diferentes simulaciones y
una vez cumplido este tiempo se realiza un cambio suave al controlador adaptable.
Esto se hace porque los parámetros pueden variar entre experimentos y es mejor,
para los resultados de este trabajo de investigación, que las pruebas sean realizadas
cuando se tenga un estado de régimen permanente.
Con todo lo anterior, la Figura 3.10 muestra el esquema que se ocupa para el
diseño del controlador adaptable convencional, donde se pueden ver claramente los
bloques para cada controlador, los modelos de referencia y los bloques encargados
de realizar el cambio.
En cuanto a los detalles de los bloques mostrados, se muestra sólo el lazo vertical,
pues el horizontal es del mismo tipo excepto por variaciones en las constantes que
se ocupan y las cuáles serán explicitadas en la siguiente sección. Entonces, el
39
Figura 3.10: Controlador Adaptable Convencional para TRMS
bloque controlador vertical se detalla en la Figura 3.11.
Merece la pena destacar 3 cosas con respecto a la Figura 3.11: El uso de filtros de
primer orden en las entradas a los estimadores para evitar la derivación implícita, el
uso de funciones no lineales conocidas como entradas para los estimadores 2 y 3 y
por último, el uso de una red neuronal para el cálculo de la inversa de la función Fv(.)
(ver Figura 3.6), la cual es importante pues esta función no es estática y el método
propuesto en [6] para entradas no lineales podría no funcionar.
El estimador para cada uno de los parámetros, cuyo diagrama de bloques se
muestra en la Figura 3.12, se diseña en base a la ley adaptable mostrada en la
sección anterior.
40
Figura 3.11: Detalle de controlador vertical
Figura 3.12: Detalle para el estimador de parámetros
3.3.3 SINTONIZACIÓN DE PARÁMETROS
Las parámetros a sintonizar en este controlador son el par (,ℓ) de los filtros, los
modelos de referencia según el comportamiento que se quiera, los valores para las
ganancias adaptables de cada uno de los estimadores, los filtros a la entrada de
las redes neuronales y el tipo y tiempo de cambio entre controladores.
Los primeros 2 parámetros son fáciles pues las restricciones sobre ellos son poco
exigentes y dependen principalmente del comportamiento que el diseñador quiera
darle al sistema. Así, para el par (,ℓ) basta que sea controlable (con
asintóticamente estable) y se elige arbitrariamente
F ,ℓs=1
s0.5
Los modelos de referencia deben tener el mismo grado relativo que la planta y sus
parámetros dependerán del criterio del diseñador, siempre y cuando sean escogidos
coherentemente con las limitaciones físicas de la planta.
ymh
ref hs=
16s24s1
,ymv
ref vs=
111s26s1
Las constantes se determinan por prueba y error tal que el sistema sea estable y
posea un buen comportamiento transitorio. Entonces, si se consideran los vectores
v=[k1v 0v 1v 2v 3v]T , v=[ rv v 1v 2v 3v]
T
se tiene un vector asociado con cada uno de los elementos del vector , tal como
se muestra en la Tabla 3.3
Los filtros a la entrada de las redes neuronales es un punto crítico, ya que
determinan directamente el tiempo de respuesta de la planta: Un filtro muy lento
asegura estabilidad, pero la respuesta del controlador puede ser tan lenta que no es
capaz de eliminar eficientemente las interacciones ni los tiempos de estabilización
requeridos. Por otro lado, un filtro rápido permite acciones de control tales que las
interacciones podrían ser eliminadas y el error de control se mantiene muy cerca de
41
Tabla 3.3: Parámetros para el controlador
ejehorizontal 1.000 1.000 0.001 1.000 1.000vertical 0.010 1.000 0.001 1.000 1.000
1
2
3
4
5
cero, pero se puede llegar fácilmente a la inestabilidad. El diseñador tendrá que
tener en cuenta esta situación y sintonizar los parámetros como mejor estime. Para
este caso particular, se escogen
Hh s =1
230s30, Hv s =
115s3
Para el cambio de controlador, se escoge un tiempo de 120 [s] obtenido por
prueba y error3, basándose en el tiempo que demoran los estimadores en alcanzar
un régimen permanente y en el impacto que tiene este cambio en el sistema. El
Gráfico 3.6 muestra los grados de pertenencia de cada controlador en función del
tiempo.
Es destacable el hecho que se escoge un cambio del tipo Gaussiano debido a que
cambios bruscos (por ejemplo, utilizando funciones lineales) producen una
perturbación que podría llevar a inestabilidades. Como se piensa trabajar en el
sistema real, se prefiere optar por asegurar estabilidad antes de simplicidad.
3.4 CONTROL DIFUSO ADAPTABLE
3.4.1 DESARROLLO MATEMÁTICO DEL CONTROLADOR
El controlador difuso adaptable que se muestra en este trabajo ocupa un
aproximador denominado Sistema Difuso Óptimo [11]. Una buena analogía para
entender este tipo de sistemas es considerar un modelo ARX de n regresores,
calculados a partir de un total de n datos. Así, para cada dato que se ocupó en la
modelación, existe un valor en el modelo. Esto tiene una clara desventaja que será
discutida más adelante.
Entonces, se considera que un sistema difuso, con el producto como regla de
inferencia, funciones de pertenencia Gaussianas y ocupando el centro promedio
3 En un trabajo futuro se deberá realizar el análisis matemático para respaldar este resultado.
42
Gráfico 3.6: Cambio de controlador para adaptable convencional
para defuzzificar, se representa como
f x=
∑l=1
M
yl [∏i=1
n
aile
− xi−x il
il
2
]∑l=1
M [∏i=1
n
aile
− x i−x i
l
il
2
], Gl y
l=1
Si se suponen N pares de entrada-salida xl , y l , l=1,2 ,....N , se busca que el
sistema óptimo cumpla con la condición que para todo l=1,...,N y para cualquier >0
dado,
∣f xl −yl∣
El Teorema 6.1 de [11] prueba que para cualquier >0, existe *0 tal que se
cumple lo anterior. Se deben realizar dos comentarios con respecto a este sistema
difuso
● El parámetro se comporta como factor de suavidad: A menor , el error
∣f xl −y l∣ es menor, pero la función f x pierde suavidad entre
transiciones de grupos difusos. Esto conlleva a una pérdida de generalidad
para f x . Tal como se menciona en [11], al ser unidimensional no es
difícil encontrarlo por prueba y error, tal que satisfaga las necesidades de un
problema en particular.
● La función f x , como se ha descrito, es un aproximador universal, por lo
que se produce una buena interpolación para los puntos x l , yl , aún
cuando sea pequeño.
El problema con este sistema óptimo difuso es que, si a cada par de entrada-salida
se le asignase un conjunto difuso, se tendrían muchos conjuntos, los cuales podrían
llegar a ser redundantes (sin tener en cuenta el tiempo de cálculo). Para evitar esto
se ocupa una técnica de clustering que se reduce a crear un nuevo conjunto difuso si
el punto está lo suficientemente alejado del centro de un conjunto ya creado (más
adelante se describe el algoritmo para esto). En la Figura 3.13 se muestra un
ejemplo unidimensional donde los 7 puntos de entrada (representados como círculos
negros) sólo han generado 2 conjuntos difusos, pues el resto se encuentra dentro del
radio r definido como parámetro de construcción. Nótese que no es obligatorio que
43
el radio elegido para los conjuntos sea tal que todo el conjunto difuso quede
adentro. Es más, según el problema, este efecto de “traslape” será favorable entre
transiciones.
El algoritmo que permite la actualización en línea de los conjuntos se describe a
continuación
● Empezando con el 1er par de entrada x l , yl , establecer el centro del
conjunto x0l en xl y definir A11=yl , B11=1 . Seleccionar el radio r.
● Suponiendo que en el k-ésimo paso se tienen M conjuntos, calcular la
distancia ∣xk−x0lk∣=d k
l , l=1,2 ,.. ,M .
○ Si dkl r , crear un nuevo conjunto (M+1) con centro en xl y
AM1k =yk ,BM1k =1 . El resto queda igual.
○ Si dkl r , actualizar sólo en conjunto al cuál pertenecería el nuevo
punto, según
Alk k =Alkk−1yk
Blkk =Blk k−11
● El conjunto difuso tiene como salida la ecuación
f k x=∑l=1
M
Alk exp
−∣x−x0l∣2
2
∑l=1
M
Bl k exp−∣x−x0
l∣2
2
● Si se ha creado un nuevo conjunto, recordar que para la siguiente iteración
se tendrán M+1 conjuntos.
44
Figura 3.13: Sistema Difuso Óptimo
x01
r
x02
r
Ya explicado el estimador difuso adaptable, se procede con la estrategia de
control, la cual supone un sistema de la forma
x n=f x , x ,... , x n−1g x , x ,... , x n−1u
Se quiere que el sistema en lazo cerrado sea estable en el sentido que todas las
variables estén acotadas, mientras que el error de identificación e=ym−y p tienda
a cero. Luego, si las funciones f(.) y g(.) fuesen conocidas y además se cuenta con
un polinomio hs =snk1sn−1...kn Hurwitz (ocupado en el modelo del error), la
acción de control que logra los objetivos anteriores es
u= 1gx
[−f xymnk Te]
pues al remplazarla en xn se tiene
enk1en−a...kne=0
⇒ limt∞
et =0
Existen 2 problemas con la acción de control sugerida: La primera y más obvia es
que en general las funciones f(.) y g(.) son desconocidas, por lo que un estimador es
necesario. La segunda es que, en caso de estimar exitosamente la función g(.),
podría llegar a ser que ésta pasase en algún momento por cero, haciendo que la
acción de control se indefina.
La solución al 1er problema es implementar estimadores difusos óptimos de dichas
funciones. Así, la nueva acción de control será de la forma
u= 1gx
[−f xymnk Te]
El 2do problema se podría solucionar con un control supervisor tal que evitara el
cruce por cero [11]. En este trabajo se aprovechará el hecho que se trabaja en
tiempo discreto, por lo que esta división no tenderá a infinito sino que será muy
grande, y además se ocuparán saturadores a la salida de la acción de control. Esta
solución, aún cuando más simple, agrega 2 parámetros más de sintonía.
3.4.2 ESQUEMAS DE CONTROL
La Figura 3.14 muestra el esquema básico de control que se propone en un caso
45
monovariable, donde la estructura del sistema es tal que
x n=f x , x ,... , x n−1g x , x ,... , x n−1u
Se pueden ver los identificadores de las funciones f(.) y g(.), los cuales reciben las
señales de la función objetivo que se quiere estimar y además las señales de las que
depende (en este ejemplo, f(.) depende de los regresores de la salida y(.) y g(.) de
los regresores del error de control ec(.)). Junto con la salida del modelo de referencia
y el error de control, las señales identificadas entran al bloque “Control Difuso”, que
entrega la acción de control u(.), como se explicó en la sección anterior.
Para el caso del sistema de 2 rotores, el esquema es un poco más complicado
pues es multivariable, además de tener que realizar un cambio entre controladores,
para dar tiempo al controlador de identificar (Figura 3.15). Nótese también que aún
cuando a simple vista podrían parecer 2 lazos de control separados, los
identificadores ocupan la señal del otro lazo para estimar la función. También, tal
como se muestra en el modelo, la función g(.) que acompaña a la acción de control
es una constante por lo que no hay función a estimar. Por otro lado, en el sistema
real no se tiene acceso a este punto por lo que intentar estimar esta constante
resultaría en agregar más estimadores y complejidad al controlador. Por último se
destaca el hecho que en el lazo horizontal, el modelo de referencia es la misma
referencia.
Antes de comenzar a utilizar el controlador difuso óptimo, se comienza con un
controlador PID convencional hasta que los estimadores estén lo suficientemente
cerca de la función a estimar (en la práctica se deja pasar un tiempo fijo antes de
46
Figura 3.14: Esquema básico de control para difuso óptimo
realizar el cambio, el cual se ha determinado por prueba y error).
Este cambio no será necesario si las condiciones iniciales de los estimadores se
han determinado en un experimento previo, pero para este trabajo se consideran
condiciones iniciales nulas, no sólo para verificar la capacidad de adaptabilidad del
controlador, sino que además para verificar la importancia del tiempo y forma del
cambio entre controladores (esto es discutido más adelante en el Capítulo 4).
El detalle del bloque identificador (cualquiera de ellos) se muestra en la Figura
47
Figura 3.15: Controlador Difuso Óptimo para TRMS
Figura 3.16: Detalle del bloque “Identificador”
3.16. Se ve claramente como se ocupan los diferentes regresores de la entrada para
estimar la función objetivo. También, en la salida existen otras señales que no son
de importancia para el controlador, pero sí para la sintonización de parámetros (por
ejemplo, el número de conjuntos difusos). Los parámetros para esta función son el
tiempo de muestreo, número máximo de conjuntos difusos, número de entradas,
radio y (véase la Figura 3.17). Para más detalle acerca de esto, referirse al Anexo 3
“Código para Difuso Óptimo (S-Function)”.
Como se ha mencionado, el bloque “Controlador Difuso” (Figura 3.18) calcula la
acción de control en base a las funciones estimadas y a los modelos de error. El
cálculo de la inversa a través de una red neuronal y el filtro para estabilidad en lazo
cerrado se muestra en la Figura 3.6.
48
Figura 3.17: Parámetros para la S-Function
Figura 3.18: Detalle del bloque "Controlador Difuso"
3.4.3 SINTONIZACIÓN DE PARÁMETROS
La sintonización de los parámetros para este controlador se hace principalmente
por prueba y error en simulaciones, para luego realizar una sintonía fina en el
sistema real. Se deben sintonizar tipo y tiempo de cambio entre controladores,
constantes de tiempo en los filtros previos a la red neuronal, constantes de tiempo
en los modelos de error y referencia, radio y para los estimadores difusos.
Para el tipo de cambio que debe realizarse, se efectúa una prueba en el eje
vertical (por ser el más crítico) con un cambio a través de funciones lineales (sólo en
el eje vertical) y seguimiento de referencia nula, cuyos resultados se muestran en el
Gráfico 3.7.
Es claro que cuando las funciones de pertenencia son no derivables (40[s] y
120[s]) se produce una perturbación sobre el sistema que no es deseable. Por esto
se decide que las funciones de pertenencia para el cambio entre controladores será
del tipo Gaussiana.
Con respecto a los tiempos para el cambio, se detecta que, para evitar posibles
inestabilidades en lazo cerrado, el controlador horizontal debe estar en completo
funcionamiento antes que el controlador vertical. Esto es interesante pues se
detecta sólo en la planta real y en determinadas ocasiones donde las perturbaciones
no medibles afectan de cierta manera al sistema. Finalmente, las funciones de
pertenencia y su impacto en los ángulos se muestran en el Gráfico 3.8.
49
Gráfico 3.7: Cambio con funciones lineales
Los filtros previos a las redes neuronales se escogen tal que el sistema sea
estable, pues el controlador se encargará de llevar el sistema a la referencia. Eso si,
al existir este filtro, las acciones de control rápidas se ven eliminadas y el
controlador pierde la capacidad de eliminar completamente las interacciones entre
ejes. El Gráfico 3.9 muestra un experimento donde se tendría la función inversa
exacta en el eje horizontal (por lo que no se tendría que ocupar filtro ni red
neuronal) y el sistema real.
La diferencia en la señal de control en el Gráfico 3.9.b se debe simplemente a la
eliminación de la dinámica Fh(.), pero lo que se busca en este experimento no es la
50
Gráfico 3.8: Cambio con funciones Gaussianas
Gráfico 3.9: Comparación entre sistema ideal y real
diferencia de magnitud, sino la diferencia de forma.
Así, los filtros para los ejes horizontal y vertical son de la forma
Hhs =1
700s2500s1
, Hv s =1
880s2280s1
Con respecto a los modelos de error y referencia, el diseñador tendrá que escoger
a su gusto cuál utilizar como fijo y cuál como para sintonización. El efecto es el
mismo, pues en un caso se deja el modelo de referencia fijo (generalmente la misma
referencia) y se ajusta el modelo del error, mientras que en el otro, se deja un
modelo de error (exigente) fijo y se sintoniza el modelo de referencia para obtener la
curva deseada. Para este trabajo se ocupan ambos casos, sin modelo de referencia
en el eje horizontal y con modelo de referencia en el eje vertical. Esto pues el eje
vertical resulta más crítico con respecto a la estabilidad y se necesita tener un
control más directo y fácil de sintonizar. Entonces, los modelos de referencia y error
son (horizontal y vertical)
echt1=10echt−7ech t−1 , ymhs=ref hs
ecv t1=55ecv t −5ecv t−1 , ymv s=1
11s26s1
ref v s
Por último, se sintonizan el radio y de los conjuntos difusos. Nuevamente, el
controlador es lo suficientemente robusto como para suplir de manera aceptable los
errores que se introducen en una mala aproximación de las funciones. Sin embargo,
está de más decir que a una mejor aproximación de las funciones, mejor es el
control, pero el tiempo de cálculo aumenta acorde a la cantidad de conjuntos difusos
que se deben crear.
Para ilustrar esto, se realizan 3 experimentos donde se varían los parámetros del
estimador vertical, tal como se muestra en la Tabla 3.4
Los resultados se muestran en el Gráfico 3.10, donde se aprecia claramente la
influencia sobre el estimador de los parámetros escogidos. Merece la pena llamar la
51
Tabla 3.4: Parámetros para el identificador
experimento radio tiempo simulación [s]1 0.08 0.05 25.0962 0.2 0.1 17.1123 0.4 0.2 14.799
atención del lector sobre el Gráfico 3.10.b, donde se ve como los conjuntos difusos
se van agregando al controlador. Para el caso particular del experimento 1, se
espera que al tener mayor sensibilidad a los cambios, sea mejor frente a
perturbaciones.
Finalmente, se dejan los parámetros indicados en la Tabla 3.5
52
Gráfico 3.10: Estimadores y conjuntos
Tabla 3.5: Parámetros
eje radiovertical 0.08 0.05
horizontal 0.20 0.13
3.5 REFERENCIAS
[1]. DE ABREU, G. TEIXEIRA, R. y RIBEIRO, J. "A neural network-based direct inverse
control for active control of vibrations of mechanical systems. Proceedings of
the Sixth Brazilian Symposium on Neural Networks. 2000.
[2]. DUARTE, M. "Apuntes del curso EM725: Control adaptativo de sistemas".
[diapositivas] Universidad de Chile, Departamento de Ingeniería Eléctrica.
2006.
[3]. ESTEVEZ, P. "Apuntes del curso EM753: Teoría de redes neuronales".
[diapositivas] Universidad de Chile, Departamento de Ingeniería Eléctrica.
2005.
[4]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, getting started; 33-007-
1M5". Crowborough, Inglaterra. Nov. 1999.
[5]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, advanced teaching
manual 1; 33-007-4M5". Crowborough, Inglaterra. Nov. 1999.
[6]. NARENDRA, K. y Annaswamy, A. "Stable adaptive systems". Englewood Cliffs,
N.J. : Prentice Hall, 1989, Capítulo 5.
[7]. NØRGAARD, M. Ravn, O. Poulsen, N.K. y Hansen, L.K. "Neural networks for
modelling and control of dynamic systems: A practitioner's handbook". 2da ed.
Gran Bretaña, Springer-Verlag, 2001. Capítulo 3.
[8]. OGATA, K. "Discrete-time control systems". Englewood Cliffs, N.J. Prentice-Hall,
1987.
[9]. OGATA, K. "Modern control engineering". 3era ed. Upper Saddle River, New
Jersey, Prentice-Hall, 1997.
[10]. SAEZ, D. "Apuntes del curso EL42D: Control de sistemas". [diapositivas]
Universidad de Chile, Departamento de Ingeniería Eléctrica. 2004.
[11]. WANG, L. "Adaptive fuzzy systems and control". New Jersey, Prentice Hall,
1994. Capítulo 6.
53
Capítulo 4 Aplicación de las
Estrategias de Control
4.1 ENSAYOS TIPO
Para este trabajo se realizarán 2 tipos de ensayos para verificar el
comportamiento de cada uno de los controladores propuestos. El primero será
seguimiento de referencia, mientras que el segundo será estabilidad frente a
perturbaciones (regulación). Se ocuparán además 3 índices de desempeño para
cada uno.
4.1.1 SEGUIMIENTO DE REFERENCIA
El seguimiento de referencia de los controladores se probará con señales del tipo
escalón, pues se considera que éstas son lo suficientemente exigentes para detectar
algún tipo de inestabilidad.
Por otro lado, la referencia que se quiera seguir debe ser coherente con el sistema,
tanto en el ángulo deseado como en los tiempos de estabilización. Con respecto a lo
primero, se debe considerar los límites físicos del sistema y además los cambios
deben ser tales que todos los controladores sean capaces de estabilizar el sistema;
Así, se tendrá una clara comparación en igualdad de condiciones. También se debe
tener claro que existen estados inalcanzables para el sistema y por ende no es
lógico pretender que el sistema llegue a éstos.
Para los tiempos de estabilización, se debe tomar en cuenta la interacción entre
54
ambos ejes y cuanto tiempo se demora el controlador más lento en estabilizar la
planta. La idea es escoger tiempos lo bastante largos para que se logre estabilidad
en ambos ejes, antes de realizar otro cambio de referencia. Con todo esto dicho, se
muestra en el Gráfico 4.1 la referencia escogida y sus cambios.
Vale la pena mencionar algunas cosas respecto a esta referencia. La primera es
que, como el lector se habrá dado cuenta, la prueba no comienza en el instante 0 [s]
sino que 120 [s] después. Esto se hace para que el sistema tenga el tiempo
suficiente para estabilizarse antes de comenzar la prueba y en caso que se requiera
cambios de controlador y/o adaptabilidad, el controlador ya esté funcionando en su
estado nominal.
Segundo, habrá que notar que el cambio positivo en la referencia horizontal es
muy exigente para el sistema y grandes variaciones sólo pueden realizarse cuando
el rotor principal está funcionando a altas revoluciones (Gráfico 4.1, tiempo 180 [s]).
Asimismo, se podría generar un estado inalcanzable entre los tiempos 230 [s] y 330
[s] pues al estar el rotor principal funcionando a bajas revoluciones (pequeño torque)
no se puede pretender que el ángulo horizontal llegue a un valor muy negativo. Esto
se puede lograr cuando existe un torque mínimo entregado por el rotor principal
(380 [s]).
4.1.2 RESPUESTA FRENTE A PERTURBACIONES
Si se quiere comparar la respuesta de diferentes controladores frente a
55
Gráfico 4.1: Señales para seguimiento de referencia
perturbaciones, se debe tener cuidado que la magnitud de las perturbaciones sea
siempre la misma1. Se diseñó entonces un conjunto de pruebas como sigue:
Para el eje horizontal, se aplica un momento de fuerza F en el sentido positivo de
h, tal como se muestra en la Figura 4.1.
Para que este momento sea lo más parecido posible entre experimentos y además
tenga una mínima duración, se aplicará con un péndulo de características fijas, que
al colisionar con el escudo del eje principal será retirado inmediatamente, tal como
se muestra en la Figura 4.2.
La perturbación en el eje vertical resulta más simple, pues basta con dejar caer un
peso desde una altura fija (13 [cm]) al escudo del rotor de cola, tal como se indica
en la Figura 4.3.
Igual que en la prueba de seguimiento de referencia, los momentos de fuerza
serán aplicadas después del transiente inicial y separadas por 60 [s] de diferencia.
Este tiempo es el suficiente para que se logre estabilidad en ambos ejes después de
1 En realidad, se busca que la perturbación sea lo más parecido posible entre experimentos.
56
Figura 4.1: Perturbación horizontal (vista superior del TRMS)
Rotor de ColaRotor Principal
F
Figura 4.2: Péndulo
70º
EscudoPrincipal
32 [c
m]
Figura 4.3: Perturbación vertical (vista lateral del TRMS)
Rotor de Cola Rotor Principal
F
la perturbación.
4.1.3 ÍNDICES DE DESEMPEÑO
Para una comparación numérica entre controladores, se consideran 3 índices de
desempeño, los cuáles serán calculados después del transiente inicial.
El primero es la cantidad de parámetros a sintonizar, debido a que este valor está
relacionado directamente con la complejidad del controlador.
El segundo es el error cuadrado medio (MSE, por sus siglas en inglés), calculado
independientemente para cada eje, según
MSE i=1n∑j=1
n
i−ref i2 , i∈{h ,v}
con n la cantidad de muestras (tiempo) consideradas para el cálculo. Se escoge este
índice porque castiga los grandes errores, midiendo así sobrepasos y oscilaciones.
El tercero y último es la integral del tiempo multiplicado por el valor absoluto del
error (ITAE, por sus siglas en inglés). Obviamente, al trabajar en tiempo discreto se
deben considerar sumatorias en lugar de integrales, quedando
ITAE i=∑j=1
n
j∣i−ref i∣ , i∈{h,v }
Este índice permite ver errores que se mantienen en el tiempo.
4.2 CONTROLADOR PID CONVENCIONAL
4.2.1 SIMULACIONES
Para la realización de ésta y el resto de las simulaciones se ocupa el modelo
mostrado en el Capítulo 2. Además, con el fin de observar resultados limpios y
obtener la mejor sintonización posible antes de pasar los parámetros a la planta
real, se supone que no existen perturbaciones externas (por ejemplo, pequeñas
ráfagas de viento) fuera de las que se aplican para probar la estabilidad del sistema.
Por otra parte, se ocupan las mismas señales de referencia y la misma magnitud de
perturbación en las simulaciones y en el sistema real.
57
La primera simulación que se hace es seguimiento de referencia para el
controlador 2-PID y los resultados son mostrados en el Gráfico 4.2. Se puede
apreciar claramente la interacción entre los ejes, particularmente la gran influencia
que tiene el rotor principal sobre el eje horizontal (véase la reacción del eje
horizontal frente a cambios en el eje vertical).
Respecto al comportamiento del sistema, si se mirase sólo el resultado mostrado
en este gráfico se puede decir que a pesar de ser un controlador monovariable, el
seguimiento es muy bueno pues en general el error de control tiende a cero. Sin
embargo, no es posible para el controlador eliminar las interacciones y un problema
58
Gráfico 4.3: Acción de control para PID (simulaciones en seguimiento).
Gráfico 4.2: Simulación PID seguimiento de referencia
mayor surge al mirar la acción de control requerida (Gráfico 4.3).
Nótese que debido a la gran acción derivativa necesaria para el control del
sistema (sin la cual no es posible controlar), el esfuerzo que debe realizar el motor
en los cambios del tipo escalón es enorme; El peak de voltaje es cerca de 4 veces el
nominal y de no ser por saturaciones en la entrada, el sistema no soportaría tal
estrés.
La respuesta frente a perturbaciones (ver Gráfico 4.4 y Gráfico 4.5) de este
controlador es muy rápida (sin ir más lejos, es la estabilización más rápida entre
todos los controladores probados) debido a que no es necesario el uso de filtros en
su salida.
59
Gráfico 4.4: Simulación PID perturbación (prueba de regulación)
Gráfico 4.5: Acción de control para PID (simulaciones frente a perturbaciones).
4.2.2 APLICACIÓN AL SISTEMA REAL
A pesar de los excelentes resultados obtenidos en simulaciones, el controlador 2-
PID no es lo suficientemente robusto para mantener a un sistema tan crítico como el
eje vertical sin oscilaciones bruscas (Gráfico 4.6.b).
Los resultados para el eje horizontal podrían resultar satisfactorios si,
nuevamente, no se tomara en consideración la acción de control necesaria para
lograr estabilidad (Gráfico 4.7).
Obsérvese que, aunque todavía se producen peaks de voltaje del orden de 4 veces
el nominal, en general la acción de control es muy ruidosa y es la responsable del
efecto oscilatorio en la salida. Es importante mencionar que estas oscilaciones en la
60
Gráfico 4.6: Real PID seguimiento de referencia
Gráfico 4.7: Acción de control para PID (real en seguimiento)
señal de control son lo bastante lentas como para ser escuchadas por el oído
humano, por lo que se podría producir un daño a los motores si se considera un
tiempo prolongado.
Para el caso de las perturbaciones (Gráfico 4.8 y Gráfico 4.9), se puede apreciar
claramente que el controlador 2-PID no es capaz de estabilizar asintóticamente un
sistema como el eje vertical. La acción de control ruidosa y la interacción entre ejes
no permite convergencia frente a la perturbación aplicada, mas si existe una
tendencia a permanecer alrededor de la referencia.
61
Gráfico 4.8: Real PID perturbación (prueba de regulación)
Gráfico 4.9: Acción de control para PID (real frente a perturbaciones)
4.2.3 ÍNDICES PARA CONTROLADOR 2-PID
La Tabla 4.1 muestra los índices calculados para este controlador para la prueba
de seguimiento de referencia (con P la cantidad de parámetros a sintonizar).
Por ser la primera de estas tablas que se muestra, no hay comparación posible.
Sin embargo, es esperable que los índices empeoren al pasar de simulaciones a la
planta real y se destaca el hecho que esta diferencia sea entre 1 y 2 órdenes de
magnitud peor.
4.3 CONTROLADOR ADAPTABLE
4.3.1 SIMULACIONES
El controlador adaptable es notoriamente más lento que 2-PID debido en gran
parte a la acción del filtro en su salida (Gráfico 4.10).
62
Gráfico 4.10: Simulación Adaptable seguimiento de referencia
Tabla 4.1: Índices para PID
Eje ÍndiceSeguimiento Regulación
Sims. Real Sims. RealP 3 3 3 3
horiz. MSE 1.18E-03 3.46E-03 4.29E-04 4.89E-03ITAE 3.16E+05 1.69E+06 2.03E+04 6.92E+04
P 3 3 3 3vertical MSE 9.24E-04 2.50E-03 9.08E-05 3.46E-03
ITAE 1.53E+05 1.29E+06 1.55E+04 1.73E+05
Habrá que recordar que para lograr estabilidad en lazo cerrado, se ha colocado un
filtro de 1er orden a la entrada de la red neuronal que emula la inversa del modelo de
entrada.
La acción de control mostrada en el Gráfico 4.11, es más suave que la anterior
siendo esto la 2da razón de un tiempo de respuesta más lento. Los cambios en las
ganancias adaptables no tienen mayor influencia en este tiempo, excepto en
inestabilizar al sistema.
Frente a perturbaciones (véase Gráfico 4.12), el controlador adaptable vuelve a
63
Gráfico 4.11: Acción de control para adaptable (simulaciones en seguimiento)
Gráfico 4.12: Simulación Adaptable frente a perturbaciones
ser más lento. No obstante, se nota menor interacción entre ejes en el momento de
aplicar dicha perturbación.
La acción de control mostrada en el Gráfico 4.13 se mantiene casi constante
cambiando apenas el movimiento natural del helicóptero, pero llevándolo
asintóticamente al punto de referencia.
4.3.2 APLICACIÓN AL SISTEMA REAL
En el sistema real, las acciones de control mas suaves permiten un control con
menor oscilación, tal como se aprecia en el Gráfico 4.14.
64
Gráfico 4.14: Real Adaptable seguimiento de referencia
Gráfico 4.13: Acción de control para adaptable (simulaciones frente a perturbaciones)
A pesar de esto, la lentitud del sistema genera nuevas situaciones como la gran
dificultad de estabilizar para cambios grandes en el eje horizontal. Esto se debe
además a que muy alejado del punto de equilibrio, la inversa de Fh(.) pierde su
característica de función y la red neuronal tiene problemas para encontrar la inversa
exacta (este mismo problema se repite para el controlador difuso adaptable).
También, aunque existe una tendencia, el sistema no es capaz de seguir en cuanto
a rapidez al modelo de referencia, aún cuando este resultado es esperable debido a
las simulaciones realizadas.
La respuesta frente a perturbaciones, cuyos resultados se muestran en el Gráfico
4.16 y Gráfico 4.17,es mejor que el caso anterior llegando a estabilizar en la
referencia dada, aunque el tiempo que esto toma es muy grande (alrededor de 70
[s]). Nuevamente, el cambio en las ganancias adaptables no tiene mayor influencia
en el resultado.
En el eje horizontal, la perturbación es bien amortiguada, pero la gran cantidad de
oscilaciones existentes en el otro eje no permite una estabilización rápida.
65
Gráfico 4.15: Acción de control adaptable (real en seguimiento)
Las acciones de control para ambos ejes se muestran en el Gráfico 4.17, donde se
puede ver en forma clara el instante en que se aplicaron las perturbaciones y la
acción tomada por el controlador para contrarrestar su efecto.
4.3.3 ÍNDICES PARA CONTROLADOR ADAPTABLE CONVENCIONAL
La Tabla 4.2 mostrada a continuación entrega los índices calculados para este
controlador
66
Gráfico 4.16: Real Adaptable perturbación
Gráfico 4.17: Acción de control para adaptable (real frente a perturbaciones)
Claramente, la cantidad de parámetros que se deben sintonizar en este tipo de
controlador es mucho mayor que en un controlador PID. El MSE tiende a ser mejor
que el PID en simulaciones, mejorando aún más en las pruebas sobre el sistema
real. Por otra parte, la razón del porqué el ITAE es mayor que el PID es simplemente
que el controlador adaptable es más lento, haciendo que su error se mantenga en el
tiempo por una mayor duración. A pesar de esto, no existe una diferencia tan grande
entre simulaciones y planta real, a diferencia del PID.
4.4 CONTROLADOR DIFUSO ADAPTABLE
4.4.1 SIMULACIONES
La respuesta de este controlador (en simulaciones) para el seguimiento de
referencia es muy parecida al adaptable convencional, tal como se aprecia en el
Gráfico 4.18
67
Gráfico 4.18: Simulación Difuso seguimiento de referencia
Tabla 4.2: Índices para Adaptable Convencional
Eje ÍndiceSeguimiento Regulación
Real RealP 24 24 24 24
MSE 1.09E-02 1.12E-02 1.92E-03 2.69E-03ITAE 1.80E+06 1.88E+06 7.06E+04 1.72E+05
P 24 24 24 24vertical MSE 6.34E-03 9.36E-03 6.51E-04 3.67E-03
ITAE 7.19E+05 1.32E+06 1.02E+05 2.88E+05
Sims. Sims.
horiz.
El lector recordará que para este caso el modelo de referencia horizontal es la
misma referencia. Además véanse las pequeñas oscilaciones que se producen
alrededor del modelo en el eje vertical y la acción de control asociada (Gráfico 4.19),
reflejo del modelo de error ocupado.
En el caso de las perturbaciones (Gráfico 4.20)se puede apreciar que, aunque más
lento que el PID, este controlador es más rápido que el adaptable convencional a
pesar de ocupar filtros de 2do orden en la entrada de la red neuronal (el controlador
adaptable convencional ocupa filtros de 1er orden).
Al ser un controlador multivariable, la interacción entre ejes es casi totalmente
eliminada excepto por unas pequeñas oscilaciones de muy baja frecuencia en el eje
68
Gráfico 4.19: Acción de control para difuso (simulaciones en seguimiento)
Gráfico 4.20: Simulación Difuso perturbación
horizontal.
Las acciones de control mostradas en el Gráfico 4.21 tienen pocas oscilaciones de
alta frecuencia (filtros), lo que provoca el comportamiento más “suave” del sistema.
4.4.2 APLICACIÓN AL SISTEMA REAL
Igual que en simulaciones, al aplicar este controlador al sistema real se pueden
ver resultados muy similares a los mostrados en el caso adaptable (comparar entre
Gráfico 4.14 y Gráfico 4.22); Se repiten las oscilaciones en el cambio horizontal a los
180 [s].
La interacción entre ejes se podría considerar del mismo tamaño que el caso
69
Gráfico 4.21: Acción de control para difuso (simulaciones frente a perturbaciones)
Gráfico 4.22: Real Difuso seguimiento de referencia
adaptable, pero hay que tener en cuenta que ahora el eje vertical es más rápido por
lo que su efecto sobre el otro eje es mayor. La acción de control para esto se
muestra en el Gráfico 4.23
La respuesta frente a perturbaciones del eje vertical es mejor que en los dos casos
anteriores, con un tiempo de estabilización de 40 [s]. El eje horizontal responde de
manera adecuada, sin destacar ni en tiempo de estabilización ni en amplitudes. Los
resultados se aprecian en el Gráfico 4.24.
70
Gráfico 4.23: Acción de control para difuso (real en seguimiento)
Gráfico 4.24: Real Difuso perturbación
La acción de control asociada se muestra en el Gráfico 4.25.
4.4.3 ÍNDICES PARA CONTROLADOR DIFUSO ADAPTABLE
Los índices para este controlador se muestran en la Tabla 4.3
Como era de esperarse, esto índices son muy parecidos al del controlador
adaptable, aún cuando el ITAE parece mejorar en el caso del difuso debido
principalmente a la velocidad de estabilización. El número de parámetros es menor
debido a que, como se recordará, este controlador no ocupa un modelo de
referencia en uno de sus ejes, y no hay que aplicar filtros extras (sobre el de la red
neuronal).
71
Gráfico 4.25: Acción de control para difuso (real frente a perturbaciones)
Tabla 4.3: Índices para Difuso Adaptable
Eje ÍndiceSeguimiento Regulación
Sims. Real Sims. RealP 20 20 20 20
horiz. MSE 9.35E-03 8.48E-03 2.56E-03 3.85E-03ITAE 1.79E+06 1.64E+06 2.00E+05 9.89E+04
P 20 20 20 20vertical MSE 5.67E-03 5.84E-03 5.49E-04 2.00E-03
ITAE 6.72E+05 8.77E+05 6.89E+04 1.17E+05
Capítulo 5 Conclusiones y
Trabajo Futuro
5.1 CONCLUSIONES
En esta sección se presentan las principales conclusiones que se extraen del
trabajo realizado en esta Memoria. Además, se entregan sugerencias sobre el
trabajo futuro que se debe efectuar en relación al sistema multivariable de 2 rotores.
El sustento teórico de los 3 tipos de controladores estudiados en este trabajo se
mostró en el Capítulo 3. En primer lugar se trabaja con un controlador PID
monovariable, controlando cada lazo por separado. Los resultados obtenidos son la
base de comparación para el resto del trabajo, no sólo por tratarse de uno de los
controladores más usados en la industria, sino que también por ser el único
controlador disponible a la hora de comenzar la investigación. El segundo
controlador probado se basa en adaptabilidad convencional, lo que permite trabajar
sobre tipos de problema en lugar de un problema en específico, aún cuando todavía
es necesario conocer ciertas funciones no lineales de la planta. También se pueden
realizar ciertas suposiciones sobre los parámetros, que permiten, aunque no lo
pareciera a primera vista, un controlador multivariable. Por último, se prueba un
controlador difuso óptimo adaptable que ocupa observadores difusos adaptables, los
que permiten la eliminación de dinámicas y así “transformar” al sistema a la forma
deseada. La gran ventaja de este controlador es que sólo es necesario que la planta
tenga cierta forma, sin importar sus no linealidades.
72
Con respecto al controlador PID, el primer problema que se aprecia es que por
definición, este es un controlador monovariable y se ha aplicado a un sistema
multivariable. Esto hace que las interacciones entre ejes sean tratadas como
perturbaciones no medibles y por ende no puedan ser eliminadas totalmente.
El segundo problema que se presenta, es la poca tolerancia a perturbaciones que
tiene este controlador. Los resultados de las pruebas muestran que frente a fuerzas
externas, el PID podría no volver a un punto estable de operación. También, la
sintonía de sus parámetros es bastante crítica. Pequeños cambios en cualquiera de
ellos afecta de gran manera el comportamiento general del sistema pudiendo llegar
a un comportamiento inestable.
Además, está el problema que al ser aplicado a la planta real, la acción de control
que entrega es muy ruidosa y podría causar daños al equipo en caso de utilización
permanente. No es posible eliminar la acción derivativa causante de este problema
pues, como se dijo antes, los cambios en los parámetros pueden llevar al sistema a
estados inestables. Sin ir más lejos, la acción derivativa ocupada en las pruebas es
la menor que el sistema acepta para estabilizar en la referencia.
Sin embargo, este tipo de controlador tiene ciertas ventajas sobre los demás. En
primer lugar, es bastante fácil de sintonizar pues tiene sólo 3 parámetros por eje y
basta con el criterio de prueba y error (en simulaciones) para llegar a parámetros
aceptables, para luego realizar una sintonía fina en planta (Es más fácil aún si se
cuenta con un punto de partida). Se podría pensar que esto va en contradicción con
lo dicho anteriormente, pero la fácil sintonización se refiere a que cada parámetro
afecta directamente algún comportamiento del sistema, por lo que es fácil encontrar
la dirección en que el diseñador debe mover los parámetros para obtener un
comportamiento adecuado. En segundo lugar, el objetivo general de control es
cumplido sin necesidad de sistemas ni filtros extras (el uso de filtros para la señal de
control cambia la dinámica del controlador y se hace inestable). En general, este
tipo de controlador destaca por sus simplicidad y es por eso que es el más usado en
la industria en nuestros tiempos.
Un último punto a favor del PID es que al no tener parámetros adaptables es
posible utilizarlo como control inicial, mientras un controlador más avanzado entrena
sus parámetros y luego realizar el traspaso de alguna manera a criterio del
73
diseñador. Este método fue utilizado en los otros dos casos probados pues, en
particular para el eje vertical, el transiente producido por la adaptabilidad llevó en
ciertos casos a inestabilidad del sistema.
En cuanto al controlador adaptable convencional, la primera ventaja es que ahora
el sistema completo es multivariable. Esto se logra suponiendo que los parámetros
adaptables son función del otro eje y así éstos se irán adaptando según cambien las
condiciones. Esto permitiría la eliminación de la interacción entre ejes, pero el uso
de filtros y la red neuronal hacen que este controlador sea muy lento como para esto
(más adelante se comenta sobre el uso de la red neuronal como función inversa).
Por otro lado, al tener una acción de control sin ruido, se eliminan todas las
oscilaciones que se presentan con el controlador PID, evitando cualquier tipo de
daño mecánico en los motores.
Sin duda el gran avance que presenta este controlador es la robustez frente a
perturbaciones, aún cuando el tiempo que le toma recuperarse es bastante largo.
Las acciones de control para ambos ejes son más lentas que el controlador PID,
debido a la acción de los filtros y esto tiene la ventaja de ocupar el movimiento
natural del sistema para llevarlo al equilibrio y evitar grandes esfuerzos por parte
del sistema.
No obstante lo anterior, la necesidad de una red neuronal entre el controlador y la
planta presenta serias desventajas con respecto al PID: Se requiere de un buen
modelo de la función que se quiere invertir, por lo que un estudio previo exhaustivo
se hace necesario. Además, se necesita tiempo para el entrenamiento de la red, con
todo lo que esto conlleva (cantidad de neuronas, funciones de activación, cantidad
de datos, etc.). Afortunadamente, esto se realiza sólo una vez y sirve para todo el
resto de la investigación, sin grandes cambios. También, como se ha mencionado ya
varias veces, el uso de filtros para lograr estabilidad en lazo cerrado no sólo modifica
la acción de control, sino que agrega entre 2 y 4 parámetros más para sintonización,
dependiendo de la complejidad del filtro. Sin embargo, para este controlador sería
posible eliminar esta red, lo que se discutirá más adelante como trabajo futuro.
Otro problema que se presenta es el conocimiento de las funciones no lineales que
afectan al sistema, aunque con un modelo fenomenológico bien diseñado éstas se
pueden obtener fácilmente y merece la pena ser destacado que aunque no se
74
conozcan, el controlador es lo suficientemente robusto como para obviar la no
linealidad con respecto a los parámetros pero, como es de esperar, el control
empeora considerablemente.
Los últimos comentarios realizados a este controlador son con respecto a los
tiempos de respuesta. El tiempo que es necesario para que los parámetros
adaptables converjan dependen del punto de partida de cada uno de ellos, pero sin
importar cuán cerca se comience el transiente de un controlador adaptable puro es
muy malo y la necesidad de un controlador previo se hace evidente. El instante de
cambio entre un controlador y otro también se debe ajustar generando un
parámetro de sintonía adicional. Las transiciones bruscas probadas demostraron que
si bien el sistema lograba volver a la referencia, es mejor un cambio suave para
evitar oscilaciones indeseadas.
El tiempo computacional requerido para cada uno de estos controladores es
también un tema importante, pues se deben considerar las aplicaciones en tiempo
real. El cálculo para cualquier sistema adaptable es bastante complejo y se podría
dar la situación que en cierto tipo de plantas, los computadores pudieran no tener a
tiempo los resultados del control a aplicar. Afortunadamente, la capacidad
computacional que existe hoy en día es lo suficiente como para aplicar este tipo de
controlador sobre el sistema de 2 rotores acoplados, sin tener que preocuparse por
el tiempo de cálculo, pero para dar una idea al lector, una simulación adaptable
demora entre 8-12 veces más que una simulación con un PID convencional.
El último controlador probado es el difuso óptimo adaptable y en general el
comportamiento es mejor que los dos anteriores, a pesar de desconocer casi por
completo la planta. Los estimadores difusos adaptables logran el objetivo de
predecir las funciones con tal de eliminar sus dinámicas gracias a una acción de
control bien escogida, aunque se prueba que basta una aproximación lo
suficientemente buena para lograr controlar la planta (Esto es importante en el
análisis del tiempo computacional).
Las oscilaciones de alta frecuencia alrededor de la referencia son casi totalmente
eliminadas y el sistema converge asintóticamente en tiempos cortos en todas las
pruebas realizadas(sobre pruebas en el sistema real1). Las acciones de control son
1 Recordar que en simulaciones todos los controladores convergen, y el PID es el más rápido.
75
más rápidas que el control adaptable a pesar del uso de filtros de 2do orden, pero lo
bastante suaves como para evitar oscilaciones e incluso inestabilidades.
Sin embargo, el uso obligatorio de una red neuronal para lograr la forma deseada
de la planta impone serios problemas tanto en el diseño como en la implementación
de este controlador, los cuales fueron detallados en su mayoría para el caso
adaptable convencional.
Un segundo problema es la alta complejidad asociada, tanto en los cálculos que se
deben realizar como en el esquema de control resultante (Resulta fácil perder el
seguimiento a señales importantes). Habrá que recordar además que se tuvo que
realizar una función especial en MATLAB pues los bloques que están por defecto en
Simulink no abarcan todas las funciones y operaciones matemáticas para los
estimadores.
El tiempo vuelve a ser un punto importante en este controlador, demorándose
incluso más que el adaptable. El tiempo de computación necesario dependerá
directamente de la calidad de la estimación que tenga el controlador. A mejor
estimación de las funciones se necesita más tiempo y para este sistema se
necesitan estimar dos funciones. Es por esta razón que un buen equilibrio entre
tiempo y aproximación es necesario y el diseñador deberá tener especial cuidado en
este punto.
Por último, los índices numéricos calculados respaldan lo discutido anteriormente,
Sin embargo, habrá que tener especial cuidado con éstos pues tienden a ser
demasiado absolutos y el detalle de cada controlador se puede perder.
Como conclusión final, los tres controladores presentados en este trabajo tienen
ventajas y desventajas que fueron ya analizadas, pero los dos controladores con
características adaptables resultaron mejores que el PID, lo que era de esperarse
debido a las características inherentes de éste. La capacidad de los otros dos
controladores de trabajar sobre sistemas (casi) desconocidos demostró claras
ventajas no sólo a la hora del seguimiento de referencia sino que frente a
perturbaciones aplicadas sobre el sistema.
Finalmente, no se puede dejar fuera de este trabajo todo el conocimiento
adquirido al tener que diseñar, reparar y modelar el sistema de dos rotores. Al
76
trabajar con equipos reales se tuvo que sortear diferentes dificultades que no se
presentan en situaciones simuladas y que sirven para probar definitivamente el
comportamiento de un controlador.
5.2 TRABAJO FUTURO
A partir de los resultados obtenidos mediante la realización de esta memoria y
considerando todos los factores que influyeron en el desarrollo de ésta, es posible
sugerir distintas líneas de trabajo futuro relacionadas con el mejoramiento de las
técnicas estudiadas.
Con respecto al ambiente de simulación, se sugiere un mejor estudio del modelo
fenomenológico del eje horizontal pues el modelo mostrado en este trabajo se basa
en el comportamiento empírico, más que un modelo ocupando las leyes de Newton.
Este estudio más detallado podría mejorar la respuesta del lazo horizontal frente a
grandes cambios positivos.
También, se hace necesario el estudio sobre la convergencia en lazo cerrado al
ocupar una red neuronal como función inversa y sobre el porqué el uso de filtros
logra este cometido.
Con respecto al sistema de dos rotores quedan aún dos sensores que no se han
ocupado, correspondientes a la velocidad angular de cada motor. Se podría diseñar
un control de velocidad que permitiría el uso de una inversa directa en lugar de
tener que ocupar una red neuronal, evitando así el uso de filtros y eliminar la red
neuronal. También se deben probar los controladores frente a variaciones en los
parámetros físicos del sistema, como cambio en las masas y distancias (si fuese
posible) de manera de analizar la robustez de ellos frente a cambios paramétricos.
En caso de continuar el trabajo ocupando una red neuronal para emular la inversa,
el entrenamiento en línea de la red puede resultar de gran interés.
Desafortunadamente, el punto de salida necesario para el entrenamiento de la red
acá mostrada no es accesible físicamente, por lo que se deberán considerar
observadores.
77
Anexos
ANEXO 1 CÓDIGO PARA INTERFAZ MATLAB-OPTO22
extern "C" {
#define S_FUNCTION_NAME STwinRotor
#define S_FUNCTION_LEVEL 2
#include "simstruc.h"
#include "O22SIOMM.h"
#define NENTRADAS 2
#define NSALIDAS 4 //TR_taco, MR_taco, pos_h, pos_v
#define PI 3.1416
float pos_v,pos_h,pos_vt,pos_ht;
float flag_h,flag_v;
float bias_h,bias_v;
float desp_h,desp_v;
/*====================*
* S-function methods *
*====================*/
/* Function: mdlInitializeSizes ===============================================
* Abstract:
* The sizes information is used by Simulink to determine the S-function
* block's characteristics (number of inputs, outputs, states, etc.).
*/
static void mdlInitializeSizes(SimStruct *S)
{
78
ssSetNumSFcnParams(S, 5); // Number of expected parameters
if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) {
return; // Parameter mismatch will be
reported by Simulink
}
ssSetNumContStates(S, 0);
ssSetNumDiscStates(S, 1);
if (!ssSetNumInputPorts(S, 1)) return;
ssSetInputPortWidth(S,0,NENTRADAS);
//ssSetInputPortDirectFeedThrough(S,0,0); // Existen llamadas de la entrada en la
funcion mdlOutputs
ssSetInputPortRequiredContiguous(S,0,1); // sacado del ejemplo (?)
if (!ssSetNumOutputPorts(S, 1)) return;
ssSetOutputPortWidth(S, 0, NSALIDAS); // NSALIDAS salidas
ssSetNumSampleTimes(S, 1);
ssSetNumRWork(S, 0); // reserve element in the float vector
ssSetNumIWork(S, 0); // reserve element in the int vector
ssSetNumPWork(S, 1); // reserve element in the pointers vector
ssSetNumModes(S, 0); // to store a C++ object
ssSetNumNonsampledZCs(S, 0); // number of states for which a block detects zero
crossings
ssSetOptions(S, 0); // set the simulation options that this
block implements
}
/* Function: mdlInitializeSampleTimes =========================================
* Abstract:
* This function is used to specify the sample time(s) for your
* S-function. You must register the same number of sample times as
* specified in ssSetNumSampleTimes.
*/
static void mdlInitializeSampleTimes(SimStruct *S)
{
ssSetSampleTime(S, 0, mxGetScalar(ssGetSFcnParam(S, 0))); // tiempo de muestreo?
ssSetOffsetTime(S, 0, 0.0);
}
/* Function: mdlStart =======================================================
* Abstract:
* This function is called once at start of model execution. If you
79
* have states that should be initialized once, this is the place
* to do it.
*/
#define MDL_START
#if defined(MDL_START)
static void mdlStart(SimStruct *S)
{
O22SnapIoMemMap *Brain;
long nResult;
Brain = new O22SnapIoMemMap();
nResult = Brain->OpenEnet("192.168.6.102", 2001, 10000, 1);
//mexPrintf("openenet: %d\n",nResult);
if ( nResult == SIOMM_OK )
{
nResult = Brain->IsOpenDone();
//mexPrintf(" isopendone: %d\n",nResult);
while ( nResult == SIOMM_ERROR_NOT_CONNECTED_YET )
{
nResult = Brain->IsOpenDone();
//mexPrintf(" isopendone: %d\n",nResult);
}
}
// Check for error on OpenEnet() and IsOpenDone()
if ( nResult != SIOMM_OK )
{
ssSetErrorStatus(S,"No se pudo realizar la conexion con exito.");
return;
}
ssGetPWork(S)[0] = (void *) Brain;
//***************************************
//* CALCULO POSICION HORIZONTAL INICIAL *
//***************************************
nResult=Brain->GetAnaPtValue(6,&pos_h);
if ( nResult != SIOMM_OK )
{
//mexPrintf("getanaptvalue: %d\n",nResult);
ssSetErrorStatus(S,"Error al recibir el dato de posicion horiz");
return;
}
pos_ht=pos_h;
//*************************************
80
//* CALCULO POSICION VERTICAL INICIAL *
//*************************************
nResult=Brain->GetAnaPtValue(7,&pos_v);
if ( nResult != SIOMM_OK )
{
//mexPrintf("getanaptvalue: %d\n",nResult);
ssSetErrorStatus(S,"Error al recibir el dato de posicion horiz");
return;
}
pos_vt=pos_v;
bias_h=mxGetScalar(ssGetSFcnParam(S, 1));
bias_v=mxGetScalar(ssGetSFcnParam(S, 2));
desp_h=0;
desp_v=0;
}
#endif /* MDL_START */
/* Function: mdlUpdate ========================================================
* Abstract:
* In this function, you compute the outputs of your S-function
* block. Generally outputs are placed in the output vector, ssGetY(S).
*/
#define MDL_UPDATE
static void mdlUpdate(SimStruct *S, int_T tid)
{
O22SnapIoMemMap *Brain;
long nResult;
float principal, cola, transfor;
float max_MR,max_TR;
max_MR=mxGetScalar(ssGetSFcnParam(S, 3));
max_TR=mxGetScalar(ssGetSFcnParam(S, 4));
Brain = (O22SnapIoMemMap *) ssGetPWork(S)[0];
const real_T *u = ssGetInputPortRealSignal(S,0);
// Rotor Principal
transfor=2.5*u[0]/max_MR+2.5;
if (transfor>=5)
principal=5;
else if (transfor<=0)
principal=0;
else
principal=transfor;
81
nResult=Brain->SetAnaPtValue(0,principal);
if ( nResult != SIOMM_OK )
{
//mexPrintf("setanaptvalue: %d\n",nResult);
ssSetErrorStatus(S,"Error al transmitir el dato de voltaje (rotor
principal).");
return;
}
// Rotor de Cola
transfor=2.5*u[1]/max_TR+2.5;
if (transfor>=5)
cola=5;
else if (transfor<=0)
cola=0;
else
cola=transfor;
nResult=Brain->SetAnaPtValue(1,cola);
if ( nResult != SIOMM_OK )
{
//mexPrintf("setanaptvalue: %d\n",nResult);
ssSetErrorStatus(S,"Error al transmitir el dato de voltaje (rotor de cola).");
return;
}
}
/* Function: mdlOutputs =======================================================
* Abstract:
* In this function, you compute the outputs of your S-function
* block. Generally outputs are placed in the output vector, ssGetY(S).
*/
static void mdlOutputs(SimStruct *S, int_T tid)
{
O22SnapIoMemMap *Brain;
float vel_ang_MR;
float vel_ang_TR;
float aux;
long nResult;
Brain = (O22SnapIoMemMap *) ssGetPWork(S)[0];
real_T *y = ssGetOutputPortRealSignal(S,0);
nResult=Brain->GetAnaPtValue(4,&vel_ang_TR);
if ( nResult != SIOMM_OK )
{
//mexPrintf("getanaptvalue: %d\n",nResult);
82
ssSetErrorStatus(S,"Error al recibir el dato de velocidad MR.");
return;
}
nResult=Brain->GetAnaPtValue(5,&vel_ang_MR);
if ( nResult != SIOMM_OK )
{
//mexPrintf("getanaptvalue: %d\n",nResult);
ssSetErrorStatus(S,"Error al recibir el dato de velocidad TR.");
return;
}
// CALCULO POSICION HORIZONTAL
nResult=Brain->GetAnaPtValue(6,&pos_h);
if ( nResult != SIOMM_OK )
{
//mexPrintf("getanaptvalue: %d\n",nResult);
ssSetErrorStatus(S,"Error al recibir el dato de posicion horiz");
return;
}
aux=pos_ht-pos_h;
pos_ht=pos_h;
if (abs(aux)>0.015){
desp_h=desp_h+aux;
}
pos_h=pos_h+desp_h;
// CALCULO POSICION VERTICAL
nResult=Brain->GetAnaPtValue(7,&pos_v);
if ( nResult != SIOMM_OK )
{
//mexPrintf("getanaptvalue: %d\n",nResult);
ssSetErrorStatus(S,"Error al recibir el dato de posicion vert");
return;
}
aux=pos_vt-pos_v;
pos_vt=pos_v;
if (abs(aux)>0.8){
desp_v=desp_v+aux;
}
pos_v=pos_v+desp_v;
// transformacion a mks
y[0]=0.5*(-1622*vel_ang_MR+19.33);
y[1]=-3528*vel_ang_TR-51.15;
y[2]=0.3683*pos_h-2.44-bias_h;
83
y[3]=-0.3688*pos_v+2.735-bias_v;
}
/* Function: mdlTerminate =====================================================
* Abstract:
* In this function, you should perform any actions that are necessary
* at the termination of a simulation. For example, if memory was
* allocated in mdlStart, this is the place to free it.
*/
static void mdlTerminate(SimStruct *S)
{
long nResult;
O22SnapIoMemMap *Brain;
Brain = (O22SnapIoMemMap *) ssGetPWork(S)[0];
nResult=Brain->SetAnaPtValue(0,0);
nResult=Brain->SetAnaPtValue(1,0);
Brain->SetAnaPtValue(0,0.0);
Brain->Close();
delete Brain,pos_v,pos_vt,pos_h,pos_ht;
}
/*=============================*
* Required S-function trailer *
*=============================*/
#ifdef MATLAB_MEX_FILE /* Is this file being compiled as a MEX-file? */
#include "simulink.c" /* MEX-file interface mechanism */
#else
#include "cg_sfun.h" /* Code generation registration function */
#endif
} // end of extern "C" scope
84
ANEXO 2 CÓDIGO PARA PIC16F873
#include <16F877A.h>
#device adc=8
#use delay(clock=20000000)
#fuses HS,NOWDT,NOPROTECT,NOLVP
//#define PIN_A0 40
//#define PIN_A1 41
//#define PIN_A2 42
//#define PIN_A3 43
//#define PIN_A4 44
//#define PIN_A5 45
byte value1;
byte value2;
byte const th_min=80; //threshold mínimo para la señal
byte const th_max=0xC4; // " máximo " " "
//-----------------------------------------------------//
byte rot; //señal final
byte rot_a; //canal A del encoder, pin RA2
byte rot_b; //canal B del encoder, pin RA3
boolean rot_ciclo; //detección de movimiento
byte rot_flag; //(over/under)flow
//-----------------------------------------------------//
byte elev; //señal final
byte elev_a; //canal A del encoder, pin RA2
byte elev_b; //canal B del encoder, pin RA3
boolean elev_ciclo; //detección de movimiento
byte elev_flag; //(over/under)flow
void main() {
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
setup_timer_2(T2_DIV_BY_1, 127, 1);
//setup_port_a(ALL_ANALOG);
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL);
//inicialización de variables del PWM
value1=0;
value2=0;
//inicialización de las variables para la rotacion
rot=1; //mitad del equipo (hardware)
rot_a=0; //canal A abajo
85
rot_b=0; //canal B abajo
rot_ciclo=FALSE; //se detectó movimiento => TRUE
rot_flag=0; //
//inicialización de las variables para la elevacion
elev=145; //mitad del equipo (hardware)
elev_a=0; //canal A abajo
elev_b=0; //canal B abajo
elev_ciclo=FALSE; //se detectó movimiento => TRUE
elev_flag=0; //
while( TRUE ) {
set_adc_channel( 0 );
delay_us(20);
value1=read_adc();
set_pwm1_duty(0xFF-value1);
set_adc_channel( 1 );
delay_us(20);
value2=read_adc();
set_pwm2_duty(0xFF-value2);
set_adc_channel( 2 );
delay_us(20);
rot_a=read_adc();
set_adc_channel( 3 );
delay_us(20);
rot_b=read_adc();
set_adc_channel( 4 );
delay_us(20);
elev_a=read_adc();
set_adc_channel( 5 );
delay_us(20);
elev_b=read_adc();
// decodificacion para la rotación
if (!rot_ciclo){
if (rot_a>=th_max && rot_b<=th_min){
rot=rot+1;
if (rot==0){
rot_flag=1;
}
rot_ciclo=TRUE;
}
if (rot_a<=th_min && rot_b>=th_max){
rot=rot-1;
if (rot==0){
86
rot_flag=0;
}
rot_ciclo=TRUE;
}
}else{
if (rot_a<=th_min && rot_b<=th_min){
rot_ciclo=FALSE;
}
}
// decodificación para la elevación
if (!elev_ciclo){
if (elev_a>=th_max && elev_b<=th_min){
elev=elev+1;
if (elev==0){
elev_flag=1;
}
elev_ciclo=TRUE;
}
if (elev_a<=th_min && elev_b>=th_max){
elev=elev-1;
if (elev==0){
elev_flag=0;
}
elev_ciclo=TRUE;
}
}else{
if (elev_a<=th_min && elev_b<=th_min){
elev_ciclo=FALSE;
}
}
output_b(rot);
output_d(elev);
output_bit(PIN_C4,rot_flag);
output_bit(PIN_C5,elev_flag);
}
}
87
ANEXO 3 CÓDIGO PARA ÓPTIMO DIFUSO (S-FUNCTION)
function [sys,x0,str,ts] = optimo_difuso(t,x,u,flag,Ts,C_max,Inputs,radio,sigma)
switch flag,
%%%%%%%%%%%%%%%%%%
% Initialization %
%%%%%%%%%%%%%%%%%%
case 0,
[sys,x0,str,ts] = mdlInitializeSizes(Ts,C_max,Inputs);
%%%%%%%%%%
% Update %
%%%%%%%%%%
case 2,
%sys = mdlUpdate(t,x,u);
minimo=[0,100000000];
if x(1)==0
x(1)=1;
x(2:2+Inputs-2)=u(1:Inputs-1);
x(C_max*(Inputs-1)+2)=u(Inputs);
x(C_max*(Inputs)+2)=1;
else
for l=1:x(1)
ini=(l-1)*(Inputs-1)+2;
distancia=norm(x(ini:ini+Inputs-2)-u(1:Inputs-1));
if distancia<minimo(2)
minimo(1)=l;
minimo(2)=distancia;
end
end
if minimo(2)<radio
ini=C_max*(Inputs-1)+1+minimo(1);
x(ini)=x(ini)+u(Inputs);
x(ini+C_max)=x(ini+C_max)+1;
else
x(1)=x(1)+1;
ini=(x(1)-1)*(Inputs-1)+2;
x(ini:ini+Inputs-2)=u(1:Inputs-1);
ini=C_max*(Inputs-1)+1+x(1);
x(ini)=u(Inputs);
x(ini+C_max)=1;
end
end
sys=x;
88
%%%%%%%%%%
% Output %
%%%%%%%%%%
case 3,
%sys = mdlOutputs(t,x,u);
a=0;
b=1e-80;
for l=1:x(1)
ctr=(l-1)*(Inputs-1)+2;
cte=C_max*(Inputs-1)+1+l;
resultado=exp(-(norm(x(ctr:ctr+Inputs-2)-u(1:Inputs-1))/sigma)^2);
a=a+x(cte)*resultado;
b=b+x(cte+C_max)*resultado;
end
resultado=a/b;
sys=[x(1),a,b,resultado];
%%%%%%%%%%%%%
% Terminate %
%%%%%%%%%%%%%
case 9,
sys = []; % do nothing
%%%%%%%%%%%%%%%%%%%%
% Unexpected flags %
%%%%%%%%%%%%%%%%%%%%
otherwise
error(['unhandled flag = ',num2str(flag)]);
end
%end dsfunc
%
%=======================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=======================================================================
%
function [sys,x0,str,ts] = mdlInitializeSizes(Ts,C_max,Inputs)
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = C_max*(Inputs-1)+2*C_max+1;
sizes.NumOutputs = 4;
sizes.NumInputs = Inputs;
sizes.DirFeedthrough = 1;
89
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = 1;
x0(1)=0;
str = [];
ts = [Ts 0];
% end mdlInitializeSizes
%
%=======================================================================
% mdlUpdate
% Handle discrete state updates, sample time hits, and major time step
% requirements.
%=======================================================================
%
function sys = mdlUpdate(t,x,u)
sys = x;
%end mdlUpdate
%
%=======================================================================
% mdlOutputs
% Return the output vector for the S-function
%=======================================================================
%
function sys = mdlOutputs(t,x,u)
sys = x(1);
%end mdlOutputs
90
ANEXO 4 BLOQUES SIMULINK PARA MODELO VERTICAL
91
ANEXO 5 BLOQUES SIMULINK PARA MODELO HORIZONTAL
92
Apéndice A Reacondicionamiento
del Sistema MIMO de 2 Rotores
A.1 INTRODUCCIÓN
El sistema MIMO de 2 rotores o Twin Rotor MIMO System (TRMS) diseñado por
Feedback y adquirido por la Universidad de Chile en el año 1999 tiene la
particularidad de ser un sistema bastante complejo debido a la no linealidad
inherente a su comportamiento, además de ser un sistema multivariable (de ahí su
tipo MIMO). También presenta la oportunidad de trabajar sobre una planta real, con
todas las complicaciones que esto trae y no sólo en simulaciones, espacio donde se
trabaja normalmente en los cursos dictados por el Departamento de Ingeniería
Eléctrica.
Aún así, el actual TRMS presentaba 2 grandes problemas a la hora de trabajar
sobre él; El primero, y sin duda más importante, eran las continuas fallas que se
presentaban cada vez que se encendía. La segunda era la inquebrantable relación
entre el sistema y un computador personal (PC) de aquella época1, lo que hacía el
trabajo bastante engorroso y a veces, cuando las estrategias son lo suficientemente
complicadas, casi imposibles de implementar.
Se llega a la conclusión que se necesita una mejora sustancial del TRMS para
continuar el desarrollo en este tipo de sistemas.
1 Recordar que los mejores computadores del año 1999 tenían desempeños bastante menores que los computadores de oficina actuales.
93
A.2 DISEÑO DEL NUEVO SISTEMA
A.2.1 ANÁLISIS DEL SISTEMA FÍSICO
La Figura 1 muestra un esquema físico del sistema, donde se muestran
claramente las entradas y salidas del sistema [1,2].
En rojo se muestran las velocidades de rotación de cada uno de los motores y en
azul los ángulos con respecto a cada eje, que representan los grados de libertad del
sistema. Por último, en verde se muestran las entradas del sistema, que
corresponden al voltaje aplicado a cada motor.
Se revisó el problema de las fallas mencionado anteriormente analizando las
corrientes que circulan por las diferentes partes del circuito. Así se determinó que un
motor estaba malo (consumiendo una corriente cerca de 30 veces la nominal) y es
reemplazado por uno nuevo. Se observa además que la velocidad de cada rotor es
medida a través de un pequeño generador de voltaje continuo, mientras que los
ángulos del sistema se miden a través de un encoder.
La interfaz TRMS-PC se realiza a través de un complejo circuito que se comunica
con una tarjeta ISA en el PC. Como este estándar está ya obsoleto, se decide crear
una nueva interfaz a través del sistema OPTO22 comprado por el laboratorio hace
algunos años. Esto permite, entre varias de las bondades que ofrece este producto,
que el control se realice a través de Ethernet, por medio del protocolo TCP/IP. Esto
94
Figura 1: Esquema del TRMS
MR
TR v
h
uv
uh
facilitará el control pues se podrá ocupar cualquiera de los computadores existentes
en el laboratorio que tengan acceso a la red interna.
Como el resto del sistema permanece inalterado, esta es toda la información
necesaria para comenzar a diseñar los nuevos circuitos.
A.2.2 DISEÑO INTERFAZ TRMS-PC
El sistema OPTO22 ofrece mucha flexibilidad en cuanto a las señales de salida y
las señales de entrada que acepta. Todo dependerá del módulo que se ocupen para
comunicarse con el cerebro [9]. Ejemplos de como son los módulos y el cerebro del
sistema OPTO22 se muestran en la Ilustración 1.
(a) Ejemplo de módulo para el OPTO22 (b) Cerebro para el sistema OPTO22
Ilustración 1: Hardware para el sistema OPTO22
Considerando que se tienen 2 entradas y 4 salidas, se necesitarán 2 módulos para
el OPTO22. Uno digital-análogo (D-A) con 2 canales y uno análogo-digital (A-D) con 4
canales. El primero tiene una salida diferencial de 10 [V], el cual será el voltaje de
control para el PWM, y el segundo recibe una entrada diferencial de 10 [V], que
recibirá las señales del decodificador de la posición y las velocidades de ambos
motores.
Para la conexión entre el computador y el cerebro del OPTO22 se ocupa el
protocolo TCP/IP. Esto significa asignar una dirección IP al cerebro, lo que se realiza
mediante el software que entrega el fabricante. Una vez realizado esto, se debe
crear la conexión entre el software que se utilizará para el control y el OPTO22. En
este caso en particular se ocupará MATLAB y su extensión Simulink, mediante el uso
95
de S-Functions (véase el Anexo 1) escritas para el lenguaje C++ y herramientas que
utilizan el Real Time Workshop de MATLAB.
A.2.3 DISEÑO DEL MODULADOR PARA LOS MOTORES
Para regular la velocidad de giro de los motores se decide ocupar el voltaje de
entrada. Para esto se ocupará un modulador de ancho de pulso (PWM, por sus siglas
en inglés) dividido en 3 etapas; entrada, PWM y potencia, descritas a continuación.
Entrada: Corresponde al voltaje que controlará el ancho del pulso, es decir, se
debe establecer un rango donde cero corresponderá a un pulso de ancho cero y el
máximo corresponderá a un pulso de ancho uno. Cualquier punto intermedio se
determina como una interpolación lineal entre el máximo y el mínimo. Este voltaje
vendrá directamente del OPTO22, por lo que se toman ciertas precauciones como
saturar, por medio de software, los voltajes mínimos y máximos que se aplicarán al
nuevo circuito.
PWM: Corresponde a la señal que se ocupará para la modulación. Esta señal
no entrega potencia al sistema.
Potencia: Entrega la potencia a los motores. Se ocupará la señal entregada por el
PWM para regular el voltaje final entregado. Debido a las altas corrientes producidas
por los motores en su estado transiente, se decide ocupar una fuente externa para
esta etapa. Así se evitarán una batería de reguladores de corrientes que serían
necesarios en caso de ocupar la misma fuente del resto del circuito.
A.2.4 DISEÑO PARA LOS ENCODERS DE POSICIÓN
La posición para ambos ejes se mide mediante encoders del tipo HEDS-9100 [5]
mostrado en la Figura 2.a, los cuales no sólo permiten saber la posición relativa, sino
que además el sentido de giro. Esto se hace al tener dos canales, desfasados en 90º
(Figura 2.b).
La rueda perforada (codewheel en inglés) provista por Feedback es lo bastante
fina como para medir variaciones de 1˚, por lo que lo único que se diseñará será el
decodificador que permita leer las señales entregadas por el encoder, comparar los
canales para saber hacia que lado está girando, y traducir el resultado en ángulo (en
radianes para este sistema).
96
Obviamente, el sistema mide la posición desde un cero relativo. Éste será fijado al
momento de prender el equipo, por lo que se deberá poner en la posición correcta
previo a la realización de una serie de experimentos.
(a) Esquema del encoder HEDS-9100 (b) Forma de onda de los canales
Figura 2: Descripción de HEDS-9100
A.2.5 DISEÑO PARA LAS SALIDAS DEL CIRCUITO
Las salidas corresponden a las entradas para el OPTO22. Como se ocuparán
módulos de 10 [V], las salidas deberán entrar en ese rango.
A.3 CONSTRUCCIÓN DEL NUEVO SISTEMA
Antes de describir cada parte del circuito es importante mencionar que se cuenta
con una fuente de +/- 35 [Vcc], luego para poder alcanzar todos los voltajes
necesarios, se utiliza el transistor LM317 como regulador de voltaje [7].
La Figura 3 muestra el esquema básico del regulador, donde la variable es R2 y el
voltaje de salida queda determinado por
97
Figura 3: Regulador de Voltaje en base a LM317
Vout=1.251 r2r1 Iadj⋅r 2≈1.251 r2
r1 Se debe recordar que estos reguladores aportarán muy poca potencia al circuito,
por lo que no es necesario un disipador de calor. Por lo mismo, tampoco es necesaria
una etapa de regulación de corriente.
A.3.1 PIC
Debido a la gran flexibilidad que ofrece, se decide ocupar el PIC16F877A [6]
mostrado en la Figura 4. Este circuito permite, bajo ciertas condiciones, implementar
todos lo necesario para el control y decodificación del nuevo sistema. Así, es posible
programar 2 PWMs que dependerán del voltaje de entrada 0-5 [V] en las patas 2 y 3
del PIC (ver Figura 4).
El resto de las entradas análogas (Anx) serán usadas para la decodificación de los
encoders: AN2, AN3 para el encoder de rotación y AN4, AN5 para el encoder de
elevación. Las salidas serán a través de los puertos de 8 bits RB y RD.
Las conexiones para la alimentación, reloj, Etc. se encuentran en [6].
A.3.2 MODULADOR POR ANCHO DE PULSO
Al ser muy común, el modulador por ancho de pulso viene predefinido para usar
en el código del PIC (importando los archivos necesarios). Así, basta con incluir la
siguiente línea para configurar un modulador
setup_ccp1(CCP_PWM);
98
Figura 4: PIC16F877A
Luego sólo hay que darle el ciclo de trabajo, lo que se entrega a través del
OPTO22, que en el siguiente ejemplo corresponde al canal AN0
set_adc_channel( 0 );
delay_us(20);
value1=read_adc();
set_pwm1_duty(0xFF-value1);
Para el otro modulador se repite este código, excepto para las entradas y salidas
correspondientes.
A.3.3 DECODIFICACIÓN Y CONVERSORES D/A
El código para la decodificación de las posiciones es bastante auto-explicativo y
largo, por lo que es mejor verlo en el Apéndice 2.
Para poder pasar las salidas de 8-bits a voltaje, se ocupan conversores digitales-
análogos del tipo DAC0808ln. Las conexiones para esto son bastante simples y se
explican en [8].
99
A.4 REFERENCIAS DEL APÉNDICE
[1]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, installation and
commisioning; 33-007- 0M5". Crowborough, Inglaterra. Nov. 1999.
[2]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, getting started; 33-007-
1M5". Crowborough, Inglaterra. Nov. 1999.
[3]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, reference manual; 33-
007- 2M5". Crowborough, Inglaterra. Nov. 1999.
[4]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, advanced teaching
manual 1; 33-007- 4M5". Crowborough, Inglaterra. Nov. 1999.
[5]. HEWLETT Packard. "Two channel optical incremental encoder modules ,
technical data (heds9000-heds9100)". Oct. 2006.
[6]. MICROCHIP Technology Inc. "PIC16F87XA data sheet , 28/40/44-pin enhanced
flash microcontrollers". Estados Unidos. Oct. 2003.
[7]. NATIONAL Semiconductor Corporation. "LM317, 3-terminal adjustable regulator,
data sheet". Estados Unidos, May. 1996.
[8]. NATIONAL Semiconductor Corporation. "DAC0808 8-Bit D/A converter, data
sheet". Estados Unidos, May. 1999.
[9]. OPTO22. "OPTOMMP protocol guide, form 1465-060606". Temecula, CA 92590-
3614. Jun. 2006.
100
Apéndice B Modelo Fenomeno-
lógico Original de Feedback
Instruments Ltd.
B.1 INTRODUCCIÓN
El modelo fenomenológico que se presenta a continuación corresponde a la
modelación por parte de Feedback Instruments Ltd. del sistema multivariable de dos
rotores acoplados. Aún cuando es bastante complejo y es una buena interpretación
del sistema en general, existen dinámicas no modeladas (por ejemplo, las
limitaciones físicas del equipo) y simplificaciones que alejan bastante el modelo del
equipo real, especialmente en el eje horizontal.
A pesar de esto, merece la pena mostrar el desarrollo del modelo pues es la base
de todo el trabajo matemático sobre el TRMS de este trabajo, y muchas de las
dinámicas que fueron luego agregadas fueron asimiladas de este modelo original.
Por último, se advierte al lector que lo mostrado acá es básicamente un resumen y
traducción de [1][2][3][4]. Obviamente, los parámetros y pruebas experimentales
mostrados en esta sección corresponden también al modelo original de Feedback.
101
B.2 MODELO NO LINEAL
B.2.1 INTRODUCCIÓN AL SISTEMA E HIPÓTESIS SIMPLIFICATORIAS
Un esquema básico del Twin Rotor MIMO System (o TRMS) se muestra en el
diagrama de la Figura 1.
Se plantean las siguientes hipótesis simplificatorias
● La dinámica de las hélices se puede expresar como ecuaciones
diferenciales de 1er orden.
● La fricción del sistema se considera del tipo viscosa.
● El sistema hélice-aire puede representarse según los postulados de la teoría
de flujo.
Entonces se ocupa la segunda ley de Newton para determinar el modelo, que
resulta ser
Mi= J id2i
dt2 , i∈{h,v}
donde: {h,v} : Subíndices para denotar los ejes para horizontal y vertical,
respectivamente
Mi : Suma de las fuerzas en el plano i
Ji : Suma de los momentos de inercia relativos al plano i
i : Ángulo con respecto al plano.
102
Figura 1: Modelo aerodinámico del TRMS
Rotor de Cola Rotor PrincipalEscudo de Cola
Escudo Principal
Motor CC + Tacómetro
Pivote
Motor CC + Tacómetro
Contrapeso
B.2.2 MODELO VERTICAL
Para determinar las fuerzas que actúan sobre este eje es necesario recordar que si
se tiene un sistema como el de la Figura 2
las fuerzas que serán producto de la gravedad se expresan como
F=g l12 ml2M cosv
Reconociendo la masa m (de la Figura 2) como el rayo que une el pivote con los
motores y M como las suma de las masas del motor CC y el escudo, es fácil
extrapolar la información para obtener
Mv1=g{[mt
2mtrmts lt−mm
2mmrmmslm]cosv−mb
2lbmcb lcbsinv}
donde Mv1 : Torque de retorno para las fuerzas de gravedad.
mmr : Masa del motor CC con el rotor principal.
mm : Masa del rayo pivote-motor principal.
mtr : Masa del motor CC con el rotor de cola.
mt : Masa del rayo pivote-motor de cola.
mcb : Masa del contrapeso.
mb : Masa del rayo pivote-contrapeso.
mms : Masa del escudo principal.
mts : Masa del escudo de cola.
103
Figura 2: Péndulo y cuerpos con masa
−v
g
l2
l1
Mm
lm : Largo del rayo pivote-motor principal.
lt : Largo del rayo pivote-motor de cola.
lb : Largo del rayo pivote-contrapeso.
lcb : Distancia pivote-contrapeso.
g : Aceleración de gravedad.
Agrupando las constantes, se puede obtener la forma compacta
Mv1=g {[A−B]cosv−Csinv }
Para determinar los momentos de fuerzas propulsoras aplicadas se deben
considerar 3 fuerzas más: La fuerza de empuje producida por el rotor principal, el
momento de fuerzas centrífugas correspondientes al movimiento del rayo alrededor
del eje y la fuerza de roce asociada a la velocidad de giro. La primera y última de
éstas fuerzas son bastante simples y se escriben como
Mv2=lmF vm
Mv4=−v kv
donde m : Velocidad angular del rotor principal.
Fv : Fuerza propulsora del rotor principal (experimental).
v : Velocidad angular alrededor del eje horizontal.
h : Velocidad angular alrededor del eje vertical.
kv : Constante.
La segunda de estas fuerzas resulta mas compleja y tiene la forma
Mv3=−h2 {mt
2mtrmts ltmm
2mmrmms lmmb
2lbmcb lcb}sinv cosv
Agrupando constantes se obtiene
Mv3=−h2 {ABC }sinv cosv
Para mejor explicación, se tiene que
104
h=dh
dt, v=
d v
dt
Las componentes de los momentos de inercia relativos al eje horizontal se
expresan como
Jv1=mmr lm2 , Jv2=mm
lm2
3
Jv3=mcb lcb2 , Jv4=mb
lb2
3
Jv5=mtr lt2 , Jv6=mt
lt2
3
Jv7=mms
2rms
2mms lm
2 , Jv8=mts r ts2mts lt
2
donde rms : Radio del escudo principal.
rts : Radio del escudo de cola.
Nótese que los momentos de inercia no dependen de la posición del sistema.
B.2.3 MODELO HORIZONTAL
El modelo horizontal para este sistema es muy parecido al vertical, excepto por la
no existencia de la gravedad. Entonces se tiene
Mh1=ltFh t cosv
Mh2=−hkh
donde t : Velocidad angular del rotor principal.
Fh : Fuerza propulsora del rotor principal (experimental).
kh : Constante.
Las componentes de los momentos de inercia relativos al eje vertical se pueden
escribir como
Jh1=mm
3lmcosv
2, Jh2=
mt
3ltcosv
2
105
Jh3=mb
3lbsinv
2 , Jh4=mtr lt cosv2
Jh5=mmr lmcosv2 , Jh6=mcb lcbsinv
2
Jh7=mts
2r ts
2mts lt cosv
2 , Jh8=mmsrms2mms lmcosv
2
Si se consideran las constantes
D=mm
3mmrmms lm2 mt
3mtrm ts lt2
E=mb
3lb2mcb lcb
2
F=mmsrms2
mts
2rts
2
Se obtiene el modelo compacto para la suma de los momentos de inercia
Jh=Dcos2vEsin2vF
B.2.4 MODELO FINAL
Con las ecuaciones antes descritas, se puede escribir el modelo entero como
d v
dt=v=Sv
Jtrt
Jv
JvdSv
dt= lmFv m−v kvgA−Bcosv−Csinv−
12h
2 ABC sin2v
dh
dt=h=Sh
Jmrmcosv
Jh
dSh
dt=lt Fht cosv−hkh
Jh
donde Jtr : Momento de inercia en el subsistema motor – hélice (cola).
Jmr : Momento de inercia en el subsistema motor – hélice (principal).
Sv : Momento angular en el plano vertical para el sistema.
Sh : Momento angular en el plano horizontal para el sistema.
106
B.2.5 MODELO DE ENTRADA
El lector notará que no existe una dependencia explícita del voltaje de entrada en
los motores con el modelo antes presentado. Esto se debe a que el modelo se
calcula a partir de la 2da ecuación de Newton que se basa en la suma de fuerzas.
Luego se debe determinar el modelo para la fuerza ejercida por las hélices
dependiendo del voltaje de entrada. A estas fuerzas se les ha llamado Fv(wm) y Fh(wt)
para el rotor principal y el de cola, respectivamente.
El modelo propuesto (para ambos ejes) se compone de una parte estática y una
dinámica para la velocidad de giro, mientras que sólo una componente estática para
la fuerza. Todas deben ser determinadas experimentalmente.
La Figura 3 es bastante auto explicativa y no se dará mayor énfasis hasta la
determinación experimental de los parámetros de este modelo.
B.3 PARÁMETROS Y MODELOS EXPERIMENTALES
B.3.1 PARÁMETROS FÍSICOS
Los siguientes parámetros se calculan midiendo y masando los componentes
correspondientes. Así se obtiene
mtr=0.206[kg ] , mmr=0.228[kg ] , mcb=0.068 [kg ] ,
mt=0.0155[kg] , mm=0.0145[kg ] , mb=0.022[kg] ,
mts=0.165[kg] , mms=0.225[kg] , lt=0.25[m] ,
lm=0.236[m] , lb=0.26[m] , lcb=0.13[m] ,
rms=0.155[m] , r ts=0.10[m] .
Remplazando estos valores en las constantes mostradas con anterioridad, se llega
a las nuevas constantes y funciones
107
Figura 3: Diagrama para el modelo de entrada
mPv uvv
uvv1Tmr s1
uv Fv m Fv
tPhuhh
uhh1T tr s1
uh Fh t Fh
Jv=∑i
8
Jiv=0.055846 [kgm2]
Jh=∑i
8
Jhi=0.04901cos2v0.0016065sin2v0.0063306
Mv1=9.81−0.0139315cosv0.0117016065sinv [Nm]
Mv3=−0.05038268h2 sinvcosv [Nm]
B.3.2 CARACTERÍSTICA DEL ROTOR PRINCIPAL
Para medir las características estáticas del rotor principal, es necesario tener un
tacómetro para medir la velocidad en función del voltaje aplicado. Esto se puede
realizar directamente sin necesidad de alterar el sistema salvo, para mayor
seguridad, fijar los ejes tal que el motor pueda variar su velocidad sin que el sistema
completo gire.
La constante de tiempo se obtiene a través de prueba y error al graficar el
resultado del modelo con la velocidad actual del rotor.
Para la segunda característica es necesario una balanza para medir la fuerza de
propulsión en función de la velocidad de giro (ver Figura 4). Esta última medición
requiere de un trabajo previo que se muestra a continuación.
Primero se debe fijar el eje tal que el sistema no pueda rotar alrededor del eje
horizontal. Luego se agrega un contrapeso para que el sistema quede
completamente balanceado (equivalentemente v=0, t). Logrado esto, se debe unir
mediante una cuerda el motor principal con la balanza electrónica (como se muestra
en la Figura 4) para que al encenderse el motor, éste empuje la balanza hacia arriba
y así obtener datos experimentales.
108
Figura 4: Configuración para la medición de características
balanza
Contrapeso
Feedback Instruments Ltd. ha realizado ambos experimentos y en el Gráfico 1 se
muestran sus resultados. Nótese que la fuerza aerodinámica del rotor principal
depende del tipo de hélice que se ocupe, por lo que no es necesario rehacer este
experimento a menos que éstas se cambien1.
Con los datos obtenidos y el toolbox de aproximación polinomial de MATLAB es
posible determinar las funciones correspondientes.
m uvv=90.99uvv6 599.73uvv
5 −129.26uvv4 −1238.64uvv
3 63.45uvv2 1283.41uvv
Fv m =−3.48⋅10−12m5 1.09⋅10−9m
4 4.123⋅10−6m3 −1.632⋅10−4m
2 9.544⋅10−2m
B.3.3 CARACTERÍSTICA DEL ROTOR DE COLA
Análogamente se obtienen las características para el rotor de cola, que muestran
en el Gráfico 2
1 Los gráficos corresponden a los resultados mostrados en [4].
109
Gráfico 1: Características medidas para el rotor principal
Gráfico 2: Características medidas para el rotor de cola
Es importante mencionar que habrá que rotar el eje del sistema para que las
hélices del rotor queden paralelas al suelo, en lugar de perpendiculares como lo es
en funcionamiento normal.
t uhh=2020uhh5 −194.69uhh
4 −4283.15uhh3 262.27uhh
2 3796.83uhh
Fh t =−3⋅10−14t5−1.595⋅10−11t
42.511⋅10−7t3−1.808⋅10−4 t
20.0801t
110
B.4 REFERENCIAS DEL APÉNDICE
[1]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, installation and
commisioning; 33-007- 0M5". Crowborough, Inglaterra. Nov. 1999.
[2]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, getting started; 33-007-
1M5". Crowborough, Inglaterra. Nov. 1999.
[3]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, reference manual; 33-
007- 2M5". Crowborough, Inglaterra. Nov. 1999.
[4]. FEEDBACK Instruments Ltd. "Twin rotor MIMO system, advanced teaching
manual 1; 33-007- 4M5". Crowborough, Inglaterra. Nov. 1999.
111
Top Related