hfwr )lq gh &duuhud ,qjhqlhutd gh...

98
Proyecto Fin de Carrera Ingeniería Aeronáutica Interfaz de FlightGear para prácticas de ensayos en vuelo Autor: Mª del Carmen Chacón García Tutor: Francisco Gavilán Jiménez Dep. Ingeniería Aeroespacial y Mecánica de Fluidos Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2016

Upload: others

Post on 22-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Proyecto Fin de CarreraIngeniería de Telecomunicación

Formato de Publicación de la Escuela TécnicaSuperior de Ingeniería

Autor: F. Javier Payán Somet

Tutor: Juan José Murillo Fuentes

Dep. Teoría de la Señal y ComunicacionesEscuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2013

Powered by TCPDF (www.tcpdf.org)

Proyecto Fin de CarreraIngeniería Aeronáutica

Interfaz de FlightGear para prácticas deensayos en vuelo

Autor: Mª del Carmen Chacón García

Tutor: Francisco Gavilán Jiménez

Dep. Ingeniería Aeroespacial y Mecánica de FluidosEscuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2016

Page 2: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se
Page 3: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Proyecto Fin de CarreraIngeniería Aeronáutica

Interfaz de FlightGear para prácticas deensayos en vuelo

Autor:

Mª del Carmen Chacón García

Tutor:

Francisco Gavilán JiménezProfesor Ayudante Doctor

Dep. Ingeniería Aeroespacial y Mecánica de FluidosEscuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2016

Page 4: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se
Page 5: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Proyecto Fin de Carrera: Interfaz de FlightGear para prácticas de ensayos en vuelo

Autor: Mª del Carmen Chacón GarcíaTutor: Francisco Gavilán Jiménez

El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes profesores:

Presidente:

Vocal/es:

Secretario:

acuerdan otorgarle la calificación de:

El Secretario del Tribunal

Fecha:

Page 6: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se
Page 7: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Resumen

Este proyecto consiste en la creación de un entorno de simulación para el simulador de vuelo FlightGear,seleccionado como sustituto de los simuladores de vuelo con los que cuenta la Escuela de Ingenieros

de Sevilla, que no sólo sea de uso sencillo y rápido, sino también simple de actualizar y personalizar, demanera que en el caso de que se quisieran añadir opciones o cambiar el enfoque del uso del mismo haciauno más avanzado, dicha modificación resulte inmediata y sin mucha complejidad.

Este entorno de simulación consiste en una interfaz gráfica basada en MATLAB® desde la que sepueden editar las condiciones iniciales básicas adaptadas a un vuelo básico, simulación que va a ser laque se utilice en las prácticas del alumnado, así como acceder a las variables internas características de laMecánica del Vuelo, bien para su visualización en tiempo real, bien para su almacenamiento y posteriorestudio. Esto se conisgue integrando en la arquitectura del entorno de simulación una conexión de redentre ambos programas, en particular, una conexión UDP, dirigida desde el propio simulador FlightGearhacia el entorno gráfico.

I

Page 8: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se
Page 9: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Índice

Resumen I

1. Introducción 11.1. Estado del arte 21.2. Organización y descripción del documento 3

2. Descripción de FlightGear 52.1. Modelos de dinámica del vuelo 52.2. Escenario de alta precisión 62.3. Sistema de modelado de aeronaves flexible y abierto 62.4. Opciones de conexión 62.5. Pantallas múltiples 6

3. Arquitectura del entorno de simulación 93.1. FlightGear 103.2. Preprocesado. Entorno gráfico en MATLAB® 11

3.2.1. Elección de variables internas 123.3. Postprocesado. Entorno gráfico en MATLAB® 13

4. Desarrollo de la herramienta 154.1. Preprocesado 15

4.1.1. Entorno gráfico 174.1.2. Script de arranque 274.1.3. XML de configuración del protocolo de la extracción de datos 29

4.2. Postprocesado 304.2.1. Preparación de la visualización de los datos recibidos 324.2.2. Recepción y lectura de los datos recibidos 344.2.3. Visualización de los datos recibidos 38

5. Ejemplo de aplicación: estudio del modo fugoide de la aeronave MD-82 455.1. Fundamento teórico 45

5.1.1. Ecuaciones generales de la Mecánica del Vuelo 465.1.2. Ecuaciones linealizadas de la mecánica del vuelo 475.1.3. Estabilidad Dinámica del avión 485.1.4. Aproximación al modo fugoide 49

5.2. Realización práctica 51

III

Page 10: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

IV Índice

5.3. Resultados 545.3.1. Aproximación de Lanchester 545.3.2. Aproximación al modo fugoide con incorporación del amortiguamiento 545.3.3. CZs, CLs y CXu 55

6. Conclusiones y trabajos futuros 576.1. Trabajos futuros 57

Apéndice A.Manual del usuario 59A.1. Instalación del software 59

A.1.1. FlightGear 59A.1.2. MATLAB® 60

A.2. Uso de la interfaz 60A.2.1. Primer uso 60A.2.2. Preprocesado 60A.2.3. Postprocesado 64

Apéndice B.Instrucciones básicas para la adición de la características a la interfaz 69B.1. Preprocesado 69

B.1.1. Adición de aeronaves 69B.1.2. Adición de aeropuerto 71B.1.3. Adición de órdenes de inicio al script 71B.1.4. Adición de parámetros al archivo de configuración del protocolo 73

B.2. Postprocesado 76B.2.1. Adición de parámetros al archivo de configuración del protocolo 76

Índice de Figuras 82

Índice de Tablas 83Índice de Códigos 85Bibliografía 87

Page 11: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

1 Introducción

El Departamento de Ingeniería Aeroespacial de la Universidad de Sevilla cuenta a su disposición convarios simuladores de vuelo para complementar la docencia de los alumnos que a lo largo de los

años han cursado las carreras de Ingeniería Aeronáutica, Grado en Ingeniería Aeroespacial y Másteren Ingeniería Aeronáutica. Estos simuladores amplían los conocimientos del alumnado poniendo demanifiesto ejemplos prácticos de conceptos teóricos aprendidos en las distintas asignaturas.

Aunque estos simuladores de vuelo implementan un modelo de avión del máximo nivel de realismo,son de código cerrado, impiden el acceso y extracción de las variables internas de la aeronave, lo quelimita la funcionalidad que ofrecen estas herramientas. Además, como resultado del paso de los años, lossimuladores se han quedado obsoletos, con un rendimiento y resolución gráfica pobres en comparacióncon lo que ofrece la tecnología hoy en día.

Como posible solución a estas limitaciones se ha decidido crear este proyecto de fin de carrera, queresponde al de nombre “Interfaz de FlightGear para prácticas de ensayos en vuelo”, con el que se proponela construcción y establecimiento de un simulador de vuelo alternativo, actualizado, preciso y de fácilsustitución, más acorde con la funcionalidad buscada.

Dado que el modelo dinámico de los simuladores de los que ya se dispone es mucho más preciso,cabe destacar que el objetivo de este proyecto no es tanto sustituir a estos como complementarlos,proporcionando al Departamento una herramienta de simulación desde la que se puedan obtener en tiemporeal las variables internas del vuelo, tal y como se haría en un ensayo en vuelo, ya que éstas no tienen porqué observarse directamente en el panel de instrumentos de la aeronave.

A este fin, y dado que la Universidad de Sevilla es una de las universidades nacionales más comprometi-das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se ha optado por utilizar elsimulador de vuelo de libre distribución FlightGear, junto con el programa MATLAB®, que si bien no esgratuito, ofrece a la Universidad de Sevilla licencias básicas para el profesorado y el alumnado, que estáacostumbrado a utilizarlo.

La arquitectura del simulador se ha construido mediante el programa MATLAB® con la herramientaGUIDE, creándose un entorno gráfico desde el que se controlan el propio simulador, la conexión entreambos programas y la salida de datos.

Así, cuando el usuario lanza el programa se inicia una interfaz gráfica que carga de manera automática laconfiguración necesaria para el funcionamiento tanto de la instalación de FlightGear como de la conexiónentre ambos programas, de manera que no haga falta realizar dicha configuración cada vez que se utilice elprograma. Esta interfaz también ofrece una visualización rápida y cómoda de las opciones que afectan a laspropiedades del vuelo de cada una de las distintas simulaciones que se quieran realizar, orientadas siempreal ámbito de las prácticas, permitiendo su edición de una manera intuitiva y sencilla. Una vez introducidos

1

Page 12: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

2 Capítulo 1. Introducción

los datos iniciales del vuelo, desde esta misma pantalla se podrá llamar al simulador FlightGear e iniciar laconexión desde MATLAB®.

La conexión entre ambos programas consiste en una comunicación mediante protocolo UDP, orientadodel simulador al entorno gráfico, es decir, FlightGear envía datos a través de una dirección IP y puertoestablecidos y MATLAB® recibe dichos datos en otra dirección IP determinada y mismo puerto. Estacaracterística del simulador FlightGear de poder acceder de manera externa a cualquier variable del mismoy abrir conexiones de red, permite que sea posible obtener cualquier variable interna referente al vuelo, asícomo la posición de la aeronave en cualquier momento.

Una vez iniciada la recepción de datos, se abre una nueva interfaz gráfica en MATLAB®, desde la quees posible seleccionar qué hacer con ciertas variables internas de la aeronave claves en la dinámica delvuelo, así como la posición y la altitud de la aeronave durante el vuelo. Desde esta segunda pantalla. esposible elegir qué datos se desean almacenar en un archivo al que se podrá acceder tras la finalización dela simulación y cuáles se desean visualizar al mismo tiempo que ésta se lleva a cabo.

1.1 Estado del arte

Desde que los inicios en la aviación ha sido necesario entrenar a los pilotos de manera previa a la realizaciónde vuelos reales. Inicialmente se utilizaban esquemas y estructuras muy básicas que se limitar a simularmovimientos mecánicos y a incluir los mandos de vuelo. Con el desarrollo de las computadoras empezarona utilizarse los simuladores electrónicos que han ido evolucionando desde los incios, en que se limitaban aresolver las ecuaciones del vuelo, hasta hoy, donde los avances más grandes se producen sobretodo en elcampo de la visualización. Hoy en día hay varias categorías de simuladores de vuelo utilizados para elentrenamiento de pilotos. Estas categorías van desde simples sistemas de entrenamiento hasta simuladoresde vuelo con 6 ángulos de movimientos [2].

El uso académico de estos simuladores va a hacer uso de los sistemas de entrenamiento, para lo cuálse tienen en los laboratorios tres estaciones de simulación desarrollados por la compañia Elite, que sibien en su día se trataba de un equipo puntero a día de hoy se perciben ciertas carencias en el mismofrente a otras equipos más modernos. Como ya se ha comentado, estos equipos son de código cerrado y nopermiten modificación ninguna dentro de la herramienta de simulación, así como tampoco la extracción deningún dato, lo que dificulta la realización de algunas prácticas en las que es necesario monitorizar algunasvariables de estado del avión que no se proporcionan mediante la instrumentación de cabina convencional.Por otro lado estas plataformas sólo incluyen la aeronave MD-81, lo que limita las posibilidades de losensayos al no ser posible utilizar ningún otro avión con el que poder comparar los mismos.

Dada la evidente necesidad de una actualización con la que buscar una solución a estos problemas, esinteresante la incorporación de equipos abiertos a infinitas posibilidades que no sólo cubran las necesidadesactuales, sino que permitan la investigación en cualquier línea.

Realizando una búsqueda de simuladores de vuelo -no muy caros- a la orden del día, entre los mejoresse encuentran sin lugar a duda Virtual Pilot 3D, X-Plane 10, Microsoft Flight Simulator X [3] y FlightGear.Siendo este último el que se menciona siempre que se comparan versiones de pago con versiones gratuitas[4].

Los tres primeros son programas de pago y de código cerrado. Teniendo en cuenta que uno de los motivospara la creación de este proyecto es la posibilidad de acceso al código, claramente quedan descartadasestas opciones. Cabe destacar no obstante, que X-Plane 10 sí tiene implementados plugins que permiten,entre otros, la extracción de datos pero sigue sin igualar las capacidades de personalización de FlightGear.

FlightGear es un software de código abierto que se distribuye bajo licencia GNU (General PublicLicense). Se trata de un proyecto colaborativo que se encuentra en continuo desarrollo para corregir posibleserrores que hubiera en las versiones anteriores, aumentar la precisión de los modelos de simulación y añadirnuevas características y mejoras. Cuenta con una amplia base de datos de aeronaves, tanto comercialescomo militares, así como escenarios repartidos por todo el mundo, y permite cualquier configuración

Page 13: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

1.2 Organización y descripción del documento 3

de uso que el usuario requiera. En caso de no existir dicha configuración, la misma se puede crear paraadecuarse a las necesidades de uno mismo y -de manera opcional y voluntaria- su posterior incorporacióna futuras versiones. Esto, junto a un motor de simulación preciso y robusto hace que sea el simuladorelegido para este proyecto. Más información acerca de FlightGear se verá en el Capítulo 2.

1.2 Organización y descripción del documento

El documento que aquí se desarrolla tiene un doble objetivo: detallar de una manera clara y concisa elprocedimiento que se ha llevado a cabo para construir la herramienta consistente en una interfaz gráficapara el simulador FlightGear y las características principales que posee.

Por tanto, y para un mejor entendimiento del texto que se tiene entre manos se procede a explicar laestructura del documento.

Éste se compone de tres partes bien diferenciadas y dos apéndices.Una primera parte en la que se describe el simulador elegido para la realización del proyecto junto con

sus principales características, de manera que quede justificado el porqué de la elección del mismo, lo quecorrespondería al Capítulo 2.

Un segundo bloque compuesto por los Capítulos 3 y 4, en los que se va a estructurar la plataformacreada. En el Capítulo 3 se va a describir la arquitectura seguida para la creación del entorno, en dondese hablará, en particular del protocolo de conexión de red utilizado para la transmisión de los datos yse enumerarán las variables internas del ensayo con las que se ha decidido trabajar. Por otro lado, en elCapítulo 4 se desarrollan de manera detallada las características de los componentes de la interfaz gráficacreada, así como ciertos conceptos claves para el entendimiento y la comprensión de cómo funciona laherramienta, para facilitar una reproducción o modificación de la misma.

Por último un tercer bloque, el Capítulo 5, que no es más que una aplicación práctica del uso de lainterfaz gráfica para el desarrollo de una práctica de la asignatura Mecánica del Vuelo Avanzada, de modoque quede perfectamente reflejado que el proyecto desarrollado cumple con los fines para los que se hacreado.

Finalmente se van a tener dos apéndices, el Apéndice A y el Apéndice B, en los que se incluye, demanera respectiva, un Manual del Usuario en donde se entra en detalle en la instalación del simuladorFlightGear y el uso y manipulación de la interfaz y unas Instrucciones de Modificación de la interfaz, endonde se incluyen pautas para una futura modificación de las características básicas de la interfaz convistas a que la misma resulte sencilla y rápida.

Page 14: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se
Page 15: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

2 Descripción de FlightGear

El simulador de vuelo FlightGear ha sido desarrollado por una comunidad activa de usuarios quecontinuamente mejora y actualiza el mismo, hasta el punto de que ha dejado de usarse únicamente

de manera personal y amateur, para utilizarse también en un ámbito profesional, dado el alto nivel deprecisión y sofisticación que tiene y que se adapta a las nuevas necesidades de los usuarios [6].

Esto es debido a que el software se distribuye bajo una licencia GNU General Public License [5],encontrándose todo el proyecto y su código fuente abierto, accesible y gratuito de manera premeditada,lo que permite que se pueda mejorar de manera continua gracias al continuo flujo de ideas de una grancantidad de personas alrededor del mundo, que trabajan en el proyecto por diversos motivos: desdeconstruir un simulador casero muy realista, pasando por investigación universitaria y uso instructivo, hastasimplemente tener una alternativa viable a los simuladores comerciales.

FlightGear es por tanto inmensamente flexible, configurable y adaptable. La apertura que posee haceposible tanto a los usuarios como a los diseñadores de aeronaves el acceso a los estados de variablesinternas, que se encuentran organizadas jerárquicamente en un “árbol de propiedades”. Simplementeeditando un pequeño número de archivos de configuración es posible crear animaciones, efectos de sonidoy protocolos de conexión para casi cualquier situación imaginable.

A continuación se van a comentar alguna de las principales características del proyecto FligthGear. Todala información puede obtenerse de la siguiente referencia: [6].

2.1 Modelos de dinámica del vuelo

Dentro de FlightGear es posible elegir entre tres modelos de dinámica del vuelo básicos, así como añadirnuevos modelos e incluso interactuar con uno externo. Estos modelos preconfigurados son los siguientes:

1. JSBSim: JSBSim es una librería de código abierto que modela la dinámica del vuelo de vehículosaeroespaciales mediante un problema no lineal de seis grados de libertad. Esta librería se puedeincorporar a programas de simulación, como FlightGear, o puede ser llamada desde una aplicaciónpara crear una herramienta de simulación [7]. JSBSim integra las ecuaciones de la mecánica delvuelo de forma discreta, en intervalos pequeños, calculando y sumando las fuerzas y momentosresultantes obtenidos de los valores de las distintas variables que participan en el las ecuaciones,obtiéndose así el estado del vehículo aeroespacial [8].

2. YASim: Este modelo de dinámicas del vuelo, FDM (flight dynamics model), es una parte integradade FlightGear y a diferencia de JSBSim simula el efecto del flujo de aire en las diferentes partes delavión. Combina la geometría y masa del avión con los datos de rendimiento generales del mismo.

5

Page 16: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

6 Capítulo 2. Descripción de FlightGear

De esta manera se consigue una respuesta del avión muy similar a la que se tendría en realidad sinnecesidad de los todos los datos experimentales aerodinámicos.

3. UIUC: Este FDM se basa en LaRCsim, escrito originalmente por la NASA. UIUC permite además eluso de archivo de configuración de las aeronaves incluso bajo condiciones de hielo. La simulaciónde UIUC es similar a la de JSBSim.

2.2 Escenario de alta precisión

En cuanto al escenario, FlightGear posee una extensa y precisa base de datos, lo que permite vuelos muyrealistas.

Cuenta con unos 20000 modelos de aeropuertos de alrededor de todo el mundo, que incluyen el correctoemplazamiento y señalización de las pistas de despegue y aterrizaje, así como la señalización de lassendas de aproximación. Las calles de rodadura están disponibles también para la mayoría de los grandesaeropuertos.

En cuanto al terreno, FlightGear se basa en los últimos datos ofrecidos por la misión SRTM (ShuttleRadar Topography Mission) de la NASA, con una resolución de 3 arcos de segundo en los cinco continentes,que incluyen todo el paisaje topográfico de la Tierra.

También se incluye una iluminación nocturna de la superficie terrestre, con una iluminación de la mismaconcentrada en las áreas urbanas basada en mapas reales, lo que permite un vuelo nocturno VFR realista,en el que se pueden distinguir pueblos y ciudades y carreteras.

Por otro lado, este simulador es muy preciso en cuanto a la correcta posición del Sol, la Luna, lasestrellas y planetas en el cielo para la hora fijada del día en cuestión en que se está volando. No sólo sepuede elegir una fecha específica en la que llevar a cabo la simulación, sino que el software es capazde obtener la hora local del ordenador desde donde se está ejecutando y establecer las posiciones realesrelativas de los astros y sus fases en el escenario para la hora local.

