La versión digital de esta tesis está protegida por la Ley de Derechos de Autor del
Ecuador.
Los derechos de autor han sido entregados a la “ESCUELA POLITÉCNICA NACIONAL”
bajo el libre consentimiento del (los) autor(es).
Al consultar esta tesis deberá acatar con las disposiciones de la Ley y las siguientes
condiciones de uso:
• Cualquier uso que haga de estos documentos o imágenes deben ser sólo para
efectos de investigación o estudio académico, y usted no puede ponerlos a
disposición de otra persona.
• Usted deberá reconocer el derecho del autor a ser identificado y citado como el
autor de esta tesis.
• No se podrá obtener ningún beneficio comercial y las obras derivadas tienen que
estar bajo los mismos términos de licencia que el trabajo original.
El Libre Acceso a la información, promueve el reconocimiento de la originalidad de las
ideas de los demás, respetando las normas de presentación y de citación de autores
con el fin de no incurrir en actos ilegítimos de copiar y hacer pasar como propias las
creaciones de terceras personas.
Respeto hacia sí mismo y hacia los demás.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA ELÉCTRICA Y
ELECTRÓNICA
DISEÑO, CONSTRUCCIÓN Y CONTROL DE UNA PLATAFORMA
STEWART CON 6 GRADOS DE LIBERTAD QUE FUNCIONE COMO
UN SIMULADOR DE VUELO
PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO
EN ELECTRÓNICA Y CONTROL
ROBERTO PATRICIO ARIAS GUZMÁN
rag776@hotmail.com
DIRECTOR: Ing. CARLOS PATRICIO BURBANO ROMERO MSc.
pburbanor@hotmail.com
CO-DIRECTOR: Dr. JORGE ANDRÉS ROSALES ACOSTA
androsaco@yahoo.com
QUITO, FEBRERO 2013
i
DECLARACIÓN
Yo, Roberto Patricio Arias Guzmán, declaro bajo juramento que el
trabajo aquí
descrito es de mi autoría; que no ha sido previamente presentada para ningún grado
o calificación profesional; y, que he consultado las referencias bibliográficas que se
incluyen en este documento.
A través de la presente declaración cedo mis derechos de propiedad intelectual
correspondientes a este trabajo, a la
Escuela Politécnica Nacional, según lo
establecido por la Ley de Propiedad Intelectual, por su Reglamento y por la
normatividad institucional vigente.
_________________________
Roberto Patricio Arias Guzmán
ii
CERTIFICACIÓN
Certifico que el presente trabajo fue desarrollado por Roberto Patricio Arias Guzmán,
bajo mi supervisión.
________________________
Ing. Patricio Burbano MSc.
DIRECTOR DEL PROYECTO
__________________________
Dr. Andrés Rosales
CO-DIRECTOR DEL PROYECTO
iii
AGRADECIMIENTO
Agradezco a mis padres Alberto y Matilde que han sido un pilar en que me he
apoyado durante los tiempos difíciles ellos han sabido levantarme cuando mis
ánimos decayeron, a mi hermano Pablo por ser un modelo en mi vida, y cuyos
consejos me han servido mucho, a mi hermanita Nadia por ser la persona que más
apoyo me ha dado y que siempre ha estado ahí para brindarme su consejo y
sobretodo su cariño. Agradezco mucho a mi familia ya que sin ellos esto no sería
posible.
Agradezco al Ing. Patricio Burbano quien ha sabido guiarme acertadamente hasta la
culminación exitosa este proyecto, al Doctor Andrés Rosales por su muy valiosa
ayuda desde el comienzo del presente proyecto.
iv
DEDICATORIA
Dedico este proyecto de titulación a mi familia y amigos, pero sobretodo a mi
hermanita cuyos éxitos nos han llenado de orgullo y alegría a todos. Te voy a
extrañar mucho mientras estés lejos.
v
CONTENIDO
INDICE DE FIGURAS ............................................................................................................... IX
INDICE DE TABLAS ................................................................................................................ XII
CAPÍTULO 1 .................................................................................................................................. 1
MARCO TEÓRICO ...................................................................................................................... 1
1.1
SIMULADORES DE VUELO ....................................................................................................................1
1.2
OBJETIVO DEL PROYECTO DE TITULACIÓN ............................................................................................1
1.3 PRINCIPIOS DE LA SIMULACIÓN DE VUELO [2] ......................................................................................2
1.3.1
VISIÓN ................................................................................................................................................. 3
1.3.2
SISTEMA SOMATOSENSORIAL O PROPIOCEPTIVO .................................................................. 3
1.3.3
SISTEMA VESTIBULAR O SISTEMA DE OIDO INTERNO........................................................... 4
1.3.3.1
CANALES SEMICIRCULARES .......................................................................................................... 5
1.3.3.2
ORGANOS OTOLÍTICOS ................................................................................................................ 6
1.4 ROBÓTICA ..........................................................................................................................................7
1.4.1
EL ROBOT PARALELO ...................................................................................................................... 7
1.4.1.1
ROBOTS PLANARES ...................................................................................................................... 9
1.4.1.2
ROBOTS ESPACIALES [23] ............................................................................................................. 9
CAPÍTULO 2 ............................................................................................................................... 11
DISEÑO Y CONSTRUCCIÓN DE LA PLATAFORMA STEWART .............................. 11
2.1 DISEÑO MECÁNICO DE LA PLATAFORMA STEWART .............................................................. 11
2.2 CONSTRUCCIÓN DE LA PLATAFORMA STEWART .................................................................... 13
2.2.1 ACTUADORES ...................................................................................................................................... 14
2.2.1.1
SERVOMOTORES ....................................................................................................................... 14
2.2.1.2 ARTICULACIONES Y EJES.................................................................................................................... 16
2.2.2 PLATAFORMA MÓVIL O EFECTOR FINAL ................................................................................. 19
2.2.3 PLATAFORMA BASE O ESTÁTICA ................................................................................................. 20
2.2.4 ESPECIFICACIONES DE ENSAMBLAJE ........................................................................................ 21
2.3 LIMITACIONES DE MOVIMIENTO ............................................................................................... 23
2.4 DISEÑO CINEMÁTICO .................................................................................................................... 24
2.4.1 ESPACIO OPERACIONAL DE LOS ACTUADORES ..................................................................... 24
2.4.2 CINEMÁTICA INVERSA ..................................................................................................................... 25
2.4.2.1 MATRICES DE TRANSLACIÓN Y ROTACIÓN ....................................................................................... 25
2.4.2.2 LOS ÁNGULOS DE EULER Y LOS ÁNGULOS DE TAIT-BRYAN .............................................................. 30
vi
2.4.2.3 RESOLUCIÓN DEL PROBLEMA DE CINEMÁTICA INVERSA ................................................................. 31
2.4.3 CINEMÁTICA DIRECTA .................................................................................................................... 35
CAPÍTULO 3 ............................................................................................................................... 36
DISEÑO E IMPLEMENTACIÓN DE LA INTERFAZ DE CONTROL .......................... 36
3.1 ADQUISICIÓN DE DATOS DEL SIMULADOR DE VUELO............................................................ 36
3.1.1
SIMULADORES DE VUELO COMERCIALES........................................................................... 36
3.1.1.1 FLIGHT SIMULATOR X........................................................................................................................ 36
3.1.1.2 X-PLANE 9.......................................................................................................................................... 37
3.1.2 ADQUISICIÓN DE DATOS MEDIANTE EL PROGRAMA SIMCONNECT ............................... 37
3.1.2.1 DIAGRAMA DE FLUJO DEL PROGRAMA DE ADQUISICIÓN DE DATOS ............................................... 40
3.1.2.2 RESULTADOS DE ADQUISICIÓN DE DATOS........................................................................................ 42
3.1.3 ADQUISICIÓN DE DATOS MEDIANTE LA HERRAMIENTA COMPUTACIONAL MATLAB
........................................................................................................................................................................... 43
3.1.3.1 ARCHIVOS MEX ................................................................................................................................. 43
3.2 ALGORITMOS DE CONTROL DE MOVIMIENTO......................................................................... 46
3.2.1 FILTROS WASHOUT ........................................................................................................................... 46
3.2.1.1 WASHOUT CLÁSICO [11] ................................................................................................................... 46
3.2.1.2 WASHOUT ÓPTIMO........................................................................................................................... 49
3.2.1.3 ALGORITMO ADAPTIVO .................................................................................................................... 50
3.2.1.4 SELECCIÓN DEL ALGORITMO A USAR EN EL PRESENTE PROYECTO ................................................. 51
3.3 DESARROLLO DE LA INTERFAZ DE CONTROL ......................................................................... 51
3.3.1 GRAFICAL USER INTERFACE DESIGN ENVIROMENT (GUIDE) ........................................... 52
3.3.2 DISEÑO DEL FILTRO WASHOUT CLÁSICO ................................................................................. 53
3.3.2.1 FILTROS DIGITALES ............................................................................................................................ 53
3.3.2.1.1 FILTRO PASA ALTO .............................................................................................................. 53
3.3.2.1.2 FILTRO PASA BAJO ............................................................................................................... 55
3.3.2.1.3 SELECCIÓN DEL MÉTODO DE FILTRADO ....................................................................... 55
3.3.2.1.3.1 FILTRADO EN EL DOMINIO DE LA FRECUENCIA .................................................. 55
3.3.2.1.3.2 FILTRADO USANDO ECUACIONES EN DIFERENCIA ............................................. 56
3.3.2.1.4 DIAGRAMA DE FLUJO DEL PROGRAMA DE FILTRADO .............................................. 57
3.3.2.2 INTEGRACIÓN NUMÉRICA ................................................................................................................. 61
3.3.2.2.1 REGLA DEL TRAPEZOIDE ................................................................................................... 61
3.3.2.2.2 DIAGRAMA DE FLUJO DE INTEGRACIÓN NUMÉRICA ................................................. 62
3.3.2.3 ETAPA TILT COORDINATION ............................................................................................................. 62
3.3.3 DISEÑO DEL SISTEMA DE CONTROL PARA LA PLATAFORMA STEWART ...................... 63
3.3.3.1 EFECTOR FINAL VIRTUAL EN MATLAB ............................................................................................... 63
3.3.3.1.1 DIAGRAMA DE FLUJO DE LA FUNCIÓN “PLATF” ......................................................... 65
3.3.3.2 ARTICULACIONES Y ACTUADORES VIRTUALES EN MATLAB .............................................................. 66
3.3.3.2.1 RESOLUCIÓN DE LA CINEMÁTICA INVERSA PARA LA ESTRUCTURA 6-RUS. ....... 67
3.3.3.2.2 RESOLUCIÓN DE LA CINEMÁTICA INVERSA PARA LA ESTRUCTURA 6-UPS. ...... 69
3.3.3.2.2.1 DIAGRAMA DE FLUJO DE LA FUNCIÓN “MOTOR2” .............................................. 70
3.3.3.3 COMUNICACIÓN SERIAL EN MATLAB................................................................................................ 70
3.3.3.3.1 DIAGRAMA DE FLUJO DE PROGRAMA DE COMUNICACIÓN SERIAL ...................... 71
3.3.4 ANÁLISIS Y SELECCIÓN DEL MEJOR METODO DE CONTROL Y COMUNICACIÓN PCPLATAFORMA............................................................................................................................................... 72
3.3.4.1 CONTROLADOR DE SERVOS MICRO MAESTRO USB [15] .................................................................. 72
vii
3.3.4.2 ARDUINO UNO [16] ........................................................................................................................... 73
3.3.4.3 MICROCONTROLADOR ATMEGA164P [17] ....................................................................................... 74
3.3.4.4 MINI SSC II [18] ................................................................................................................................. 75
3.3.4.5 SELECCIÓN DEL CONTROLADOR USADO ........................................................................................... 75
3.3.5 COMUNICACIÓN SERIAL Y CONTROL DE SERVOMOTORES USANDO LA TARJETA
ARDUINO UNO .............................................................................................................................................. 76
3.3.5.1 DIAGRAMA DE FLUJO DE PROGRAMA PARA ARDUINO UNO ........................................................... 77
3.3.6 DISEÑO DE CIRCUITOS DE ALIMENTACIÓN Y PROTECCIÓN PARA SERVOMOTORES
........................................................................................................................................................................... 78
3.3.7 DISEÑO DE LA GUI DE CONTROL ................................................................................................. 82
CAPÍTULO 4 ............................................................................................................................... 88
PRUEBAS Y RESULTADOS ................................................................................................... 88
4.1 CALIBRACIÓN DE LA PLATAFORMA STEWART ....................................................................... 88
4.2 SEÑALES USADAS EN LAS PRUEBAS ............................................................................................ 89
4.3 RESULTADOS OBTENIDOS ............................................................................................................ 95
4.3.1 RESULTADOS DE PRUEBA DE ACELERACIÓN .......................................................................... 95
4.3.2 RESULTADO DE PRUEBAS DE ORIENTACIÓN ........................................................................... 99
4.3.3 VISUALIZACIÓN DE RESULTADOS ............................................................................................. 101
4.3.4 PRUEBA EN AUTOMÁTICO ............................................................................................................ 103
CAPÍTULO 5 ............................................................................................................................. 105
CONCLUSIONES Y RECOMENDACIONES .................................................................... 105
5.1 CONCLUSIONES ............................................................................................................................ 105
5.2 RECOMENDACIONES ................................................................................................................... 106
REFERENCIAS BIBLIOGRÁFICAS .................................................................................. 108
ANEXO A .................................................................................................................................... A-1
MANUAL DE USUARIO ......................................................................................................... A-1
ANEXO B .................................................................................................................................... B-1
CIRCUITOS ESQUEMATICOS Y CIRCUITO ESQUEMÁTICO COMPLETO ........ B-1
ANEXO C .................................................................................................................................... C-1
viii
PRESUPUESTO ......................................................................................................................... C-1
ix
INDICE DE FIGURAS
Figura 1. 1 Órganos del equilibrio .......................................................................................... 2
Figura 1. 2 Sistema Vestibular................................................................................................ 4
Figura 1. 3 Canales específicos de cada aceleración angular .......................................... 5
Figura 1. 4 Corte canales Semicirculares [2] ....................................................................... 6
Figura 1. 5 Corte órganos otolíticos. [2] ................................................................................ 7
Figura 1. 6 Ejemplo de robot paralelo ................................................................................... 8
Figura 1. 7 Robot paralelo planar de 5 barras. .................................................................... 9
Figura 1. 8 Plataforma Stewart ............................................................................................. 10
Figura 2. 1 ConFiguración de plataforma hexápodo [1] ................................................... 12
Figura 2. 2 Plataforma Hexápodo [4]................................................................................... 12
Figura 2. 3 Plataforma Stewart creada en Inventor 2009. ............................................... 13
Figura 2. 4 Servomotor HK15148 ........................................................................................ 14
Figura 2. 5 Control de servomotores ................................................................................... 15
Figura 2. 6 Dimensiones del servomotor HK15148 .......................................................... 16
Figura 2. 7 Articulación universal. ........................................................................................ 16
Figura 2. 8 Ubicación de Articulaciones .............................................................................. 17
Figura 2. 9 Articulación del efector final con el eje ............................................................ 17
Figura 2. 10 Articulación usada para los motores ............................................................. 18
Figura 2. 11 Efector Final ...................................................................................................... 19
Figura 2. 12 Ensamblaje de efector final ............................................................................ 20
Figura 2. 13 Especificaciones de la plataforma ................................................................. 21
Figura 2. 14 Especificaciones de la plataforma ................................................................. 22
Figura 2. 15 Ensamblaje Total de la Plataforma Stewart ................................................. 22
Figura 2. 16 Sistema de referencia ...................................................................................... 25
Figura 2. 17 Giro de un vector en 2D .................................................................................. 28
Figura 2. 18 Ángulos de Tait-Bryan ..................................................................................... 30
Figura 2. 19 Grupo de generadores de movimiento ......................................................... 32
Figura 2. 20 (a) Robot de 6 cadenas UPS, (b) Análisis Geométrico .............................. 33
Figura 2. 21 Robot paralelo propuesto por Hunt (1983)................................................... 34
Figura 3. 1 Properties page ................................................................................................... 38
Figura 3. 2 ConFiguración de cabecera .............................................................................. 39
Figura 3. 3 Vinculación de librería I ..................................................................................... 39
Figura 3. 4 Vinculación de librería II .................................................................................... 40
Figura 3. 5 Programa Principal ............................................................................................. 41
Figura 3. 6 Función Addata ................................................................................................... 41
Figura 3. 7 Dispatchproc........................................................................................................ 42
Figura 3. 8 Resultados de Adquisición ................................................................................ 43
Figura 3. 9 Archivos MEX ...................................................................................................... 44
Figura 3. 10 Algoritmo del filtro clásico washout [12]........................................................ 47
Figura 3. 11 Filtro washout optimo [21] ............................................................................... 49
Figura 3. 12 Algoritmo Adaptivo ........................................................................................... 50
Figura 3. 13 Ambiente de diseño para interfaz grafico de usuario ................................. 52
x
Figura 3. 14 Filtro Digital........................................................................................................ 53
Figura 3. 15 Algoritmo de filtrado en el dominio de la frecuencia ................................... 56
Figura 3. 16 Diagrama de flujo programa “Generar filtro pasa alto” ............................... 57
Figura 3. 17 Diagrama de flujo programa filtrado pasa alto de datos ax........................ 58
Figura 3. 18 Diagrama de flujo programa “Generar Filtro 2do Orden” ........................... 59
Figura 3. 19 Diagrama de flujo programa filtrado pasa alto de datos pitch................... 60
Figura 3. 20 Diagrama de flujo de programa “Integración” .............................................. 62
Figura 3. 21 Punto de referencia del Efector Final ............................................................ 64
Figura 3. 22 Resultado de función “platf” ............................................................................ 65
Figura 3. 23 Diagrama de flujo de función “Platf” .............................................................. 66
Figura 3. 24 Ubicación de Motores ...................................................................................... 67
Figura 3. 25 Giro de punto p ................................................................................................. 68
Figura 3. 26 Resultado de la función motor2 ..................................................................... 69
Figura 3. 27 Diagrama de flujo de la función “motor2” ..................................................... 70
Figura 3. 28 Diagrama de flujo del programa de comunicación serial. .......................... 71
Figura 3. 29 Controlador Micro Maestro USB .................................................................... 72
Figura 3. 30 Arduino UNO ..................................................................................................... 73
Figura 3. 31 Microcontrolador Atmega164p ....................................................................... 74
Figura 3. 32 Mini SSC II ......................................................................................................... 75
Figura 3. 33 Diagrama de flujo de programa principal Arduino UNO ............................. 77
Figura 3. 34 Diagrama de flujo de subrutina “decimal”..................................................... 77
Figura 3. 35 Diagrama de flujo de subrutina “Serial” ........................................................ 78
Figura 3. 36 Circuito de la fuente de 5V/2A........................................................................ 79
Figura 3. 37 Circuito de aislamiento entre los servos y la tarjeta Arduino .................... 81
Figura 3. 38 Tipos de comunicación .................................................................................... 82
Figura 3. 39 Opción Manual del programa interfaz ........................................................... 83
Figura 3. 40 Opción Automático del programa interfaz .................................................... 84
Figura 3. 41 Selección de opción a graficar ....................................................................... 85
Figura 3. 42 Interfaz Grafica ................................................................................................. 85
Figura 4. 1 señal 1 .................................................................................................................. 91
Figura 4. 2 Señal 2 ................................................................................................................. 91
Figura 4. 3 Señal 3 ................................................................................................................. 92
Figura 4. 4 Señal 4 ................................................................................................................. 93
Figura 4. 5 Señal 5 ................................................................................................................. 93
Figura 4. 6 Señal 6. ................................................................................................................ 94
Figura 4. 7 Señales 7 y 8 respectivamente ........................................................................ 94
Figura 4. 8 Señal 9 ................................................................................................................. 95
Figura 4. 9 Salida de aceleración en x para filtro pasa alto de la señal1 ...................... 96
Figura 4. 10 Salida de aceleración en x para filtro pasa alto de la señal2 .................... 97
Figura 4. 11 Posición en x para señal3 ............................................................................... 98
Figura 4. 12 Respuesta en pitch de la orientación de la plataforma para señal4 ........ 99
Figura 4. 13 Respuesta en pitch de la orientación de la plataforma para señal5 ...... 100
Figura 4. 14 Respuesta en pitch de la orientación de la plataforma para señal6 ...... 101
Figura 4. 15 Visualización del canal ay.............................................................................. 102
Figura 4. 16 Visualización del canal Pitch ........................................................................ 103
xi
Figura 4. 17 Ejemplo de funcionamiento real ................................................................... 104
Figura A- 1 Instalación de Arduino 1 ................................................................................ A-1
Figura A- 2 Instalación Arduino 2 ...................................................................................... A-2
Figura A- 3 Instalación Arduino 3 ...................................................................................... A-2
Figura A- 4 Instalación de Simulador de vuelo. .............................................................. A-3
Figura A- 5 Instalación SDK 1 ........................................................................................... A-4
Figura A- 6 Instalación SDK 2 ........................................................................................... A-4
Figura A- 7 Copiar Programa ............................................................................................. A-5
Figura A- 8 Current Directory ............................................................................................. A-5
Figura A- 9 Ejecutar interfaz .............................................................................................. A-6
xii
INDICE DE TABLAS
Tabla 2. 1 Características eléctricas del servomotor HK15148 ...................................... 15
Tabla 2. 2 Medidas de estructura de Actuadores .............................................................. 19
Tabla 2. 3 Requerimientos de Movimiento [1].................................................................... 23
Tabla 4. 1 Valores usados en la calibración....................................................................... 89
Tabla 4. 2 Límites de la señales de entrada ...................................................................... 90
Tabla C- 1 Presupuesto usado ........................................................................................... C-1
xiii
RESUMEN
Los sistemas de simulación son una parte muy importante para el entrenamiento de
pilotos novatos y profesionales, evitando que algún error humano produzca una
catástrofe.
El presente proyecto ilustra los pasos a seguir para la construcción de un simulador
de vuelo a escala mediante la construcción de un robot paralelo con 6 grados de
libertad, también conocido como plataforma Stewart. Además, se presenta a los
diferentes programas de simulación de vuelo comerciales como opciones más
económicas para crear un simulador de vuelo de tamaño normal.
Se estudió los diferentes algoritmos para el control de una plataforma con 6 grados
de libertad así como sus ventajas y desventajas.
De manera paulatina se desarrolló la construcción de una plataforma Stewart y, en
base al estudio de su cinemática inversa, se logró elaborar el control de dicha
plataforma usando la herramienta informática Matlab.
Se implementó un programa en lenguaje C++ que permite la adquisición de datos de
aceleración y orientación usando una librería y cabecera proporcionada por el
simulador de vuelo Flight Simulator X.
Además, se diseño e implementó una interfaz amigable en Matlab que permite
controlar la plataforma Stewart usando los datos adquiridos del simulador de vuelo
Flight Simulator X o los datos enviados desde la misma interfaz diseñada.
xiv
Finalmente, cabe señalar que todos los objetivos, así como el alcance de este
proyecto han sido cumplidos a cabalidad, logrando crear un prototipo básico de un
simulador de vuelo a escala.
xv
PRESENTACIÓN
Debido la necesidad de entrenar a pilotos, ya sean de las fuerzas armadas o del
sector comercial, sin la poner en riesgo la vida de los mismos, se decidió crear un
equipo que permita simular las aceleraciones percibidas durante un vuelo real y que
convenza a los pilotos de manera visual y cenestésica que están controlando un
avión real. Es así que, nacen los simuladores de vuelo, cuyas características logran
engañar a los pilotos, haciendo el entrenamiento de los mismos más económico y
menos riesgoso comparado con los vuelos reales.
El presente proyecto estudia la construcción y el control de este tipo de simuladores
de vuelo, con el propósito de, en un futuro cercano crear un simulador de vuelo
completo de fabricación ecuatoriana.
Este proyecto está dividido de la siguiente forma:
El Capitulo 1 comprende una breve introducción acerca de los simuladores de vuelo,
su funcionamiento y el cómo engañan al piloto haciéndole creer que se enfrentan a
un vuelo real.
En el Capítulo 2, se estudian los robots paralelos, la cinemática inversa de los
mismos y se aplica la construcción de una pequeña plataforma que permitirá apreciar
los 6 grados de libertad que puede tener una plataforma Stewart.
El Capítulo 3 comprende la elaboración de la interfaz de control partiendo la
adquisición de datos, elaborada en el lenguaje C++, pasando por el análisis de filtros
washout que permiten transformar dichos datos en datos que simulen aceleraciones
e inclinaciones, y por último aplicando la cinemática inversa de la plataforma
construida para controlar la plataforma Stewart desarrollada.
xvi
En el Capítulo 4, se presentan algunas de las pruebas realizadas para comprobar la
funcionalidad del proyecto.
Finalmente, en el capítulo 5, se muestran las conclusiones y recomendaciones en
base a los objetivos planteados en el proyecto.
1
CAPÍTULO 1
MARCO TEÓRICO
1.1
SIMULADORES DE VUELO
El sueño del hombre, desde tiempos inmemorables, ha sido el de conquistar el
espacio aéreo, pero una vez que lo logró, surgió un problema muy grave, era muy
complicado entrenar pilotos, ya que el más mínimo error podía causar la muerte del
piloto y su tripulación. Es por eso que se optó por usar la tecnología para entrenar
pilotos de aviones. En 1910, se construyó uno de los primeros simuladores de vuelo,
que consistía únicamente en un barril montado en un marco [1].
Con el paso de los años la tecnología fue evolucionando, en especial durante la
primera y segunda guerras mundiales. Actualmente se cuenta con simuladores de
vuelo que poseen tecnología de punta, los cuales no solo permiten simular el vuelo
de un avión, sino que además permiten simular averías del avión, condiciones
peligrosas, etc.
1.2
OBJETIVO DEL PROYECTO DE TITULACIÓN
En el presente proyecto de titulación se diseñó y construyó una plataforma Stewart a
escala, que consiste en un robot paralelo con 6 grados de libertad, como se aprecia
en la Figura 1.8 cuyo control se efectuó gracias a 6 servomotores.
El funcionamiento del robot paralelo depende de los datos que arroja un simulador de
vuelo, es por eso que, en el presente proyecto, se estudian los diferentes
simuladores de vuelo comerciales que permitan la adquisición de datos del
simulador, eligiéndose finalmente el simulador de vuelo Flight Simulator X.
2
Además, se diseñó una interfaz en Matlab que permite la toma de datos de
aceleración y ángulos de Euler (pitch, yaw y roll) del simulador y los transforma en
datos
de posición y orientación de la plataforma respectivamente. Además se
estudió el mejor método de comunicación PC-plataforma (tanto su programación
como el hardware necesario).
1.3
PRINCIPIOS DE LA SIMULACIÓN DE VUELO [2]
La esencia de un simulador de vuelo es crear el ambiente de vuelo sin la necesidad
de hacerlo realmente, es por eso que, para entender cómo funciona un simulador de
vuelo primero hay que entender cómo percibe el cuerpo humano los cambios de
inclinación y aceleración.
El cuerpo humano capta de 3 formas distintas la aceleración y la inclinación que
pueden ser apreciadas en la Figura 1.1, estas formas son:
•
Mediante la visión;
•
Mediante el sistema somatosensorial o propioceptivo (tacto); y,
•
Mediante el sistema vestibular o sistema de oído interno.
Figura 1.1 Órganos del equilibrio, tomado de [26]
3
1.3.1
VISIÓN
La visión periférica es la que se encarga de entregar su información de posición en
relación con el horizonte al sistema nervioso central subconsciente. La visión es uno
de los más importantes sensores de equilibrio, ya que este puede mantenerse
mientras los demás fallan, es por eso que muchos pilotos militares usan este sensor,
la visión central, para mantener la orientación, y además los instrumentos de las
aeronaves son específicamente captados por este sensor para mantener el equilibrio
y la orientación del piloto.
La visión por ser el único sensor consciente relevante, tiene hegemonía sobre los
demás sensores de equilibrio. Lo que también quiere decir que este sensor puede
ser engañado por un simulador de vuelo, creando así la ilusión de un vuelo real.
El simulador de vuelo se inclina indicando a nuestros ojos que existe una cierta
inclinación, y con la ayuda de pantallas que muestren un escenario de un vuelo real
se tiene la receta perfecta que engaña al cerebro.
1.3.2
SISTEMA SOMATOSENSORIAL O PROPIOCEPTIVO
Es un sistema constituido por receptores sensoriales (sensores de presión)
distribuidos por piel, músculos, tendones, tejidos profundos, etc. Responden a los
diferentes estímulos, y brindan información importante como la posición exacta y la
cinestesia (percepción de la velocidad).
La combinación de la información proporcionada por todos estos receptores
sensoriales, que es enviada al sistema nervioso central, permite al cuerpo humano
ser consciente de su postura, del sentido del movimiento, orientación en el espacio,
etc. Todos estos factores permiten mantener la conciencia de la situación (Situational
Awareness).
Este sistema es el más fácil de engañar, ya que fácilmente se puede crear la ilusión
de vuelo, simplemente cambiando la inclinación del cuerpo humano, haciendo que
4
sobre el mismo actué la fuerza de la gravedad, se puede fácilmente hacer creer al
piloto que sobre el actúa una aceleración especifica propia de los aviones.
1.3.3
SISTEMA VESTIBULAR O SISTEMA DE OIDO INTERNO
El aparato vestibular Figura 1.2 está ubicado en los oídos derecho e izquierdo, y es
el órgano encargado de detectar movimientos lineales y angulares de la cabeza en
un ambiente tridimensional. Si se compara al sistema vestibular con una plataforma
electrónica esta sería la plataforma giro-estabilizadora inercial. En ausencia de la
visión periférica, el sistema vestibular constituye el segundo mejor sensor de posición
del ser humano. Pero por otro lado el sistema vestibular funciona muy bien a nivel
terrestre, cuando se ingresa en el campo de la aviación las cosas cambian, ya que se
inducen una serie de ilusiones o falsas percepciones.
Figura 1. 2 Sistema Vestibular, tomado de [27]
El aparato vestibular está conformado por:
•
Canales Semicirculares; y
•
Órganos Otoliticos.
5
1.3.3.1
CANALES SEMICIRCULARES
Son la parte del sistema vestibular que es sensible a la aceleración angular, es decir
es la encargada de entregar información de pitch, yaw y roll (cabeceo, guiñada y
alebeo) al cuerpo humano, dependiendo de qué canal sea estimulado, este sensor
brinda información específica. En cada canal existe un líquido llamado endolinfa, el
cual circula por el canal si aparece una aceleración o desaceleración angular (Figura
1.3). “El movimiento de este liquido se transmite a uno cilios implantados en el
interior del canal, los que envían los estímulos recibidos a través del nervio vestibular
al cerebro” [2].
Figura 1. 3 Canales específicos de cada aceleración angular, tomado de [26]
Haciendo un análisis del funcionamiento de los canales semicirculares de la Figura
1.5 se puede ver que “cuando un canal semicircular es acelerado hacia la derecha, el
líquido del canal permanece en un principio estático por la inercia e inclina a los cilios
en el sentido opuesto al giro, interpretándose correctamente como un movimiento
angular hacia la derecha. Si el giro continúa a velocidad constante por
aproximadamente 20 a 30 segundos, el movimiento del líquido en el canal se iguala
con el movimiento de las paredes, dejando de inclinar los cilios, induciendo la falsa
percepción que la rotación ha cesado. Si se produce una desaceleración súbita, las
6
paredes del canal se desaceleran, pero el líquido continúa su movimiento por un
corto período de tiempo, inclinando los cilios en la dirección del líquido, induciendo
una falsa percepción de giro en el sentido opuesto al original” [2].
Figura 1. 4 Corte canales semicirculares, tomado de [2]
1.3.3.2
ORGANOS OTOLÍTICOS
Son pequeños sacos adyacentes a los canales semicirculares, cuyo interior contiene
otolitos, que son cristales insertados en una capa gelatinosa (Figura 1.5), que flota
sobre una cama de cilios sensitivos. Este sensor funciona de la siguiente manera: si
por alguna circunstancia hay un movimiento lineal, la capa gelatinosa se asienta de
una mayor o menor intensidad sobre la cama de cilios. Este proceso es interpretado
por el cerebro como aceleraciones o inclinaciones lineales o radiales.
En resumen estos órganos se encargan de la apreciación humana de su orientación
en el espacio ya que no solo indica señales de aceleraciones lineales sino que
además permite sensar la dirección de la fuerza de gravedad.
Los órganos otolíticos junto con los canales semicirculares pueden ser engañados si
se usa la vista como un factor adicional ya que esta es fácil de engañar.
7
Figura 1. 5 Corte órganos otolíticos, tomado de [2]
1.4
ROBÓTICA
La robótica es una rama de la tecnología que combina conocimientos muy
especializados que son: la electrónica, la mecánica, la programación y la ingeniería
en control, para crear máquinas denominadas robots. Existe un sinnúmero de tipos
de robots, pero el presente proyecto se centrara únicamente en un tipo especifico,
los robots paralelos, ya que la plataforma diseñada en el presente proyecto es un
robot paralelo.
1.4.1
EL ROBOT PARALELO
“Un robot paralelo es aquel cuya estructura mecánica está formada por un
mecanismo de cadena cerrada en el que el efector final se une a la base por al
menos 2 cadenas cinemáticas” [3].
8
En los robots paralelos existen dos eslabones llamados plataformas, uno es fijo y
conforma la base del robot paralelo y el otro es móvil, y es conocido como efector
final. Estas 2 plataformas están unidas por varios brazos.
Se entiende como cadena cinemática cerrada, cuando los brazos del robot están
fijos, en este caso a las plataformas base y el efector final.
A continuación se
muestra un ejemplo de robot paralelo en la Figura 1.6.
Figura 1. 6 Ejemplo de robot paralelo, tomado de [22]
Los robots paralelos cuentan con las ventajas de que son más precisos, más
veloces, tienen arquitectura más rígida, mayores características dinámicas y
soportan mayor carga en comparación con su peso. La clasificación que
generalmente se usa de los robots paralelos es:
•
Robots Planares; y
•
Robots Espaciales.
9
1.4.1.1
ROBOTS PLANARES
Se denominan “Planares” ya que sus movimientos se limitan a un plano, un ejemplo
de robot paralelo planar es aquel que contiene un solo lazo cinemático cerrado, lo
que causa que este tipo de robot solo tenga 2 grados de libertad (de aquí en
adelante se usará la abreviación de GL para grados de libertad) o 3GL dependiendo
del robot. A continuación se presenta un ejemplo de robot paralelo planar en la
Figura 1.7.
Figura 1. 7 Robot paralelo planar de 5 barras tomado de [23].
Como se puede observar en la Figura 1.7 los únicos movimientos que este tipo de
robot paralelo tiene son movimientos lineales en los ejes x, y. La manera que un
robot paralelo planar tenga 3GL es que se le agregue el movimiento rotacional en el
mismo plano.
1.4.1.2
ROBOTS ESPACIALES [23]
Este tipo de robot es el que se trata en el presente proyecto, el principal ejemplo de
un robot paralelo espacial, es la plataforma Stewart. La plataforma Stewart se creó
en el año 1965 con el objetivo de que sirva como una plataforma que sería usada
como simulador de vuelo. La plataforma Stewart es esencialmente un robot paralelo
que cuenta con 6GL, gracias a que posee un mayor número de actuadores (6
actuadores prismáticos). Este tipo de plataforma permite el movimiento longitudinal
10
(movimiento en los ejes X, Y, Z), además del movimiento rotacional (pitch, yaw y roll).
En la Figura 1.8 se muestra una plataforma Stewart.
Figura 1. 8 Plataforma Stewart, tomado de [24]
Como se observa en la Figura 1.8, la plataforma inferior es la plataforma fija,
mientras que la plataforma superior es la móvil, los 6 actuadores prismáticos le
permiten moverse en los 6GL, pero solo hasta cierto ángulo que es limitado por la
mecánica de la plataforma.
El presente proyecto se centra en el diseño y construcción de una plataforma Stewart
a escala, es por esto que en los siguientes capítulos se profundizara más en el
estudio de plataformas paralelas espaciales.
11
CAPÍTULO 2
DISEÑO Y CONSTRUCCIÓN DE LA PLATAFORMA
STEWART
2.1 DISEÑO MECÁNICO DE LA PLATAFORMA STEWART
En la actualidad existen una gran variedad de plataformas Stewart, dependiendo de
su diseño, de sus actuadores, etc. Es por eso que es de vital importancia identificar
el tipo de plataforma que se va a utilizar para el presente proyecto. Un punto de
partida para la selección de la plataforma adecuada, es el estudio de las plataformas
usadas en los simuladores de vuelo en la actualidad.
Para el diseño de una plataforma Stewart que sirva como simulador de vuelo, se
deben considerar los siguientes aspectos según David Allerton [1]:
•
Número de grados de libertad;
•
La carga máxima que deberá soportar;
•
El tamaño de la cabina de simulación;
•
Dimensiones del actuador;
•
Dinámica del actuador; e
•
Intercambio entre las respuestas de aceleración en X, Y Z.
Además, Allerton recomienda una configuración como hexápodo para optimizar la
funcionalidad de la plataforma.
Esta configuración consiste en 2 triángulos
equiláteros, uno de ellos de dimensiones superiores servirá de base mientras que el
otro servirá como efector de la plataforma. En la Figura 2.1 se muestra la estructura
de dicha plataforma.
12
Figura 2. 1 Configuración de plataforma hexápodo [1]
Como se puede observar, en la Figura 2.1, se recomienda que cada par de
actuadores partan del mismo punto en el triangulo equilátero base, formando 3 pares
de actuadores en total, mientras que para el triangulo efector, las articulaciones
deberán estar en un punto cercano los vértices del triangulo (estarán prácticamente
en los vértices como se muestra en la Figura 2.2). Este tipo de configuración es
llamada plataforma hexápodo.
Figura 2. 2 Plataforma hexápodo [4].
13
Para apreciar mejor la funcionalidad de la plataforma Stewart, se decidió desarrollar
una simulación mecánica usando el software Autodesk Inventor 2009, con lo cual se
obtuvo la plataforma mostrada en la Figura 2.3.
Figura 2. 3 Plataforma Stewart creada en Inventor 2009.
Mediante esta simulación se puede visualizar los diferentes movimientos del robot
paralelo. En base a esta simulación se construyó la plataforma Stewart, como se
aprecia en los numerales 2.1 y 2.2.
2.2 CONSTRUCCIÓN DE LA PLATAFORMA STEWART
A partir del diseño realizado mediante el software Autodesk Inventor 2009, se realizó
la construcción de la plataforma Stewart. Se tuvo que crear algunos substitutos a las
piezas originalmente concebidas, debido a lo complicado que es construirlas, pero
aún así el funcionamiento de la plataforma Stewart no se vió comprometido.
Los elementos requeridos para conformar la plataforma son:
•
Actuadores;
•
Plataforma móvil o efector final; y
•
Plataforma base o estática.
14
2.2.1 ACTUADORES
Los actuadores que generalmente se usan en las plataformas de simulación de vuelo
son actuadores prismáticos ya sean eléctricos o hidráulicos, pero debido a las
dimensiones reducidas del presente proyecto se pudo substituir dichos actuadores
por la unión de servomotores acoplados a barras circulares de acero.
2.2.1.1 SERVOMOTORES
Los servomotores son actuadores mecánicos que tienen las características de ser
pequeños, rápidos, de torque alto y muy precisos, se componen de un motor y un
conjunto de engranajes que permiten elevar el torque inicial del sistema.
Figura 2. 4 Servomotor HK15148
Estos elementos se controlan electrónicamente mediante impulsos de ancho variable
que deben refrescarse periódicamente, generalmente se lo hace a una frecuencia de
50Hz. Si se envía un impulso durante un tiempo determinado al servo, este se
moverá a un ángulo determinado como se muestra en la Figura 2.5.
Los servomotores generalmente tienen la limitación de giro, es decir solo giran en los
ángulos de 0 a 180°, es decir no giran completament e. Además existen 2 tipos de
servomotores analógicos y digitales, pero debido a que en este proyecto solamente
se usan servomotores analógicos, se omitirá el estudio de los servomotores digitales.
15
Figura 2. 5 Control de servomotores
Debido al alto torque de los servomotores se decidió usarlos para el presente
proyecto. El servomotor seleccionado es el HK15148 (mostrado en la Figura No.2.4),
cuyas características se muestran en la Tabla 2.1 y en la Figura 2.6.
Tabla 2. 1 Características eléctricas del servomotor HK15148, tomado de [25]
SERVO ANALÓGICO HK15148
TORQUE
2.3 kg @ 4.8V, 2.5 kg @ 6V
PESO
17g
0.17/60° @ 4.8V, 0.14/60° @
VELOCIDAD 6V
VOLTAJE
4.8V-6V
PLUG
JR
ENGRANAJE Compuesto de Carbón
Otra característica muy importante y que no es presentada por el fabricante es la
corriente que necesita el motor para su correcto funcionamiento. Mediante pruebas
se llegó a la conclusión de que este tipo de motor en particular necesita 350mA para
su correcto funcionamiento.
16
Figura 2. 6 Dimensiones del servomotor HK15148, tomado de [25]
Se decidió usar este servomotor debido a que tiene un torque suficiente para elevar
la plataforma, además es un servomotor muy económico y funcional.
2.2.1.2 ARTICULACIONES Y EJES
Figura 2. 7 Articulación universal.
Inicialmente se diseñaron articulaciones universales mostradas en la Figura 2.7 que
serian las articulaciones tanto entre el efector final con los ejes como se aprecia en el
punto 1 de la Figura 2.8 como entre los ejes con los servomotores como se aprecia
en el punto 2 de la Figura 2.8, pero como la construcción de este tipo de articulación
es muy complicada y costosa, se decido construir un substituto que permitiría la
libertad de movimiento, pero de construcción más simple.
17
Figura 2. 8 Ubicación de articulaciones
Se decidió acoplar un tornillo, un muelle de caucho, un pasador y una placa acoplada
al efector final como articulación como se muestra en la Figura 2.9. Este conjunto de
elementos a pesar de no proporcionar los grados de libertad que se obtienen de una
articulación universal, proporcionan los suficientes grados de libertad para el correcto
funcionamiento de la plataforma Stewart.
Figura 2. 9 Articulación del efector final con el eje
18
Para las articulaciones entre los ejes y los motores se creó un sistema similar al
usado en la Figura 2.9 con la diferencia de amplitud, ya que se están usando micro
servomotores. El pasador usado debe ser de radio inferior, como se muestra en la
Figura 2.10, en esta articulación se decidió no usar un muelle de caucho, en su lugar
se decidió dejar un espacio de holgura que permitirá a la articulación obtener un poco
de libertad de movimiento adicional. Los ejes son barras de acero de 0.5 cm de
diámetro y de 15 cm de largo. Los ejes acoplados con los pasadores tiene la medida
total de 18 cm.
Figura 2. 10 Articulación usada para los motores
En la Tabla 2.2 se establecen las medidas de cada estructura que influye en el
movimiento del efector. Estas medidas se utilizan en el Capítulo 3, para resolver la
cinemática inversa de la plataforma Stewart construida y de esta manera poder
realizar el control de la misma.
19
Tabla 2. 2 Medidas de estructura de actuadores
MEDIDAS DE COMPONENETES DE CADA ACTUADOR DE PLATAFORMA STEWART
ACTUADOR SERVOMOTOR
2.1cm
EJE DEL ACTUADOR
18cm
2.2.2 PLATAFORMA MÓVIL O EFECTOR FINAL
Se decidió construir el efector final de madera, ya que es liviano y de fácil
construcción. Generalmente, el efector final se diseña dependiendo del peso que
debe soportar, pero debido a que este proyecto únicamente se centra en la
construcción de un modelo a escala, se ha decidido omitir este cálculo ya que esta
fuera del alcance del mismo y no tiene mayor influencia en la funcionalidad.
Figura 2. 11 Efector final
20
Se decidió construir el efector final con las medidas que se aprecian en la Figura
2.11, inicialmente se construyó un triangulo equilátero con 15cm por lado, luego se
elimino las puntas con 3cm de cada lado, esto se lo realizó con el propósito de ubicar
las articulaciones previamente diseñadas en el numeral 2.2.1.2 en las aristas
formadas como se aprecia en la Figura 2.12
Figura 2. 12 Ensamblaje de efector final
2.2.3 PLATAFORMA BASE O ESTÁTICA
Al igual que el efector, se decidió construir esta plataforma base de madera ya que la
única utilidad de esta plataforma es mantener a los motores en una ubicación fija.
Aunque se debe considerar como se muestra en la Figura 2.1, que la plataforma
base debe orientar a los motores de tal manera que estén ubicados en el centro de
cada lado de un triangulo equilátero de tamaño superior a la plataforma móvil como
se aprecia en la Figura 2.13.
21
2.2.4 ESPECIFICACIONES DE ENSAMBLAJE
Para el correcto funcionamiento de la plataforma se deben establecer algunas
especificaciones de alineación de todos sus elementos, este punto es de vital
importancia para el análisis de la plataforma que se realizó en los siguientes
numerales del Capítulo 2.
Figura 2. 13 Especificaciones de la plataforma
Como se muestra en la Figura 2.1, cada par de actuadores en cada lado del efector
final parte del mismo punto, para este caso eso es imposible, es por eso que se
decidió orientar los servomotores de tal manera que el actuador de cada motor casi
se toque como se muestra en la Figura 2.13. Esta especificación se decidió tomarla
para que la plataforma diseñada se parezca lo más posible una plataforma con
actuadores prismáticos. Además se decidió que los motores estén ubicados a una
distancia d1 de 3.5 cm del centro de la proyección del efector final (en su posición
inicial, es decir en el centro geométrico) sobre la plataforma base y se alejen a una
distancia d2 de 2.1 cm del efector final como se muestra en la Figura 2.13.
22
Figura 2. 14 Especificaciones de la plataforma
Otra especificación que se decidió tomar, en cuanto a la orientación de los motores,
es que éstos deben tener un ángulo de inclinación de 10° respecto a la proyección
del efector final en su posición inicial sobre la plataforma base como se muestra en la
Figura 2.14
Figura 2. 15 Ensamblaje total de la plataforma Stewart
23
Esta especificación se hace con el propósito de facilitar el movimiento del efector
final y proteger a los motores de efectuar un movimiento que podría forzar el
actuador de cada servomotor.
El ensamblaje completo de la plataforma Stewart se puede apreciar en la Figura
2.15.
2.3 LIMITACIONES DE MOVIMIENTO
La plataforma Stewart se caracteriza por simular el movimiento de un avión real
durante un vuelo simulado, pero se debe considerar que los movimientos de la
plataforma Stewart están limitados por la longitud de los actuadores, es decir no
podrá generar las fuerzas que interactúan en un vuelo real, pero como ya se revisó
en el Capítulo 1 la plataforma Stewart puede engañar al sistema vestibular y a la
vista para crear la fantasía de que estas aceleraciones creadas por la plataforma son
idénticas a las de un vuelo real.
Según David Allerton [1] los requerimientos de movimiento de la plataforma Stewart
son indicadas en la Tabla 2.3.
Tabla 2. 3 Requerimientos de Movimiento [1]
Axis
Desplazamientos Velocidad
Aceleración
Vertical
± 10,4m
9 m/s
1G
Lateral
± 18,3m
11 m/s
1G
Longitudinal
± 18,3m
12 m/s
1G
Pitch
±35°
22°/s
400°/s2
Yaw
±33°
24°/s
400°/s2
Roll
±37°
28°/s
400°/s2
24
Pero como la plataforma diseñada en el presente proyecto es una plataforma a
escala, no se tomaron los valores de desplazamiento vertical, lateral y longitudinal,
velocidad y aceleración, aunque se mantuvo los ángulos de pitch, yaw y roll.
2.4 DISEÑO CINEMÁTICO
Dos aspectos fundamentales para el diseño de una plataforma Stewart son:
•
Cinemática inversa; y
•
Cinemática directa.
A lo largo de los años 80 y 90 se han desarrollado diferentes métodos para resolver
el problema de la cinemática directa, que en lo que corresponde a robots paralelos
es un problema cuya resolución es sumamente complicada debido a los lazos
cerrados que conforman este tipo de robots.
2.4.1 ESPACIO OPERACIONAL DE LOS ACTUADORES
El espacio operacional de un robot paralelo depende de los actuadores. Sea p un
vector de n elementos que representan la posición de los n actuadores, el espacio
operacional es el conjunto de todos los vectores que conforman todas las posiciones
y orientaciones del efector final y sus correspondientes vectores p de todos y cada
uno de sus actuadores.
Para el presente proyecto el espacio operacional corresponde a los vectores
correspondientes a las posibles posiciones y orientaciones del efector final y sus
correspondientes posiciones de cada actuador (es decir el ángulo de cada servo).
Debido a la dificultad que representa calcular el espacio operacional de una
plataforma construida, este espacio operacional se dedujo en la etapa de pruebas y
resultados en el Capítulo 4.
25
2.4.2 CINEMÁTICA INVERSA
La resolución del problema de la cinemática inversa en la plataforma Stewart es de
vital importancia, ya que la cinemática inversa permite conocer la posición de cada
actuador conociendo la orientación del efector final. Es decir, para el caso de diseño
de este proyecto en particular, permitirá saber cuál es el ángulo de cada servomotor
conociendo la orientación de la plataforma móvil.
Pero antes de resolver este problema, primero se debe conocer algunos conceptos
que son primordiales en la resolución de la cinemática inversa de un robot paralelo
(plataforma Stewart para este caso).
2.4.2.1 MATRICES DE TRANSLACIÓN Y ROTACIÓN
Para mover un objeto en las 3 dimensiones espaciales es necesario conocer los
conceptos básicos de orientación.
Primero hay que partir del sistema de referencia. Para visualizar un objeto en 3D éste
debe quedar ubicado en un sistema de referencia, como se muestra en la Figura
2.16. El objeto puede tener su orientación en el plano Z (orientación derecha) o en el
plano –Z (orientación izquierda).
Figura 2. 16 Sistema de referencia
26
Un objeto ubicado en el espacio puede cambiar su posición y/o tamaño respecto a su
sistema de referencia mediante transformaciones lineales, es decir si un objeto
cambia su escala, se traslada, rota o se refleja es gracias a la transformación lineal
que sufre.
Gracias a la herramienta informática Matlab se puede entender mejor las
transformaciones lineales que sufre un objeto, gracias a la notación matricial que
usa.
Por ejemplo, un punto expresado mediante un vector
,
puede ser
trasladado, rotado, etc. Si a este vector se le aplica una matriz de transformación,
supóngase que se desea trasladar el punto
sumar el vector
,
,
hasta el punto
por un vector de traslación T.
,
,
,
, solo se debe
(2.1)
Si se desea trasladar no solo un punto sino un objeto completo, se debe someter a
dicho vector de traslación a los todos los puntos significativos de dicho objeto.
Por otro lado si se desea rotar o cambiar de escala a un objeto, se debe multiplicar el
vector
,
por las matrices de transformación.
,
,
,
,
(2.2)
(2.3)
Como se observa en las. Ecuaciones (2.1), (2.2) y (2.3), para trasladar un objeto, se
debe sumar el vector de traslación y para rotarlo o cambiar su escala es necesario
multiplicarlo por las matrices de transformación. Es decir, si se desea generalizar el
proceso de transformación, éste se vuelve complicado, es por eso que para
generalizar dicho proceso se debe homogeneizar el sistema de referencia (sistema
de coordenadas homogéneo).
Esto se logra agregando una dimensión más al
27
sistema de referencia dado. Agregando la dimensión extra en la Ecuación (2.1) se
tiene la siguiente ecuación.
,
,
, ,
Con el objetivo de facilitar el cálculo ω’ y ω son iguales a 1. Por otro lado si se
quiere trasladar un objeto y luego rotarlo, las operaciones necesarias son las
siguientes:
,
,
,
, ,
, , ,
,
,
, ,
Como se observa se necesitan 2 operaciones por cada punto.
Pero existe una
manera más simplificada de realizar esta operación: multiplicando las matrices T*R
(necesariamente en este orden, ya que la propiedad conmutativa no se cumple en
estos casos) para obtener una matriz X. Por lo tanto, se puede obtener el mismo
resultado usando la siguiente ecuación.
,
,
,
, , ,
Este tipo de matriz es llamada matriz neta. La forma general de una matriz neta es la
indicada en la Ecuación (2.4):
(2.4)
Donde aij representa el cambio de escala y/o rotación, mientras di representa el
cambio de traslación.
Cuando se analiza una matriz de traslación se puede observar que es bastante
simple, únicamente se ubican los valores de dx, dy y dz. Mientras que para la matriz
rotacional no resulta tan simple. En primer lugar se debe elegir en qué sentido se
28
quiere girar y para hacer esto se debe elegir uno de los ejes de referencia para hacer
girar un objeto en ese sentido. A manera de ejemplo, se deducirá la matriz rotacional
en el eje z (es decir la matriz rotacional en 2D).
Figura 2. 17 Giro de un vector en 2D
La Figura 2.17 muestra el giro de un vector v en 2D, inicialmente el vector v está
ubicado en el punto
,
.
,
, luego este vector gira un ángulo α hasta llegar al punto
De la Figura 2.17 se puede deducir las siguientes ecuaciones:
(2.5)
!"
(2.6)
Despejando (2.5) y (2.6) se obtienen:
!"
(2.7)
(2.8)
29
Resolviendo la suma de ángulos de (2.7) y (2.8) se obtiene:
$ !"
!"
$"'(
!"
%
&
)*
&
Multiplicando r por cada elemento del binomio se obtiene:
!"
!"
"'(
%
!"
(2.9)
)*
(2.10)
!"
Se sabe, gracias a la Figura 2.17, que
y
.
Reemplazando estos valores en (2.9) y (2.10) se obtiene:
!"
%
)*
Como las coordenadas en z no varían y expresando las ecuaciones obtenidas como
un sistema de coordenadas homogéneo se obtiene:
+
%
!"
!"
+ (2.11)
Siendo α el ángulo de giro alrededor del eje z en sentido anti horario.
Las matrices de rotación respecto a los ejes X y Y son:
+
)*
%
)*
+ (2.12)
30
+
%
!"
!"
+ (2.13)
2.4.2.2 LOS ÁNGULOS DE EULER Y LOS ÁNGULOS DE TAIT-BRYAN
Los ángulos de Tait-Bryan, nombrados así en honor al matemático escocés Peter
Guthrie Tait, son tres ángulos que son usados para describir una rotación en el
espacio euclidiano tridimensional, mediante 3 rotaciones distintas entres sí. En la
aeronáutica se utiliza el nombre de ángulos de Euler para hablar de los ángulos, que
en geometría son conocidos como los ángulos de Tait-Bryan. Como habitualmente
en la aviación se les conoce como ángulos de Euler, de aquí en adelante se
considerara estos ángulos también como ángulos de Euler.
Figura 2. 18 Ángulos de Tait-Bryan
Como se muestra en la Figura 2.18, el ángulo θ corresponde al ángulo de pitch, el
ángulo φ corresponde al ángulo de roll y el ángulo ψ corresponde al ángulo de yaw.
31
Los ángulos de Euler se usan para orientar el efector de la plataforma Stewart.
A partir de las matrices de rotación (2.11), (2.12) y (2.13), estudiadas en el numeral
2.4.2.1, se puede definir las matrices del cuerpo rígido rotando (eliminando la
coordenada extra de homogeneidad solo para ilustrar el funcionamiento de esta
matriz):
,,
-
)* ,
,
%
,)* ,
,/
)* /
/
,.
%
/
)* /
-
)* .
%
.
.
)* .
-
Multiplicando estas tres matrices, se obtiene una matriz completa, llamada matriz
coseno directa, que dada por la siguiente expresión:
,/
,.
,,
(2.14)
Para el presente proyecto se utilizó la matriz de rotación de Euler, que en el Capítulo
3 se usa para rotar el efector final.
-
)* /)* . )* /
/)* .
/
%
.
.
,%
/)* , )* /
.
, )* /)* ,
/
)* .
,
.)* ,
/
.)* , % )* /
)* .)* ,
,
,- (2.15)
Esta matriz de rotación general Ecuación 2.15, permite rotar un cuerpo con los
ángulos pitch, yaw y roll.
2.4.2.3 RESOLUCIÓN DEL PROBLEMA DE CINEMÁTICA INVERSA
Para resolver la cinemática inversa de la plataforma Stewart construida, es necesario
conocer la geometría de la plataforma en su totalidad, es por eso que en el numeral
2.2 se estableció las medidas de cada actuador y de las plataformas base y móvil.
32
Una vez que se obtienen estos datos geométricos, se puede iniciar la resolución del
problema de cinemática inversa de un robot paralelo.
Debido a que existe una gran variedad de mecanismos en lazo cerrado en los robots
paralelos, el análisis estructural será muy diferente entre ellos, y dependerá
netamente de la geometría del robot. Es por eso que se decidió realizar el análisis
de las estructuras que se parezcan a la construida.
Figura 2. 19 Grupo de generadores de movimiento, tomado de [28]
El movimiento del efector dependerá de las cadenas cinemáticas también llamadas
grupo generador de movimiento, a manera de ejemplo y para entender el
funcionamiento de los grupos generadores de movimiento se enumera un tipo básico
33
de generadores de movimiento que son clasificados en cuatro tipos1 que son: RRPS,
RPRS, PRRS y RRRS. El tipo RRPS como se muestra en la Figura 2.19 consiste en
una junta universal (RR), un actuador prismático (P) seguido por una junta tipo bola
(S).
El generador del tipo PRRS consiste en un actuador prismático (P), seguido por una
junta universal (RR) y, finalmente seguido por una junta tipo bola (S). El generador
del tipo RPRS consiste en una junta revoluta (R), seguida por un actuador prismático
(P), otra junta revoluta (R) y una junta esférica (S). Y finalmente, el generador tipo
RRRS consiste en una junta revoluta (R), una junta universal (RR) y una junta
esférica (S).
Figura 2. 20 Robot de 6 cadenas UPS, tomado de [28]
Dentro de la clasificación de los robots paralelos de 6 grados de libertad se encontró
el tipo más básico, en cuanto a estructura se refiere que es el robot de 6 cadenas
RRPS o también conocido como UPS (junta revoluta RR=U) o robot hexápodo
(palabra registrada como British trade Mark 2153930 por la tecnología geodésica en
1
*R=rotacional; P=prismática; S=esférica
34
el contexto de máquinas) [5]. Este robot, como se muestra en la Figura 2.20, consta
de 6 cadenas que contienen una junta universal, un actuador prismático y una junta
esferica.
Para calcular la cinemática inversa de este tipo de robot, el único dato que debe
obtenerse dependiendo de la orientación que tenga el efector, dependiendo de su
posición en los ejes X, Y y Z y los ángulos de Euler pitch, yaw y roll, es la longitud del
actuador. Esto se puede obtener fácilmente usando la matriz de rotación general y la
matriz de rotación vistas en el numeral 2.4.2.2. Aunque la matemática puede ser
complicada, si se realiza análisis geométrico completo de la estructura, el análisis
cinemático inverso es bastante simple. En el Capítulo 3, se realiza el algoritmo que
resuelve la cinemática inversa de la plataforma construida.
Otro tipo de estructura de 6 grados de libertad que se analiza en este capítulo, por su
similitud con la plataforma construida para el presente proyecto, es el robot paralelo
de 6 cadenas tipo RUS sugerido por Hunt en 1983 [6], el cual, como se muestra en la
Figura 2.21 consiste en una junta revoluta (R), una junta universal (U) y una junta
esférica (S).
Figura 2. 21 Robot paralelo propuesto por Hunt (1983).
35
Se seleccionó este tipo de estructura, ya que como se observa en la Figura 2.21,
posee actuadores que dependen de un ángulo específico para fijar la posición y
orientación del efector, como lo hace la plataforma construida, mediante los
servomotores.
La cinemática inversa de este tipo de estructura es más compleja que la anterior, ya
que la dependencia del ángulo del actuador complica los cálculos.
En el Capítulo 3 se muestra el algoritmo que resuelve este problema.
2.4.3 CINEMÁTICA DIRECTA
El análisis cinemático directo en un robot paralelo corresponde a un análisis
estructural mediante el cual si se altera la distancia o el ángulo del actuador (que
corresponde a este caso), esto influirá en la posición y/o orientación del efector final.
Este tipo de análisis es de vital importancia para los robots serie, pero en los robots
paralelos no es tan importante, esto corresponde una ventaja sustancial ya que el
análisis de la cinemática directa en un robot paralelo es sumamente complicado. Es
por eso que se decidió no realizar el estudio cinemático directo de la plataforma
Stewart ya que esta fuera del alcance de este proyecto.
36
CAPÍTULO 3
DISEÑO E IMPLEMENTACIÓN DE LA INTERFAZ DE
CONTROL
3.1 ADQUISICIÓN DE DATOS DEL SIMULADOR DE VUELO.
La mayoría de simuladores de vuelo no contienen este tipo de programas, es por eso
que, este proyecto se centra en el estudio de los simuladores que permitan la
adquisición de datos. Se profundiza en el estudio de un simulador en particular, el
simulador de vuelo Flight Simulator X de Microsoft [7], el cual fue escogido por
proporcionar una experiencia de vuelo muy similar a la real.
3.1.1 SIMULADORES DE VUELO COMERCIALES
A continuación se estudian los diferentes simuladores de vuelo que permiten la
adquisición de datos de aceleración.
3.1.1.1 FLIGHT SIMULATOR X
Es el simulador de vuelo escogido para este proyecto. Creado por Microsoft, Flight
Simulator X es un simulador de vuelo muy popular entre pilotos profesionales y
amateurs. Ofrece una experiencia de vuelo muy parecida a la real, y es ideal para el
entrenamiento de pilotos.
Con una gran variedad de aviones, avionetas,
helicópteros, etc. Permite al usuario ponerse al frente de un avión sin la necesidad
de contar con uno.
Flight Simulator X cuenta con un programa adicional llamado Simconnect, el cual
para este proyecto en particular, permite adquirir datos de aceleración del avión.
Más adelante, en el numeral 3.1.2, se profundiza en el estudio de este programa y el
uso de SimConnect.
37
3.1.1.2 X-PLANE 9
X-Plane 9 por la precisión de los cálculos del efecto del aire sobre las superficies de
los aviones simulados es muy parecido a un vuelo real, actualmente X-Plane es
considerado uno de los mejores simuladores de vuelo junto con Flight Simulator de
Microsoft.
X-Plane cuenta con una gran gama de aviones disponibles, incluso
helicópteros, cazas, etc.
X-Plane usa un plug-in llamado XPUIPC para la adquisición de datos, el cual emula
una interfaz FSUIPC para adquirir y modificar datos en el simulador de vuelo
X.Plane.
La interfaz FSUIPC es un módulo creado por Peter Dowson, que permite la
comunicación entre los simuladores de vuelo y los periféricos [8].
3.1.2 ADQUISICIÓN DE DATOS MEDIANTE EL PROGRAMA SIMCONNECT
Simconnect SDK puede usarse para crear componentes add-on para el simulador de
vuelo Flight Simulator X de Microsoft. Estos componentes pueden ser escritos en los
lenguajes de programación C, C++, C# (C sharp), Microsoft .NET, VB.net.
Estos componentes adicionales sirven para habilitar nuevo hardware que trabaje con
el simulador, crear nuevos planes de vuelo, grabar y monitorear el vuelo, etc.
Para este proyecto en particular servirá para la adquisición de datos de aceleración.
Para este proyecto se decidió realizar la programación en C, mediante el programa
Visual Studio 2008.
Para crear este complemento, primero se debe cumplir con las siguientes
condiciones:
•
Crear una aplicación de Consola Win32, solo si el complemento no usa una
interfaz de usuario.
38
•
Incluir la cabecera SimConnect.h
•
Vincular la librería SimConnect.lib
•
Usar las funciones específicas creadas por Microsoft para Simconnect.
Se decidió crear una aplicación Win32 usando el programa Visual Studio 2008 para
entender las funciones usadas por Simconnect.
Como primer paso es necesario crear un proyecto como aplicación Win32, además
hay que asegurarse de que sea un proyecto vacio (Empty project). Una vez que se
inicializado el proyecto se debe agregar la cabecera SimConnect.h al proyecto, para
eso es necesario ir a la pestaña de Project y dar clic en la opción de Properties, así
se despliega la ventana mostrada en la Figura 3.1.
Figura 3. 1 Properties page
En esta ventana se debe dar clic en la opción C/C++ (General), y en la opción
include directories se debe agregar la dirección de la cabecera SimConnect.h
("C:\Program
Files
(x86)\Microsoft
Games\Microsoft
Flight
Simulator
X
SDK\SDK\Core Utilities Kit\SimConnect SDK\inc), en la Figura 3.2 se muestra la
configuración de la cabecera.
39
Figura 3. 2 Configuración de cabecera
A continuación se debe vincular la librería SimConnect.lib a este proyecto, para eso
se debe dar clic en la opción Linker\General y se debe agregar la dirección de la
librería SimConnect.lib en la opción Additional Library Directories (C:\Program Files
(x86)\Microsoft
Games\Microsoft
Flight
Simulator
X
Kit\SimConnect SDK\lib), como se muestra en la Figura 3.3.
Figura 3. 3 Vinculación de librería I
SDK\SDK\Core
Utilities
40
Como paso final se debe dar clic en la opción Linker\Command Line y se debe
agregar el nombre de la librería SimConnect.lib en el cuadro de texto Additional
Options. En la Figura 3.4 se muestra dicha vinculación.
Figura 3. 4 Vinculación de librería II
Para la programación de esta aplicación es necesario conocer las distintas funciones
creadas por SimConnect de Microsoft [9] además se estudio las distintas variables
con las que cuenta Simconnect [10]. Debido a la gran cantidad de funciones, solo se
trataran las funciones que sean requeridas para la adquisición de datos.
Las Figuras 3.5, 3.6 y 3.7 correspondientes al numeral 3.1.2.1 muestran los
diagramas de flujo del programa de adquisición de datos.
3.1.2.1 DIAGRAMA DE FLUJO DEL PROGRAMA DE ADQUISICIÓN DE DATOS
La Figura 3.5 corresponde a el programa principal mientras las Figuras 3.6 y 3.7
corresponden a las subrutinas “ADDATA” y “Dispatchproc”, respectivamente.
41
Figura 3. 5 Programa Principal
Figura 3. 6 Función Addata
42
Figura 3. 7 Dispatchproc
El programa presentado permite la adquisición de los datos de aceleración X, Y, Z,
pitch, yaw y roll del simulador de vuelo Flight Simulator X, más adelante se usa este
programa vinculado con Matlab para el tratamiento de datos.
3.1.2.2 RESULTADOS DE ADQUISICIÓN DE DATOS
Mediante el programa previamente diseñado, se muestra en la Figura 3.8 los
resultados obtenidos.
La Figura 3.8 ilustra los resultados adquisición mientras el simulador de vuelo está
funcionando, como se ve los datos de aceleración y ángulos de orientación van
cambiando con el movimiento del avión, este programa inicialmente fue creado para
43
conocer las funciones del programa Simconnect, más adelante se usa este programa
para adquirir datos desde Matlab.
Figura 3. 8 Resultados de adquisición
3.1.3 ADQUISICIÓN DE DATOS MEDIANTE LA HERRAMIENTA
COMPUTACIONAL MATLAB
Una vez realizada la adquisición de datos usando el lenguaje C++, se tiene el
problema de enviar estos datos hacia el software Matlab, ya que es en este software
donde se va a realizar la interfaz de comunicación PC-plataforma. Es por eso que se
decidió realizar modificaciones al programa creado en Visual C++ y acoplar el
programa para que funcione en Matlab. Para lograr esto es necesario conocer cómo
funcionan cierto tipo de archivos conocidos como MEX-files.
3.1.3.1 ARCHIVOS MEX
Es posible compilar programas escritos en lenguajes C, C++ o Fortran, de tal manera
que este programa pueda ser llamado desde Matlab. Este tipo de programa es
llamado ejecutable de Matlab o MEX (Matlab Executable); este tipo de archivo
trabaja de igual manera que una función de Matlab, pero la gran diferencia es que
tiene el rendimiento que brindan los lenguajes como C y C++.
Esto puede ser un tanto paradójico ya que la programación en C++ es más
complicada que la programación en Matlab cuando se tiene un archivo .m. Es por
44
eso que a veces es mucho más práctico optimizar el archivo .m que crear un MEX
file, por otro lado existen funciones o programas .m ineficientes, y si se quiere que el
programa funcione rápidamente, es necesario crear un MEX file.
Figura 3. 9 Archivos MEX
Para transformar un archivo C++ en un MEX file, es necesario agregar una cabecera
conocida como mex.h y una mexFunction al código creado en C++.
La mexFunction será ejecutada por Matlab y debe tener la siguiente estructura.
Donde “nlhs” es el número de variables de salida, “mxArray” representan variables
que solo usa Matlab, “plhs” es un arreglo de punteros “mxArray” de las variables de
salida, “nrhs” es el número de variables de entrada y “prhs” es un arreglo de punteros
mxArray de las variables de entrada.
Una vez creado el programa se debe compilar y crear el archivo MEX de la siguiente
forma.
45
En este caso en particular se debe agregar al código la cabecera SimConnect.h y la
librería SimConnect.lib para que este MEX file funcione correctamente. Los archivos
SimConnect.h y SimConnect.lib deben estar ubicados en el directorio actual de
Matlab.
El programa incluye la cabecera de SimConnect pero para incluir una librería se debe
en el momento de compilar el programa agregar dicha librería como se muestra a
continuación.
Esto es de vital importancia para el correcto funcionamiento del programa.
Una vez compilado el programa, Matlab creará un nuevo archivo que tendrá
extensión .mexw32. Este tipo de archivo trabaja como una función de Matlab y será
llamado de la misma manera.
Un dato importante es que este archivo del tipo mexw32 solo funcionará con las
versiones de Matlab 7.0 en adelante, si se desea que trabaje con versiones
anteriores se debe cambiar su extensión por .dll.
En programa completo de adquisición de datos usa los MEX files de Matlab creados
previamente.
Una vez que se adquirió datos del simulador de vuelo, el siguiente paso es
transformar éstos a datos que puedan ser enviados a la plataforma Stewart
diseñada.
46
3.2 ALGORITMOS DE CONTROL DE MOVIMIENTO
Los simuladores de vuelo reciben información del piloto mediante los controles en la
cabina del simulador, esta información es sometida a un modelo matemático del
avión que se use en la simulación, el mismo que calcula la respuesta del avión. Esta
información es adquirida mediante el programa diseñado en el numeral 3.1.2.1. El
siguiente paso es procesar esta información a través de un filtro especial llamado
filtro “Washout”, cuyo algoritmo fue estudiado por Reid y Nahon [11] como la opción
para el control de plataformas de simulación.
3.2.1 FILTROS WASHOUT
El filtro washout se encarga de transformar la información tomada del simulador de
vuelo para luego convertirla en datos de posición de la plataforma Stewart,
consiguiendo así engañar al sistema vestibular, simulando las aceleraciones sentidas
en un vuelo real, además evita que la plataforma se salga de su espacio de trabajo.
Reid y Nahon [11] desarrollaron varios algoritmos de movimiento para plataformas de
simulación de vuelo, los cuales son:
•
Algoritmo Clásico para filtros washout;
•
Algoritmo Óptimo para filtros washout; y
•
Algoritmo Adaptivo Coordinado para filtros washout.
El objetivo de cada uno de estos algoritmos es tomar los datos de aceleraciones en
“X”, “Y” y “Z” y velocidades angulares y convertirlos en posición del efector final sin
salirse de su espacio de trabajo.
3.2.1.1 WASHOUT CLÁSICO [11]
El funcionamiento del algoritmo clásico, como se muestra en la Figura 3.10 consiste
en filtros pasa alto, filtros pasa bajo, integraciones y escalamientos.
47
En primer lugar el filtro toma los datos de aceleración lineal y los somete a un filtro
pasa alto para eliminar la componente de baja frecuencia, es decir en este punto solo
se trabajó con los transitorios, luego el filtro clásico integra 2 veces la aceleración
para finalmente obtener la posición lineal del efector final.
El objetivo del filtro
washout es mover el efector final a la posición deseada rápidamente para simular la
aceleración en el piloto y luego volver a su posición inicial, sin producir una
aceleración que pueda ser sentida por el piloto del simulador, de ahí viene su nombre
de filtro washout.
Figura 3. 10 Algoritmo del filtro clásico washout [12]
Ya que las aceleraciones lineales no pueden ser simuladas en su totalidad por los
movimientos también lineales del efector final, se decidió crear otro bloque paralelo
llamado “Tilt Coordination”. La etapa Tilt Coordination se encarga de agregar una
componente gravitatoria minimizada a la aceleración longitudinal con el propósito de
mejorar la fidelidad del movimiento, esto se logra ya que los otolitos no son capaces
de distinguir la diferencia entre la aceleración de traslación y la aceleración de la
gravedad. Al combinar la aceleración traslacional y la componente de la gravedad
producida por la inclinación se logra engañar al conductor haciéndole creer que se
trata únicamente de una aceleración traslacional.
48
Esta aceleración puede ser interpretada por el sistema vestibular como aceleración
positiva o negativa dependiendo de la dirección de la inclinación.
Para lograr esta combinación de aceleraciones es necesario operar con
componentes de baja frecuencia de las aceleraciones (ax y ay) es por eso que se
necesita un filtro pasa bajo para tomar únicamente el comportamiento en estado
estable de las señales de aceleración traslacional.
Para calcular el ángulo de inclinación necesario para un determinado momento,
primero se debe conocer la componente de aceleración en estado estable, y luego se
calcula el ángulo de inclinación que proporcionara una componente de la gravedad
que puede producir la aceleración deseada. Los ángulos se obtienen de la siguiente
manera.
0
1
5
1
2
0 )* 1
2
3
0
1
304
5
4
0 )* 1
(3.1)
(3.2)
Donde ϕ es el ángulo de pitch y ϕ es el ángulo de roll. Con las Ecuaciones 3.1 y 3.2
se pueden calcular los ángulos de tilt coordination, que sumados a los ángulos de
inclinación, permiten obtener los ángulos de inclinación totales.
La limitación de este algoritmo es que falsas entradas son producidas por abruptos
cambios en la simulación, debido a las características lineales del filtro pasa alto.
Los parámetros de cada filtro deben ser cuidadosamente calibrados, esta etapa se
detalla en el Capítulo 4 de pruebas y resultados.
49
3.2.1.2 WASHOUT ÓPTIMO
Este algoritmo es una ampliación del algoritmo clásico, funciona a base de filtros
pasa altos y pasa bajos lineales como se muestra en la Figura 3.11. Este filtro tiene
la cualidad de que la diferencia entre las sensaciones experimentadas por el piloto
con las creada por el simulador son mínimas ya que consiste en un modelo que
relaciona las aceleraciones y rotaciones del avión.
Figura 3. 11 Filtro washout óptimo [21]
La desventaja del algoritmo óptimo es que requiere la manipulación de una serie de
pesos Wn como se aprecia en la Figura 3.11, los cuales no tiene una representación
física clara. Esto hace que implementar este algoritmo sea demasiado complicado,
aunque se conoce que se está investigando el uso de algoritmos del sistema
vestibular para resolver este problema [12].
Los valores aAA y βA corresponden a los valores de aceleración de la cabina del
avión y los ángulos de Euler; SI y βS corresponden a la aceleración de traslación y
los ángulos rotacionales y LIS corresponde al valor de limitación que deben tener los
valores de aceleración y ángulo de orientación.
50
El funcionamiento de este algoritmo no es profundizado en el presente proyecto
debido a la complejidad y las desventajas que presenta.
3.2.1.3 ALGORITMO ADAPTIVO
Funciona esencialmente como el algoritmo clásico con la diferencia que
constantemente se auto modifican los valores de ganancia y frecuencia de corte de
todos los filtros pasa alto y pasa bajo, para así sacar el máximo provecho al algoritmo
clásico, eliminando los errores producidos por los filtros en el algoritmo clásico. En la
Figura 3.12 se aprecia un esquema adaptivo.
Figura 3. 12 Algoritmo Adaptivo [21]
Este algoritmo se corrige así mismo en “tiempo real” es por eso que es considerado
como adaptivo. La adaptación es llevada a cabo usando el método de descenso por
gradiente.
51
La limitación de este algoritmo es por un lado la complejidad del mismo y además la
carga computacional que representa implementar este algoritmo, ya que los valores
de ganancia y frecuencia de corte son constantemente calculados.
El valor de aAI corresponde al dato de aceleración de cabina obtenida del simulador
de vuelo, el valor de βA corresponde al ángulo de orientación obtenido del simulador
de vuelo y los valores SI y βS corresponden a la traslación y posición de la plataforma
respectivamente.
3.2.1.4 SELECCIÓN DEL ALGORITMO A USAR EN EL PRESENTE PROYECTO
Una vez que se realizó el análisis de los diferentes algoritmos para el control de la
plataforma Stewart, se decidió optar por el algoritmo clásico, ya que como se vió en
los numerales 3.2.1.2 y 3.2.1.3, los algoritmos óptimo y adaptivo parten del algoritmo
básico, es decir, una vez implementado el algoritmo clásico, este puede ser ampliado
creando filtros óptimos o adaptivos, además este algoritmo es mucho más sencillo y
funcional, si bien no es óptima, siendo uno de los algoritmos más usados en
simuladores de vuelo comerciales.
Otro factor importante para la selección del algoritmo clásico es que éste tiene una
carga computacional en su implementación, inferior a los otros algoritmos. Esto es
una ventaja ya que el presente proyecto tiene como requisito que la interfaz diseñada
debe trabajar conjuntamente con el simulador Flight Simulator X en la misma
computadora y esto representa una carga computacional enorme.
3.3 DESARROLLO DE LA INTERFAZ DE CONTROL
Como se apreció en el numeral 3.2.1.4, se decidió implementar el algoritmo clásico
washout. Este algoritmo es implementado dentro del software Matlab. Se creó una
GUI (Grafical User Interface), además se creó algunas funciones mediante archivos
.m.
52
3.3.1 GRAFICAL USER INTERFACE DESIGN ENVIROMENT (GUIDE)
Los GUI son la forma como el usuario interactúa con el programa, se compone a
base de botones, menús, campos de texto, etc. El software Matlab cuenta con un
ambiente de diseño de GUI’s conocido como GUIDE, de esta manera se puede crear
programas que necesiten el ingreso continuo de datos. Su programación es muy
similar a la programación de un programa .m con la diferencia de que cuenta con una
especie de panel principal como se muestra en la Figura 3.13, en el cual es posible
insertar botones, gráficos, sliders, Tablas, textos, etc.
Figura 3. 13 Ambiente de diseño para la interfaz gráfica de usuario
Este ambiente de diseño permite crear una interfaz gráfica para el control de la
plataforma Stewart. Mediante archivos .m se creará la programación que permita la
implementación del filtro washout, la resolución de la cinemática inversa del robot
paralelo y la comunicación PC-plataforma.
53
3.3.2 DISEÑO DEL FILTRO WASHOUT CLÁSICO
Para implementar un filtro washou, es necesario entender el funcionamiento de los
filtros digitales particularmente de los filtros pasa bajos y filtros pasa altos, además
de seleccionar el método de integración apropiado que brinde velocidad y precisión
al algoritmo desarrollado.
3.3.2.1 FILTROS DIGITALES
“Un filtro es un sistema o una red que cambia selectivamente la forma de onda, o las
características amplitud-frecuencia o fase-frecuencia de una manera deseada” [14].
En cuanto a los filtros digitales se los define como aquel algoritmo implementado
mediante software que toma datos discretos como datos de entrada y genera datos
discretos de salida como se aprecia en la Figura. 3.14.
Figura 3. 14 Filtro Digital
La clasificación de los filtros digitales es:
•
Filtros pasa bajo;
•
Filtros pasa alto;
•
Filtros pasa banda; y
•
Filtros rechazo de banda.
En el presente proyecto únicamente se estudiaran los filtros pasa alto y pasa bajo
debido a que son los usados para la creación del filtro washout.
3.3.2.1.1 FILTRO PASA ALTO
Es un tipo de filtro en cuya respuesta a la frecuencia se atenúa la componente de
baja frecuencia y deja pasar la componente de alta frecuencia.
54
Para el diseño de filtros se debe considerar varios parámetros. Uno de ellos es ω
que corresponde a la frecuencia de corte de los distintos filtros. Otro es el coeficiente
de amortiguamiento o ξ que es una medida que indica cómo afecta el sistema las
oscilaciones después de la acción de una perturbación.
El coeficiente de amortiguamiento ξ puede tener los siguientes valores:
•
ξ<1, sistema sobreamortiguado, quiere decir que el sistema decae
exponencialmente al equilibro sin oscilación.
•
ξ=1, sistema críticamente amortiguado, quiere decir que el sistema vuelve
al equilibrio lo más rápido posible sin oscilación.
•
ξ>1, sistema subamortiguado, quiere decir que el sistema oscila con una
cierta amplitud y disminuye gradualmente a cero.
El filtro normalmente usado para el canal de translaciones según Reid y Nahon [11]
es el siguiente:
6
7
8
7 9
7
(3.3)
Donde ωn y ωb determinaran la frecuencia de corte y ξ debe tener el valor de 1 para
que la plataforma regrese a su estado de equilibrio lo más rápido posible sin
oscilaciones.
El filtro usado para el canal rotacional es el siguiente:
6
7
8
7
(3.4)
La Ecuación 3.3 corresponde a un filtro de tercer orden y la ecuación 3.4
corresponde a un filtro de segundo orden.
55
Se decidió usar estos filtros ya que según los autores Reid y Nahon [11] son ideales
para este tipo de aplicación y además arrojan buenos resultados en la
implementación.
3.3.2.1.2 FILTRO PASA BAJO
Es un tipo de filtro digital en cuya respuesta a la frecuencia se atenúa la componente
de alta frecuencia y deja pasar la componente de baja frecuencia.
El filtro usado para el canal tilt coordination, según los autores Reid y Nahon es:
6
7
8
7
(3.5)
Como se aprecia en la Ecuación 3.5, este filtro corresponde a un filtro de segundo
orden, el cual es ideal para este tipo de aplicación. Al igual que los filtros pasa altos
ωn corresponde a la frecuencia de corte mientras que ξ corresponde al coeficiente de
amortiguamiento, el cual también tendrá el valor de 1.
3.3.2.1.3 SELECCIÓN DEL MÉTODO DE FILTRADO
Se consideraron dos alternativas para la implementación de filtros, a cuales fueron
filtrado en el dominio de la frecuencia y filtrado mediante ecuaciones en diferencia.
3.3.2.1.3.1 FILTRADO EN EL DOMINIO DE LA FRECUENCIA
Se consideró inicialmente este método de filtrado, ya que se comprende mejor el
filtrado cuando los filtros están en el dominio de la frecuencia. La idea inicial está
gráficamente ilustrada en la Figura 3.15 y es inicialmente someter a los datos de
aceleración o velocidad angular a la transformada rápida de Fourier o FFT (Fast
Fourier Transform) para luego multiplicar estos datos por la respuesta en la
frecuencia de la función de transferencia de los filtros mostrados en las Ecuaciones
3.4 y 3.5.
56
Figura 3. 15 Algoritmo de filtrado en el dominio de la frecuencia
Luego se someterían estos datos ya filtrados a la transformada inversa de Fourier o
IFFT (Inverse Fast Fourier Trasnform), para luego integrar 2 veces y obtener la
información. En este punto se obtiene una ventaja ya que Matlab tiene funciones de
FFT e IFFT en su librería. Además cuenta con la función “freqs”, que permite hallar la
respuesta en frecuencia de la función de transferencia.
Finalmente, se decidió desechar esta opción ya que en primer lugar todo el proceso
significaba una gran carga computacional y también mediante este método se
perdían datos debido a las transformaciones en el dominio de la frecuencia y del
tiempo y además es muy complicado realizar el filtrado de datos en tiempo real.
3.3.2.1.3.2 FILTRADO USANDO ECUACIONES EN DIFERENCIA
Una mejor opción, y además la elegida en este proyecto, es la implementación de
filtros mediante ecuaciones en diferencia.
Este método es más simple que el
expuesto en el númeral 3.3.2.1.3.1, ya que consiste en transformar las funciones de
transferencia expuestas en las Ecuaciones 3.3, 3.4 y 3.5 al dominio de la
transformada Z (Ecuación 3.6), a partir de esta función de transferencia en el dominio
de Z, se puede encontrar fácilmente la ecuación en diferencia.
6
:$ ;&
:$ <&
9
79 =
7 =
=
=
7>79
7>7
=
=
(3.6)
Una vez encontrada la ecuación en diferencia se puede implementar el filtro
mediante software.
57
Se decidió optar por esta opción ya que cuenta con varias ventajas como son la baja
carga computacional. Como la implementación de este filtro solo implica una serie
de multiplicaciones y, de esta manera se puede implementar filtros en tiempo real;
otra ventaja es que Matlab cuenta con la función “c2d” que permite la transformación
al dominio de la transformada Z fácilmente.
3.3.2.1.4 DIAGRAMA DE FLUJO DEL PROGRAMA DE FILTRADO
Este numeral contiene los diagramas de flujo de las funciones creadas para el filtrado
de datos.
Primero el programa genera los filtros. La Figura 3.16 contiene el diagrama de flujo
que genera el filtro de tercer orden pasa alto para los datos de aceleración en x.
Figura 3. 16 Diagrama de flujo programa “Generar filtro pasa alto”
58
La Figura 3.17 representa al programa que toma los datos del filtro pasa alto
generado y filtra los datos de aceleración ax en tiempo real.
Los diagramas de flujo presentados en las Figuras 3.16 y 3.17 son aplicados de igual
forma para los datos de aceleraciones y filtros en “Y” y “Z”. La diferencia radica en
los datos de entrada, los valores de cada filtro y por supuesto los datos de salida.
INICIO
Ini==0
NO
si
Inicio contador
i=1
Ini=1
Dato aceleración
en x (ax) de
programa
adquisición de
datos
Dato aceleración en
x (ax) de programa
adquisición de datos
X(i)=ax
Y(i)=0
Desplazar datos en el
tiempo (X[n] y Y[n])
i==4
NO
si
De función
generar filtro
b1,b2, b3, b4,
a1, a2, a3, a4
Resolución de ecuación en diferencia
Y(n)=(b1*X(n)+b2*X(n.1)+b3*X(n.2)+b4*X(n.3).Y(n.1)*a2.Y(n.2)*a3.Y(n.3)*a4)/a1
Aceleración actual
ax=y(n)
INTEGRACIÓN
NÚMERICA
Figura 3. 17 Diagrama de flujo programa filtrado pasa alto de datos ax
59
Los diagramas de flujo presentados en las Figuras 3.18 y 3.19 representan el filtrado
de segundo orden, pasa alto para los datos de pitch, roll y yaw. Además, se debe
aclarar que este filtro se aplica directamente a los datos de ángulo de giro (pitch, yaw
y roll) ya que se tiene la ventaja de que el simulador de vuelo Flight Simulator X
permite extraer directamente los datos de ángulo de giro y no los datos de velocidad
angular como previamente se había dicho.
INICIO
Ini=0
Establecer función
de transferencia de
2do orden para
filtro pasa altos (Hp.
pitch)
Transformar Hp.
pitch al dominio de
Z Hp.pitch.z
Se obtienen los números que
multiplican a cada factor del
numerador de Hp.pitch.z (b1, b2, b3)
Se obtienen los números que
multiplican a cada factor del
denominador de Hp.pitch.z (a1, a2, a3)
b1, b2, b3
a1, a2, a3
Figura 3. 18 Diagrama de flujo programa “Generar Filtro 2do Orden”
Los datos obtenidos en el programa de la Figura 3.17 deben ser enviados al
programa que se encarga de la integración numérica, dicho programa se estudiara
en el numeral 3.3.2.2.
60
Un requisito necesario para el funcionamiento de los filtros, ya sean pasa bajos o
pasa altos, como se aprecia en las Figuras 3.17 y 3.19, es el apilamiento de datos de
entrada antes de comenzar el filtrado. Para filtros de tercer grado es necesario 4
datos y para los filtros de segundo grado es necesario 3 datos. Los datos obtenidos
en el programa de la Figura 3.19 son enviados a la plataforma Stewart mediante el
programa de comunicación serial estudiado en el numeral 3.3.3.3
Figura 3. 19 Diagrama de flujo programa filtrado pasa alto de datos pitch
61
En cuanto a la etapa Tilt Coordination, el filtrado es similar al propuesto en las
Figuras 3.16 y 3.17 con la excepción de que usa la función de transferencia de un
filtro pasa bajos.
3.3.2.2 INTEGRACIÓN NUMÉRICA
Para obtener la posición del efector final, una vez que se filtran los datos de
aceleración, es necesario realizar una integración numérica dos veces seguidas
según el filtro clásico washout (Figura 3.10).
Pero esta integración debe ser en
tiempo real, es por eso que se decidió usar el método de integración trapezoidal o
mejor conocido como regla del trapezoide [13].
3.3.2.2.1 REGLA DEL TRAPEZOIDE
La regla del trapezoide es una de las fórmulas de integración de Newton-Cotes [13],
que consiste en el reemplazo de una función complicada de integración por otra más
simple, aproximada y fácil de integrar.
9
?
@A
9
B @A
Donde fn(x) es un polinomio de la forma:
A
Donde n es el orden del polinomio.
?
9%
>
A
7A 9
(3.7)
En resumen la regla del trapezoide se resume a la Ecuación (3.7) y se define como:
“El área de un trapezoide es igual a la altura por el promedio de la base” [13]. En el
caso de la Ecuación (3.7), el área es igual al ancho por la altura promedio.
Se decidió usar esta regla ya que realiza la integración usando un número mínimo de
datos, permitiendo realizar la integración rápida y en tiempo real. Además Matlab
62
cuenta con una función que realiza la integración de manera rápida, esta es la
función “trapz”.
Que es la integral del Vector “Y” con respecto al vector “X”.
3.3.2.2.2 DIAGRAMA DE FLUJO DE INTEGRACIÓN NUMÉRICA
Una vez se obtuvo los datos de aceleración (“X”, “Y”, “Z”) filtrados el siguiente paso
es la integración numérica, cuyo diagrama de flujo se ilustra en la Figura 3.20.
Figura 3. 20 Diagrama de flujo de programa “Integración”
3.3.2.3 ETAPA TILT COORDINATION
Una vez realizado el filtrado pasa bajos, se necesita calcular el ángulo de inclinación
para la etapa tilt coordination y para lograr esto se emplean las Ecuaciones 3.1 y 3.2
las cuales permite adquirir la inclinación en pitch y roll. Estos ángulos deben ser
63
limitados y escalados según Reid y Nahon [20] con el propósito de brindar un
funcionamiento correcto, las limitaciones son que el ángulo no debe variar más de
3°/s y que no debe nunca superar los 10°. Mediante software, se realizó el cálculo
de las Ecuaciones (3.1) y (3.2) seguido por las limitaciones de velocidad y ángulo
máximo.
Los resultados de esta etapa se sumarán a los ángulos de inclinación pitch y roll
obtenidos del filtrado pasa alto.
3.3.3 DISEÑO DEL SISTEMA DE CONTROL PARA LA PLATAFORMA STEWART
Para controlar una plataforma con 6 grados de libertad como se aprecio en el
numeral 2.4.2.3, es necesario conocer la geometría de la misma, y se debe resolver
la cinemática inversa del robot paralelo.
La cinemática inversa consiste en que, si se conoce la posición del efector final de
una plataforma con 6 grados de libertad, es posible conocer el ángulo de cada
servomotor. Es por eso que el primer paso para el diseño del programa de control de
la plataforma Stewart es la creación en el espacio del efector final virtual.
3.3.3.1 EFECTOR FINAL VIRTUAL EN MATLAB
El efector final como se lo estudió en el Capítulo 2, consta de un triangulo equilátero,
el cual tiene por lado 15cm.
Se creó una función que permite graficar el efector final en cualquier punto del
espacio, esto se puede hacer usando las siguientes funciones de Matlab: “line” que
permite graficar líneas en el espacio y “fill3” que es una función que rellena el
espacio de una Figura geométrica previamente creada. Creando los puntos P1, P2 y
P3 de cada vértice del triangulo equilátero y realizando líneas entre ellos, se creó
fácilmente el efector final en el espacio. En la Figura 3.21 se puede apreciar el punto
de referencia Pr que se usó en Matlab, es decir en punto Pr representa el punto
64
p(0,0,0) en la función creada, y además en este mismo punto es donde se simulan
las aceleraciones.
Generalmente se traslada este punto y se lo ubica en donde debería estar la cabeza
del piloto en los simuladores reales, pero para este proyecto como se trata de una
plataforma a escala no existe gran diferencia y no afecta el correcto funcionamiento
de la plataforma, es por eso que se decidió omitir este paso. Ahora bien para mover
este efector final virtual en los ejes x, y o z, lo único que hay que hacer es sumar la
posición deseada a los puntos de cada vértice del efector final.
Figura 3. 21 Punto de referencia del efector final
En cuanto a los ángulos de giro pitch, yaw y roll es necesario implementar la matriz
de giro previamente estudiada en el numeral 2.4.2.2, la cual calcula la rotación de
cada vértice del triangulo en cada tipo de giro (pitch, yaw y roll). Para lograr esta
rotación se multiplicó la matriz general de rotación (Ecuación (2.14)) por cada vértice
del triángulo equilátero.
Finalmente, se agregaron al
efector virtual los puntos P1’, P2’ y P3’, donde se
conecta todas y cada una de las articulaciones al efector final real como se aprecia
en la Figura 3.21 y se procedió a realizar las mismas operaciones que a los vértices
del triángulo. De esta manera se creó la función platf(), que grafica el efector final y
obtiene la posición de los puntos . P1’, P2’ y P3’. Su estructura es la siguiente:
65
[puntos,lineas,color]=platf(x,y,z,pitch,yaw,roll)
En la Figura 3.22 se puede apreciar el resultado de la función platf() aplicado a
valores aleatorios de x, y, z, pitch, yaw y roll.
25
20
15
10
5
0
-5
-10
10
0
-10
-15
-10
-5
0
5
10
15
Figura 3. 22 Resultado de función “platf”
El diagrama de flujo de la función platf creada mediante un archivo .m, se puede
apreciar en el numeral 3.3.3.1.1.
3.3.3.1.1 DIAGRAMA DE FLUJO DE LA FUNCIÓN “PLATF”
En la Figura 3.23 se puede apreciar la función platf que sirve para orientar el efector
final en el espacio. Para que el efector final se ubique en su posición inicial se
establecen valores físicamente calculados, los cuales son (0,0,19,0,0,0) y que
corresponden a (x,y,z,pitch,yaw,roll), el valor de 19 en z corresponde a la distancia
66
entre los servomotores cuando usan un valor de 90° y el lugar donde el efector se
ubica en la posición inicial.
Figura 3. 23 Diagrama de flujo de función “Platf”
3.3.3.2 ARTICULACIONES Y ACTUADORES VIRTUALES EN MATLAB
Usando la función “platf” se puede conocer los puntos en el espacio donde estarán
ubicadas las articulaciones del efector final. Conociendo estos valores se procedió a
crear una función que permita conocer los ángulos de cada servomotor, una vez se
conoce la posición del efector final. Para lograr esto se consideró dos algoritmos
diferente:. El primero consiste en resolver la cinemática inversa del robot paralelo
asumiendo que el mismo fue diseñado con una estructura de 6 cadenas tipo RUS,
estudiado en el numeral 2.4.2.3.
El segundo algoritmo consiste en resolver la
67
cinemática inversa del robot paralelo de 6 cadenas UPS como se apreció en el
numeral 2.4.2.3.
3.3.3.2.1 RESOLUCIÓN DE LA CINEMÁTICA INVERSA PARA LA ESTRUCTURA
6-RUS.
Como se apreció en la Figura 2.21 del Capítulo 2, las juntas de revolución del la
estructura RUS son muy parecidas a un servomotor, con la diferencia de que están
orientadas hacia el interior, pero en si, la funcionalidad y resolución de la cinemática
inversa es muy similar.
Figura 3. 24 Ubicación de motores
La cinemática inversa de este tipo de estructura consiste en ubicar en el espacio
virtual la posición de los motores, para lograr esto se asume otro triangulo equilátero
concéntrico al del efector final de 20cm por lado, como se aprecia en la Figura 3.24.
Se considera 3.5 cm a cada lado desde el centro de este nuevo triangulo, y es aquí
donde se ubican los motores, a cada lado del triangulo equilátero. En estos puntos
68
es donde giran los motores, incluyendo el ángulo de 10° de cada motor estudiado en
el numeral 2.2.4.
Figura 3. 25 Giro de punto p
El algoritmo implementado para la resolución de la cinemática inversa consiste en
crear un vector del tamaño del actuador de los servomotores y hacer girar el mismo
un ángulo máximo de hasta 120° como indica la Figur a 3.25. Haciendo girar el punto
p alrededor de un semicírculo. Cuando se resta el punto de la articulación con este
punto p y sacando el módulo de este vector se obtiene el valor de distancia del eje, si
la distancia corresponde a los 18cm que míden los ejes, el ángulo correspondiente a
esta distancia es el ángulo del servomotor.
Inicialmente esta función llamada “motor” generó resultados correctos, pero el
programa resultante es poco eficiente y representa una carga computacional muy
69
alta. Esto representa un problema muy serio, ya que no se puede crear un programa
en tiempo real. Es por eso que para el presente proyecto de titulación se decidió
usar el segundo algoritmo.
3.3.3.2.2 RESOLUCIÓN DE LA CINEMÁTICA INVERSA PARA LA ESTRUCTURA
6-UPS.
Inicialmente se ubican los motores en la misma posición como se ilustró en la Figura
3.24, el siguiente paso consiste en calcular la distancia entre la articulación del
efector final y el actuador del servomotor. A esta distancia se le resta los 18cm que
son de eje. En este punto se debe tener como dato la distancia lineal máxima que
puede ejercer el actuador del motor, calculando físicamente este valor es de 3.5cm y
finalmente se calcula el ángulo mediante una regla de tres, siendo 3.5cm los 120°.
Este cálculo si bien no es exacto, arroja resultados aceptables y como su computo es
simple no representa una carga computacional excesiva. A esta función se la llamó
motor2() y su estructura es la siguiente:
[angulos]=motor2(puntos)
Donde la variable puntos se obtiene de la función “platf”. El resultado de esta función
se ilustra en la Figura 3.26.
25
20
15
10
5
0
-5
-10
10
0
-10
-15
-10
-5
0
5
10
Figura 3. 26 Resultado de la función motor2
15
70
El diagrama de flujo de esta función es presentado en el numeral 3.3.3.2.2.1.
3.3.3.2.2.1 DIAGRAMA DE FLUJO DE LA FUNCIÓN “MOTOR2”
La Figura 3.27 ilustra el diagrama de flujo únicamente de una articulación, el proceso
para las demás articulaciones es similar.
Figura 3. 27 Diagrama de flujo de la función “motor2”
3.3.3.3 COMUNICACIÓN SERIAL EN MATLAB
Es necesario elegir algún tipo de comunicación PC-Plataforma, es por esto que se
decidió optar por la comunicación serial, debido a que es un tipo de comunicación
sencilla y que casi todo dispositivo (sea microcontrolador o tarjeta electrónica) posee.
71
Dentro de Matlab existe un protocolo a seguir para establecer este tipo de
comunicación, este protocolo consiste en:
•
Borrar puertos previamente configurados;
•
Construir un objeto puerto serial;
•
Establecer parámetros de comunicación como baud rate, bits de paridad, bits
de parada, etc.; y
•
Abrir puerto serial.
Una vez que se ha configurado el puerto, para enviar datos desde Matlab se usan
una función propia de Matlab llamada fprintf(), la cual debe tener la estructura
particular citada a continuación:
fprintf(puerto,'%s\n',datos);
Es decir los datos enviados deben ser del tipo string.
3.3.3.3.1 DIAGRAMA DE FLUJO DE PROGRAMA DE COMUNICACIÓN SERIAL
Figura 3. 28 Diagrama de flujo del programa de comunicación serial.
72
3.3.4 ANÁLISIS Y SELECCIÓN DEL MEJOR METODO DE CONTROL Y
COMUNICACIÓN PC-PLATAFORMA.
El propósito del presente numeral es mostrar cómo seleccionar el hardware
adecuado para el control simultáneo de 6 servomotores que componen los
actuadores de la plataforma Stewart, además dicho hardware debe permitir la
comunicación entre el software Matlab instalado en una computador y el hardware
seleccionado.
Se estudiaron las siguientes opciones
3.3.4.1 CONTROLADOR DE SERVOS MICRO MAESTRO USB [15]
El controlador micro maestro (Figura 3.29) permite controlar hasta 6 servomotores
mediante el puerto USB junto con una alimentación externa. El controlador permite 3
tipos de comunicación: Comunicación USB directamente con una PC, comunicación
TTL serial para la comunicación con microcontroladores o con lenguaje script interno
para sentencias automáticas. Dispone de salidas de modulación de ancho de pulso
(PWM) de alta resolución, ideal para aplicaciones de alta precisión.
Figura 3. 29 Controlador Micro Maestro USB, tomado de [15]
Características Generales:
•
Baudrate: 300 – 250000bps
73
•
Autodetección de baudrate: 300 – 115200bps
•
Alimentación: 5 a 16V
•
Consumo: 20mA
Esta tarjeta es ideal para el control de servomotores, pero se decidió optar por otra
opción por razones académicas.
3.3.4.2 ARDUINO UNO [16]
A pesar que la tarjeta mostrada en el numeral anterior es una tarjeta dedicada al
control de servomotores, para el presente proyecto se decidió usar una tarjeta
Arduino UNO, ilustrada en la Figura 3.30. Ya que este tipo de tarjetas usan software
libre, esto quiere decir que, se pueden agregar librerías muy fácilmente.
Además, posee una librería especializada para el control de servomotores muy fácil
de usar.
Figura 3. 30 Arduino UNO, tomado de [16]
Esta tarjeta posee las siguientes especificaciones:
•
Microcontrolador: Atmega328
•
Voltaje de operación: 5V
•
Voltaje de entrada: 7-12V
•
Voltaje de salida: 6-20V
74
•
I/O digitales: 14 (6 PWM)
•
Entradas análogas: 6
•
Memoria flash: 23kB
•
SRAM: 2kB
•
EEPROM: 1kB
•
Velocidad de reloj: 16 MHz
Además otra cualidad de esta tarjeta es que permite usar el mismo puerto USB que
usa para programar el microcontrolador como vía de comunicación entre la PC y la
tarjeta, mediante una librería de comunicación serial.
Esta tarjeta será ideal para la comunicación entre el programa que se realizará en
Matlab y la plataforma.
3.3.4.3 MICROCONTROLADOR ATMEGA164P [17]
El microcontrolador de Atmel Atmega164p presentado en la Figura 3.31 permite el
control se servomotores, como se estudio en el numeral 2.2.1.1 los servomotores
genera un ángulo especifico dependiendo del ancho de pulso de la señal que recibe.
El Atmega 164p posee 3 timers (1 de 16 bits y 2 de 8 bits), los cuales permiten crear
señales PWM los cuales controlan el servomotor. Los microcontroladores pueden
controlar varios servomotores. Esta opción es la más económica pero también es la
más complicada de programar.
Figura 3. 31 Microcontrolador Atmega164p, tomado de [17]
75
3.3.4.4 MINI SSC II [18]
El Mini SSC II (Figura 3.32) es un controlador de la empresa Scott Edwards
Electronics Inc, que puede controlar hasta un máximo de 8 servomotores.
Se
conecta a la PC vía cable serial (Rj11 a DB9) y puede trabajar a velocidades de
2400bps o 9600bps y requiere de dos fuentes de alimentación, una de 9-12V para el
controlador y otra de 5v para los motores.
Figura 3. 32 Mini SSC II, tomado de 18
Si bien es un controlador de reducido tamaño, las desventajas son que no existen
nuevos modelos de este controlador y que necesita 2 fuentes para el control.
3.3.4.5 SELECCIÓN DEL CONTROLADOR USADO
Se decidió usar como controlador la tarjeta Arduino UNO, aunque algunas de las
otras opciones superaban a éste en costo o facilidad de uso, se decidió usar esta
tarjeta por razones académicas ya que resulta fascinante el uso de este controlador
debido a que las tarjetas de la familia Arduino son de software libre y permiten la
creación de nuevas librerías para su uso, además de contar con un sin número de
aplicaciones para estos controladores.
Arduino UNO permite usar el mismo cable USB de programación como cable de
comunicación serial además el control de servomotores es bastante sencillo.
76
3.3.5 COMUNICACIÓN SERIAL Y CONTROL DE SERVOMOTORES USANDO LA
TARJETA ARDUINO UNO
La tarjeta Arduino UNO cuenta con una aplicación que permite la programación de
tarjetas tipo Arduino, la cual puede ser adquirida gratuitamente [19]. Los programas
escritos en esta aplicación son conocidos como “sketches” y deben ser escritos en
lenguaje C, además esta aplicación cuenta con librerías que permiten una
programación más rápida y sencilla de servos, SPI, EEPROM, Display’s, etc.
Una vez programado el Arduino UNO este pasa a funcionar automáticamente ya sea
usando un cable de alimentación o el cable USB de la computadora, en este caso en
particular se uso el cable USB que proporciona energía únicamente a la tarjeta
Arduino, la alimentación que recibirán los servomotores es independiente y se la
estudio en el numeral 3.3.6
Para el presente proyecto se desarrolló un programa que permita la comunicación
serial entre PC y Arduino. A continuación de la recepción de datos, se pasa al
tratamiento de los mismos y envió del ángulo de cada servomotor para obtener la
posición deseada del efector final. Para lograr esto se usó la librería servo, la función
serial para establecer comunicación con la PC.
El programa contiene un buffer que almacena los datos recibidos de tipo string de
forma serial y solo guarda el dato cuando recibe un final de carrera (\n) para luego
proceder a transformar este dato en tipo decimal y finalmente posicionar este ángulo
en el servo correspondiente.
Los servomotores si bien parecen moverse
simultáneamente esto es falso ya que los datos son modificados secuencialmente de
manera constante comenzando desde el servo1 hasta el servo6.
Además se programó una cierta restricción que no permite a los servos obtener un
ángulo menor a 0° o mayor a los 180° como manera de protección al servomotor de
recibir un dato erróneo.
77
3.3.5.1 DIAGRAMA DE FLUJO DE PROGRAMA PARA ARDUINO UNO
Las Figuras 3.33, 3.34 y 3.35 ilustran los diagramas de flujo del programa principal y
subrutinas con las que funciona la tarjeta electrónica Arduino UNO.
Figura 3. 33 Diagrama de flujo de programa principal Arduino UNO
Figura 3. 34 Diagrama de flujo de subrutina “decimal”
78
Figura 3. 35 Diagrama de flujo de subrutina “Serial”
3.3.6 DISEÑO DE CIRCUITOS DE ALIMENTACIÓN Y PROTECCIÓN PARA
SERVOMOTORES
Los
servomotores
tradicionales
generalmente
requieren
un
voltaje
de
5V
aproximadamente y una corriente de 1A cada uno para poder ejercer el torque
máximo que puede tener el mismo. Para los micro servomotores este dato no se
especifica por el fabricante, es por eso que se decidió realizar algunas pruebas, las
cuales arrojaron que los micro servomotores usados en este proyecto necesitan
entre 300mA y 350mA para generar un torque apropiado. Es decir que para alimentar
79
6 de estos servomotores son necesarios entre 1.8A y 2.1A. La fuente integrada en el
Arduino no puede generar esa corriente, es por eso que se decidió diseñar una
fuente independiente de 5V/2A únicamente para los servomotores que abastece a
cada motor con aproximadamente 333mA.
Para el diseño de la fuente se decide usar el integrado Lm350 con empaquetado TO3 para que tolere la corriente de 2A, en base al datasheet proporcionado por el
fabricante, se diseñó el circuito que corresponde al cuadro rojo de la figura 3.36 en
base a la siguiente ecuación:
C*DE
. G$C& H
C
I
G $DJ&
Como se desea una fuente de 5 a 6V para obtener un buen torque en los
servomotores se decide diseñar la fuente para que entregue aproximadamente 6V,
R1 se asume el valor de 220>, por recomendación del fabricante. Calculando el
valor de RV1 se obtiene una resistencia de 830>, es por eso que se decide usar un
potenciómetro de 1k>, el cual al ser regulado hasta conseguir el valor aproximado de
6V a la salida de la fuente es bloqueado.
Figura 3. 36 Circuito de la fuente de 6V/2A
80
Se agrega un capacitor de 4700uf en la entrada y un capacitor de 100uf a la salida a
manera de filtro con el fin de obtener una señal lo más constante posible.
Además se agrego una resistencia de 330> seguido por un led rojo en paralelo con
la fuente con el propósito de verificar el funcionamiento de la fuente.
La fuente diseñada trabaja con el integrado Lm350 que es un regulador ajustable de
3A, un puente rectificador y un transformador de 12V/2A. El circuito en la Figura 3.36
ilustra el circuito diseñado para una fuente de 6V/2A.
Se decidió aislar los servomotores con la tarjeta Arduino para proteger la tarjeta de
posibles corrientes producidas por los servomotores. Es por eso que se diseño y
construyo el circuito apreciado en la Figura 3.37, que consta de optoacopladores
4n25 que en caso de algún mal funcionamiento, protegerán a la tarjeta arduino,
además, de proporcionar una mejor calidad en la señal de entrada a los
servomotores.
Para el diseño del circuito ilustrado en la figura 3.37, se considera únicamente el
circuito en el cuadro rojo ya que el diseño del resto es idéntico a este. El voltaje de
entrada a este circuito es de 5V (lo que entrega el circuito Arduino UNO), la corriente
que pasa por la resistencia R1 y el led es de 10ma que corresponde a la corriente
colector emisor según el datasheet. El valor de R1 se lo calcula de la siguiente
ecuación:
CK % C K* *
?A
G% C
LJ
M
N 220M
Comprobando la potencia necesaria:
Q
?
LJ
M /TR
.
R
81
Se calcula la resistencia de salida R7 de la siguiente ecuación:
U
C
V%C
?)WJ
E
X % . GC
LJ
GYGM
N 680M
La potencia necesaria es de:
Q
LJ
U
XT M
XT M
/TR
. XTR
Este circuito al igual que el de la fuente se construye mediante el programa Ares, que
permite realizar circuitos impresos de manera artesanal fácilmente.
Después de
realizar varias pruebas de funcionalidad, dichos circuitos se ensamblan junto con la
plataforma.
Figura 3. 37 Circuito de aislamiento entre los servos y la tarjeta Arduino
82
3.3.7 DISEÑO DE LA GUI DE CONTROL
Se creó una interfaz grafica que integrara todas las funciones y programas creados,
se decidió llamar a este programa principal como “interfaz”, el cual se ejecuta desde
Matlab.
Figura 3. 38 Tipos de comunicación
Para facilitar la etapa de calibración y pruebas se decidió crear 2 opciones de control,
como se ilustra en la Figura 3.38, la primera consiste en el botón “MANUAL” el cual
permite el control únicamente de la plataforma Stewart desde una interfaz creada en
GUI, esta opción no contiene ni comunicación con el simulador de vuelo Flight
Simulator X ni el filtro washout, esta opción se usa para probar el correcto
funcionamiento de la plataforma Stewart, además sirve para probar la comunicación
PC-Plataforma.
La Figura 3.39 corresponde a la opción “MANUAL” dentro del programa interfaz,
como se puede apreciar se puede modificar la posición en cada tipo de movimiento
únicamente moviendo el “Slider” correspondiente. De esta manera se determina
cuales son los límites de movimiento a los cuales la plataforma está sometida.
El botón “AUTOMATICO” ilustrado en la Figura 3.38 conduce al
programa que
realiza el control de la plataforma en tiempo real, para que esta opción funcione se
necesita que el simulador de vuelo Flight Simulator X este corriendo.
83
Como se puede apreciar en la Figura 3.40 existen casillas del tipo texto editable
donde se pueden modificar todas las variables para cada filtro, además existe un
botón llamado “Datos” el cual sirve para establecer valores por defecto de filtro. El
botón “GENERAR FILTRO” construye los filtros pasa bajo y alto antes de que
comience la simulación de vuelo. El botón “INICIAR” establece las comunicaciones y
genera datos en tiempo real hacia la plataforma.
El botón “SALIR” termina la
comunicación y cierra la interfaz.
Figura 3. 39 Opción Manual del programa interfaz
Como se puede apreciar en la Figura 3.40 existen casillas del tipo texto editable
donde se pueden modificar todas las variables para cada filtro, además existe un
84
botón llamado “Datos” el cual sirve para establecer valores por defecto de filtro. El
botón “GENERAR FILTRO” construye los filtros pasa bajo y alto antes de que
comience la simulación de vuelo. El botón “INICIAR” establece las comunicaciones y
genera datos en tiempo real hacia la plataforma.
El botón “SALIR” termina la
comunicación y cierra la interfaz.
El botón graficar datos como se aprecia en la Figura 3.40 permite visualizar los datos
de entrada a los filtros, los de salida y el resultado de la integración (si la tiene).
Figura 3. 40 Opción Automático del programa interfaz
Antes de iniciar la simulación se debe escoger los resultado de que filtro se desean
como se aprecia en la Figura 3.41, para eso se debe seleccionar la opción que se
desea visualizar en el grupo de botones “GRAFICAR”.
Esta opción permite la calibración de cada filtro, ya que se puede parar la simulación
en el momento que se desee y generar un nuevo filtro con nuevos valores de
frecuencia de corte, valor máximo y ganancia.
85
Figura 3. 41 Selección de opción a graficar
En la Figura 3.42 se aprecia un ejemplo de la interfaz funcionando en tiempo real.
Figura 3. 42 Interfaz gráfica
86
Para registrar un histórico de los datos obtenidos durante la adquisición de datos,
existe una opción adicional que grafica los datos históricos de un canal determinado.
Presionando el botón “DETENER” cuando se eligió una opción en el grupo de
botones “GRAFICAR” como se aprecia en la Figura 3.43, la misma que genera una
ventana auxiliar la misma que es ilustrada en la Figura 3.44 y permite seleccionar la
opción de graficar el histórico de señales obtenidas.
Figura 3.43 Ilustración del botón “DETENER”
Dicho histórico se ilustra en una nueva ventana y contendrá únicamente los datos de
la señal previamente seleccionada en el grupo de botones “GRAFICAR”.
Figura 3.44 Opción graficar histórico
La Figura 3.45 ilustra el resultado del histórico capturado.
87
Figura 3.45 Gráfico ax histórico de vuelo simulado
88
CAPÍTULO 4
PRUEBAS Y RESULTADOS
4.1 CALIBRACIÓN DE LA PLATAFORMA STEWART
El proceso de calibración de una plataforma Stewart es muy complejo ya que no
existen normas o parámetros establecidos que digan cómo se debe calibrar una
plataforma con 6 grados de libertad. Generalmente este tipo de calibración la hace
un piloto profesional, de esta manera se comprueba que los movimientos simulados
por la plataforma correspondan con los apreciados por el piloto y que no se exponga
una incoherencia entre la señal percibida por el sistema vestibular y la señal enviada
por la visualización del vuelo simulado.
Debido a este inconveniente y además, a que la plataforma construida es a escala y
solo permite apreciar la funcionalidad de una plataforma Stewart, se decidió cumplir
únicamente las siguientes condiciones:
•
La plataforma no debe salirse de su espacio de trabajo; y
•
El movimiento de la plataforma debe ser suave considerando algunas de las
limitaciones de movimiento creadas por Reid y Nahon [11].
.
Mediante una calibración usando el método de prueba y error se logró un
funcionamiento aceptable de la plataforma. Los valores usados en la calibración son
presentados en la Tabla 4.1.
89
Tabla 4. 1 Valores usados en la calibración.
PARAMETROS USADOS
Filtros pasa alto para aceleraciones
ax
ay
az
Aceleración Máxima [pies/s ]
20
20
20
Ganancia
5
4
1.2
Frecuencia de corte [rad]
1,5
3,5
3,5
2
Filtros pasa bajo
ax
ay
Aceleración Máxima [pies/s2]
10
10
Ganancia
1
1
Frecuencia de corte [rad]
5
5
Filtros pasa alto para ángulos de orientación
Pitch [grados]
Yaw [grados]
Roll [grados]
Ángulo Máximo [grados]
90
40
70
Ganancia
1
1
1
Frecuencia de corte [rad]
1,5
1,5
2,5
Para evaluar el funcionamiento de la plataforma y debido a las limitaciones ya
explicadas, se decidió crear varias señales de prueba, las cuales al ser aplicadas al
filtro washout permiten apreciar el funcionamiento de la plataforma.
4.2 SEÑALES USADAS EN LAS PRUEBAS
Como es complicado apreciar el funcionamiento de la plataforma Stewart diseñada
cuando se insertan señales a cada canal de aceleración y en cada canal de ángulo
de orientación, se decidió ingresar las señales creadas únicamente por un canal a la
vez.
Es por eso que se decidió crear señales particulares para cada canal
dependiendo de los limites que se establecen en la Tabla 4.2, los cuales se
90
obtuvieron observando el comportamiento de los datos obtenidos en el simulador de
vuelo Flight Simulator X.
Debido a que los mínimos y máximos datos de pitch y roll apreciados en la Tabla 4.2
son enviados por el simulador únicamente cuando el avión realiza maniobras muy
complicadas se decidió usar como límites máximo y mínimo: 50° y -50°,
respectivamente.
Tabla 4. 2 Límites de la señales de entrada
Dato
Límite
Límite
Inferior
Superior
ax
-10
10
ay
-10
10
az
-10
10
pitch
-90
90
yaw
40
40
roll
-70
70
Para insertar estos datos de prueba de aceleración y orientación, se necesito hacer
varias modificaciones en el GUI, el cual en lugar de enviar los datos adquiridos del
simulador de vuelo al filtro washout, envía los datos de prueba. Además se agrego
una condición if, la cual termina el programa cuando se haya recibido la señal de 40
muestras. Debido a que es necesario integrar 2 veces las señales de aceleración y
se usa la integración por el método del trapezoide, los datos de salida no tendrán el
mismo número de muestras que los datos de entrada. En cuanto a los datos de
ángulo de orientación estos tendrán el mismo número de datos de entrada y salida.
La primera señal de prueba o señal 1 se la puede apreciar en la Figura 4.1, Esta
señal muestra un crecimiento paulatino de la aceleración y decrecimiento similar,
este crecimiento y decrecimiento es muy suave y casi constante, esta señal servirá
91
para comprobar el funcionamiento de los filtros de aceleración de traslación (ax, ay y
az) cuando es sometido a transitorios que crecen en casi una misma proporción.
Figura 4. 1 Señal 1
La Figura 4.2 corresponde a una señal que sufre cambios bruscos de aceleración,
esta señal se la creó con el propósito de apreciar la respuesta de cambios bruscos
de aceleración.
Figura 4. 2 Señal 2
Para apreciar el funcionamiento de la plataforma Stewart en peores condiciones se
creó una función que despliegue datos aleatorios entre los limites de aceleración. La
Figura 4.3 ilustra la señal 3 la cual sirve para probar el funcionamiento de la
plataforma en condiciones imposibles ya que nunca un avión puede dar cambios tan
bruscos de aceleración. Las señales ilustradas en la Figura 4.3 tienen la siguiente
correspondencia: 3(a), 3(b) y 3(c) son usadas en los canales ax, ay y az
respectivamente.
92
Figura 4. 3 Señal 3
Para evaluar el funcionamiento de los filtros pasa alto implementados para los
ángulos de orientación, se crearon distintas señales de prueba para los mismo.
La
señal 4 apreciada en la Figura 4.4 al igual que la señal 1 tiene la funcionalidad de
probar la plataforma cuándo es sometido a una señal que crece suave y
gradualmente.
93
Figura 4. 4 Señal 4
En la Figura 4.5 se ilustra la señal 5 la misma que tiene la utilidad de someter al filtro
a un cambio brusco de de ángulo de orientación. Las señales 4 y 5 serán usadas
únicamente en los canales de roll y pitch debido a que se diseñaron con los límites
expuestos en la Tabla 4.2.
Figura 4. 5 Señal 5
La Figura 4.6 corresponde a una señal aleatoria cuya función es similar al de la señal
3 es decir una señal aleatoria con la diferencia de que es aplicado a los canales roll y
pitch.
94
Figura 4. 6 Señal 6.
La Figura 4.7 ilustra las señales aplicadas al canal yaw, estas son similares a las
señales 4 y 5 con la diferencia que esta usa las limitaciones de yaw apreciadas en la
Tabla 4.2.
Figura 4. 7 Señales 7 y 8, respectivamente
95
Finalmente, la Figura 4.8 ilustra una señal aleatoria que se somete al canal yaw.
Figura 4. 8 Señal 9
Para crear las señales aleatorias tanto en los canales de aceleración, como en los
canales de orientación, se usó la función randi de Matlab que permite generar
números aleatorios dentro de un rango establecido, su estructura es la siguiente:
Donde IMIN e IMAX son los límites mínimo y máximo que el numero aleatorio puede
tener.
4.3 RESULTADOS OBTENIDOS
4.3.1 RESULTADOS DE PRUEBA DE ACELERACIÓN
Inicialmente se puso a prueba el canal de aceleración en x (ax), para este caso se
usan las señales 1, 2 y 3 (a). Para el caso de la señal 1 se presenta en la Figura 4.9
la entrada al filtro pasa alto, la salida del filtro pasa alto y la posición que adopta la
plataforma, respectivamente.
Analizando la Figura
4.9 se puede apreciar que para cambios pequeños de la
aceleración recibida del simulador de vuelo, el filtro pasa alto deja pasar únicamente
96
los transitorios, es decir únicamente los cambios bruscos. Si el crecimiento fuese de
pendiente constante entonces la aceleración recibida seria una aceleración
constante.
Además se puede apreciar que el filtro diseñado tiene una buena
sensibilidad.
La Figura 4.9 además ilustra la posición adoptada por la plataforma, los datos del eje
y de dicha Figura corresponden al movimiento aproximado en centímetros en el eje x
del efector final. De la Figura 4.9 se puede apreciar que para cambios pequeños del
transitorio de la señal de entrada, la plataforma se mueve ligeramente, es decir la
plataforma tiene una buena sensibilidad.
Figura 4. 9 Salida de aceleración en x para filtro pasa alto de la señal1
La Figura 4.10 ilustra la aceleración de salida del filtro pasa alto para la señal 2, en
dicha Figura se aprecia la respuesta del filtro a transitorios bruscos y de gran valor.
97
La Figura 4.10 ilustra la posición de la plataforma cuando el filtro es sometido a la
señal 2 como se puede apreciar, se produce el movimiento mas brusco, pero debido
a la limitación usada en la tarjeta Arduino esta posición se adoptara más lentamente
ya que este tipo de movimientos bruscos deben percibirse suavemente por el piloto
para engañar al sistema vestibular.
Figura 4. 10 Salida de aceleración en x para filtro pasa alto de la señal2
Finalmente, la Figura 4.11 ilustra la respuesta de la plataforma cuando es sometido a
la señal 3, que es una señal aleatoria, este tipo de señales no puede ser posible, ya
que nunca un avión dará este tipo de cambios bruscos, esta prueba solo sirve para
probar la funcionalidad de la plataforma en peores condiciones. Si bien existen
cambios bruscos de movimiento en la posición de la plataforma, físicamente este
98
movimiento es suave gracias a la limitación de velocidad realizada mediante
software.
Las respuestas de los filtros pasa alto y posición de los canales ay y az tienen una
respuesta similar a los ilustrados en la Figuras 4.9, 4.10 y 4.11, es por eso que se
decidió no incluirlos en el análisis ya que sería redundante.
Figura 4. 11 Posición en x para señal3
99
4.3.2 RESULTADO DE PRUEBAS DE ORIENTACIÓN
Cuando se somete al canal pitch a la señal 4 se obtiene la orientación de la
plataforma, la Figura 4.12 ilustra la señal de entrada al filtro washout en el canal pitch
y respuesta del filtro pasa alto diseñado y calibrado para la orientación en pitch
dentro del filtro washout. Como se puede apreciar en dicha Figura el ángulo pitch es
casi constante, esto se produce ya el cambio paulatino del ángulo pitch de entrada es
constante como se puede apreciar en la misma Figura 4.12, a razón de 5° por dato.
Lo que quiere decir que el filtro registra el transitorio constantemente, es por eso que
su respuesta es constante.
Figura 4. 12 Respuesta en pitch de la orientación de la plataforma para señal4
La Figura 4.13 ilustra la respuesta del ángulo pitch cuando se somete al filtro pasa
alto a la señal 5 que es una señal de crecimiento y decrecimiento brusco, como se
puede apreciar, la orientación crece paulatinamente al ángulo deseado debido a la
100
limitación de de velocidad implementada en el programa, además se puede apreciar
que la plataforma retorna a su posición inicial muy rápidamente, esto se debe a que
el filtro fue diseñado con un factor de amortiguamiento de 1. Cabe recalcar que si
una inclinación en el ángulo pitch se llega a mantener constante, la plataforma
regresara a su posición inicial lo más rápido posible, pero este movimiento de retorno
no producirá una aceleración simulada en el piloto, ya que si esto sucediera se
enviaría una señal incorrecta al sistema vestibular, produciendo así un error grave en
la plataforma de simulación de vuelo.
Figura 4. 13 Respuesta en pitch de la orientación de la plataforma para señal5
La Figura 4.14 corresponde la respuesta a la señal 6 del filtro pasa alto del canal
pitch, en dicha Figura se puede apreciar que el ángulo pitch cambia paulatinamente
según la limitación antes estudiada, sin importar que tan brusco sea el cambio de
ángulo pitch de entrada.
101
Mientras se realizó esta última prueba se logro constatar el movimiento suave de la
plataforma aún cuando, los cambios son demasiado bruscos e irreales, ya que este
tipo de datos se dan en el simulador de vuelo cuando el avión se estrella y esta
activada la opción de “Ignore crashes and damages” en el simulador de vuelo Flight
Simulator X.
Las respuestas de los filtros pasa alto para yaw y roll son similares a los presentados
en la Figuras 4.12, 4.13 y 4.14. Es por eso que se decidió omitir el análisis de la
orientación en los ángulos yaw y roll.
Figura 4. 14 Respuesta en pitch de la orientación de la plataforma para señal 6
4.3.3 VISUALIZACIÓN DE RESULTADOS
Para ilustrar la visualización de la interfaz de control se creó unas señales de prueba
pequeñas. Las mismas que serán aplicadas a los canales de aceleración en “y” y
ángulo de “pitch”. Se decidió usar el canal Y por que la visualización es más notoria
en este canal. La Figura 4.15 ilustra la señal de prueba usada para el canal Y, la
102
respuesta al filtro pasa alto, su posición en centímetros y la visualización antes y
después de efectuarse el movimiento.
Como se aprecia en la Figura 4.15, cuando el filtro recibe la señal de 20 pies/s2 en la
muestra número 4, la plataforma se orienta a 6 cm de su posición inicial. El
movimiento de la plataforma virtual es igual al de la plataforma real. La muestra
número 3 produce este movimiento, es decir que la plataforma tiene una muestra de
retardo, El tiempo entre muestras es casi despreciable si se usa una PC con los
recursos suficientes de procesamiento, dichos requerimientos se los puede encontrar
en el Anexo A.
Figura 4. 15 Visualización del canal ay
103
En la Figura 4.16 se ilustra la visualización del canal pitch usando la señal de prueba
creada. Se decidió crear una señal de prueba negativa porque es más evidente la
inclinación cuando la plataforma eleva la nariz. Como se puede apreciar en dicha
Figura, el movimiento en el ángulo pitch es bastante evidente.
Figura 4. 16 Visualización del canal Pitch
4.3.4 PRUEBA EN AUTOMÁTICO
En el presente numeral se ilustraran varias imágenes mostrando el funcionamiento
de la plataforma real mientras está funcionando en el modo “AUTOMÁTICO”.
104
Figura 4. 17 Ejemplo de funcionamiento real
105
CAPÍTULO 5
CONCLUSIONES Y RECOMENDACIONES
5.1 CONCLUSIONES
•
Se alcanzó la consecución del objetivo del presente proyecto de titulación,
construyendo y controlando una plataforma de 6 grados de libertad o
plataforma Stewart usando un simulador de vuelo comercial. Si bien es una
plataforma artesanal, permite el entendimiento y futuro desarrollo de
simuladores de vuelo.
•
En la actualidad los simuladores de vuelo comerciales y no comerciales tienen
la propiedad de permitir adquirir información de vuelo, no únicamente datos de
aceleración o inclinación como se uso en el presente proyecto sino que
permiten sacar toda clase de información, desde cantidad de combustible
hasta la instrumentación completa de un avión determinado. Si bien en este
proyecto se uso el simulador de vuelo Flight Simulator X de Microsoft, se
puede usar cualquier simulador de vuelo que permita la adquisición de datos
incluso algunos simuladores de rally, navegación en barcos, montaña rusa o
cualquier juego que permita adquirir datos de aceleración.
•
Se consiguió diseñar y construir una plataforma Stewart a escala, además
mediante el estudio y análisis de la geometría completa durante el diseño de
la plataforma y junto al análisis de la cinemática inversa se puede controlar
cada uno de los 6 movimientos X, Y, Z, pitch, yaw y roll.
•
Se diseño una interfaz amigable con el usuario usando la herramienta
computacional Matlab, dicha interfaz toma datos del simulador de vuelo y
mediante un filtro washout permite transformar estos datos en datos de
posición y orientación. Se uso un filtro washout clásico ya que a partir de este
es posible optimizar el funcionamiento y el desarrollo de nuevos algoritmos de
filtrado y control.
106
•
Las matrices de rotación son de vital importancia para la orientación del
efector final virtual en el espacio y gracias a la cinemática inversa se puede
orientar al efector final real dentro de su espacio de trabajo.
•
Matlab es una herramienta muy potente para la realización de interfaces
gráficas de control, gracias a su sinnúmero de toolbox’s y funciones. Los MEX
Files permiten crear programas compatibles con Matlab usando lenguajes
como C, C++ y C#, lo que permite usar códigos previamente creados en
dichos lenguajes de programación.
•
Matlab cuenta con una herramienta llamada “Real-Time Workshop” que
permite el funcionamiento de Matlab en tiempo real, ya sean programas .m o
programas de Simulink. En el presente proyecto se uso la función “getframe”
la misma que sirve para realizar animaciones sin consumir recursos, para
realizar el control en tiempo real. De esta manera se grafica los cambios de la
plataforma en tiempo real sin usar Real-Time Workshop. Se decidió usar esta
función debido a los problemas de compatibilidad que presento la herramienta
Real-Time Workshop.
5.2 RECOMENDACIONES
•
Continuar el estudio de estos tipos de proyectos para el desarrollo de
simuladores de vuelo ecuatorianos para el entrenamiento de pilotos militares o
comerciales.
•
Es posible implementar un algoritmo más óptimo mediante la modelación del
sistema vestibular o la implementación de nuevos algoritmos recientemente
creados, así se puede corregir errores que el algoritmo clásico no puede.
•
Si bien el programa creado en el presente proyecto de titulación sirve para la
plataforma construida, es posible cambiar de plataforma por una más grande
la única modificación que se debería hacer es resolver e implementar la
cinemática inversa de la nueva plataforma Stewart y realizar una nueva
calibración del filtro washout clásico previamente construido.
107
•
Para mejorar el funcionamiento de la plataforma Stewart se recomienda
comprar una plataforma comercial o realizar el diseño mecánico exhaustivo de
la misma.
•
Para la calibración del filtro washout se recomienda contar con
la
colaboración de pilotos experimentados para la realización de una calibración
correcta que logre engañar al sistema vestibular con precisión. Claro esto
solo se lo puede lograr si el piloto puede posicionarse sobre la plataforma, es
decir se debe contar con una plataforma de tamaño real.
108
REFERENCIAS BIBLIOGRÁFICAS
[1] D. Allerton, Principles of Flight Simulation, 1st ed, Editorial Wiley & Sons, Ltd, United
Kingdom, Chichester 2009.
[2] C. Cunliffe Checura; Desorientación Espacial; Centro de Medicina Aeroespacial, Fuerza
Aérea de Chile, Publicación 2009
[3] R. Aracil; Robots Paralelo: Maquinas con un Pasado para una Robotica del Futuro,
Articulo Universidad Politécnica de Madrid; 2006.
[4] (2012) MRMC Pagina web de productos, (En línea), Disponible: http://www.mrmoco.com
/products/model-movers/motion-base/
[5] (2009) Intellectual Property Office United Kingdom webpage, (En linea), Disponible:
http://www.ipo.gov.uk/types/tm/t-os/t-find/t-findnumber?detailsrequested=C&trademark=2153930
[6] K.H. Hunt, Structural Kinematics of In-Parallel-Actuated Robot-Arms, Journal of
Mechanisms, Transmissions, and Automation in Desing, Vol. 105, Nº 4, 1983.
[7] (2006) Microsoft Flight Simulator X games webpage, (En linea), Disponible:
http://www.microsoft.com/games/flightsimulatorx/
[8] (2012) Peter Dowson homepage, (En Linea), Disponible:
http://www.schiratti.com/dowson.html.
[9] (2008) Microsoft SimConnect SDK Reference webpage, (En linea), Disponible:
http://msdn.microsoft.com/en-us/library/cc526983.aspx.
[10] (2008) Microsoft SimConnect Simulation Variables webpage, (En Linea), Disponible:
http://msdn.microsoft.com/en-us/library/cc526981.aspx
[11] L. Reid, A. Nahon, Flight simulation motion-base drive algorithms:part 1 – developing
and testing the equations, University of Toronto, Canada, Institute of Aerospace Estudies
(UTIAS), 1985.
[12] S. Orzáez, Desarrollo de un sistemas de control y pruebas para una plataforma de
movimiento con 6 grados de libertad, Universidad Autónoma de Madrid, Proyecto de fin de
carrera, Nov. 2010.
[13] (2012) M. Cruz Universidad Autónoma del Estado de Morelos, publicación pdf, (En
linea), Disponible: www.uaem.mx/posgrado/mcruz/ cursos/mn/inttrapezoide.pdf
109
[14] (2011) Departamento de Ingeniería Eléctrica y de Computadoras, publicación pdf, (En
linea), Disponible: www.ingelec.uns.edu.ar/pds2803 /Materiales/Cap07/07-Cap07.pdf
[15] (2012) Tienda Briko Geek webpage, (En linea) Disponible:
http://www.bricogeek.com/shop/motores/232-controlador-de-servomotores-micro-maestrousb.html
[16] (2012) Arduino webpage, (En linea), Disponible: http://arduino.cc/en/Main/
ArduinoBoardUno
[17] (2012) Atmel devices webpage, (En linea) Disponible: http://www.atmel.com/
devices/atmega164p.aspx
[18] (2007) F. Candelas, J. Corrales, Universidad de Alicante webpage, (En linea), Disponible:
http://www.aurova.ua.es:8080/proyectos/dpi2005/docs/publicaciones /pub09ServoMotores/servos.pdf
[19] (2012) Arduino software webpage, (En linea), Disponible: http://arduino.cc/en/
Main/Software
[20] L. REID, A. NAHON, Flight simulation motion-base drive algorithms:part 2 – Selecting
the System Parameters, University of Toronto, Canada, Institute of Aerospace Estudies
(UTIAS), 1986.
[21] C. WEIß, Control of a Dynamic Driving Simulator: Time-variant Motion Cueing
Algorithms and Prepositioning, Diploma Thesis ifs 2006-0021, 2006
[22] (2010) J. Cock Proyecto Robot Paralelo Delta UPB blogpage (En línea), Disponible:
http://robotparaleloupb.blogspot.com/
[23] J.A. Briones, Diseño, “Analisis y Construccion de un Robot Paralelo Traslacional,” M.
Thesis, Centro de Investigación en Ciencia Aplicada y tecnología Avanzada, Instituto
Politecnico Nacional, Querétaro, México. Mayo, 2009.
[24] (2011) Institut de Robòtica i Informàtica Industrial, Research CUIK++ pagina web, (En
linea), Disponible: http://www.iri.upc.edu/research/webprojects/cuikweb/Stewartgough
/stewartgough.php.
[25] (2012) HobbyKing servo HK15148 pagina web de especificaciones, (En linea),
Disponible: http://www.hobbyking.com/hobbyking/store/__16265__HK15148_
Analog_Servo_17g_2_5kg_0_14s.html.
110
[26] (2009) Bea,
Vista,
Suerte
y al
Toro
webpage,
(En
Linea), Disponible:
http://www.maclittle.es/2009/03/07/colaboracion-todo-lo-que-siempre-quiso-saber-sobredesorientacion-espacial-y-nunca-se-atrevio-a-preguntar%E2%80%A6por-bea/
[27] (2000) C. Magallanes, G. Arias, Universidad Nacional de San Luis publicación web, (En
linea), Disponible: http://biblioteca.unsl.edu.ar/website/baea/prof-cs/numero13/index.html.
[28] J.-P. Merlet Prallel Robots, 2nd ed, Editorial Springer, The Netherlands, Dordrecht 2006.
A-1
ANEXO A
MANUAL DE USUARIO
Pasos para la instalación de la plataforma Stewart:
•
Insertar el CD de programa.
•
Conectar el cable USB de la Plataforma Stewart.
•
Aparecerá una ventana como la ilustrada en la Figura A-1.
Figura A- 1 Instalación de Arduino 1
•
Se selecciona la opción “Instalar desde una lista o ubicación especifica” y se
presiona el botón “Siguiente”. A continuación aparecerá la ventana ilustrada
en la Figura A-2.
A-2
Figura A- 2 Instalación Arduino 2
•
En la ventana de la Figura A-2 se ingresa la dirección de la carpeta drivers
que contiene el CD de programa y presionar el botón “Siguiente”. Una vez
terminada la instalación aparece la ventana ilustrada en la Figura A-3.
Figura A- 3 Instalación Arduino 3
Pasos para instalar el simulador de vuelo Flight Simulator X de Microsoft:
A-3
•
Verificar los requerimientos del simulador los cuales son:
Windows XP SP2, Windows 2000 Professional SP4 o superior
Intel Pentium 4, 2GHz o superior
Tarjeta aceleradora de video de 128 MB compatible con Direct X 9.0c
(NVIDIA Geforce4, TI/ATI Radeon 8500 o mejor)
512 MB de RAM o superior
13 GB de espacio libre en disco duro
8X DVD ROM Drive
•
Insertar el CD1 del simulador de vuelo y ejecutar la instalación automática
como aparece en la Figura A-4. Seguir las instrucciones del programa hasta
instalar completamente el juego.
Figura A- 4 Instalación de Simulador de vuelo.
•
Una vez instalado el juego se procede a instalar el programa SDK, el mismo
que permite la comunicación entre el simulador y la interfaz. Se inserta el
CD1 del simulador de vuelo, se ingresa al CD dando clic derecho sobre el
icono del dvd room, se le da la opción abrir como se aprecia en la Figura A-5.
A-4
Figura A- 5 Instalación SDK 1
•
Se ejecuta la aplicación “Setup” que está dentro de la carpeta “SDK” como se
ilustra en la Figura A-6 y se sigue las indicaciones del programa hasta lograr la
instalación.
Figura A- 6 Instalación SDK 2
Pasos para ejecutar la interfaz de control:
•
Tener Instalado una versión de Matlab superior a la 6.5, a continuación abrir
Matlab.
A-5
•
Copiar la carpeta “Programa” que está ubicado en el CD con el mismo nombre
a una dirección en la PC (se recomienda copiar en la carpeta Mis
Documentos\Matlab) como se aprecia en la Figura A-7.
Figura A- 7 Copiar Programa
•
Ubicar la carpeta Programa en la ventana “Current Directory” de Matlab como
se ilustra en la Figura A-8.
Figura A- 8 Current Directory
A-6
•
Por último se escribe en el “Command Window” la función “interfaz ()” cada
vez que se ejecute el programa como se aprecia en la Figura A-9.
Figura A- 9 Ejecutar interfaz
B-1
ANEXO B
CIRCUITOS ESQUEMATICOS Y CIRCUITO ESQUEMÁTICO
COMPLETO
B-2
FUENTE 6V/2A
CIRCUITO DE AISLAMIENTO
B-3
ANEXO C
PRESUPUESTO
Tabla C- 1 Presupuesto usado
ARTÍCULO
CANTIDAD
PRECIO(DÓLARES
AMERICANOS)
TOTAL UNITARIO
ARDUINO UNO
1
30
30
SERVOMOTORES
6
6
36
4N25
6
0,25
1,5
BORNERAS
19
0,1
1,9
LM350
TRANFORMADOR
110/12V-2A
1
5
5
1
6
6
REISISTENCIAS
POTENCIÓMETRO
100K
15
0,2
3
1
0,25
0,25
LED
1
0,4
0,4
CAJA DE MADERA
BASES PARA
SERVOS
CAPACITOR
4700UF
CAPACITOR
100UF
1
25
25
6
2,5
15
2
1,2
2,4
1
0,25
0,25
CAPACITOR 22UF
BARRA DE
ACERO 1M
BASE DE
MADERA
TORNILLOS
VARIOS
USO DE
INTERNET X MES
INVESTIGACIÓN Y
MANO DE OBRA
(MENSUAL)
1
0,25
0,25
1
1
1
1
1
1
1
2
2
6
30
180
6
290
1740
TOTAL
2050,95