[go: up one dir, main page]

Academia.eduAcademia.edu

CD 4728

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