2.3 Sistema de modelado de aeronaves flexible y abierto

El simulador FlightGear es capaz de modelar una gran variedad de aeronaves, tanto aviones comercialescomo militares e incluso ornitópteros.

En cuanto a la visualización, la herramienta con las que cuenta hace posible que se puedan generarcabinas de piloto 3D completamente animadas, funcionales e interactivas.

En cuanto a los modelos, FlightGear modela de manera realista los comportamientos de la instrumenta-ción a bordo, así como los mismos sistemas e intrumentos y sus posibles fallos (y el comportamiento de laaeronave que conllevan).

2.4 Opciones de conexión

En el simulador existen diferentes opciones de conexión que permiten la comunicación entre FlightGearcon otras sesiones del mismo, receptores GPS, módulos externos de dinámica del vuelo, aputopilotosexternos o módulos de control, así como distintos softwares, como el proyecto Open Glass Cockpit y lautilidad de mapeo Atlas, entre otros. Todo ello a través de un archivo de protocolo, totalmente configurable.

2.5 Pantallas múltiples

FlightGear posee un soporte integrado que permite la visualización de múltiples pantallas desde una únicasesión de la aplicación. Además, el protocolo de red nativo que posee se puede utilizar para controlar desde

Page 17: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

2.5 Pantallas múltiples 7

un solo ordenador varios ordenadores con múltiples pantallas cada uno. En el caso de utilizar múltiplespantallas, FlightGear ofrece diversas opciones para la visualización, como por ejemplo, Matrox TripleHead 2 Go, que permite la creación de tres cámaras en una ventana y el ajuste de los parámetros devisualización para cada una de las cámaras para tener en cuenta la separación real que pudiera haber entrepantallas.

Page 18: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se
Page 19: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

3 Arquitectura del entorno de simulación

Con el fin de incorporar a las herramientas de simulación con las que se complementa la docencia delalumnado del Grado de Ingería Aeroespacial y del Máster en Ingeniería Aeronáutica se presenta

este Proyecto de Fin de Carrera, con el que se va a construir una nueva plataforma que de solución a losproblemas que se mencionaron en el Capítulo 1. Esto es, se va a intentar en la medida de lo posible crearuna herramienta versátil y de bajo coste que sea de gran personalización y con la que sean accesibles yse puedan visualizar las variables internas del vuelo en tiempo real, para lo cuál se va a hacer uso delsimulador de vuelo FlighGear entre cuyas principales características, que se han descrito en el capítuloanterior, se encuentra la versatilidad y el grado de personalización que se estaba buscando.

En cuanto al acceso en tiempo real a los datos de vuelo, se ha optado por utilizar una de las distintasopciones de conexión de red con las que FlightGear cuenta, que permiten transmitir datos de diversasformas. Esto es conveniente e interesante ya que si se activa la transmisión de datos a través de un puerto yse busca una manera de recibirlos por otro lado, estos datos se pueden procesar y mostrar en tiempo real,que es lo que se está buscando.

Es por ello que se va a utilizar el simulador FlightGear junto con el software MATLAB®, siendo esteúltimo aquel a través del cuál se van a recibir los datos y se van a procesar. Aprovechando también de queeste programa consta de un módulo propio para crear interfaces gráficas, se ha optado por crear un entornográfico dentro de MATLAB® desde el que poder visualizar las variables en tiempo real.

Por otro lado, dada la capacidad de personalización de FlightGear y con el objeto de hacer la inicializa-ción del simulador ágil, intuitiva y automatizada en el grado en que se pueda, se ha decidido optar a laplataforma de otra interfaz gráfica desde la que se controle toda la configuración.

A continuación se va a pasar a detallar la arquitectura de la herramienta creada. Además de determinarlos bloques en que se divide la estructura, también se hablará de la forma en que se encuentran conectadosentre sí y se incluirá una breve justificación de la elección de los parámetros de vuelo que se obtienen delsimulador.

Para ello, se comienza por mostrar un esquema de la estructura básica de la arquitectura del entorno desimulación donde se pueden apreciar claramente los bloques y la interconexión entre ellos. Esto se puedever en la Figura 3.1.

9

Page 20: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

10 Capítulo 3. Arquitectura del entorno de simulación

Figura 3.1 Esquema de la arquitectura del entorno de simulación.

Como se puede apreciar en la Figura 3.1, claramente el entrono se ha dividido en tres bloques. Estadivisión atiende a funcionalidad. El primer bloque, denominado como “preprocesado”, es un entornográfico basado en MATLAB® en donde se van a definir tanto la configuración del usuario (configuraciónde la instalación del simulador y de la red) como las condiciones específicas del ensayo de vuelo con elque se vaya a trabajar. El segundo bloque lo forma el simulador FlightGear y se trata de la simulacióndel ensayo definido en el primer bloque en sí. El tercer y último bloque que se denomina “postprocesado”consiste en otra interfaz gráfica independiente, también basada en MATLAB®, en donde se van a presentarlos datos obtenidos de la simulación al usuario.

Como se verá en lo que sigue, la independencia de estos tres bloques es completa: se puede utilizar laherramienta desde en un único ordenador, hasta en tres independientes, lo que ahorraría carga a los mismosy permitiría que se realizaran las tres tareas de manera simultánea, como por ejemplo: podría haber unapersona creando todos los distintos archivos de arranque, otra estaría pilotando la aeronave, y una tercerase encontraría analizando y monitorizando los datos del vuelo.

Para explicar el porqué de esta estructura se hablará primero del simulador FlightGear ya que de estamanera se van a establecer las bases del funcionamiento del mismo y quedará clara la necesidad de estadivisión, viéndose de manera lógica que hay un “antes de la simulación” y un “después de la simulación” ,por lo que se tratarán de manera independiente. Seguidamente se hablará de estos “antes” y “después” enforma de bloques de “preprocesado” y “postprocesado”.

3.1 FlightGear

Para arrancar el simulador es necesario establecer de antemano una serie de propiedades y condicionescon las que se van a especificar el ensayo que se quiere realizar.

La versatilidad del programa hace que este inicio se pueda llevar a cabo de distintas maneras [13], desdeutilizar la propia interfaz de arranque que incluye, hasta crear una archivo de arranque en el lenguaje

Page 21: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

3.2 Preprocesado. Entorno gráfico en MATLAB® 11

propio del simulador para que se cargue de manera automática cuando se utilice el ejecutable “fgfs.exe”,pasando por el inicio desde la línea de comandos de Windows®.

Es claro que si se puede iniciar el programa desde la línea de comandos del sistema es posible crear unarchivo por lotes que contenga las órdenes necesarias para dicho lanzamiento.

Como es sabido, los archivos por lotes es un archivo de texto sin formato que contiene uno o máscomandos, y cuya extensión de nombre de archivo es .bat o .cmd. Al escribir el nombre del archivo en elsímbolo del sistema, se ejecutan los comandos secuencialmente como aparecen en el archivo [14], por loque son útiles en caso de tareas repetitivas, como es el caso.

Dado que el simulador tiene numerosas posibilidades de configuración que en cada inicio deben serdefiinidas, tanto la opción de utilizar la interfaz propia de FlightGear como la de utilizar la consola decomandos del sistema quedan descartadas. Ahora bien, entre utilizar un archivo de configuración propiodel simulador y un archivo por lotes se ha optado por esta última posibilidad porque desde MATLAB® esposible llamar al símbolo del sistema desde la sesión actual.

Además, las opciones de inico de FlightGear se han reducido a aquellas necesarias para la realizaciónde las prácticas, aunque en un futuro estas se podrían ampliar o modificar, como se verá en el Apéndice B.

Por tanto queda establecido que el paso previo al inicio del simulador es el establecimiento de lasórdenes de las características específicas de la sesión.

Por otro lado la idea de crear una interfaz de simualción no sólo es reemplazar los simuladores de losque dispone el laboratorio, sino que también acceder a los datos del vuelo. Para ello FlightGear tieneimplementados distintos protocolos que permiten la transmisión de los mismos entre diversas máquinasmediante comunicación de tipo “socket”. Además soporta múltiple conexiones I/O simultáneas. Enparticular dispone de un protocolo genérico que permite la escritura/salida de los datos que se quieransegún se encuentran especificados en un archivo de configuración XML [15].

Esto quiere decir que además de establecer las condiciones específicas del ensayo habrá que establecerun protocolo de conexión con el que el simulador deberá inciar la sesión y que además de determinar laspropiedades de la conexión habrá que establecer qué datos se quieren extraer del simulador.

En cuanto a las propiedades de la conexión se ha decidido utilizar una conexión de tipo UDP.La conexión UDP (protocolo de datagramas de usuario) es un protocolo no orientado a conexión. Supone

un transporte de datos rápido, compacto y no confiable entre hosts TCP/IP, proporcionando un servicio dedatagramas sin conexión que ofrece entrega de mejor esfuerzo, lo que significa que UDP no garantiza laentrega ni comprueba la secuencia de los datagramas [16].

Las opciones relativas a la conexión se deberán especificar al inicio del simulador junto con el restode opciones de inicio del mismo en el archivo de arranque del simulador, mientras que los datos quese quieran extraer de éste durante la simulación se detallarán en un archivo de configuración escrito enlenguaje XML.

Finalmente, los datos extraídos y enviados mediante la conexión se tendrán que recibir en otro “sitio”,de manera que el usuario pueda trabajar con ellos.

En resumen: en primer lugar se necesitan escribir tanto el archivo de arranque del simulador comoel XML de configuración del protocolo de los datos de salida. Luego, se iniciará la simulación con lascondiciones elegidas y se recibirán los datos en otro lado.

3.2 Preprocesado. Entorno gráfico en MATLAB®

Como se ha visto en la Sección 3.1, antes del arranque de la simulación se necesitan establecer ciertascondiciones para lo cuál se hará uso de dos archivos: un script de arranque de extensión .bat y un archivode configuración del protocolo de los datos de salida de extensión .xml.

Cómo hacer que el usuario sea capaz de configurar las condiciones iniciales de arranque del simuladorde manera sencilla y sin tener que escribir órdenes es fácil: se va a crear una interfaz gráfica en la que

Page 22: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

12 Capítulo 3. Arquitectura del entorno de simulación

únicamente habrá que seleccionar entre distintas opciones y que se transcribirán de manera automática alscript.

Para la creación de la interfaz se utilizará el entorno GUIDE (Grpahic User Interface DevelopmentEnvironment) de MATLAB®, que simplifica la creación de guis haciéndolas intuitivas. El desarrollo delpreprocesado y una descripción de todas sus características se verá en la Subsección 4.1.1, mientras que laestructura del script se puede encontrar en la Subsección 4.1.2.

Por otro lado, elegidas las variables que se van a presentar, Sección ??, se debe crear el archivo deconfiguración XML para especificar exactamente cómo se van a extraer dichos datos, lo cuál se verá tantoen la Subsección 4.1.3 como en el Apéndice A.

3.2.1 Elección de variables internas

Se ha hablado ya de que una de las mejoras que se tienen al hacer uso del simulador FlightGear es que esposible obtener de manera intrínseca un amplio rango de variables internas del ensayo. En el caso que aquíocupa se ha decidido hacer accesibles para el usuario 36 de ellas, que se han considerado de interés.

A partir estos parámetros del vuelo se pueden obtener las fuerzas y momentos que se generan sobre laaeronave, así como las distintas velocidades características del ensayo y una estimación del modelo deavión.

Se incluye a continuación una lista de las variables de estado que se van a transmitir en tiempo realdurante la simulación del vuelo de la aeronave.

• Posición de la aeronave en coordenadas geográficas: latitud, longitud y altitud (ϕ,λ ,h).

• Componentes de la velocidad en ejes cuerpo: u,v,w.

• Componentes de la velocidad angular en ejes cuerpo: p,q,r.

• Ángulos de Euler: balance, cabeceo y guiñada (φ ,θ ,ψ).

• Derivadas de los ángulos de Euler, φ , θ , ψ .

• Tiempo de simulación, t

• Componentes de la velocidad en ejes NED, o lo que es lo mismo, en el sistema de ejes horizontelocal: VN ,VE ,VD.

• Velocidad indicada del aire corregida, CAS. velocidad indicada corregida para errores instrumentalesy de posición.

• Velocidad equivalente del aire, EAS. Velocidad de alguna aeronave a nivel del mar que produce lamisma presión dinámica incompresible que la velocidad verdadera en la altura en que la aeronave sedesplaza.

• Velocidad del avión con respecto al suelo, “groundspeed”.

• Mach de vuelo de la aeronave.

• Velocidad vertical o de subida: por comodidad.

• Ángulo de ataque, α .

• Ángulo de resbalamiento, β .

• Factor de carga n. Relación entre la carga de aire total soportada por la estructura del avión y el pesodel mismo.

• Senda de planeo, γ .

• Superficies de control: alerones, elevadores, flaps, timón de cola, slats y spoilers.

Page 23: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

3.3 Postprocesado. Entorno gráfico en MATLAB® 13

• Posición de la palanca de gases, δ .

• Nivel de combustible, m f .

3.3 Postprocesado. Entorno gráfico en MATLAB®

Como se ha comentado anteriormente, desde el simulador FlightGear se va a abrir una conexión de salidapor donde se mandarán los datos del ensayo.

Estos datos se deben recibir en algún sitio, y ya que se quiere que se puedan visualizar, se ha decididocrear otro entorno gráfico en MATLAB®, donde se mostrarán los mismos conforme vayan llegando.

También en este caso se hará uso de la herramienta GUIDE para la creación de la interfaz.Comentar que con vistas a la funcionalidad y a la posibilidad de personalización de la visualización de

las variables del vuelo, en esta interfaz no sólo se recibirán los datos y se mostrarán, sino que se requeriráque el usuario configure la visualización de datos a su gusto. Además de esta manera se evitan crearmuchas gráficas de manera simultánea, lo que ahorra procesos al ordenador y desde el punto de vista de laprogramación es más eficiente, ya que sólo se utiliza “lo que se quiere”.

Finalmente desde este entorno se podrá acceder a los datos de vuelo del ensayo que se deseen, se hayanquerido representar en una gráfica o no, ya que una vez terminada la recepción de datos se imprimirá unarchivo de datos.

Destacar que evidentemente para recibir los datos en este entorno será necesario abrir una conexiónUDP aquí que enlace con la del simulador, en este caso de entrada.

El desarrollo del bloque se verá con detalle en la sección 4.2.

Page 24: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se
Page 25: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4 Desarrollo de la herramienta

En el capítulo que aquí se trata se va a describir el trabajo realizado para el desarrollo de la herramienta,detallando todas y cada una de las características y opciones que se han incluído en el entorno.

La estructura que sigue el capítulo se corresponde con la propia del entorno de simulación, que se divideen dos partes bien diferenciadas: una primera que se puede definir como un preprocesado, desde la que seva a indicar al simulador con qué configuraciones de red y de ensayo debe iniciarse, y una segunda que secaracteriza por ser un postprocesado, dentro de la cuál se realiza la recepción y lectura de los datos y supresentación al usuario.

4.1 Preprocesado

En lo que sigue se va a proceder a explicar de manera detallada cómo se ha realizado la programacióndel bloque de preprocesado, bloque que permite la configuración del simulador, de la conexión de redy de las condiciones iniciales del ensayo que se va a realizar. Además desde este bloque se pude iniciarautomáticamente tanto el simulador como el segundo bloque.

La herramienta del preprocesado de la herramienta, se compone de un GUI y un archivo de configuraciónen lenguaje XML. Por un lado, la interfaz gráfica de usuario (GUI), es aquella desde la que se maneja laconfiguración del simulador, de la red y de las condiciones iniciales, y es la permite la generación delscript que va a lanzar FlightGear desde la ventana de comandos del sistema. Por otro lado el archivode configuración en lenguaje XML es el que controla la salida de variables internas del simulador,estableciendo un protocolo que define qué variables se van a extraer y de qué forma. Una explicacióndetallada del uso y la estructura de este archivo se realizará más adelante en la Subsección 4.1.3. Ellenguaje XML (Extensible Markup Language) se utiliza para escribir protocolos de los que luego van ahacer uso otros programas. En particular FlightGear hace uso de este lenguaje para, entre otros, especificarun protocolo para la transmisión de datos, por lo que la configuración se hace en XML.

La imagen de la Figura 4.1 muestra cómo queda la ventana de configuración del preprocesado; y unejemplo de la estructura que sigue el archivo XML, se puede ver en el Código 4.1.

15

Page 26: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

16 Capítulo 4. Desarrollo de la herramienta

Figura 4.1 Ventana de configuración del preprocesado.

Page 27: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.1 Preprocesado 17

Código 4.1 Ejemplo del XML de configuración del protocolo.

<?xml version="1.0"?>

<PropertyList>

<generic>

<output>

<line_separator>#</line_separator>

<var_separator>;</var_separator>

<!--- Posición -->

<chunk>

<name>latitude-deg</name>

<type>double</type>

<format>%lf</format>

<node>/position/latitude-deg</node>

</chunk>

<chunk>

<name>longitude-deg</name>

<type>double</type>

<format>%lf</format>

<node>/position/longitude-deg</node>

</chunk>

<chunk>

<name>altitude-ft</name>

<type>float</type>

<format>%f</format>

<node>/position/altitude-ft</node>

</chunk>

</output>

</generic>

</PropertyList>

4.1.1 Entorno gráfico

Como ya se ha dicho, el entorno gráfico, es decir, el GUI (Graphic User Interface), es el entorno desdedonde se va a controlar toda la configuración externa a la interfaz gráfica de simulación.

Por ello en el desarrollo que aquí se sigue se va a hacer primero hincapié en los aspectos básicos delfuncionamiento del GUI, ya que en ello se basa todo el funcionamiento de la herramiena completa.

A conitnuación se detallarán cada una de las características de las que se ha dotado a este bloque enparticular, distinguiendo entre características derivadas de la configuración y características de ejecucióndel entorno.

Las características derivadas de la configuración se verán siguiendo los distintos paneles de los queel preprocesado consta. Estos son el panel de configuración del simulador, el panel de configuración dela red y el panel de inicialización, dentro del cuál se diferenciará entre cada una de las opciones que locomponen.

En cuanto a las características de ejecución del entorno se verán al final, siendo éstas la generación delscript y del lanzamiento del simulador, así como de salida del entorno.

Page 28: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

18 Capítulo 4. Desarrollo de la herramienta

Aspectos básicos del funcionamiento del GUI

El uso de la herramienta GUIDE (Graphic User Interface Development Environment) de MATLAB® parala creación del entorno gráfico se basa en la utilización de unas variables que se encuentran almacenadasdurante la sesión del programa, de manera que pueden accederse desde cualquiera de las funciones quecomponen el código en cualquier momento.

Dado que la utilización de estas variables es clave para la generación del entorno, se ha decidido queuna explicación más detallada del procedimiento llevado a cabo en la utilización de éstas puede resultarde ayuda en la comprensión global del desarrollo interno del proyecto, por lo que se va a comenzar eldesarrollo del texto por este punto.

En particular se ha hecho una distinción en el tipo de variable, clasificándose en global o local, lo quese ve reflejado en una ejecución más limpia del programa. Las primeras, variables globales, se van aalmacenar en el directorio raíz de la sesión, de aquí en adelante 0, mientras que las segundas, variableslocales, van a existir únicamente en la figura sobre la que se está trabajando en un momento en particular,en este caso, en el entorno del preprocesado. Esto se traduce en que las variables globales se van a eliminarúnicamente al cerrar el programa, a diferencia de las locales, que se limpiarán del sistema en cuanto secierre la pantalla en cuestión.

Por tanto, cabe ahora mencionar las órdenes que se han empleado para el establecimiento de estasvariables. Éstas van a ser “setappdata” y “getappdata”. Mientras “setappdata” es la orden que almacenala variable, “getappdata” extrae el valor de una variable ya almacenada, de manera que las variablesguardadas así se pueden pasar entre funciones sin ser llamadas directamente. A continuación, en el Código4.2, se ejemplifica el uso de estas órdenes.

Código 4.2 Orden para crear variables globales y locales.

setappdata('0','Nombre de la variable global',nombre_variable_global);

nombre_variable_global = getappdata('0','Nombre de la variable global');

setappdata('gcf','Nombre de la variable local',nombre_variable_local);

nombre_variable_local = getappdata('gcf','Nombre de la variable local');

Queda reflejado que el funcionamiento de “setappdata” consiste en proporcionar el lugar de almace-namiento de la variable, el nombre con el que se quiere almacenar y el valor de la misma, mientras quepara acceder a la variable deseada “getappdata” necesita del lugar de almacenamiento en el que ésta seencuentra y del nombre con el que se encuentra guardada. Es claro para utilizar este valor en una funciónparticular lo más adecuado será asignarlo a una variable, y por limpieza y claridad en el código lo másrecomendable es hacerlo en aquella de la que se partía.

Por otra parte se ha utilizado la funcionalidad de distinción que proporciona “setappdata” para establecer,como ya se ha dicho, variables globales y locales. Esta distinción permite una semiedición de ciertosparámetros que sólo resultan editados y almacenados de manera definitiva si el usuario está seguro deque desea realizar los cambios, como se puede apreciar en el Código 4.3, en donde las variables globalestienen su homóloga en el grupo de variables locales.

Esto es así porque para facilitar el uso de la herramienta, se ha decidido almacenar en un archivo .txtindependiente las configuraciones del simulador y de la conexión, para cargar estos parámetros cada vezque se inicia el programa y evitar tener que introducirlos cada vez que se vaya a usar la interfaz. Se supone,por tanto, que en el caso de que se actualizara la versión de FlightGear, si ésta se instalara en un directoriodistinto sería entonces cuando habría que cambiar el mismo en la ventana de configuración, y no en otrocaso, por lo que es lógico suponer que la carpeta de instalación va a tener siempre la misma dirección.Algo similar ocurre con la configuración de la red, que previsiblemente no se va a modificar de maneracontinuada, bien porque el usuario no posee los conocimientos necesarios para la alteración de la misma,

Page 29: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.1 Preprocesado 19

bien porque el uso va a ser siempre el mismo, siendo por tanto mucho más cómodo dejar los valores pordefecto. En cuanto al nombre del script, se ha optado por esta solución para tener un nombre asignadodesde el incio y sobreescribir siempre el mismo archivo evitando la creación innecesaria de otros, dejandola opción de una posible modificación por si se prefiese.

Código 4.3 Variables globales y locales del entorno de preprocesado.

% Variables globales

setappdata(0,'FlightGearBaseDirectory',FG_dir); % Directorio de instalación

de FlightGear

setappdata(0,'OutputFileName',FG_file); % Nombre del script (archivo por

lotes)

setappdata(0,'OriginIPAddress',O_IP_ad); % Dirección IP de origen

setappdata(0,'RemoteIPAddress',D_IP_ad); % Dirección IP remota

setappdata(0,'LocalIPPort',IP_port); % Puerto IP local

% Variables locales

setappdata(gcf,'FlightGearBaseDirectory_local',FG_dir);% Directorio de

instalación de FlightGear

setappdata(gcf,'OutputFileName_local',FG_file); % Nombre del script (archivo

por lotes)

setappdata(gcf,'OriginIPAddress_local',O_IP_ad); % Dirección IP de origen

setappdata(gcf,'RemoteIPAddress_local',D_IP_ad); % Dirección IP remota

setappdata(gcf,'LocalIPPort_local',IP_port); % Puerto IP local

Panel de configuración de FlightGear

Una vez cargado el entorno de preprocesado, en la parte superior izquierda de la ventana se encuentra estepanel, que se puede ver con detalle en la Figura 4.2.

Figura 4.2 Panel de configuración de FlightGear.

Page 30: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

20 Capítulo 4. Desarrollo de la herramienta

En este panel se tienen dos características necesarias para la configuración del simulador, el directorioraíz de la instalación del mismo y el nombre asignado al script de lanzamiento del simulador.

Como ya se ha dicho, inicialmente existe una configuración detallada en un archivo .txt, que se carga alinicio de la herramienta. Esto facilita el uso de la misma por parte del usuario y evita que tenga que pararseen estos detalles cada vez que fuera a hacer uso de ella, dado que previsiblemente no se verán modificadoscon asiduidad.

El archivo de texto se compone de dos únicas líneas, y posee la estructura mostrada a continuación:

Código 4.4 Archivo de texto de configuración de FlightGear.

FG_dir=C:\Program Files\FlightGear

FG_file=runfg.bat

Por otro lado, tanto si el directorio de instalación cambiara como si se decididera cambiar el nombre alarchivo, por ejemplo en el caso de realizar una serie de distintos ensayos en vuelo y se quisieran guardar losarchivos de cada uno de ellos, al modificar los parámetros, el nuevo valor se almacenaría en una variablelocal, que sólo se convertiría en global cuando el usuario confirmara los cambios. Así, al pulsar sobre“Save changes”, el entorno devuelve el mensaje mostrado en el Código 4.4, de manera que al pulsar en“Yes” los cambios realizados se mantendrían y se almacenarían tanto en el directorio raíz de la sesión deMATLAB®, es decir, pasarían a ser variables globales, como en el archivo de texto, para que en posterioressesiones permanecieran los cambios .

Que se elimine la extensión del archivo al cambiar el nombre del script de salida es irrelevante ya que elprograma está preparado para eliminar la extensión de manera automática y escribirla después él mismopor prevención: por si se no se metiera la extensión o se introdujera con alguna errata.

Figura 4.3 Mensaje de confirmación de cambios.

Panel de configuración de la conexión de red

El siguiente panel diferenciado que se puede observar es el de la configuración de la conexión de red,mostrado en la Figura 4.4.

Aquí se deben introducir las tres opciones necesarias para la configuración de la conexión: la direcciónIP de origen, esto es, la dirección IP del ordenador en el que el simulador FlightGear va a estar funcionando;la dirección IP remota, que es la dirección IP del ordenador que va a encontrarse recibiendo los datos deFlightGear (aquél en el que se tuviera el entorno del postprocesado); y el puerto local IP a través del quese van tanto a enviar como a recibir los datos.

El simulador, que va a ser desde donde se esté transmitiendo la información hará uso de la IP remota,para indicar a quién tiene que llegar, y el entorno de postproceso utilizará la dirección IP de origen,para establecer desde dónde le van a llegar los datos. En cuanto al puerto, tanto el simulador como elpostprocesado van a hacer uso de él, y, como es de esperar, debe ser el mismo.

Page 31: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.1 Preprocesado 21

Figura 4.4 Panel de configuración de la conexión de red.

Para el desarrollo del proyecto se va a utilizar el mismo ordenador, por lo que las direcciones IPcoinciden con la local, “localhost” o 127.0.0.1. El puerto local asignado a la herramienta es uno que noesté ya ocupado, en este caso se ha elegido el 5505.

La estructura de este panel, salvo el botón “Help”, es la misma que la del panel de configuración deFlightGear, de modo que también aquí se tendrán los valores almacenados en un archivo de texto que secargará al inicio del entorno, y será necesaria una confirmación para realizar cambios.

En cuanto al botón “Help”, es una ventana de información que muestra la descripción anteriormentedada de los opciones de la conexión, como se puede ver en la Figura 4.5.

Figura 4.5 Mensaje de ayuda.

Panel de inicialización: selección de la aeronave

Dentro del panel de inicialización se diferencian tres zonas: una de configuración de la aeronave, que es laque se va a tratar aquí; una de configuración del aeropuerto; y otra de configuración de las condicionesiniciales del vuelo.

La selección de la aeronave es sencilla, se presenta un listado de aeronaves disponibles y el usuario selimita a elegir una.

Page 32: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

22 Capítulo 4. Desarrollo de la herramienta

Figura 4.6 Panel de selección de la aeronave.

La lista de aeronaves que se muestran como disponibles se encuentra limitada por el número de modelosde aeronaves que se tengan descargados en el simulador. FlightGear viene con algunos modelos instaladospor defecto, el resto se deben descargar de la web de FlightGear [17]. Se han incluído aquí unos modeloscomerciales que se han considerado de referencia, pero se podrían incluir los que se quisieran. Unaexplicación más detallada de cómo añadir nuevas aeronaves al simulador y a la herramienta se verá en elApéndice B.

Panel de inicialización: selección del aeropuerto

En cuanto a la selección del aeropuerto, en el panel mostrado en la Figura 4.7 se puede ver que se tienendos opciones distintas: la elección de un aeropuerto de entre los disponibles en una lista, o la introducciónde un aeropuerto que se quiera a través de su denominación (código de la OACI).

Figura 4.7 Panel de selección del aeropuerto.

Page 33: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.1 Preprocesado 23

Se ha optado por incluir una lista de aeropuertos para no sólo ahorrar al usuario el tener que buscar elcódigo del aeropuerto que vaya a utilizar, sino que éste debería estar descargado en el simulador.

La descarga de aeropuertos se hace a través de una orden del propio simulador, por lo que desgargandode manera previa una serie de aeropuertos se reduce el tiempo de espera en la apertura del programa. Noobstante, se ha dejado habilitada la opción de introducir cualquier aeropuerto que se quisiera a través de sucódigo, habilitando en este caso la descarga, lo que se discutirá con mayor detalle en el Apéndice A.

Con el fin de prevenir errores del simulador y para mejorar la experiencia del usuario, se han introducidomensajes de error para el caso en que se introduzca el código del aeropuerto a mano. Tanto si se introducennúmeros como si la longitud del código no es la correcta, el entorno alerta al usuario, Figura 4.8, y vuelvea su estado inicial.

Figura 4.8 Errores del panel del aeropuerto.

Panel de inicialización: condiciones iniciales

En el último panel de la inicialización se requieren las condiciones iniciales del ensayo. El inicio delmismo puede ser tanto en tierra como en vuelo. Los datos necesarios para la configuración de cada una delas dos opciones de inicio se comentan a continuación.

Para el inicio en tierra es necesario especificar la pista de despegue desde donde se quiere partir, “Initialrunway”, teniendo en cuenta que debe existir en el aeropuerto en cuestión. Para el inicio en vuelo, esnecesario especificar la altitud inicial expresada en pies, “Initial altitude”; la guiñada inicial en grados,“Initial heading”; la distancia de inicio respecto del aeropuerto seleccionado en millas, “Offset distance”;así como el rumbo respecto de éste, “Offset azimuth”. Este panel se puede ver en la Figura 4.9, en laque puede apreciar que además de incorporar unos espacios determinados para cada uno de los datosnecesarios, hay que elegir el modo de inicio del ensayo, y cabe destacar que el entorno impedirá que elusuario introduzca datos iniciales correspondientes al inicio en vuelo si está seleccionado el inicio en pistay viceversa, para lo cuál alertará con un mensaje de error y regresará al estado original. Los mensajes deerror en cada uno de los casos se pueden ver en la Figura 4.10.

Page 34: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

24 Capítulo 4. Desarrollo de la herramienta

Figura 4.9 Panel de condiciones iniciales.

Figura 4.10 Errores debido a la introducción de datos en un lugar no corresponiente en el panel decondiciones iniciales.

Para el inicio en vuelo se han habilitado dos opciones más, una para la lectura de un archivo de texto ode un excel con unos datos iniciales ya dados, lo que sería especialmente útil en el caso de una prácticacon un gran número de alumnos, para hacer llegar de manera cómoda y rápida los datos del ensayo a estos;y otra para una carga de datos iniciales por defecto, útil para cuando se estén llevando a cabo diversaspruebas en el entorno o en el simulador. La Figura 4.11 muestra la ventana de selección de archivo que seabre.

Page 35: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.1 Preprocesado 25

Figura 4.11 Pantalla de selección de archivos.

La estructura que debe tener el archivo de texto es similar a los que se han utilizado para configurar lasopciones de FlightGear y de la conexión, por lo que aquí no se van a comentar. En el caso del excel, laestructura es similar, se utiliza la primera columna para especificar el nombre del parámetro, y la segundapara establecer su valor, como refleja la Figura 4.12. No obstante, en el Apéndice A se explicarán estosarchivos de configuración precargada con más detalle.

Figura 4.12 Excel de configuración de los datos iniciales.

Por último, también para este modo de inicio, se ha provisto de una característica similar a la ya indicadaen la selección del aeropuerto: para prevenir posibles errores en el simulador, se alerta de la introducciónde caracteres de texto, que se eliminan inmediatamente después. Un ejemplo para la altitud inicial arrojaríael mensaje de la Figura 4.13. Además, por comodidad, si el valor de uno de los datos de este modo se haintroducido en un primer momento para después borrarse a continuación, el sistema escribe un 0 en sulugar.

Page 36: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

26 Capítulo 4. Desarrollo de la herramienta

Figura 4.13 Ejemplo de error por introducción de caracteres de texto en el panel de condiciones iniciales.

Generación del script e inicio del simulador

Una vez introducidos todos los parámetros necesarios en la interfaz, al pulsar sobre el botón “Generaterun script”, Figura 4.14, desde MATLAB® se escribe el archivo por lotes de arranque del simulador, en elque se transcribe la configuración completa establecida en el preprocesado a partir de los tres paneles delentorno.

Figura 4.14 Botón que genera el script de arranque.

El entorno no se limita a leer los datos introducidos y a imprimirlos en un archivo, sino que se compruebaque se hayan introducido todos y cada uno de los necesarios según el modo de inicio, avisando si faltaraalguno y parando la escritura en ese momento. Se comprueban la elección de aeronave, aeropuerto, pistade despegue si se parte desde tierra, y altitud, guiñada, distancia y azimut relativos al aeropuerto de inicioen el caso de que la simulación comience en el aire. Un ejemplo del error que se puede visualizar es el dela Figura 4.15, que en este caso corresponde a una salida en vuelo, en el que se han introducido todos losparámetros excepto el de la guiñada inicial.

Figura 4.15 Botón que genera el script de arranque.

Para iniciar el simulador con la configuración deseada se debe pulsar a continuación en el botón “RunFlightGear”, Figura 4.16, que antes de llamar a la ventana de comandos de Windows® para que ejecuteel script de arranque de FlightGear, realiza una comprobación de si en efecto se ha escrito de antemano(pulsando en “Generate run script“), y en caso contrario lo escribe y posteriormente lanza el simulador.

Se ha optado por separar la opción de crear el script de la opción de lanzar el simulador por funcionalidad,porque de esta manera el ordenador en el que se encuentre funcionando la herramienta gráfica no tiene por

Page 37: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.1 Preprocesado 27

Figura 4.16 Botón que lanza el simulador.

qué ser el mismo que aquél en el que va a estar el simulador. Esto se verá con mayor detalle en el ApéndiceA. Téngase en cuenta que tanto el simulador FlightGear como el software MATLAB® consumen muchosrecursos de RAM, por lo que así se aligeraría la carga del ordenador y aumentarían la rapidez y eficacia.

Inicio de la conexión de red entre el entorno gráfico y FlightGear

Como último paso, para iniciar la nueva sesión de MATLAB® desde la que se van a recibir los datos, sedebe pulsar sobre el botón “Start network connection”, Figura 4.17, que abre una nueva instancia de éstecon el entorno del postprocesado cargado. Este último se tratará en la sección 4.2.

Figura 4.17 Botón de inicio de la conexión entre FlightGear y MATLAB® .

Salida del programa

Como detalle final, hacer mención al hecho de que cuando se cierra el entorno, el programa pregunta alusuario si desea salir y cerrar la sesión o no. Esto se puede ver en la Figura 4.18.

Figura 4.18 Mensaje de salida de la interfaz del preprocesado.

4.1.2 Script de arranque

Como se ha visto, para este proyecto se ha elegido iniciar el simulador mediante el uso de un archivo porlotes, es decir, un script de arranque.

FlightGear permite la ejecución del programa y establecimiento de diversas opciones a través de lalínea de comandos [18] , por lo que todas las órdenes necesarias para la configuración del protocolo de laconexión de red, así como de las características del ensayo de vuelo en cuestión, se transcriben al script dearranque, evitando la introducción manual de éstas en la consola de comandos.

Page 38: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

28 Capítulo 4. Desarrollo de la herramienta

En el Código 4.51 se muestra cómo quedaría el script para el ensayo definido por: Airbus A320neo,aeropuerto de Sevilla, iniciado en el aire a 30000 ft de altitud, con una guiñada de 1º, una distancia relativaal aeropuerto de 0.5 millas y un rumbo relativo al mismo de 3º.

Código 4.5 Ejemplo de un script de arranque.

C:

cd "C:\Program Files\FlightGear\bin"

fgfs.exe "--fg-root=C:\Program Files\FlightGear\data" --generic=socket,out

,10,localhost,5505,udp,receiver_protocol --disable-terrasync --aircraft=A

320neo --airport=LEZL --altitude=30000 --heading=1 --offset-distance=4.72

--offset-azimuth=0

En primer lugar se establece una ruta desde la que el símbolo del sistema va a trabajar y en la que se vana buscar el programa que se va a abrir y el directorio de los datos del mismo, FlightGear en este caso, loque correspondería a las líneas detalladas en el Código 4.6.

Código 4.6 Especificación de la ruta desde la que se va a trabajar.

C:

cd "C:\Program Files\FlightGear\bin"

fgfs.exe "--fg-root=C:\Program Files\FlightGear\data"

La orden a continuación, que se encuentra en el Código 4.7, establece el protocolo de conexión delsimulador, especificando que se trata de una conexión tipo “socket” de salida de datos (“out”), a unafrecuencia de extracción de 10 Hz, que la máquina receptora tiene una IP local (“localhost”), que el puertoa través del que se establece la conexión es el 5505, y que la configuración del protocolo de extracción delos datos va a ser la dada por el xml “receiver_protocol”, del que se hablará más adelante [19].

Código 4.7 Configuración de la conexión de red de FlightGear.

--generic=socket,out,10,localhost,5505,udp,receiver_protocol

Las opciones de inicialización de FlightGear varían dependiendo del modo de inicio seleccionado.Los comandos para el ejemplo anterior caracterizado por un Airbus A320neo, con aeropuerto de Sevilla,iniciado en el aire a 30000 ft de altitud, con una guiñada de 1º, una distancia relativa al aeropuerto de 0.5millas y un rumbo relativo al mismo de 3º, correspondiente a la inicialización en aire, se pueden visualizaren el Código 4.8 . La primera opción, “–disable-terrasync”, desactiva el modo “Terrasync” que descarga demanera automática el escenario elegido en el caso de que éste no se encuentre en el ordenador [20]. Comose dijo en la Subsección 4.1.1, esta opción se activa cuando se introduce de manera manual el código OACIdel aeropuerto en el panel de inicialización, y se verá con mayor profundidad en el Apéndice A .

Las órdenes correspondientes al despegue en tierra se pueden apreciar en el Código 4.9, donde el ensayode ejemplo se corresponde ahora con el de un A320neo despegando desde el aeropuerto de Sevilla, en lapista 09.

Código 4.8 Configuración de las opciones de inicio FlightGear.

1 Nota: en el script de arranque la secuencia de comandos de las órdenes de FlightGear debe ser una única línea con un espacio deseparación entre cada una de ellas.

Page 39: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.1 Preprocesado 29

--disable-terrasync --aircraft=A320neo --airport=LEZL --altitude=30000 --

heading=1 --offset-distance=0.5 --offset-azimuth=3

Código 4.9 Configuración de las opciones de inicio FlightGear.

--disable-terrasync --aircraft=A320neo --airport=LEZL --runway=09

4.1.3 XML de configuración del protocolo de la extracción de datos

Se procede a comentar las nociones básicas que deben conocerse acerca del arichvo XML de configuración.

En primer lugar se va a comentar dónde se debe localizar el archivo para que el simulador sea capaz deleerlo cuando se le da la orden.

Este archivo debe encontrarse guardado dentro de la carpeta protocolo, que se encuentra en el directorioraíz del simulador, en la dirección que se puede observar en el Código 4.10:

Código 4.10 Localización del archivo xml de configuración del protocolo.

C:\Program Files\FlightGear\data\Protocol

Como se dijo al inicio de este capítulo, en el Código 4.1 se ha tomado una estructura básica de ejemploen la que se puede observar que se extraen las coordenadas de la aeronave, dadas por longitud, latitud yaltitud.

A grandes rasgos la estructura que debe llevar el XML de configuración de la extracción de datos es ladada por la estructura apreciable en el dicho código. Una descripción breve de las etiquetas es la siguiente[19]:

1. <output>: Contiene el protocolo del formato para la extracción de datos.

a) <line_separator>: Carácter utilizado como delimitador para el final de una línea de datos. Aquí,“#”. En este ejemplo, cada línea de datos tendría tres valores.

b) <var_separator>: Carácter utilizado como delimitador entre los valores de las distintas propieda-des. Aquí, “;”.

2. <chunk>: Cada una de las propiedades que se van a extraer. Es importante notar que la salida de losdatos se hace en el orden en el que se introducen las propiedades. Por lo tanto, en este ejemplo losdatos saldrían en el siguiente orden: longitud, latitud y altitud. En cada “chunk” las propiedades seextraen con etiquetas internas:

a) <name> - Por comodidad. Referencia al nombre de la propiedad, pero no se extrae como dato desalida.

b) <node> - Localización dentro del árbol de propiedades de la propiedad en cuestión. Así, porejemplo la altitud se encuentra dentro de “/position/altitude-ft”.

c) <type> - Tipo de dato, necesario para el formato en el procesado. Los valores numéricos son detipo “float” y “double”. Dentro del árbol de propiedades viene especificado de qué tipo es cadadato.

d) <format> - Formato de salida. Se han utilizado “%f” para el tipo “float” y “%lf” para el tipo“double”.

Una explicación en mayor profundidad se puede encontrar en el Apéndice B.

Page 40: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

30 Capítulo 4. Desarrollo de la herramienta

4.2 Postprocesado

Se procede ahora a describir la estructura y características del bloque de postprocesado, en el cuál se van aestablecer las propiedades de visualización y almacenamiento de los datos que se extraen de la simulación.Este bloque consiste en una interfaz gráfica que establece una presentación de datos determinada por elusuario, y que recibe y traduce en segundo plano la información que le llega del simulador.

Se van a tratar en este caso las diferentes tareas que se realizan en este entorno por separado, diferen-ciando entre la preparación previa a la visualización, la recepción y traducción de los datos recibidos y lavisualización de los mismos.

Tando la preparación previa a la visualización como la representación de los datos son funciones externasque se desarrollan en primer plano en el entorno gráfico, mientras que la recepción y traducción de los datosocurre, como ya se ha dicho en un segundo plano aunque se active desde la interfaz del postprocesado.

Es por ello que en el caso de los dos primeros se van a comentar las características que se han añadidoen la interfaz y en el último, además, se va a entrar en el código y a comentar de una manera breve cómose realiza la misma.

La ventana de configuración del postprocesado se muestra en la Figura 4.19.

Page 41: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.2 Postprocesado 31

Figura 4.19 Ventana de configuración del postprocesado.

Page 42: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

32 Capítulo 4. Desarrollo de la herramienta

4.2.1 Preparación de la visualización de los datos recibidos

Como se ha podido ver en la Figura 4.19, una vez cargada la interfaz lo primero que el usuario percibe esuna lista de parámetros agrupados por tipología en la izquierda de la ventana del entorno. Estos parámetrosson las variables internas del simulador que se extraen con el protocolo establecido, además del tiempo desimulación.

Estos parámetros pueden seleccionarse o no, dependiendo de si el usuario desea visualizar unas determi-nadas variables durante la simulación y almacenarlas al finalizar la sesión. Inicialmente,como se puedeobservar en la Figura 4.20 vienen seleccionados por defecto aquellos que se han considerado de interésgeneral.

Figura 4.20 Selección de parámetros.

Page 43: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.2 Postprocesado 33

Además de la posibilidad de seleccionar una por una las variables que elija; también existen las opcionesde cargar un archivo de cofiguración a través del botón “Load settings”, abajo a la izquierda de la imagen; yde seleccionar todos los parámetros o volver a las originales, pulsando en este caso el botón correspondientea “Parameters selection” de la Figura 4.21, donde se puede apreciar que el botón tiene dos valores: “Allparameters” para cambiar a una selección global, y “Default parameters”, para activar las variables pordefecto.

El archivo de configuración que se puede elegir va a tener los mismos formatos que aquellos aceptadosen el entorno del preprocesado, es decir, archivo de texto .txt, y archivo excel, tanto .xls como .xlsx. Laestructura de los mismos es la misma que la que se puede apreciar en el Código 4.4 y la Figura 4.12, salvoque ahora el valor de las variables será un 0 o un 1, 0 para desactivar la opción y 1 para activarla. Esto severá con mayor detenimiento en el Apéndice A.

Figura 4.21 Selección rápida de parámetros.

Además de activar las variables para la visualización, la selección de éstas cumple una doble función.Aquellas seleccionadas se almacenarán una vez finalizada la recepción en un archivo de datos .mat parafacilitar al usuario un posterior estudio. El nombre del archivo de salida se puede especificar en el recuadroindicado para ello, Figura 4.22.

Figura 4.22 Nombre del archivo de salida.

Por último, para poder configurar a elección las propiedades de los gráficos se ha incluido una opción,que se puede ver en la Figura 4.23 que permite al usuario elegir cuántos valores simutáneos quiere visualizardurante la representación de los datos. Al igual que en la introducción de las condiciones iniciales delensayo en el preprocesado, si se introduce una letra, el sistema devuelve el error de la Figura 4.24 y vuelvea su valor inicial, 200 representaciones simultáneas.

El valor de 200 representaciones simultáneas no es aleatorio. Como ya se ha dicho se ha configurado elsimulador de manera que extrae 10 tandas de datos en 1 segundo, o lo que es lo mismo, la extracción serealiza con una frecuencia de 10 Hz. Estas 200 valores de datos simultáneos se corresponden por tanto alos datos extraídos en los últimos 20 segundos, y dado que las variables de la Mecánica del Vuelo varíanmuy rápido, este tiempo es suficiente como para poder comparar los nuevos valores con los anteriores yque la evolución no resulte muy brusca.

Page 44: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

34 Capítulo 4. Desarrollo de la herramienta

Figura 4.23 Opción de visualizado.

Figura 4.24 Error debido a la introducción de un carácter no numérico.

4.2.2 Recepción y lectura de los datos recibidos

Se procede ahora a detallar la recepción de los datos, diferenciando entre el panel de activación de lamisma y las características que incluye, y la lectura y traducción propiamente dichas.

Panel de recepción

Dentro del entorno del postprocesado, los controles de la recepción se encuentran en el panel denominado“Reception”, desde donde se puede iniciar la recepción cuando ésta está deshabilitada, y actualizar losejes o terminar la misma cuando ya está sucediendo la traducción de los datos. La recepción se va aactivar pulsando en el botón habilitado mostrado en la imagen de la izquierda de la Figura 4.25, “Enablereception”, y entonces se habilitan los otros dos botones del panel (y se deshabilita el de la activación),como se puede ver en la imagen de la derecha de la misma figura. Además, para mayor comodidad se haincluído un chivato. Cuando al recepción está desctivada se puede leer “Reception disabled” y cuando sereciben datos el mensaje pasa a mostrar, en negrita, “Reception enabled”.

Cuando se pulsa el botón de activación de la transmisión en realidad se abre el puerto UDP que seconfiguró en el preprocesado, y el sistema empieza a escuchar la información que le llega. Para el casoen que se abra el puerto y se inicie la escucha pero no se estén recibiendo datos, como podría ser porejemplo el caso en el que el simulador se haya cerrado ya o se haya pulsado el botón sin querer, el paneltambién incluye una desactivación automática del puerto si el tiempo de escucha llega a 15 segundos y noha recibido información. Se ha tomado un tiempo de 15 segundos por considerarse que el tiempo de iniciodel simulador es inferior y uno mayor hace que el sistema trabaje de manera innecesaria. Además, paraalertar a la persona que esté trabajando con el programa arroja un mensaje avisando de que el tiempo deconexión se ha excedido, lo que se puede ver en la Figura 4.26.

Es claro que en cualquier momento en que la conexión esté activada, se estén recibiendo datos o no, sepuede desconectar el sistema de manera manual pulsando sobre “Disable reception”.

En cuanto a la funcionalidad de la opción “Update axes”, se comentará en la Subsección 4.2.3.

Page 45: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.2 Postprocesado 35

Figura 4.25 Panel de recepción.

Figura 4.26 Panel de recepción.

Lectura y traducción de los datos recibidos

Como se ha comentado anteriormente, la conexión entre el simulador y la interfaz gráfica del entorno esde tipo UDP. En la subsección 4.1.2, se vio cómo abrir el puerto UDP de salida de datos en el simulador,mientras que aquí se va a ver cómo abrir la conexión UDP de recepción en MATLAB® .

Sin entrar mucho en el código se espera mostrar de manera clara cómo se activa la recepción de losdatos, y cómo se realiza la lectura y posterior traducción del mensaje.

Una vez iniciada la recepción de datos, lo primero que se realiza es una comprobación de si existe algúnpuerto, no importa de qué tipo, abierto en la sesión de MATLAB® , y se cierra en caso de que hubiera.Esto se hace para evitar el uso de un mismo puerto para dos conexiones, lo que supondría un fallo en elsistema y éste dejaría de funcionar. Haciéndolo de esta manera se previene dicha situación, y además selimpia el sistema.

Una vez cerrado los posibles puertos abiertos que hubiera, se carga la configuración de la red que seestableció en el preprocesado, Figura 4.4. Al igual que en este último, también aquí se cargan los valoresde los parámetros desde el archivo de texto en que se encuentran almacenados. La única diferencia es queaquí no se utiliza la dirección IP remota, sino sólo la de origen (la correspondiente al ordenador donde seestá ejecutando el simulador), y el puerto por donde se reciben los datos, que coincide con el puerto pordonde se emiten.

Page 46: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

36 Capítulo 4. Desarrollo de la herramienta

Para la conexión UDP en MATLAB® se ha utilizado el bloque de Simulink llamdo DSP System Toolbox[21], desde el que se pueden diseñar y simular sistemas de procesamiento de señal. Dentro de este bloquese encuentra el módulo DSP Modeling, que se centra en el manejo de señales, y dentro del cuál se tienendiversos objetos dedicadas a la importación y exportación de señales, uno de ellas la utilizada en esteproyecto para la recepción UDP.

Este objeto llamado “dsp.UDPReceiver” recibe paquetes UDP de la red. Para ello primero hay quedefinir y configurar el receptor UDP, como se puede ver en el Código 4.11.

Código 4.11 Configuración de las opciones de inicio FlightGear.

udp_r = dsp.UDPReceiver('RemoteIPAddress',RemoteIPAddress,...

'LocalIPPort',LocalIPPort,'ReceiveBufferSize',5*16384,...

'MaximumMessageLength',16384,'MessageDataType','uint8');

La orden “udp_r = dsp.UDPReceiver” devuelve un receptor que recibe paquetes UDP de un puerto dado.Cuando se especifican propiedades, el receptor que se define tiene como valor de esas propiedades lasintroducidas. Se enumeran a continuación las propiedades utilizadas y se detalla su función.

1. LocalIPPort: puerto local en el que se recibe la información.

2. RemoteIPAddress: dirección desde la que se envía la información.

3. ReceiveBufferSize: tamaño máximo del búfer interno. Se ha tomado cinco veces el valor del tamañomáximo del mensaje de salida en bytes.

4. MaximumMessageLength: tamaño máximo del mensaje de salida. Se ha tomado un valor de bytescorrespondiente a 16384 , lo que se ha considerado un tamaño suficientemente grande como paraque cualquier dato extraído del simulador se lea de manera completa y no se trunque.

5. MessageDataType: tipología de la información del mensaje. En este caso la información llega como“uint8”.

Una vez construido el receptor se debe llamar a la función “step” para que reciba los paquetes UDP deacuerdo a las propiedades anteriormente establecidas. “step” recibe los datagramas de uno en uno, lo quefacilita la lectura y traducción.

Como se ha comentado con anterioridad, se va a entrar aquí en el código interno del programa paraexplicar cómo se ha realizado la programación de la lectura y la traducción, de manera que quede claro ycualquier persona ajena al código sea capaz de entenderlo y reproducirlo si fuera necesario. La lectura y latraducción se pueden encontrar en el Código 4.12, que se va a detallar de manera concisa a continuación.

.

Código 4.12 Lectura y traducción de los datos recibidos.

(...)

% Recepción de datagramas

dataReceived = step(udp_r);

% Traducción del mensaje si no está vacío

if ~isempty(dataReceived)

Page 47: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.2 Postprocesado 37

% Recepción del mensaje

msg = char(dataReceived); % Traduce el mensaje

% Construcción del mensaje

message = strcat(msg)';

[message,~] = strtok(message,'#'); % Elimina # del mensaje

rec_data(k,:) = str2double(strsplit(message,';')); % Separación de

variables

% Almacenamiento de datos para la representación

latitude(k) = rec_data(k,1);

longitude(k) = rec_data(k,2);

altitude(k) = rec_data(k,3);

(...)

k=k+1;

(...)

end

Como se ha dicho, una vez definido el receptor hay que iniciar la lectura con la orden “step”. Una vezrecibida la información se procede a la traducción, pero únicamente en el caso en el que se hayan recibidodatos. Diferenciar este caso permite cerrar el puerto cuando no se reciben pasado un tiempo determinado ypreviene errores derivados de la traducción (que no se podría realizar).

La traducción propiamente dicha la realiza la función “char”, que traduce los bits llegados en forma de“uint8” a una cadena de caracteres legibles escrita de manera vertical y no concatenada. De obtener unmensaje horizontal concatenado se encarga ”strcat” previamente traspuesta la cadena.

Nótese que el protocolo de extracción de los datos del simulador que se realizó en la Subsección 4.1.3,separaba cada ristra de datos con “#” y las variables con “;”, Código 4.1, por lo que un datagrama va aestar compuesto por el valor de cada una de las 36 variables que se extraen del simulador, seguido deun “#” al final del mensaje. Por ello lo siguiente que se va a hacer es eliminar dicho carácter y utilizar eldelimitador “;” para separar los valores de las propiedades y almacenar los datos como valores numéricosen una matriz llamada “rec_data”, donde cada fila será cada una de las lecturas que se hagan. El extractode la estructura del protocolo de comunicación del Código 4.1 referente a la estructura de la salida de datosse incluye a continuación, para ilustrar lo mencionado con una mayor comodidad para el lector.

Código 4.13 Extracto del ejemplo del XML de configuración del protocolo.

(...)

<line_separator>#</line_separator>

<var_separator>;</var_separator>

(...)

Por último, hacer notar que el orden de entrada de los datos es aquél que se estableció en el protocolo, porlo que a la hora de almacenar dichos valores en su correspondiente variable, habrá que seguir exactamenteel mismo orden.

Page 48: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

38 Capítulo 4. Desarrollo de la herramienta

4.2.3 Visualización de los datos recibidos

La representación de la variación de las propiedades del vuelo del avión se realiza en el panel de visualiza-ción, que se puede ver en la Figura 4.27. Como se puede observar en la figura, se tienen cinco gráficas, tresde las cuáles son personalizables, en las que se puede elegir qué mostrar tanto en el eje X como en el eje Y,y las dos restantes que no son personalizables.

Figura 4.27 Panel de visualización.

Las tres primeras gráficas van a servir para mostrar las variables del avión de la manera en que elusuario prefiera, es decir, puede combinar todo tipo de variables en uno y otro eje: puede elegir mostrarúnicamente una variable en uno de los ejes, mostrar una variable frente a otra; mostrar tres variables demanera simultánea en uno de los ejes, o mostrar un grupo de tres frente a otra distinta. La única diferenciaen la visualización es que en el caso de que se muestren tres parámetros a la vez, cada uno de ellos sepintará en un color distinto y se inlcuirá una leyenda identificándolos respectivamente para una mayorclaridad, como se puede ver en, por ejemplo, la Figura 4.34.

Page 49: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.2 Postprocesado 39

Estas opciones se pueden ver en la Figura 4.28, donde se muestran todas las posibles opciones para eleje X. Las correspondientes al eje Y son evidentemente las mismas. Queda claro que las tres variablessimultáneas disponibles para la representación no son aleatorias, sino que corresponden a las componentesde las velocidades en ejes cuerpo o en ejes locales NED, componentes de la velocidad angular y de losángulos de Euler.

Figura 4.28 Opciones de representación.

Lo único que no se puede hacer es, lógicamente, representar tres variables frente a otras tres. No obstante,para evitar un fallo del sistema si por algún descuido se seleccionaran tres y tres el entorno avisa emitiendoun mensaje de error que se puede ver en la Figura 4.29.

Figura 4.29 Error debido a la elección de una representación de 3 variables en cada eje.

Page 50: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

40 Capítulo 4. Desarrollo de la herramienta

Por otro lado, por consistencia el sistema no permite elegir una variable que previamente no se hayaactivado en el panel de la elección de parámetros, Figura 4.20, y alerta con el mensaje de la Figura 4.30(suponiendo que se haya elegido la componente norte de la velocidad en ejes NED y no estuvieraseleccionada).

Figura 4.30 Error debido a la elección de un parámetro no seleccionado previamente.

La selección de las variables representadas se puede cambiar en cualquier momento durante la repre-sentación, sin más que cambiar los ejes y pulsando “Update axes”, Figura 4.31. Si se quisiera mostrar unparámetro que no se hubiera seleccionado al inicio, no es necesario parar la recepción, el entorno permiteelegirlo en el panel de parámetros y después en el eje, de manera que al actualizar los ejes la recepción dedatos no se ve interrumpida. Sí se interrumpe en el caso de que se elija una variable no activada.

Figura 4.31 Error debido a la elección de un parámetro no seleccionado previamente.

Se han incluído también la opción de hacer zoom de manera independiente en cada una de las gráficaspersonalizables una vez la recepción se ha detenido. Es claro que “Zoom 1” habilita el zoom en la gráficasuperior izquierda, “Zoom 2” hace lo propio con la gráfica superior derecha, y “Zoom 3” activa el zoom enla gráfica inferior izquierda. Para deshabilitar el zoom basta con volver a pulsar el botón correspondiente.

La cuarta y la quinta gráficas se han reservado para la posición de la aeronave, que se se muestran de lasiguiente manera: en la gráfica de la izquierda de la Figura 4.32 se cargan la latitud y la longitud de laaeronave en todo momento, visualizándose la posición del avión sobre un mapa de la superficie terrestre;mientras que en la gráfica de la derecha se puede visualizar la altitud a la que se encuentra volando en todomomento. Hay que remarcar que si bien en las gráficas personalizables la deshabilitación de un parámetroes un impedimento para su visualización no ocurre aquí lo mismo. La habilitación de la posición de laaeronave se reserva únicamente para el almacenamiento posterior de estos datos, localizándose siempre laaeronave en un mapa independientemente de que los parámetros de la posición no estén seleccionados.

Se ha incluído una opción para limpiar cualquier gráfico que pudiera haber una vez realizada lasimulación. Esta opción de limpieza se activa al pulsar sobre el botón ”Clear graphics”. Este botón sóloestá habilitado cuando la recepción está desactivada, para evitar un posible error de borrado de gráficasdurante la recepción de los datos. En la Figura 4.33 se pueden apreciar los dos estados de este botón.

Por último, el usuario puede establecer un techo máximo de vuelo, medido en pies, introduciendo elvalor del mismo en el recuadro indicado para ello, en la zona inferior de la imagen de la Figura 4.32, dondepor defecto se establece el mismo en 39000 ft, correspondiente al techo máximo del Airbus A380. Unamodificación en el valor del techo modifica de manera automática la escala de la gráfica dedicada a laaltitud de la aeronave.

Page 51: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.2 Postprocesado 41

Figura 4.32 Gráficas no personalizables de representación de las localización de la aeronave.

Figura 4.33 Botón de limpieza de gráficos.

Ejemplo de la visualización de las variables del vuelo de un ensayo de ejemplo

A continuación se van a mostrar algunos ejemplos de cómo queda la representación de los datos recibidosdurante la simulación del ensayo de vuelo definido por el script de ejemplo de el Código 4.8 que se recuerdaaquí: Airbus A320neo, aeropuerto de Sevilla, iniciado en el aire a 30000 ft de altitud, con una guiñada de1º, una distancia relativa al aeropuerto de 0.5 millas y un rumbo relativo al mismo de 3º. En cuanto a laconfiguración de las opciones de visualización se ha dejado la definida por defecto (200 representacionessimultáneas).

En el primer ejemplo, Figura 4.34, se han representado en la primera gráfica las tres componentes de lavelocidad en ejes cuerpo frente al tiempo de simulación (medido en segundos), en la segunda gráfica sepuede ver la velocidad calibrada CAS frente al tiempo y en la tercera, la evolución de los flaps frente altiempo.

Se puede apreciar que tras algo más de 10 segundos de simulación, la aeronave se encuentra, como erade esperar, a algo menos de 30000 ft de altitud y sobrevolando el aeropuerto de Sevilla.

En el segundo ejemplo, Figura 4.35, se han representado en la primera gráfica la velocidad equivalenteEAS frente a las tres componentes de los ángulos de Euler; en la segunda gráfica se puede ver la velocidadrelativa al suelo frente al tiempo, y en la tercera, la evolución altitud frente al total de combustible.

Aquí la aeronave sobrevuela Sevilla a unos 20000 ft de altitud, transcurridos unos 85 segundos desde elinicio de la simulación.

Page 52: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

42 Capítulo 4. Desarrollo de la herramienta

Figura 4.34 Ejemplo 1.

Se puede observar que la areonave se ha desplazado un poco respecto a la posición que tenía en elejemplo anterior en el mapa (imagen inferior derecha), lo cuál es lógico dado que la simulación se haestado realizando durante un rato: en gráficas personalizables de la Figura 4.34 se puede ver que el tiempode simulación es de unos 10 segundos, localizable en el eje X de las mismas; mientras que en este ejemplola simulación lleva llevándose a cabo unos 85 segundos, apreciable en el eje X de la segunda gráfica(imagen superior derecha).

En el tercer ejemplo, Figura 4.36, se han representado en la primera gráfica la componente p de lavelocidad angular en el eje X, y en la segunda, el número de Mach, esta vez en el eje Y. La tercera gráficase ha dejado en blanco.

Page 53: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

4.2 Postprocesado 43

Figura 4.35 Ejemplo 2.

Se puede apreciar que en las evoluciones temporales de cualquier variable (variable A frente al tiempo),los ejes son estáticos, mientras que para el resto de posibles evoluciones en las que no intervenga elparámetro tiempo dichos ejes son dinámicos y la escala de representación acorde a los mismos (varía demanera automática). Esto es así porque el tiempo es el único parámetro que aumenta de manera constanteen indefinida. La evolución del resto de variables puede ser la que sea, por lo que no tiene sentido dejar elcorrespondiente eje estático.

Sin embargo en las evoluciones temporales mantener fija la cantidad de tiempo para la cuál se estánrepresentando valores aporta claridad a la visualización.

La longitud total del eje de tiempo visualizado depende de manera directa del número de representacionessimultáneas que se hayan querido enseñar. Así, si k es el número de representaciones simultáneas definidopor el usuario y teniendo en cuenta que el simulador realiza una extracción de datos con una frecuencia de10 Hz, el tiempo que se tardará en obtener k representaciones simultáneas viene dado por t = k

10 . Tambiénpor motivos de estética se ha decidido añadir una cantidad pequeña (10%) a esta medida para que losnuevos valores (alcanzado el número k de representaciones simultáneas) se quede siempre un poco antesdel final de la gráfica.

Page 54: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

44 Capítulo 4. Desarrollo de la herramienta

Figura 4.36 Ejemplo 3.

Entonces, en las imágenes de la Figura 4.34 se puede ver cómo todavía no se han acumulado las krepresentaciones simultáneas, que en este caso son 200, y el eje de tiempo tiene una logitud total de algomás de 20 segundos, lo que se corresponde efectivamente con t = 1.1· 200

10 s; y en la imagen superiorderecha de la Figura 4.35 el eje de tiempo vuelve a tener la misma longitud y la curva llega a un pocomenos del final de la gráfica, ya que ahora sí se han acumulado las 200 representaciones simultáneas.

Page 55: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

5 Ejemplo de aplicación: estudio del modofugoide de la aeronave MD-82

En este capítulo se va a hacer uso de la herramienta creada en la realización de una de las prácticasde la asignatura Mecánica del Vuelo Avanzada.

En ella se excita el modo fugoide de la aeronave MD-82, a distintas altitudes y velocidades de vuelo conel fin de medir este modo de estabilidad longitudinal durante el vuelo de la aeronave y compararlo con losmodelos teóricos expuestos en la asignatura Mecánica del Vuelo Avanzada.

En primer lugar se hará una introducción teórica donde se realizará una explicación del modo fugoide,para continuar con un recordatorio de las ecuaciones de la Mecánica del Vuelo y de la Estabilidad Dinámicadel avión y finalmente una descripción de los modelos aproximados para la obtención de las característicasdel modo fugoide. Luego se procederá a mostrar los datos obtenidos del ensayo para a partir de ellosestimar los valores característicos del modo fugoide y poderlos comparar con los proporcionados por losmodelos teóricos.

5.1 Fundamento teórico

El fugoide es un modo correspondiente a la dinámica longitudinal de la aeronave de largo periodo y pocoamortiguado. Se trata de un intercambio de energía entre las energías cinética y potencial del avión. Secaracteriza por ser una oscilación de baja frecuencia en la que se producen cambios principalmente envelocidad y ángulo de cabeceo, mientras que tanto el ángulo de ataque como la velocidad angular decabeceo permanecen prácticamente constantes durante el mismo, [12].

Un esquema del modo fugoide se puede encontrar en la Figura 5.1. Se puede apreciar en la misma queante una perturbación en la velocidad de vuelo, en el caso de que ésta aumentara siendo ángulo de ataque yempuje constantes, el avión empieza a subir, con el consiguiente aumento en el ángulo de asiento de lavelocidad. Durante el ascenso la velocidad del avión disminuye, hasta llegar un punto en el que no es capazde mantener el régimen de subida, a partir del cuál el avión empieza a descender decreciendo el ángulo detrayectoria y aumentando la velocidad de vuelo, con el consiguiente incremento en la sustentación y en elángulo de trayectoria hasta llegar al máximo de velocidad, que coincide con un ángulo de trayectoria nulo,punto en el que el avión comienza a ascender y así sucesivamente. La oscilación se mantiene hasta que laresistencia aerodinámica consigue amortiguarla, lo que explica el bajo amortiguamiento presente en elfugoide, gracias a la elevada eficiencia aerodinámica con la que se diseñan los aviones.

45

Page 56: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

46 Capítulo 5. Ejemplo de aplicación: estudio del modo fugoide de la aeronave MD-82

Figura 5.1 Esquema del modo fugoide.

5.1.1 Ecuaciones generales de la Mecánica del Vuelo

El conjunto de ecuaciones del movimiento del avión se puede dividir en dos grupos, uno en el que seencuentran las ecuaciones cinemáticas que son aquellas que relacionan la posición y la velocidad lineal(ecuaciones cinemáticas lineales) y que relacionan la actitud y la velocidad angular (ecuaciones cinemáticasangulares), y otro en el que se tienen las ecuaciones dinámicas, aquellas que expresan la relación entre lasvelocidades lineales y angulares y las fuerzas y los momentos aplicados [9].

Ecuaciones cinemáticas lineales

Con las ecuaciones cinemáticas lineales se pretende obtener la posición de la aeronave a partir de suvelocidad. Se obtienen expresando la derivada temporal de la posición de la aeronave en función del vectorvelocidad aerodinámica en ejes cuerpo. En forma vectorial: ~xc

~yc~zc

=

u(cosθ cosψ)+ v(sinφ sinθ cosψ− cosφ sinψ)+w(cosφ sinθ cosψ + sinφ sinψ)u(cosθ sinψ)+ v(sinφ sinθ sinψ + cosφ cosψ)+w(cosφ sinθ sinψ− sinφ cosψ)

u(−sinθ)+ v(sinφ cosθ)+w(cosφ cosθ)

.Ecuaciones cinemáticas angulares

Las ecuaciones cinemáticas angulares, relacionan la actitud de la aeronave (ángulos de Euler) con lavelocidad angular de la misma. ~φ

~θ~ψ

=

p+(qsinφ + r cosφ) tanθ

(qcosφ − r sinφ)(qsinφ + r cosφ)secθ

.Ecuaciones dinámicas

Para las ecuaciones dinámicas se parte de las ecuaciones de conservación del momento lineal y deconservación del momento angular respecto al centro de gravedad expresadas como:

∑~F = md~vdt

; ∑ ~MG =d~hG

dt.

Page 57: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

5.1 Fundamento teórico 47

Teniendo en cuenta que ~hG = ~IB·~ω + ~h∗B, donde ~h∗B es el momento de masas giratorias de la aeronave(hélices, compresores o turbinas entre otros), operando se llega a:

X−mgsinθ = m(u+qw− rv)Y +mgcosθ sinφ = m(v+ ru− pw)Z +mgcosθ cosφ = m(w+ pv−qu)

L = Ix p− Ixzr+qr(Iz− Iy

)− Ixz·pq+qh∗z − rh∗y

M = Iyq+ rp(Ix− Iz

)− Ixz

(p2− r2)+ rh∗x− ph∗z

N = Izr− Ixz p+ pq(Iy− Ix

)+ Ixz·qr+ ph∗y−qh∗x

5.1.2 Ecuaciones linealizadas de la mecánica del vuelo

Como es sabido, las fuerzas aerodinámicas y propulsivas se pueden aproximar por modelos lineales. Porotro lado, al ser el avión estable, el movimiento de éste en el aire se puede expresar como una sucesión depequeñas perturbaciones respecto de la condición de vuelo de referencia. Esto hace que las ecuaciones dela mecáncia del vuelo se puedan linealizar en torno a un punto de operación del avión que en general va aser una condición de vuelo estacionario de referencia, [10].

La linealización de una variable x y de una función f (x) en torno a un punto x0 se expresan como:

x = x0 +∆x; f (x) = f (x0)+∂ f∂x

∣∣∣∣x0

·∆x,

donde x0 es el punto de operación y ∆x una perturbación muy pequeña de la variable x, de manera quehaciendo uso de la Teoría de Pequeñas Perturbaciones se llega a que los términos de segundo orden quepuedan aparecer se van a despreciar y a que los términos no lineales se aproximarán por series de Tayloren torno al punto de operación apareciendo sólo la parte lineal.

Las fuerzas y momentos que actúan sobre la aeronave son función de los cambios en las fuerzas ymomentos que se producen como resultado de las perturbaciones, por lo que hay que expresarlas enfunción de los mismos. Para ello se linealizan como se indica a continuación, donde se ha cogido ∆L comoejemplo y denominado “s” al vuelo de referencia,. Asumiendo un comportamiento lineal, la perturbación∆L dependerá de las variables de estado y sus derivadas temporales de la forma:

∆L =∂L∂u

∣∣∣∣s∆u+

∂L∂ u

∣∣∣∣s∆u+

∂L∂ u

∣∣∣∣s∆u+ . . .

∂L∂v

∣∣∣∣s∆v+

∂L∂ v

∣∣∣∣s∆v+

∂L∂ v

∣∣∣∣s∆v+ . . .

donde los términos dados por ∂L∂u

∣∣∣s, ∂L

∂ u

∣∣∣s, ∂L

∂ u

∣∣∣s

son las derivadas de estabilidad. De éstas, se consideraráque únicamente son relevantes los términos hasta la primera derivada.

Las derivadas de estabilidad se escriben como:

Lu =∂L∂u

∣∣∣∣s.

En general se tendrá:

∆L w f(

t,u, u ,v, v,w, w, p, p,q, q,r, r,δa, δa,δe, δe,δr, δr,δt , δt

).

Y linealizando,

∆L w Luu+Luu+ ...+Lp p+Lp p+ ...+Lδaδa +L

δaδa + ...

Page 58: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

48 Capítulo 5. Ejemplo de aplicación: estudio del modo fugoide de la aeronave MD-82

Linealización de las ecuaciones del movimiento

En general el vuelo de referencia que se considera posee las siguientes características: vuelo estacionario,simétrico y rectilíneo con velocidad angular nula. Dada la elevada complejidad que comporta la estimaciónde las derivadas de estabilidad, se realizan las siguientes hipótesis: las derivadas de fuerzas y momentoslaterales-direccionales respecto a variables longitudinales son nulas y viceversa; las derivadas de estabilidadque involucran aceleraciones lineales o angulares excepto Zw y Mw son despreciables; las derivadas deestabilidad Xq,Xδe

,Xδe,Z

δe,Yδa

,Yδa,L

δa,L

δr,M

δe,N

δa,N

δrson despreciables.

Las ecuaciones cinemáticas lineales se encuentran desacopladas, y que el conjunto de 9 ecuacionesrestantes se puede separar en ecuaciones en las que influye la dinámica longitudinal (u,w,q,θ ) y ecuacionesen las que influye la dinámica lateral-direccional (v, p,r φ ,ψ), [11].

Ecuaciones cinemáticas lineales:

xc = us cosθs +ucosθs−usθ sinθs +wsinθsyc = us cosθsψ + vzc = −us sinθs−usinθs−usθ cosθs +wcosθs

Ecuaciones de la dinámica longitudinal:Xuu+Xww−mgθ cosθs = m(u+qws)

Zuu+Zww+Zww+Zqq+Zδeδe−mg(φ cosθs sinφs−θ sinθs cosφs) = m(w−qus)

Muu+Mww+Mww+Mqq+Mδe

δe = Iyqθ = q

Ecuaciones de la dinámica lateral-direccional:Yvv+Yp p+Yrr+Yδr

δr +mg(φ cosθs cosφs−θ sinθs sinφs) = m(v+ rus +urs− pws)Lvv+Lp p+Lrr+Lδa

δa +Lδrδr = Ix p− Ixzr

Nvv+Np p+Nrr+Nδaδa +Nδr

δr = Izr− Ixz pφ = p+ r tanθsψ = r secθs

5.1.3 Estabilidad Dinámica del avión

Para realizar un breve estudio de la Estabilidad Dinámica del avión, es preciso hacer uso de las ecuacioneslinealizadas adimensionales simplificadas de la Dinámica del Vuelo y tener en cuenta las mismas hipótesisque hasta ahora se han considerado. Por otro lado, por comodidad, se va a considerar en todo momento unvuelo horizontal y se van a dejar fijos los mandos de profundidad y de alerones y el timón de dirección enlos valores correspondientes a la condición de vuelo de referencia, [11].

Ecuaciones longitudinales

Las variables adimensionales del problema longitudinal son las siguientes:

CX = X0.5ρV 2S CZ = Z

0.5ρV 2S Cm = M0.5ρV 2Sc

u = uus

w = wws

= α q = qus/c/2

t = t0.5c/us

µ = m0.5ρSc

Iy =Iy

ρS(c/2)3

Page 59: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

5.1 Fundamento teórico 49

El sistema de ecuaciones adimensionalizadas de la dinámica longitudinal queda:2µ

dudt

= CXuu+CXα

α +CZsθ(

2µ−CZα

) dα

dt=

(2CZs

+CZu

)u+CZα

α +(

2µ +CZq

)q

Iydqdt−Cmα

dt= Cmuu +Cmα

α +Cmqq+Cmδe

δedθ

dt= q

En general y para aviones convencionales, resultarán dos pares de autovalores complejos conjugados,que se corresponden con los dos modos asociados a la estabilidad dinámica logitudinal: un modo rápidoy con amortiguamiento grande conocido como “corto periodo” y otro modo mucho más lento y menosamortiguado llamado “fugoide”.

• Modo fugoide: se trata de una oscilación de baja frecuencia en la que se producen cambios princi-palmente en la velocidad y el ángulo de cabeceo mientras que el ángulo de ataque y la velocidadangular de cabeceo permanecen prácticamente constantes.

• Modo de corto periodo: en este caso la velocidad de vuelo permanece prácticamente constantemientras que el ángulo de ataque y la velocidad angular de cabeceo varían. Por otro lado los módulosdel ángulo de ataque y del ángulo de cabeceo son casi iguales y tienen un desfase reducido, lo queimplica que las variaciones en el ángulo de trayectoria serán pequeñas, pudiéndose decir que duranteel modo de corto periodo el avión se mantiene volando a nivel y a velocidad constantes.

5.1.4 Aproximación al modo fugoide

En la literatura se pueden encontrar diversos modelos de aproximación al modo fugoide con los que calcularlas características de dicho modo. Se van a ver aquí la aproximación de Lanchester, la aproximación en laque se incorpora el amortiguamiento en la ecuación del modo fugoide y la aproximación que incorpora laecuación de momentos, [12].

Aproximación de Lanchester

Permite ver de forma sencilla la influecia de la velocidad de vuelo en el periodo del modo fugoide a partirde una formulación conservativa.

Supone que durante el movimiento α = 0 y T = D, por lo que L =W y se tiene un movimiento en elque se conserva la energía mecánica:

E =12

mV 2−mgz = cte.

Dado que en el vuelo de referencia V = us y z = 0 queda:

V 2 = u2s +2gz

Haciendo uso de la igualdad entre sustentación y peso y sustituyendo en la ecuación anterior, llamandok = ρgSCws

a la rigidez del sistema, la ecuación del movimiento en el eje vertical suponiendo ángulospequeños llega, operando, a:

mz+ kz = 0,

ecuación que describe un movimiento armónico de periodo: T = 2π√

m/k = π√

2 usg .

Page 60: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

50 Capítulo 5. Ejemplo de aplicación: estudio del modo fugoide de la aeronave MD-82

Incorporación del amortiguamiento a la ecuación del modo fugoide

Se supone que durante toda la oscilación, tanto el ángulo de ataque como la derivada de la velocidadangular de cabeceo tienen valores nulos por estar asociados al modo de corto periodo (se considera que seestabilizan muy rápidamente). El sistema de ecuaciones adimensionalizadas de la dinámica longitudinalqueda: 2µ

dudt

= CXuu+CZs

θ

−(

2µ +CZq

)dθ

dt=

(2CZs

+CZu

)u+CZδe

δe

Resolviendo el sistema se obtiene la ecuación característica del mismo que se puede expresar comoλ

2 +2ξ ωnλ + ω2n = 0. Siendo los valores aproximados de la frecuencia natural y del amortiguamiento del

modo fugoide:

ωn =

√√√√CZs

(2CZs

+CZu

)2µ

(2µ +CZq

) , ξ =−CXu

2

√2µ +CZq

2µCZs

(2CZs

+CZu

) .En la mayoría de los aviones convencionales se pueden realizar las siguiente simplificaciones: 2CZs

+CZu' 2CZs

, 2µ +CZq' 2µ . Por otro lado, CZs

'−CLsy despreciando los efectos de compresibilidad y

suponiendo el empuje constante se puede escribir CXu'−2CDs

, con lo que se llega a:

ωn =1√2

CZs

µξ =−CXu

2

√1

2C2Zs

=1√E,

donde se ha hecho CZs '−CLs y CXu '−2CDsy siendo E la eficiencia aerodinámica.

Aproximación al modo fugoide incorporando la ecuación de momentos

En este caso se hace uso de la diferencia en las escalas de tiempo que presentan los modos longitudinales.Considerando que el modo de corto periodo es infinitamente rápido respecto al modo fugoide, se puedesuponer que la dinámica rápida (ecuaciones de fuerzas verticales y de momento de cabeceo) se estabilizaráinstantáneamente.

En esta ocasión se parte de las ecuaciones adimensionalizadas de la dinámica longitudinal expresadascomo:

2µ 0 0 00 1 0 00 0 2µ−CZα

00 0 −Cmα

Iy

ˆuˆθ

ˆαˆq

=

CXu

CZsCXα

00 0 0 1

2CZs+CZu

0 CZα2µ +CZq

Cmu0 Cmα

Cmq

α

q

+

00

CZδeδe

Cmδeδe

,que se puede escribir según:

M11x = A11x+A12z+B1δeM22x = A21x+A22z+B2δe

Haciendo z = 0, resolviendo el sistema para z =[

α

q

](vector de variables rápidas), queda:

z =−A−122 A21x−A−1

22 B2δe

Page 61: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

5.2 Realización práctica 51

Y por tanto, la primera ecuación resulta:

M11x =(A11−A12A−1

22 A21)

x+(B1−A12A−1

22 B2)

δe = Ax+ Bδe.

Operando se obtendría la ecuación característica asociada al sistema, a partir de la cuál se tendrían lafrecuencia natural y el amortiguamiento del modo fugoide.

Haciendo δe = 0 y despreciando los efectos de compresibilidad e ignorando la contribución de lavelocidad angular de cabeceo a la ecuación de momentos se obtiene la misma ecuación característica a laque se llega en la aproximación con incorporación del amortiguamiento a la ecuación del modo fugoide.

5.2 Realización práctica

Se pretende obtener para tres ensayos de vuelo a 4000 ft, 10000 ft y 20000 ft, respectivamente, la frecuencianatural y el amortiguamiento del modo fugoide en cada uno de ellos y compararlos con los valores quepredicen la aproximación de Lanchester y el modelo aproximado que incorpora el amortiguamiento. Apartir de ellos se obtendrán el coeficiente de fuerzas Z en la condición de equilibrio, CZs, y la derivada deestabilidad CXu . Posteriormente se establecerá una comparativa entre la primera y CLs. Para el caso delvuelo a 4000 ft se quiere visualizar el efecto de la deflexión los flaps en el modo fugoide.

El estudio se realiza a partir de los datos obtenidos del ensayo del vuelo, del que se extraen, en particular,la altitud, la velocidad equivalente EAS, la masa de combustible que tiene la aeronave y el tiempo desimulación. Para excitar el modo fugoide se parte de un vuelo equilibrado, en el que sin piloto automáticoy sin auto-throttle se da un tirón al timón de profundidad para introducir una perturbación en el mismo,para sacar la aeronave de la condición de equilibrio.

En condiciones iniciales el avión se encuentra trimado y con el piloto automático encendido. En estascondiciones se quitan tanto el piloto automático como el auto-throttle y se modifica la posición de palancade gases para llevar los motores al anterior valor de EPR. Con la velocidad verdadera (TAS) y el pesoanotados en este punto se calculará el CL.

Una vez realizada la simulación y obtenidos los datos en un archivo, para las altitudes de 10000 ft y20000 ft se anotan, tras la excitación, los valores de la misma en dos picos o valles consecutivos y elperiodo entre ambos. Con estos valores se puede obener de manera directa el decremento logarítmico de laoscilación y la frecuencia amortiguada de la misma. Y, operando, se obtendrán el amortiguamiento y lafrecuencia natural del modo, como se detallará más adelante.

Antes de este proyecto, esta práctica se realizaba mediante la toma de datos a partir del panel deinstrumentos del simulador de la aeronave en vuelo equilibrado, tras excitar su modo fugoide mediante unmovimiento de los mandos (tirón en el timón de profundidad). Para obtener los valores de la altitud de lospicos o valles se hacía uso del altímetro barométrico y del variómetro, que si bien se encuentran entre losinstrumentos más precisos, al realizar las mediciones se obtienen resultados aproximados debidos al factorhumano. Esto también afectaba a la obtención del periodo, ya que la obtención del mismo pasaba por lautilización de un cronómetro.

Para ilustrar la respuesta a la excitación que se ha introducido en la aeronave, en la Figura 5.2 seencuentra la misma para un ensayo en vuelo a 240 kts de velocidad y a una altitud de 20000 ft, donde sepueden observar los picos máximos durante la evolución de la altitud en el transcurso de la excitación..

Para la realización de la práctica, y en general, es conveniente trabajar con la velocidad verdadera TAS,para lo cuál se hace uso de la expresión que proporciona la velocidad equivalente EAS en función de lamisma:

EAS = TAS√

ρ/ρ0,

Page 62: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

52 Capítulo 5. Ejemplo de aplicación: estudio del modo fugoide de la aeronave MD-82

Figura 5.2 Excitación del modo fugoide para un vuelo a 240 kts y 20000 ft de altitud.

en donde ρ0 es la densidad del aire a nivel del mar, ρ0 = 1,225kg/m3, y las densidades para 10000 ft y20000 ft, respectivamente, son ρ10k = 0.904637kg/m3 y ρ20k = 0.652694kg/m3.

Por otro lado, para obtener la masa de la aeronave se han tenido en cuenta los valores de su masa envacío, así como la corresponediente a la tripulación y carga (pasajeros y bodega), 45522.53kg, y se le hasumado el combustible del que dispone en el momento de realizar el ensayo.

Se muestran en la Tabla 5.1 los datos recogidos para las altitudes de 10000 ft y 20000 ft: TAS, masatotal, altitud de cada pico para cada uno de los ensayos y el periodo entre ellos. En esta tabla se puede sepuede observar ya en primera aproximación cómo el movimiento se va amortiguando (el valor de h2 seacerca más al valor de equilibrio, h, que h1),

Tabla 5.1 Análisis a 10000 ft y 20000 ft.

10000 ft 20000 ftTAS [kt] 276.2178 296.6548

Masa [kg] 61877.33 63545.33h1 [ft] 11040.6 21071h2[ft] 10746.4 20837T [s] 70.5 70.4

Page 63: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

5.2 Realización práctica 53

Por último, se pide descender a 4000 ft y excitar de nuevo el modo fugoide en configuración limpia ycon los flaps desplegados, lo que se traduce en una variación de la eficiencia aerodinámica. La deflexiónde los flaps se establece en 15º. Con fin orientativo y para contar con un orden de magnitud se ha realizadotambién para la misma altitud y con flaps retraídos.

Los datos recogidos se encuentran en la Tabla 5.2.

Tabla 5.2 Análisis a 4000 ft .

Sin flaps Con flapsTAS [kt] 190.3674 190.2403

Masa [kg] 60940.33 61354.33h1 [ft] 4543.4 4380.8h2[ft] 4426.4 4291.9T [s] 49.39 49.22

Se observa que con el ensayo correspondiente a flaps desplegados tiene una amortiguación mayor: laaltitud del segundo pico es menor en comparación al caso sin flaps.

Para un ensayo en vuelo a 180 kts de velocidad y a una altitud de 4000 ft, el modo fugoide en el caso deflaps desplegados a 15º se puede observar en la Figura 5.3

Figura 5.3 Excitación del modo fugoide para un vuelo a 180 kts y 4000 ft de altitud con flaps desplegadosa 15º.

Page 64: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

54 Capítulo 5. Ejemplo de aplicación: estudio del modo fugoide de la aeronave MD-82

5.3 Resultados

En primer lugar se van a detallar las expresiones de un movimiento oscilatorio amortiguado de las que seva a hacer uso para obtener la frecuencia natural y el amortiguamiento del mismo.

La expresión del decremento logarítmico se puede ver a continuación:

δ = Ln(

h1−h0h2−h0

)Éste se encuentra relacionado con el amortiguamiento de la oscilación según:

δ =2πξ√1−ξ 2

A partir del periodo se tiene la frecuecia amortiguada de oscilación:

T =2π

ωd

Y la relación de la frecuencia amortiguada con la frecuencia natural del movimiento y el amortiguamientoes:

ωd = ωn

√1−ξ 2

5.3.1 Aproximación de Lanchester

La aproximación de Lanchester establece la frecuencia de oscilación adimensional como ωn =√

2g,us

, dondeus es la velocidad de la posición de equilibrio (TAS medida anteriormente) , g la gravedad y c la cuerdaen la raíz del ala. En la Tabla 5.3 se recogen las frecuencias calculadas como la inversa del periodo y sucomparativa con la aproximación.

Tabla 5.3 Análisis de la frecuencia.

Frecuencia calculada [rad/s] Frecuencia aproximada [rad/s] Error cometido [%]4000 [ft] 0.1273 0.0729 42.7433

4000 [ft] FLAPS 0.1278 0.0729 42.961910000 [ft] 0.0892 0.0502 43.722520000 [ft] 0.0893 0.0468 47.6410

Se puede observar que la aproximación de Lanchester introduce un error notable en la frecuencia naturalde oscilación del modo fugoide. El error cometido es poco sensible a la altitud de vuelo, aunque aumentaligeramente con la misma.

5.3.2 Aproximación al modo fugoide con incorporación del amortiguamiento

En este caso se va a hacer uso del modelo aproximado del amortiguamiento para obtener la eficienciaaerodinámica E de la aeronave. Como se vio, el amortiguamiento aproximado viene dado por ξph =

1√2E

,donde E es la eficiencia aerodinámica buscada. A continuación, en la Tabla 5.4 se muestran los valoresdel amortiguamiento obtenidos en el simulador y el valor de la eficiencia aproximada en función delcorrepondiente amortiguamiento.

Page 65: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

5.3 Resultados 55

Tabla 5.4 Análisis del amortiguamiento.

Amortiguamiento calculado [-] Eficiencia aerodinámica aproximada [-]4000 [ft] 0.0386 18.3372

4000 [ft] FLAPS 0.0423 16.726110000 [ft] 0.0528 13.389120000 [ft] 0.0392 18.0360

Es sabido que el amortiguamiento aumenta con la altitud, aunque esta dependencia sólo es acusada enel caso de un vuelo en la estratosfera y con un coeficiente de sustentación de referencia elevado, [12] .Se puede ver la evolución inversa de la eficiencia aerodinámica con el amortiguamiento. Al aumentar elprimero, disminuye el segundo.

Por otro lado, cabe destacar que el modo fugoide se mitiga al desplegar los flaps, como se observa en laTabla 5.4. El amortiguamiento en este caso es mayor al caso de flaps retraídos, por lo que el tiempo que seva a tardar en recuperar la posición de equilibrio es menor. Además, como queda reflejado en dicha figura,la altitud correspondiente a los picos es menor que en el primer caso, Figura 5.3.

5.3.3 CZs, CLs y CXu

CZs se calcula a partir del modelo aproximado de frecuencia natural:

ωn =CZs√

2µ,

donde donde ωn = ωnc

2uses la frecuencia natural adimensional, µ = 2m

ρSc la masa adimensional, con m

la masa de la aeronave , S = 112.3m2 la superficie de la misma, c = 3.4 m la cuerda en la raíz del ala yρ

la densidad del aire a la altitud de vuelo correspondiente.CLs viene dado por la expresión:

CLs =CWs =2W

ρu2s S

,

con W el peso de la aeronave a dicha altitud.Finalmente, CXu se obtiene a partir del modelo de amortiguamiento del fugoide:

ξ =−CXu

2

√1

2C2Zs.

Se adjuntan los valores de las derivadas de estabilidad obtenidas a las altitudes de 4000 ft, 10000 ft y20000 ft en la Tabla 5.5. Destacar que para la altitud más baja la velocidad de vuelo es de 180 kt mientrasque para las otras dos es de 280 kt.

Tabla 5.5 Análisis de las derivadas de estabilidad.

CZs [-] CLs [-] CXu [-]4000 [ft] 0.4719 0.2720 −0.051510000 [ft] 0.2783 0.1566 −0.041620000 [ft] 0.3691 0.1933 −0.0409

Page 66: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

56 Capítulo 5. Ejemplo de aplicación: estudio del modo fugoide de la aeronave MD-82

Es posible observar que los valores de CZs y CLs se diferencian bastante, pero si si tiene en cuenta queel error cometido mediante la aproximación de Lanchester en la frecuencia natural es del orden de un40%, se entiende esta diferencia, viéndose que cuanto menor sea el error cometido más se parecen estoscoeficientes. Por otra parte, los valores de CXu también son del orden esperado, pues para los turbofanes setiene CXu ∼−0.05.

Page 67: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

6 Conclusiones y trabajos futuros

Alo largo del camino recorrido en el desarrollo de la interfaz para FlightGear, han sido muchas lasvías de desarrollo por las que se podía haber continuado y sin embargo, bien por limitaciones en el

tiempo, bien por limitaciones en el hardware no se han podido seguir. También la naturaleza práctica dela plataforma ha contribuido a ello ya que la herramienta está pensaba y ejecutada de cara a una funciónconcreta, lo que limita las funcionalidades de las que se va a hacer uso en el simulador.

No obstante, aunque la gran versatilidad del simulador no se ha utilizado en su totalidad, sí que se hansabido aprovechar ciertas características básicas que han hecho de la interfaz gráfica desarrollada unabuena solución al problema planteado. Se ha conseguido por tanto una herramienta de gran sencillez encuanto al uso, amable a la vista y que cumple de manera satisfactoria con los objetivos que se plantearonpara el desarrollo de la misma.

De esta manera, con el entorno creado se consigue no sólo una herramienta potente con la que estudiarlos conceptos de la Mecánica del Vuelo y de la Estabilidad de aviones, sino que además resulta que laconfiguración y el inicio de la misma se han simplificado y se ha convertido en algo intuitivo y rápido.

6.1 Trabajos futuros

A fin de ampliar el uso de las características del simulador y de la interfaz, se proponen aquí distintas líneasque podrían seguirse para lograr una extensión de la herramienta creada y hacerla mucho más versátil delo que ya es.

En cuanto al aprovechamiento de la funcionalidad del Simulador FlightGear, se sugiere hacer uso de lacapacidad intrínseca que tiene para la visualización en varias pantallas del interior de la aeronave paracrear una vista más completa y realista de la simulación. También, en esta línea, se podrían activar lascomunicaciones por radio y crear una sesión para un grupo de alumnado, para trabajar el tráfico aéreo.

Se propone la adquisición de unos mandos y pedales de vuelo, así como de una palanca de gases parahacer más cómodo el pilotaje de la aeronave, así como la ampliación a aquellas partes de la consola demando que se consideraran oprtunas.

También se podrían explorar todas las opciones existentes de inicialización de FlightGear para dotar a lainterfaz de un nivel de personalización muy elevado.

En cuanto a las características de la interfaz gráfica, sería interesante hallar la manera de que la interfazreconociera de manera automática las aeronaves instaladas en el ordenador y que no hiciera falta laintroducción manual de la misma. También, para un mayor realismo, sería conveniente impedir despegar yaterrizar a cualquier avión desde cualquier pista sin más, sino sólo permitirlo en caso de que el vehículo encuestión cupiera en el aeropuerto.

57

Page 68: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

58 Capítulo 6. Conclusiones y trabajos futuros

Por otra parte, a día de hoy la interfaz no reconoce si la pista de despegue introducida existe en elaeropuerto elegido, sino que es el simulador el que en caso de no encontrarla el que inicia desde el lugarque tiene configurado por defecto (el cuál varía dependiendo de la versión). Se propone la inclusión de unalista de pistas o la comprobación previa de la existencia de la misma.

Esto mismo sucede también en el caso de la nomenclatura de los aeropuertos, ya que el sistemaúnicamente alerta de que se ha introducido algún carácter numérico o que el número de carácteres esdistinto de cuatro, no de la inexistencia del aeropuerto introducido. De ser erróneo se iniciaría la simulaciónen la localización por defecto de FlightGear.

Quizá la solución más elegante a estos problemas fuera la creación de una base de datos referida aFlightGear, de donde la interfaz tomaría la información y actuase en consecuencia.

Por otro lado, se podrían introducir ciertas mejoras en la interfaz actual, como cambiar las carpetasde almacenamiento del script de arranque y del archivo de salida de los datos al final de la simulación,para que fuera en otra distinta a la carpeta de trabajo del programa, con lo que se puede limitar el accesocontinuo a los archivos propios de la interfaz.

Finalmente se podría explorar la opción de crear un archivo ejecutable de extensión .exe utilizando laherramienta “deploytool” de MATLAB® para poder utilizar la interfaz sin necesidad de tener este softwareinstalado en el equipo, lo que haría que se pudiera exportar a cualquier ordenador.

Page 69: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Apéndice AManual del usuario

Se incluye a continuación un manual del usuario donde se recogen las instrucciones que debe seguir paraconfigurar el simulador y la recepción de datos e iniciar un ensayo de vuelo dado. A diferencia del Capítulo4 no se van a incluir las características de la interfaz, sino que se detallarán de manera concisa los pasos aseguir para la puesta en funcionamiento de la herramienta.

A.1 Instalación del software

En esta sección se va a comentar de manera breve y escueta los pasos a seguir para la instalación delsoftware que se va a utilizar en el uso de la plataforma creada junto con el simulador.

A.1.1 FlightGear

El software FlightGear se puede descargar en su última versión de [6], desde donde se nos redirige a lapágina de descarga.

La instalación del software no tiene complicación ninguna, basta con aceptar la configuración pordefecto y el programa se instalará sin mayor problema en el ordenador.

Es importante apuntar la dirección de la carpeta de instalación del mismo, ya que es se trata de unparámetro que se pedirá en la configuración de la herramienta, y sin el cuál no funcionará el simulador.

Para copiar la dirección de la carpeta, basta con seleccionar en la barra de direcciones del explorador ydarle a copiar (botón derecho del ratón), como se puede ver en la Figura A.1.

Figura A.1 Dirección de la carpeta de instalación de FlightGear.

59

Page 70: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

60 Capítulo A. Manual del usuario

A.1.2 MATLAB®

La instalación de MATLAB® es la usual.Tanto si se elige la instalación sin internet o con internet, se mantiene la configuración por defecto y se

introduce la licencia del programa cuando se requiera.Esta plataforma no hace uso de bloques especiales, sino que la versión básica de MATLAB® es suficiente

para hacerla funcionar.En cuanto a los archivos que conforman la plataforma, se pueden almacenar en la carpeta que se desee,

siempre que se tengan todos en el mismo sitio.Si la carpeta no se encuentra añadida a la de trabajo, cada vez que se inicie la interfaz desde el programa

se pedirá que se cambie la carpeta de trabajo a aquella en que están guardados los archivos de la interfaz.

A.2 Uso de la interfaz

A.2.1 Primer uso

Una vez abierto el programa, si es la primera vez que se va a utilizar, en la pantalla correspondiente alpreprocesado hay que introducir la dirección de instalación del simulador FlightGear, que se ha obtenido,por ejemplo, de la manera que se indica en la Subsección A.1.1.

Se debe también asignar un nombre al archivo de script que se va a generar.Una vez introducidos los datos se debe pulsar sobre “Save changes”.

A.2.2 Preprocesado

Panel de configuración de FlightGear

En la interfaz gráfica del preprocesado, que se puede ver en la Figura A.2, se recomienda dejar las opcionesdel panel de configuración de FlightGear como están al inicio del programa.

Si se dispone de varios archivos de extensión .bat con diferentes ensayos configurados se debe escribiren el recuadro ”Output file name” el nombre del archivo en cuestión, y luego pulsar “Save changes”.

Page 71: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

A.2 Uso de la interfaz 61

Figura A.2 Ventana de configuración del preprocesado.

Page 72: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

62 Capítulo A. Manual del usuario

Panel de configuración de la conexión de red

Para configurar la conexión de red es preciso diferenciar uno de los siguientes casos:

1. Mismo ordenador de origen y destino: la dirección IP es por tanto la local, correspondiente a127.0.0.1 o “localhost”. El puerto puede ser cualquiera libre.

2. Distinto ordenador de origen y destino: hay que obtener la dirección IP de cada uno de los ordenadoresy escribirla en el recuadro correspondiente. Una manera de mirar la dirección IP de la máquinapuede ser, por ejemplo, desde la consola de comandos de Windows (cmd.exe), donde se debe escribir“ipconfig” y tomar el valor indicado por “Dirección IPv4”, como se puede ver en la Figura A.3. Otraopción es ver los detalles de la conexión actual.

Figura A.3 Ventana de configuración de la conexión de red del sistema.

Es preciso destacar que al tratarse de una IP dinámica, con cada nueva conexión la dirección cambiaráy habrá que introducir la actual de nuevo.

Una vez introducido los parámetros de la conexión de red se debe pulsar sobre “Save changes”.

Page 73: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

A.2 Uso de la interfaz 63

Panel de inicialización

A continuación es preciso elegir una aeronave de las incluídas en la lista y un aeropuerto.El aeropuerto puede ser tanto uno de la lista como uno introducido manualmente. En este último caso se

recomienda asegurarse de que el código de la OACI correspondiente al aeropuerto escogido es correcto.Aunque es posible descargar de manera manual los escenarios y almacenarlos físicamente en la carpeta

correspondiente en el directorio raíz de FlightGear, se ha elegido la opción de utilizar la aplicación dedescarga de escenario propia del simulador, llamada “Terrasync”, que al habilitarse descarga de maneraautomática el escenario correspondiente.

Es necesario hacer un inciso aquí: no todos los aeropuertos de la lista tienen por qué estar descargados apriori en el ordenador, dado que se ha elegido utilizar la descarga intrínseca del simulador, de modo queaunque no sea necesario descargar los escenarios de manera manual, sí lo es introducir manualmente elaeropuerto si fuera a ser la primera vez que se utilizase, o si no se estuviera seguro de haberse utilizadoantes.

El siguiente paso es establecer las condiciones iniciales del ensayo.En el caso de que se vaya a despegar desde la pista, se requiere la introducción de la misma. Al igual

que con el caso de la introducción manual de los aeropuertos, no existe una base de datos interna quereconozca la existencia de una pista, por lo que es preferible que el usuario esté seguro de que la pista queestá introduciendo existe en el aeropuerto en cuestión. No obstante de ser errónea el simulador iniciaríadesde la localización configurada por defecto (depende de la versión instalada de FlightGear) y lo únicoque habría que hacer es salir de la aplicación y lanzarla otra vez.

Si por contra se fuera a empezar el ensayo desde el aire es necesario establecer las condicionesiniciales requeridas: altitud inicial; guiñada inical; y distancia y azimut relativos al aeropuerto de inicio. Esnecesario destacar que la aeronave inicia con los motores y el panel apagados, por lo que será indispensableencenderlos desde el simulador y que el tren de aterrizaje se encuentra extendido, por lo que habrá queretraerlo. Lógicamente el piloto automático y el “auto-throttle” se encuentran desactivados.

Es posible crear un archivo de configuración de conidiciones iniciales para el ensayo que se inicie en elaire. Puede tratarse de un archivo de texto con extensión .txt o de un archivo excel. En ambos casos setrata de configurar una lista con los valores iniciales correspondientes a cada dato. Una explicación másdetallada se encuentra a continuación.

• Archivo de texto .txt: En el archivo de texto el nombre del parámetro debe estar separado del valorasignado por el carácter “=”, como se aprecia en la Código A.1, donde se puede ver la estructura quedebe seguir el archivo. Es importante que la enumeración comience en la fila1 y que sea correlativa,es decir, que no haya ninguna fila en blanco en medio.

Código A.1 Estructura del archivo de texto de configuración de las condiciones iniciales.

altitude_0=7110

heading_0=0

offset_distance_0=1

offset_azimuth_0=2

Page 74: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

64 Capítulo A. Manual del usuario

• Archivo excel .xls, .xlsx: En el archivo excel se asigna la columna de la izquierda, columna A, ala denominación y la de la derecha, columna B, al valor correspondiente, como se puede ver en laFigura A.4. En este caso no importa la fila en la que empiece la lista siempre y cuando se trate de lascolumnas A y B y la enumeración sea también correlativa.

Figura A.4 Estructura del archivo excel de configuración de las condiciones iniciales.

Posteriormente se puede cargar el archivo a través de la opción “Load settings”, sin más que elegir elmismo en la ventana que se abre a continuación.

Generación del script de arranque

Una vez introducidos todos los datos, se tienen dos opciones:

1. Generar un script de arranque: sería para el caso en que se quisiera dejar preparado el archivo paraun uso posterior del simulador. Habría que pulsar sobre “Generate run script”.

2. Generar un script de arranque y ejecutarlo: caso en el que se quiere iniciar el simulador. Evidente-mente el entorno del preprocesado y el simulador se encuentran funcionando en el mismo ordenador.Hay que pulsar sobre “Run FlightGear”.

Por último, si se quiere iniciar la interfaz del postprocesado en el mismo ordenador hay que pulsar el botón“Start network connection”.

A.2.3 Postprocesado

La interfaz gráfica del postprocesado se puede ver en la Figura A.5.

Page 75: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

A.2 Uso de la interfaz 65

Figura A.5 Ventana de configuración del preprocesado.

Page 76: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

66 Capítulo A. Manual del usuario

Panel de selección de variables internas

Dentro de lo que se correspondería con la “Preparación de la visualización de los datos recibidos”,Subsección 4.2.3, se encuentra este panel, en el que se deben seleccionar aquellas variables que se deseanalmacenar para un estudio posterior y/o visualizar al tiempo de la simulación.

Las variables seleccionadas son aquellas que están marcadas por un “tic” X, mientras que aquellas queno se encuentran marcadas no están seleccionadas.

Es posible crear un archivo de configuración de selección de parámetros. Puede tratarse de un archivo detexto con extensión .txt o de un archivo excel. En ambos casos se trata de configurar una lista de opcionescon valor 0 o 1, de manera que 0 será la desactivación de la variable en cuestión y 1 la activación de lamisma. Una descripción más detallada del formato de los archivos de configuración se puede hallar acontinuación.

• Archivo de texto .txt: En el archivo de texto el nombre del parámetro debe estar separado del valorasignado por el carácter “=”, como se aprecia en el Código A.2, donde se puede ver la estructura quedebe seguir el archivo. Es importante que la enumeración comience en la fila1 y que sea correlativa,es decir, que no haya ninguna fila en blanco en medio.

Código A.2 Estructura del archivo de texto de configuración de la selección de parámetros.

latitude=1

longitude=1

altitude=1

ubody=1

vbody=1

wbody=1

vn=0

ve=0

vs=1

cas=0

eas=0

groundspeed=0

mach=0

pbody=1

qbody=1

rbody=1

roll=1

pitch=1

yaw=1

roll_rate=1

pitch_rate=0

yaw_rate=1

vs=1

alpha=0

beta=1

nfl=0

glideslope=1

aileron=1

elevator=1

Page 77: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

A.2 Uso de la interfaz 67

flaps=0

rudder=0

slats=0

spoilers=1

throttle=0

fuel=1

• Archivo excel .xls, .xlsx: En el archivo excel se asigna la columna de la izquierda, columna A, ala denominación y la de la derecha, columna B, al valor correspondiente, como se puede ver en laimagen de la derecha de la Figura A.6. En este caso no importa la fila en la que empiece la listasiempre y cuando se trate de las columnas A y B y la enumeración sea también correlativa.

Figura A.6 Estructura del archivo excel de configuración de la selección de parámetros.

Posteriormente se puede cargar el archivo a través de la opción “Load settings”, sin más que elegir elmismo en la ventana que se abre a continuación.

Page 78: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

68 Capítulo A. Manual del usuario

Propiedades del archivo de salida y de los gráficos

El nombre del archivo de salida debe proporcionarse al inicio del programa del postprocesado.Se puede dejar el nombre del archivo por defecto, pero si se van a realizar varios ensayos seguidos se

recomienda cambiar el nombre de acuerdo a las características del mismo para facilitar en la medida en loposible su identificación.

El archivo de salida será una estructura de datos de extensión .mat que se encontrará almacenada en lacarpeta de trabajo de MATLAB®.

En cuanto a las propiedades de los gráficos, es posible configurar el número de datos que se van arepresentar de manera simultánea en las gráficas superior izquierda, superior derecha e inferior izquerda;en adelante,1, 2 y 3.

Visualización de los datos recibidos

Este punto no es necesario para la configuración del programa del postprocesado, de modo que si no sequiere visualizar ningún dato en la sesión, se debe pasar al siguiente punto.

En cada una de las gráficas personalizables, 1, 2 y 3 se pueden elegir para cada uno de los ejes y demanera independiente la variable a representar. Como se dijo en la Subsección 4.2.3, la única opciónno disponible es la elección de un conjunto de variables en cada uno de los ejes de una misma figura.Exceptuando esto, cualquier combinación de variables es posible, teniendo en cuenta que el parámetro quese quiere representar debe estar elegido en el panel de selección.

También es posible cambiar la escala de la figura asociada a la representación de la altitud, la barravertical de abajo a la derecha, mediante una modificación en el techo teórico en el recuadro creado paraello. Como está indicado en la interfaz, el techo teórico debe introducirse en pies.

Las opciones de zoom se activan una vez la recepción de datos está parada.

Recepción de datos

Desde el panel de recepción, Figura 4.25, se activa la recpeción de datos pulsando sobre “Enable reception”y comenzaría la misma.

Si en algún momento de la simulación se quieren cambiar las variables representadas en las gráficas, nohay más que seleccionar las nuevas en los ejes y pulsar sobre “Update axes”.

Para desactivar la conexión y obtener el archivo de salida, basta con pulsar el botón “Disable reception”.Para limpiar las gráficas una vez terminada la simulación, se debe pulsar el botón “Clear graphics”. Esto

es opcional, no hace falta para realizar un nuevo ensayo.

Page 79: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Apéndice BInstrucciones básicas para la adición de la

características a la interfaz

Se va a tratar de realizar aquí un manual de instrucciones para mostrar al usuario la manera de modificarla interfaz para añadir más detalles a su elección, como pueden ser por ejemplo la inclusión de nuevosmodelos de avión o de aeropuertos, así como nuevas variables internas que se deseen extraer del simulador.

Para ello, y siguiendo la estructura del documento, se va a mantener en la medida en que sea posible elmismo esquema seguido hasta ahora.

B.1 Preprocesado

Al igual que en el Capítulo 4, se va a comenzar por examinar la interfaz del preprocesado, haciendohincapié en aquellos detalles que sean a priori susceptibles de verse modificados en un futuro por temas defuncionalidad.

B.1.1 Adición de aeronaves

Descarga del modelo y almacenamiento en el ordenador

Para añadir aeronaves a las disponibles primero hay que descargar el modelo seleccionado de [17], ydescomprimir el archivo en la carpeta destinada a las aeronaves dentro del directorio de instalación deFlightGear, como se puede ver en la Figura B.1.

Adición del modelo a la lista en el GUI

Una vez añadido el modelo de avión a la carpeta “Data/Aircraft” del simulador, hay que introducir elnombre del modelo en el GUI para habilitar su elección desde la plataforma.

Para ello, hay que abrir MATLAB® y llamar a la herramienta GUIDE como se indica en el Código B.1.

Código B.1 Código para llamar a la herramienta GUIDE con el preprocesado.

guide FG_Init

Ahora haciendo selección sobre la lista de aeronaves con el botón derecho se abre un cuadro de opciones,donde se debe seleccionar la opción “Property inspector” y se obtendrá una ventana como la que se puedeobservar en la Figura B.2.

69

Page 80: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

70 Capítulo B. Instrucciones básicas para la adición de la características a la interfaz

Figura B.1 Dirección de la carpeta de aeronaves de FlightGear.

Figura B.2 Listado de opciones de “Property inspector”.

Pulsando sobre la propiedad “String” se abrirá un cuadro donde se puede escribir, y habrá que añadir elmodelo en cuestión.

Para que el simulador lea el modelo, el nombre de la aeronave debe ser el el correspondiente a la segundaparte de archivo XML dado por name-set.xml; es decir, sin “-set.xml”. Un ejemplo se puede ver en laFigura B.3.

Con guardar los cambios será suficiente.

Page 81: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

B.1 Preprocesado 71

Figura B.3 Nombre del modelo de aeronave.

B.1.2 Adición de aeropuerto

Adición del modelo a la lista en el GUI

Si se quiere añadir algún aeropuerto a la lista que se incluye, hay que abrir la opción “Property inspector”correspondiente a la misma, tal y como se ha indicado para la adición de un modelo de aeronave, y escribirel código de la OACI del aeropuerto en cuestión.

Los códigos se pueden encontrar, por ejemplo, en la web http://www.airlinecodes.co.uk/aptcodesearch.asp.

B.1.3 Adición de órdenes de inicio al script

Como se dijo en la Subsección 4.1.2, las opciones de la línea de comandos para el inicio del simulador sonnumerosas y se pueden encontrar en [18].

Si, por ejemplo se quisiera añadir la opción de abrir el simulador a pantalla completa por defecto, habríaque escribir la orden “–enable-fullscreen ” en el código, para lo cuál hay que abrir el editor de MATLAB®

y dentro del código FG_init.m buscar la función llamada “run_bt_Callback”. En ella se pueden encontrarlas líneas del Código B.2.

Lo primero que se hace es distinguir si el inicio se va a realizar en el aire o en pista, ya que cada uno deellos necesita de unas órdenes específicas. Si quisiéramos configurar la pantalla completa siempre, habríaque añadir la orden a los dos casos. Las líneas de código del Código B.2 no sólo transcriben las órdenes deinicio, sino la carpeta de instalación de FlightGear y la configuración de red, como se dijo en la Subsección4.1.2.

Código B.2 Código para la escritura del script de arranque original.

(...)

% Escritura del archivo ejecutable (.bat)

% Distinción según el modo de inicio de vuelo seleccionado:

% Obtención del modo de vuelo

hMainGui = getappdata(0,'hMainGui');

init_mode = getappdata(hMainGui,'InitializationSelection');

Page 82: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

72 Capítulo B. Instrucciones básicas para la adición de la características a la interfaz

% Modo de inicio "en pista"

if strcmp (init_mode, 'runway')

fmt = [FlightGearBaseDirectory(1:2), '\n',...

'cd "%s\\bin"\n\nfgfs.exe',' "--fg-root=%s\\data" ',...

'--generic=socket,out,10,%s,%s,udp,receiver_protocol --%s-terrasync --

aircraft=%s --airport=%s --runway=%s\n'];

(...)

% Modo de inicio "en aire"

else

fmt = [FlightGearBaseDirectory(1:2), '\n',...

'cd "%s\\bin"\n\nfgfs.exe', ' "--fg-root=%s\\data" ', ...

'--generic=socket,out,10,%s,%s,udp,receiver_protocol --%s-terrasync --

aircraft=%s --airport=%s --altitude=%g --heading=%g --offset-distance=%

g --offset-azimuth=%g\n'];

(...)

end

(...)

Para añadir la opción habría que escribir en las líneas de código donde se escriben las órdenes de inicio“–enable-fulscreen”. Se ha optado por escribir la orden en cuestión justo detrás de la configuración de lared, es decir, la primera del conjunto de órdendes de inicio. Las líneas modificadas se pueden ver en elCódigo B.3. Y luego se guardan los cambios realizados.

Código B.3 Código para la escritura del script de arranque modificado.

(...)

% Modo de inicio "en pista"

fmt = [FlightGearBaseDirectory(1:2), '\n',...

'cd "%s\\bin"\n\nfgfs.exe', ' "--fg-root=%s\\data" ',...

'--generic=socket,out,10,%s,%s,udp,receiver_protocol --enable-fullscreen --%s

-terrasync --aircraft=%s --airport=%s --runway=%s\n'];

% Modo de inicio "en aire"

fmt = [FlightGearBaseDirectory(1:2), '\n',...

'cd "%s\\bin"\n\nfgfs.exe', ' "--fg-root=%s\\data" ', ...

'--generic=socket,out,10,%s,%s,udp,receiver_protocol --enable-fullscreen --%s

-terrasync --aircraft=%s --airport=%s --altitude=%g --heading=%g --offset-

distance=%g --offset-azimuth=%g\n'];

(...)

Page 83: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

B.1 Preprocesado 73

B.1.4 Adición de parámetros al archivo de configuración del protocolo

Como ya se ha comentado en el Capítulo 2, es posible extraer del simulador cualquier variable interna delavión.

Para ello, lo primero es localizar su posición dentro del árbol de propiedades en el simulador.Las propiedades internas se encuentran organizadas de manera jerárquica en un árbol de propiedades

[23]. El árbol se puede acceder por distintos medios siendo uno de ellos desde un explorador de internet,abriendo un puerto en el simulador . También aquí es posible crear un script de arranque que inicie en estecaso el árbol de propiedades en un servidor web. El script se puede ver en el Código B.4.

Código B.4 Acceso al árbol de propiedades de FlightGear.

C:

cd "C:\Program Files\FlightGear\bin"

fgfs.exe "--fg-root=C:\Program Files\FlightGear\data" --httpd=5400

A continuación hay que abrir en el explorador de internet la siguiente dirección: localhost:5400, dondese abrirá una interfaz gráfica de usuario y en la que seleccionando la pestaña “Simulator” y dentro“Properties”aparece el árbol de propiedades, como se puede ver en la Figura B.4.

Figura B.4 Árbol de propiedades en el servidor web.

Page 84: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

74 Capítulo B. Instrucciones básicas para la adición de la características a la interfaz

También es posible abrir el árbol de propiedades durante una simulación, pulsando la tecla “/”, o desdeel menú: “Debug”→ “Browse Internal Properties”, como se aprecia en la Figura B.5.

Figura B.5 Explorador del árbol de propiedades en el simulador.

Una vez se tiene localizada la variable interna que se quiere extraer y su situación en el árbol depropiedades del FlightGear, por ejemplo, el rumbo magnético, que se encuentra en /orientation/heading-magnetic-deg como se puede ver en la Figura B.6, se debe añador al archivo XML de configuración delprotocolo siguiendo la estructura original. Entonces tomando el ejemplo del Código 4.1, quedaría como sepuede ver en el Código B.5.

Figura B.6 Ejemplo de variable interna que se quiere extraer.

Page 85: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

B.1 Preprocesado 75

Código B.5 Ejemplo del XML de configuración del protocolo.

<?xml version="1.0"?>

<PropertyList>

<generic>

<output>

<line_separator>#</line_separator>

<var_separator>;</var_separator>

<!--- Posición -->

<chunk>

<name>latitude-deg</name>

<type>double</type>

<format>%lf</format>

<node>/position/latitude-deg</node>

</chunk>

<chunk>

<name>longitude-deg</name>

<type>double</type>

<format>%lf</format>

<node>/position/longitude-deg</node>

</chunk>

<chunk>

<name>altitude-ft</name>

<type>float</type>

<format>%f</format>

<node>/position/altitude-ft</node>

</chunk>

<chunk>

<name>heading-magnetic-deg</name>

<type>double</type>

<format>%lf</format>

<node>/orientation/heading-magnetic-deg</node>

</chunk>

</output>

</generic>

</PropertyList>

Este archivo se encuentra, como se dijo en la Subsección 4.1.3, en la carpeta de protocolos del simulador,cuya dirección se puede ver en la Figura B.7.

Figura B.7 Dirección de la carpeta de protocolos de FlightGear.

Page 86: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

76 Capítulo B. Instrucciones básicas para la adición de la características a la interfaz

B.2 Postprocesado

Al igual que en el Capítulo 4, se van a comentar ahora las opciones de modificación básicas de la interfazdel postprocesado. En este caso la modificación que se contempla es aquella en la que se añadan variablesinternas al archivo de protocolo.

B.2.1 Adición de parámetros al archivo de configuración del protocolo

Como ya se ha comentado se va a examinar qué cambios se deberían realizar en el bloque de postprocesadosi se quisieran extraer nuevas variables durante la simulación.

Adición de parámetros al XML de datos

Si bien la programación básica que se comentó en la Subsección 4.1.1 es aplicable también al funciona-miento de esta interfaz, en el postprocesado, debido al alto número de parámetros con los que se tieneque trabajar se opera de una manera un poco distinta. Se va a tener un archivo XML de configuración enel que se encuentran todas las variables almacenadas con sus respectivas características y que se carga aposteriori en el espacio de trabajo de MATLAB® como una estructura, lo que ahorra escribir líneas decódigo innecesarias no sólo durante la creación del código, sino en el caso en que el número de variablesse vea modificado, con lo que sólo hay que cambiar el XML.

Un XML de configuración para MATLAB® acorde al ejemplo del Código 4.1 sería el siguiente.

Código B.6 Ejemplo de XML de configuración para MATLAB® original.

<?xml version="1.0" encoding="utf-8"?>

<Parameters>

<param category="Position">

<variable_name>latitude</variable_name>

<position>1</position>

<human_readable_name>Latitude</human_readable_name>

<handles_name>handles.latitude</handles_name>

<units>deg</units>

<description>Latitude</description>

<option_name>op_lat</option_name>

<default_option>1</default_option>

<updated_option> </updated_option>

<ax_name> </ax_name>

</param>

<param category="Position">

<variable_name>longitude</variable_name>

<position>2</position>

<human_readable_name>Longitude</human_readable_name>

<handles_name>handles.longitude</handles_name>

<units>deg</units>

<description>Longitude</description>

<option_name>op_lon</option_name>

<default_option>1</default_option>

<updated_option> </updated_option>

<ax_name> </ax_name>

</param>

Page 87: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

B.2 Postprocesado 77

<param category="Position">

<variable_name>altitude</variable_name>

<position>3</position>

<human_readable_name>Altitude</human_readable_name>

<handles_name>handles.altitude</handles_name>

<units>ft</units>

<description>Altitude</description>

<option_name>op_alt</option_name>

<default_option>1</default_option>

<updated_option> </updated_option>

<ax_name>Altitude</ax_name>

</param>

</Parameters>

Se procede a describir de manera breve cada una de las etiquetas:

1. <param category=” ”> : Clasificación interna. Se incluye por comodidad.

2. <variable_name>: Nombre de la variable que se extrae del simulador

3. <position>: Posición en la que se extrae la variable en cuestión

4. <human_readable_name>: Nombre con el que se va a almacenar la variable tanto en el conjunto devariables locales del GUI como al final de la recepción de datos

5. <handles_name>: Nombre del objeto “handles” asociado a la variable

6. <units>: Unidades de la variable en cuestión

7. <description>: Descripción de la variable que se extrae

8. <option_name>: Nombre que se le da a la variable interna del código del postprocesado para indicarsi el parámetro se encuentra seleccionado o no.

9. <default_option>: Valor por defecto que se le da a la variable interna del código del postprocesadoque indica si el parámetro se encuentra seleccionado o no. Un 1 indica la activación del parámetromientras que 0 lo desactiva

10. <updated_option>: Variable interna del código en la que se va a almacenar el valor corrspondiente ala activación (o no) del parámetro cuando se carga un archivo de configuración. Se deja en blanco(tiene que ser un espacio).

11. <ax_name>: Nombre del eje asociado a la variable

La nueva variable, rumbo magnético, tendría la categoría de “New parameter”; nombre de variable “heading-magnetic”; posición 4; nombre de almacenamiento “Heading magnetic”; nombre de la estructura handles“handles.heading_mag”; unidades grados; descripción coincidente con el nombre de almacenamiento;nombre de la opción de selección “op_head_mag”; opción de selección por defecto 0 (no está seleccionada);opción actualizada en blanco y nombre de eje el mismo que el de almacenamiento. El XML actualizado sepuede ver en el Código B.7.

Page 88: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

78 Capítulo B. Instrucciones básicas para la adición de la características a la interfaz

Código B.7 Ejemplo de XML de configuración dpara MATLAB® modificado.

<?xml version="1.0" encoding="utf-8"?>

<Parameters>

<param category="Position">

<variable_name>latitude</variable_name>

<position>1</position>

<human_readable_name>Latitude</human_readable_name>

<handles_name>handles.latitude</handles_name>

<units>deg</units>

<description>Latitude</description>

<option_name>op_lat</option_name>

<default_option>1</default_option>

<updated_option> </updated_option>

<ax_name> </ax_name>

</param>

<param category="Position">

<variable_name>longitude</variable_name>

<position>2</position>

<human_readable_name>Longitude</human_readable_name>

<handles_name>handles.longitude</handles_name>

<units>deg</units>

<description>Longitude</description>

<option_name>op_lon</option_name>

<default_option>1</default_option>

<updated_option> </updated_option>

<ax_name> </ax_name>

</param>

<param category="Position">

<variable_name>altitude</variable_name>

<position>3</position>

<human_readable_name>Altitude</human_readable_name>

<handles_name>handles.altitude</handles_name>

<units>ft</units>

<description>Altitude</description>

<option_name>op_alt</option_name>

<default_option>1</default_option>

<updated_option> </updated_option>

<ax_name>Altitude</ax_name>

</param>

Page 89: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

B.2 Postprocesado 79

<param category="New parameter">

<variable_name>heading-magnetic</variable_name>

<position>4</position>

<human_readable_name>HeadingMagnetic</human_readable_name>

<handles_name>handles.heading_mag</handles_name>

<units>deg</units>

<description>Heading magnetic</description>

<option_name>op_head_mag</option_name>

<default_option>0</default_option>

<updated_option> </updated_option>

<ax_name>Headingmagnetic</ax_name>

</param>

</Parameters>

Adición de parámetros al GUI

Una vez añadida una nueva variable a los archivos XML de configuración hay que incluir la nueva variableen el GUI. Ésta se va a incluir en el panel de preparación de la visualización y en los ejes de las gráficaspersonalizables.

La manera de incluir la nueva variable en los ejes de las gráficas es la misma que para la adición deuna aeronave o de un aeropuerto a la lista de los disponibles en el bloque del preprocesado y se puedeencontrar en la Subsección B.1.1.

En cuanto a la inclusión en el panel de preparación de la visualización, hay que abrir MATLAB® yllamar a la herramienta GUIDE como se indica en el Código B.10.

Código B.8 Código para llamar a la herramienta GUIDE con el postprocesado.

guide FG_View

Habrá que añadir un botón del tipo “Check box”, Figura B.8, que tiene asociados dos valores: “seleccio-nado”, “no seleccionado”. Se le dará el nombre que se quiera (en este caso sería “heading_mag”) en laopción “String” dentro del “Property inspector”.

Figura B.8 Botón “check box”.

Una vez guardado se creará en el código del postprocesado la función asociada al nuevo botón, y sedeberá mantener la estructura de aquellos otros botones del mismo tipo. Esta estructura se puede ver en elCódigo B.9.

Page 90: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

80 Capítulo B. Instrucciones básicas para la adición de la características a la interfaz

Código B.9 Código para llamar a la herramienta GUIDE con el postprocesado.

% --- Se ejecuta cuando se pulsa el botón longitude.

function latitude_Callback(hObject, ~, ~)

% Obtención de la selección de la opción

op_lat = get(hObject,'Value');

% Almacenamiento del valor de la opción en variables locales

hMainGui = getappdata(0,'hMainGui');

setappdata(hMainGui,'Latitude',op_lon);

En el caso de la nueva variable rumbo magnético, quedaría:

Código B.10 Código para llamar a la herramienta GUIDE con el postprocesado.

% --- Se ejecuta cuando se pulsa el botón heading_mag.

function heading_mag_Callback(hObject, ~, ~)

% Obtención de la selección de la opción

op_head_mag = get(hObject,'Value');

% Almacenamiento del valor de la opción en variables locales

hMainGui = getappdata(0,'hMainGui');

setappdata(hMainGui,'HeadingMagnetic',op_head_mag);

Page 91: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Índice de Figuras

3.1. Esquema de la arquitectura del entorno de simulación 10

4.1. Ventana de configuración del preprocesado 164.2. Panel de configuración de FlightGear 194.3. Mensaje de confirmación de cambios 204.4. Panel de configuración de la conexión de red 214.5. Mensaje de ayuda 214.6. Panel de selección de la aeronave 224.7. Panel de selección del aeropuerto 224.8. Errores del panel del aeropuerto 234.9. Panel de condiciones iniciales 244.10. Errores debido a la introducción de datos en un lugar no corresponiente en el panel de condicio-

nes iniciales 244.11. Pantalla de selección de archivos 254.12. Excel de configuración de los datos iniciales 254.13. Ejemplo de error por introducción de caracteres de texto en el panel de condiciones iniciales 264.14. Botón que genera el script de arranque 264.15. Botón que genera el script de arranque 264.16. Botón que lanza el simulador 274.17. Botón de inicio de la conexión entre FlightGear y MATLAB® 274.18. Mensaje de salida de la interfaz del preprocesado 274.19. Ventana de configuración del postprocesado 314.20. Selección de parámetros 324.21. Selección rápida de parámetros 334.22. Nombre del archivo de salida 334.23. Opción de visualizado 344.24. Error debido a la introducción de un carácter no numérico 344.25. Panel de recepción 354.26. Panel de recepción 354.27. Panel de visualización 384.28. Opciones de representación 394.29. Error debido a la elección de una representación de 3 variables en cada eje 394.30. Error debido a la elección de un parámetro no seleccionado previamente 404.31. Error debido a la elección de un parámetro no seleccionado previamente 40

81

Page 92: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

82 Índice de Figuras

4.32. Gráficas no personalizables de representación de las localización de la aeronave 414.33. Botón de limpieza de gráficos 414.34. Ejemplo 1 424.35. Ejemplo 2 434.36. Ejemplo 3 44

5.1. Esquema del modo fugoide 465.2. Excitación del modo fugoide para un vuelo a 240 kts y 20000 ft de altitud 525.3. Excitación del modo fugoide para un vuelo a 180 kts y 4000 ft de altitud con flaps desplegados a 15º 53

A.1. Dirección de la carpeta de instalación de FlightGear 59A.2. Ventana de configuración del preprocesado 61A.3. Ventana de configuración de la conexión de red del sistema 62A.4. Estructura del archivo excel de configuración de las condiciones iniciales 64A.5. Ventana de configuración del preprocesado 65A.6. Estructura del archivo excel de configuración de la selección de parámetros 67

B.1. Dirección de la carpeta de aeronaves de FlightGear 70B.2. Listado de opciones de “Property inspector” 70B.3. Nombre del modelo de aeronave 71B.4. Árbol de propiedades en el servidor web 73B.5. Explorador del árbol de propiedades en el simulador 74B.6. Ejemplo de variable interna que se quiere extraer 74B.7. Dirección de la carpeta de protocolos de FlightGear 75B.8. Botón “check box” 79

Page 93: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Índice de Tablas

5.1. Análisis a 10000 ft y 20000 ft 525.2. Análisis a 4000 ft 535.3. Análisis de la frecuencia 545.4. Análisis del amortiguamiento 555.5. Análisis de las derivadas de estabilidad 55

83

Page 94: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se
Page 95: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Índice de Códigos

4.1. Ejemplo del XML de configuración del protocolo 164.2. Orden para crear variables globales y locales 184.3. Variables globales y locales del entorno de preprocesado 194.4. Archivo de texto de configuración de FlightGear 204.5. Ejemplo de un script de arranque 284.6. Especificación de la ruta desde la que se va a trabajar 284.7. Configuración de la conexión de red de FlightGear 284.8. Configuración de las opciones de inicio FlightGear 284.9. Configuración de las opciones de inicio FlightGear 294.10. Localización del archivo xml de configuración del protocolo 294.11. Configuración de las opciones de inicio FlightGear 364.12. Lectura y traducción de los datos recibidos 364.13. Extracto del ejemplo del XML de configuración del protocolo 37

A.1. Estructura del archivo de texto de configuración de las condiciones iniciales 63A.2. Estructura del archivo de texto de configuración de la selección de parámetros 66

B.1. Código para llamar a la herramienta GUIDE con el preprocesado 69B.2. Código para la escritura del script de arranque original 71B.3. Código para la escritura del script de arranque modificado 72B.4. Acceso al árbol de propiedades de FlightGear 73B.5. Ejemplo del XML de configuración del protocolo 75B.6. Ejemplo de XML de configuración para MATLAB® original 76B.7. Ejemplo de XML de configuración dpara MATLAB® modificado 78B.8. Código para llamar a la herramienta GUIDE con el postprocesado 79B.9. Código para llamar a la herramienta GUIDE con el postprocesado 80B.10. Código para llamar a la herramienta GUIDE con el postprocesado 80

85

Page 96: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se
Page 97: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

Bibliografía

[1] Web del ranking de universidades en software libre: http://www.portalprogramas.com/software-libre/ranking-universidades/clasificacion-espana

[2] Historia de los simuladores de vuelo: https://entrenamientovr.wordpress.com/2008/11/22/simuladores-de-vuelo-historia-y-evolucion/

[3] Ranking de los mejores simuladores de pago http://bestnewflightsimulatorgames.blogspot.com.es/

[4] Ranking de lo mejores simuladores gratuitos: http://www.makeuseof.com/tag/3-best-free-flight-simulators/

[5] Información acerca de la licencia GNU General Public License: http://www.gnu.org/copyleft/gpl.html

[6] Información sobre FlightGear: http://www.flightgear.org/

[7] Información sobre JSBSim: http:// jsbsim.sourceforge.net/JSBSimFlyer.pdf

[8] Jon S. Berndt y el Equipo de Desarrollo de JSBSim: JSBSim. An open source, platform - independent,flight dynamics model in C++. http:// jsbsim.sourceforge.net/JSBSimReferenceManual.pdf

[9] Apuntes de teoría de la Mecánica del Vuelo: http://www.aero.us.es/mv/files/Tema9_MV.pdf

[10] Apuntes de teoría de la Mecánica del Vuelo: https://upload.wikimedia.org/wikipedia/commons/8/82/Mec%C3%A1nica_del_Vuelo_II_-_Ingenier%C3%ADa_aeron%C3%A1utica_-_ETSEIAT_-_UPC.pdf

[11] Apuntes de teoría de la Mecánica del vuelo: http://www.aero.us.es/MV_II/archivos/ecuaciones_movimiento.pdf

[12] Apuntes de teoría de la Estabilidad Dinámica de aviones: Francisco Gavilán Jiménez. Resumende Estabilidad Dinámica de Aviones, http://www.aero.us.es/mv/files/ Introduccion%20a%20la%20Estabilidad%20Dinamica%20de%20Aviones.pdf

[13] Información acerca del inicio de FlightGear: http://www.flightgear.org/Docs/getstart/getstartch3.html

[14] Información acerca de los archivos por lotes: https://msdn.microsoft.com/es-es/ library/cc758944(v=ws.10).aspx

87

Page 98: HFWR )LQ GH &DUUHUD ,QJHQLHUtD GH ...bibing.us.es/proyectos/abreproy/60370/fichero/PFC_María...das con la difusión del software libre [1], siguiendo esta línea de pensamiento, se

88 Bibliografía

[15] Información acerca de los protocolos genéricos de FligthGear: http://wiki.flightgear.org/Generic_protocol

[16] Información acerca de los protocolos UDP: https://msdn.microsoft.com/es-es/ library/cc785220(v=ws.10).aspx

[17] Base de datos de aeronaves de FlightGear: http:// fgfs.goneabitbursar.com/official/

[18] Información sobre las opciones de la línea de comandos de FlightGear http://wiki.flightgear.org/Command_line_options

[19] Información sobre la creación de un protocolo de conexión genérico en FlightGear: http://wiki.flightgear.org/Howto:Create_a_generic_protocol

[20] Información sobre Terrasync: http://wiki.flightgear.org/Es/TerraSync

[21] Información sobre el objeto dsp.UDPReceiver: http://es.mathworks.com/help/dsp/ref/dsp.udpreceiver-class.html

[22] Esquema del modo fugoide: http://nptel.ac.in/courses/101104007/34

[23] Información acerca del árbol de propiedades: http://wiki.flightgear.org/Property_tree, http://wiki.flightgear.org/Property_Tree/Web_Server, http://wiki.flightgear.org/Property_browser