scieee AI-readable full text Open interactive document viewer

Representación de instrumentos básicos de vuelo

Peña Giménez, Néstor

Full text

TRABAJO FINAL DE CARRERA TÍTULO: Representación de instrumentos básicos de vuelo AUTOR: Néstor Peña Giménez DIRECTOR: Enric Pastor FECHA: 5 de Septiembre de 2005 Título: Representación de instrumentos básicos de vuelo Autor: Néstor Peña Giménez Director: Enric Pastor Data: 5 de Septiembre de 2005 Resumen Este trabajo pretende ser una introducción para próximos estudiantes sobre el funcionamiento de los instrumentos básicos de navegación. En este trabajo se explicará el funcionamiento básico de estos instrumentos y como reaccionan a las maniobras que realiza el avión. Al final del trabajo se explicarán las diferentes variables que tendrán que ser programadas para el correcto funcionamiento de estos instrumentos en formato digital. Title: Basic Flight Instruments Representation. Author: Néstor Peña Giménez Director: Enric Pastor Date: September, 5th 2005 Overview This project is meant to be an introduction to the basic navegation tools knowledge for future students. This project explains these instruments basic working and how they react to the aeroplane’s maneuvers. On the project’s last part the different variables which will have to be programmed for these digital format instruments right working order will be explained. ÍNDICE INTRODUCCIÓN ............................................................................................... 1 CAPÍTULO 1. INSTRUMENTOS BÁSICOS DE VUELO.................................... 2 1.1. Introducción....................................................................................................................... 2 1.1.1. Sistema de pitot y estática...................................................................................... 3 1.1.2. Tubo de pitot........................................................................................................... 3 1.1.2.1. Tomas estáticas ..................................................................................................... 3 1.1.2.2. Propiedades giroscópicas ...................................................................................... 3 1.2. Instrumentación básica de vuelo..................................................................................... 5 1.2.1. Altímetro ................................................................................................................. 5 1.2.1.1. Principios de medida .............................................................................................. 6 1.2.1.2. Lectura del altímetro............................................................................................... 6 1.2.1.3. Presiones referenciales.......................................................................................... 7 1.2.1.4. Tipos de altitud ....................................................................................................... 8 1.2.2. Indicador de velocidad vertical ............................................................................... 9 1.2.2.1. Principio de funcionamiento ................................................................................... 9 1.2.2.2. Lectura e indicación del indicador de velocidad vertical ........................................ 9 1.2.2.3. Errores en la lectura ............................................................................................. 10 1.2.3. Indicador de velocidad.......................................................................................... 10 1.2.3.1. Principio de funcionamiento ................................................................................. 11 1.2.3.2. Velocidades limitadas por razones estructurales................................................. 12 1.2.4. Horizonte Artificial................................................................................................. 13 1.2.4.1. Lectura del horizonte artificial............................................................................... 13 1.2.5. Indicador de dirección .......................................................................................... 14 1.2.5.1. Lectura del indicador de dirección........................................................................ 15 1.2.6. Indicador de viraje e indicador de coordinación................................................... 15 1.2.6.1. Velocidad angular de viraje .................................................................................. 16 1.2.6.2. Lectura del indicador de viraje.............................................................................. 16 1.2.6.3. Coordinador de viraje o bola ................................................................................ 16 1.2.6.4. Resbale y derrape ................................................................................................ 17 1.2.6.4.1. Resbale......................................................................................................... 17 1.2.6.4.2. Derrape ......................................................................................................... 17 CAPÍTULO 2. INTRODUCCIÓN A JAVA ......................................................... 18 2.1. Planos de referencia ....................................................................................................... 18 2.2 Clase Canvas ...................................................................................................................19 2.3. La clase Graphics............................................................................................................ 19 2.3.1. Métodos de la clase Graphics .............................................................................. 19 2.4. Clase Math........................................................................................................................ 21 2.4.1. Propiedades de la clase Math .............................................................................. 21 CAPÍTULO 3. PROGRAMACIÓN DE LOS INSTRUMENTOS BÁSICOS DE VUELO ............................................................................................................. 23 3.1. Preparación de la ventana de representación.............................................................. 23 3.2. Representación del contorno del instrumento............................................................. 24 3.2.1. Función ovalposition............................................................................................. 25 3.3. Representación de la visualización del instrumento................................................... 25 3.3.1. Representación del indicador de viraje ................................................................ 26 3.3.2. Representación del horizonte artificial ................................................................. 28 3.4 Representación del indicador del avión ....................................................................... 28 3.4.1 Método marcas de la clase operations................................................................. 29 CAPÍTULO 4. REPRESENTACIÓN DE LOS MOVIMIENTOS DEL AVIÓN..... 31 4.1. Explicación de la clase AffineTransform......................................................................... 31 4.1.2. Explicación del método setToRotation................................................................. 31 4.2 Transformaciones para realizar la rotación.................................................................. 32 4.3 Estrategia de visualización............................................................................................. 33 CAPÍTULO 5. VENTAJAS E INCONVENIENTES DE LA REPRESENTACIÓN DIGITAL ........................................................................................................... 35 5.1. Introducción..................................................................................................................... 35 5.2. Ventajas de la representación digital de instrumentos............................................... 35 5.2.1 Flexibilidad............................................................................................................ 35 5.2.2 Colocación............................................................................................................ 35 5.2.3 Lectura e indicación.............................................................................................. 36 5.2.4 Modularidad.......................................................................................................... 36 5.2.5 Sincronización con las condiciones externas....................................................... 36 5.2.6 Simulación ............................................................................................................ 37 5.3 Inconvenientes de la representación digital................................................................. 37 5.3.1 Aprendizaje........................................................................................................... 37 5.3.2 Muestreo............................................................................................................... 37 5.3.3 Sistema de visualización ...................................................................................... 38 5.3.4 Tiempo de refresco de la pantalla........................................................................ 38 CONCLUSIONES............................................................................................. 39 BIBLIOGRAFÍA ................................................................................................ 40 ENLACES WEB ............................................................................................... 40 ANEXO 1. FACTORES DE CONVERSIÓN ENTRE UNIDADES..................... 41 ANEXO 2. NOMENCLATURA DE VELOCIDADES ......................................... 42 ÍNDICE DE FIGURAS Fig. 1.1 Disposición de instrumentos en el panel de mando.............................. 2 Fig. 1.2 Propiedad de rigidez de un giróscopo................................................... 4 Fig. 1.3 Propiedad de precesión de un giróscopo.............................................. 4 Fig. 1.4 Montaje universal de un giróscopo........................................................ 4 Fig. 1.5 Indicador de succión ............................................................................. 5 Fig. 1.6 Altímetro................................................................................................ 5 Fig. 1.7 Propiedades de la atmósfera con relación a la altura ........................... 6 Fig. 1.8 Lectura del altímetro de dos agujas ...................................................... 6 Fig. 1.9 Visualización de la calibración del altímetro.......................................... 7 Fig. 1.10 Variómetro o Indicador de velocidad vertical ...................................... 9 Fig. 1.11 Lectura del indicador de velocidad vertical en diferentes casos ......... 9 Fig. 1.12 Indicador de velocidad ...................................................................... 10 Fig. 1.13 Código de colores del indicador de velocidad................................... 12 Fig. 1.14 Resumen de las velocidades máximas por zonas ............................ 13 Fig. 1.15 Indicador de actitud u horizonte artificial........................................... 13 Fig. 1.16 Interpretación del horizonte artificial................................................. 14 Fig. 1.17 Indicador de dirección....................................................................... 14 Fig. 1.18 Lectura del indicador de dirección..................................................... 15 Fig. 1.19 indicador de viraje y coordinación..................................................... 15 Fig. 1.20 Velocidad angular o ratio de viraje.................................................... 16 Fig. 1.21 Lectura del indicador de viraje .......................................................... 16 Fig. 1.22 Lectura de la calidad de un viraje ..................................................... 17 Fig. 2.1 Planos de referencia de Java 2D........................................................ 18 Fig. 3.1 Coordenadas necesarias para la representación de un óvalo ............ 24 Fig. 3.2 Vista final del Horizonte Artificial......................................................... 26 Fig. 3.3 Detalle del indicador de viraje............................................................. 26 Fig. 3.4 Desglose coordenadas representación horizonte............................... 28 Fig. 4.1 Ejemplo de rotación sin cambio de punto origen ................................ 31 Fig. 4.2 Ejemplo de rotación con cambio de punto origen ............................... 32 Fig. 4.3 Diagrama de transformaciones para rotar un objeto........................... 33 Representación de instrumentos básicos de vuelo 1 INTRODUCCIÓN El objetivo de este Trabajo Final de Carrera es implementar visualmente los instrumentos de vuelo que podemos encontrar en cualquier cabina de un avión, pudiendo después utilizar estas pantallas tanto en la instrumentación de aviones reales como en la construcción de simuladores de vuelo. En el primer capítulo de este documento se explicará el funcionamiento de los instrumentos más importantes con los que está equipado un avión comercial, como son el indicador de velocidad del aire, horizonte artificial, altímetro, coordinador de giro y el indicador de velocidad. En el segundo capítulo de este trabajo se hará una introducción a Java y la explicación de las librerías gráficas necesarios para la implementación de los instrumentos como de los métodos que utilizaremos o pueden ser de interés para futuros desarrollos de este trabajo. En el tercer capítulo ya nos adentraremos en la programación de los instrumentos. En este capítulo veremos los parámetros necesarios para dibujar los diferentes instrumentos. En el cuarto capítulo veremos la forma de dotar de movimiento a los diferentes instrumentos, y las transformaciones necesarias dentro de las diversas clases para poderlo hacer de forma fácil y eficiente. En el quinto capítulo veremos las ventajas e inconvenientes de la representación y visualización digital de los instrumentos frente a los instrumentos analógicos. En el último capítulo se expondrán las conclusiones extraídas del trabajo realizado y se apuntarán posibles vías de desarrollo. 8 Instrumentos básicos de vuelo misma presión de referencia. Esta presión, 29,92” o 1013 milibares es la correspondiente a la atmósfera tipo a nivel de mar. De esta forma variaciones en las condiciones atmosféricas afectan por igual a los instrumentos de los aviones que vuelan en una determinada zona. QFE: Presión atmosférica en un punto de la corteza terrestre. No utilizada en la práctica, al menos en España. Si calamos el altímetro con esta presión de referencia, debería marcar cero en el momento del despegue o aterrizaje. QFF: Presión a anivel de mar, deducida de forma similar a la QNH, pero teniendo en cuenta los gradientes de presión y temperatura reales en vez de los de la atmósfera estándar. Casi no se utiliza. 1.2.1.4. Tipos de altitud Debido al funcionamiento del altímetro y a las diferentes presiones de referencia que se pueden poner, se entiende por altitud a la distancia vertical existente entre el avión y un punto o nivel de referencia. Como hay diversos tipos de presiones de referencia hay diferentes tipo de altitudes. Las altitudes habitualmente definidas en los manuales son: Altitud indicada: Es la leída directamente en el altímetro. Si está calado con el QNH, la altitud indicada será aproximadamente igual a la altitud del avión sobre el nivel medio del mar. Altitud verdadera: O altitud real, es la altitud real sobre el nivel del mar. La altitud de aeropuertos, montañas, obstáculos, en las cartas de navegación se dan en altitud verdadera. Altitud absoluta: Distancia vertical real entre el avión y la tierra. Altitud de presión: Altitud leída en el altímetro calado en QNE. Altitud de densidad: Altitud de presión corregida con la desviación de temperatura no estándar. Conocer esta altitud es necesaria para determinar cuanta pista es necesaria para aterrizar, para despegar, así como la velocidad de ascenso, sobretodo en días calurosos y húmedos en aeropuertos con una altitud considerable sobre el nivel del mar. Altitud determinada por radar: Los aviones comerciales están equipados con radioaltímetros que indican la altitud absoluta, la cual sirve a los pilotos para determinar la altitud de decisión en las fases finales de aproximación y aterrizaje, especialmente cuando el techo y la visibilidad son bajos. Representación de instrumentos básicos de vuelo 9 1.2.2. Indicador de velocidad vertical El indicador de velocidad vertical muestra al piloto dos cosas, si el avión está ascendiendo, descendiendo o vuela nivelado, y la velocidad vertical o régimen, en pies por minuto (f.p.m), del ascenso o descenso. Este instrumento también de denomina abreviadamente VSI (Vertical Speed Indicator). Fig. 1.10 Variómetro o Indicador de velocidad vertical 1.2.2.1. Principio de funcionamiento El indicador de velocidad vertical funciona mediante presiones diferenciales, se aprovecha de la contracción y extensión de su membrana interna, para realizar este cálculo y de esta manera determinar si el avión está ascendiendo, descendiendo o vuela nivelado. Aunque el funcionamiento de este instrumento es mediante presiones diferenciales, solo toma muestras de la presión estática de cada momento. 1.2.2.2. Lectura e indicación del indicador de velocidad vertical La lectura de este instrumento es sencilla e intuitiva. Consta únicamente de una aguja, que se mueve sobre un dial, en el cual, el cero se encuentra en la parte central izquierda, y su escala está graduada en f.p.m. Cuando la aguja se encuentra por encima de cero, nos indica que el avión está subiendo el valor que marca la aguja. Si está por debajo del cero, nos indica que el avión está descendiendo, y si marca ceo, indica que el avión vuela nivelado. Fig. 1.11 Lectura del indicador de velocidad vertical en diferentes casos 10 Instrumentos básicos de vuelo 1.2.2.3. Errores en la lectura Los cambios súbitos de la posición del morro, maniobras de viraje bruscas, o el vuelo en aire turbulento, pueden producir falsas presiones estáticas que hagan que las indicaciones no sean correctas. La forma constructiva de este instrumento, lleva implícita un retraso en la indicación de la medición, que puede llegar hasta nueve segundos. La indicación de subida o de bajada es inmediata, por eso no se puede usar este instrumento como indicador de vuelo nivelado. En caso de mal funcionamiento de este instrumento, se detecta observando que, cuando estamos descendiendo el VSI marca ascenso y cuando descendemos, el VSI marca ascenso. 1.2.3. Indicador de velocidad El indicador de velocidad aerodinámica o anemómetro es un instrumento que mide la velocidad relativa del avión respecto del aire en el que se mueve, e indica ésta en millas terrestres por hora (m.p.h), nudos “Knots” (1 nudo = 1 milla marítima por hora). En los manuales de operación no hay ninguna maniobra que no vaya asociada a una velocidad, a no sobrepasar, recomendada. Además los puntos críticos, y no tanto, con los que se pilota un avión, están referenciados en velocidades: velocidad de pérdida, de rotación, de mejor ascenso, etc. El piloto se vale de este instrumento para: • Limitar: no sobrepasar la velocidad máxima de maniobra • Decidir: cuando rotar o cuando irse al aire en el momento del despegue. • Corregir: una velocidad de aproximación incorrecta. • Deducir: por ejemplo que el ángulo de ataque que mantiene es muy elevado. Fig. 1.12 Indicador de velocidad Representación de instrumentos básicos de vuelo 11 1.2.3.1. Principio de funcionamiento El indicador de velocidad es un medidor de presiones diferenciales, que transforma ese diferencial en unidades de velocidad. El indicador de velocidad proporciona una medida de la presión aerodinámica de una forma fácil de leer, en forma de velocidad, y además una primera aproximación de la velocidad de desplazamiento del aeroplano sobre la superficie (Ground Speed). 1.2.3.1.1. Lectura del indicador de velocidad La lectura de este instrumento es muy sencilla: una aguja, marca directamente la velocidad relativa del avión. La escala del instrumento puede estar graduada en diferentes escalas de unidades de velocidad. Por la importancia de este aparato, durante la carrera de despegue, es aconsejable comprobar que el instrumento está vivo, observando que la indicación es mayor a medida que el avión alcanza mayor velocidad. 1.2.3.1.2. Nomenclatura de velocidades La mayoría de manuales utilizan una nomenclatura de velocidades, que derivan, de las correspondientes siglas en inglés, muchas de ellas van precedidas de la letra K “Knots” para expresar que el valor indicado está en nudos. 1.2.3.1.3. Velocidad indicada IAS (Indicated Airspeed) Es la velocidad leída directamente del indicador de velocidad, sin ningún tipo de correcciones, y en ella se basan los constructores para determinar las características constructivas del aeroplano: las velocidades de despegue, ascenso, aproximación y aterrizaje. 1.2.3.1.4. Velocidad calibrada CAS (Calibrated Airspeed) Es la IAS corregida ante posibles errores del propio instrumento y su instalación. 1.2.3.1.5. Velocidad verdadera TAS (True Airspeed) Es la CAS corregida por la altitud y la temperatura no estándar. Estos sistemas están construidos teniendo en cuenta las condiciones del aire a nivel del mar, pero estas condiciones varían con la altitud. Aunque este cambio afecta tanto a la presión estática como a la presión de impacto en el tubo pilot, no lo hace en la misma proporción, de manera que para una misma velocidad calibrada (CAS) la velocidad verdadera (TAS) va aumentando con el incremento de la altitud. 12 Instrumentos básicos de vuelo 1.2.3.1.6. Velocidad respecto al suelo GS (Grouns Speed) Es la velocidad actual del aeroplano respecto al suelo y su valor es igual a la velocidad verdadera +/- la velocidad del viento. 1.2.3.2. Velocidades limitadas por razones estructurales Con las limitaciones de velocidad, lo que el fabricante nos muestra son los topes máximos soportables por las distintas partes del aeroplano. El motivo de esto es que no se produzca la rotura de ningún elemento aerodinámico o estructural, debido a un exceso de fuerza o aceleración aplicada sobre ellos. En los aviones, estas velocidades se reflejan en el indicador de velocidad, en forma de arcos de colores introducidos en el dial del instrumento. Fig. 1.13 Código de colores del indicador de velocidad Arco blanco: Velocidades de operación con flaps extendidos, o velocidades a las cuales se pueden extender los flaps sin sufrir daños estructurales. El extremo inferior de este arco corresponde a la velocidad de pérdida con los flaps extendidos y el tren de aterrizaje abajo. Las velocidades de aproximación y aterrizaje se consideran dentro de este arco. Arco amarillo: Margen de precaución. Dentro de este rango de velocidades solo se puede volar con aire no turbulento y no se deben realizar maniobras bruscas. Línea roja: Velocidad máxima de vuelo del avión o velocidad que nunca se puede exceder. Este límite viene impuesto por la resistencia de los diferentes componentes del avión. Representación de instrumentos básicos de vuelo 13 Fig. 1.14 Resumen de las velocidades máximas por zonas 1.2.4. Horizonte Artificial El indicador de actitud, más conocido como horizonte artificial, es un instrumento que muestra la actitud del avión respecto al horizonte. Su función consiste en proporcionar al piloto de forma instantánea la posición del avión en alabeo y profundidad. Fig. 1.15 Indicador de actitud u horizonte artificial 1.2.4.1. Lectura del horizonte artificial La comportarse visualmente igual que el horizonte real, no exige al piloto esfuerzo para su interpretación; no obstante conviene tener en cuenta los siguientes detalles. Mediante el botón giratorio de ajuste, con el avión recto y nivelado, el piloto debe alinear las alas del avión en miniatura que aparece en el dial con la barra que representa el horizonte artificial para tener una referencia inicial.. Un ajuste más fino se puede hacer teniendo en cuenta la carga y centrado de la misma en el avión. La escala graduada del semicírculo superior indica los grados de alabeo del avión y su lectura no debe ofrecer ningún problema para el piloto, pero en algunos instrumentos la escala se mueve en sentido contrario a donde está girando el avión, cosa que puede llevar a confusión. 14 Instrumentos básicos de vuelo Fig. 1.16 Interpretación del horizonte artificial 1.2.5. Indicador de dirección Este instrumento, también llamado direccional giroscópico o direccional, proporciona al piloto una referencia de la dirección del avión, facilitándole el control y mantenimiento del rumbo. El desplazamiento del avión de un punto a otro se realiza mediante una ruta aérea, dividida en zonas, en las cuáles, para llegar de una zona a la otra ha de seguirse una determinada dirección o rumbo. Antes de la aparición de este instrumento, la navegación se realizaba mediante la brújula, cosa que era bastante dificultosa para los pilotos, puesto que debían tener una especial atención con este instrumento. Por ejemplo, no es fácil realizar un giro en el aire coordinado en aire turbulento ayudándose de la brújula. El indicador de dirección es inmune a las condiciones que provocan error en la brújula, lo que hace de este instrumento el adecuado para mantener el control direccional del avión o su rumbo, pues sus indicaciones son más precisas y fiables que las de la brújula. Fig. 1.17 Indicador de dirección Representación de instrumentos básicos de vuelo 15 1.2.5.1. Lectura del indicador de dirección Este instrumento es muy fácil de leer, la dirección del avión es la que muestra el avión en miniatura representado en el dial. A pesar de lo dicho anteriormente, este instrumento se desajusta, puesto que a diferencia de la brújula, no tiene características magnéticas, por lo cual no detecta por si solo la posición del norte magnético. Por este motivo el piloto debe calibrarlo, ayudándose de la brújula mediante el botón giratorio de ajuste, tras realizar maniobras bruscas o giros prolongados. Fig. 1.18 Lectura del indicador de dirección Algunos indicadores de dirección se ajustan automáticamente con la brújula o con las líneas de flujo magnético terrestres, pero no suelen instalarse en aviones ligeros. 1.2.6. Indicador de viraje e indicador de coordinación Este instrumento, en realidad, consta de dos instrumentos independientes ensamblados en la misma caja, el indicador de viraje y el indicador de coordinación de viraje. Este fue uno de los primeros instrumentos usados por los pilotos para controlar el avión sin referencias visual del suelo o del horizonte. El indicador de viraje tenía la forma de una gruesa aguja vertical o bastón, y el indicador de coordinación de viraje consistía en una bola dentro de un tubo. Fig. 1.19 indicador de viraje y coordinación 16 Instrumentos básicos de vuelo 1.2.6.1. Velocidad angular de viraje Por velocidad angular de viraje o ratio de viraje se entiende el número de grados por segundo que gira el avión sobre un eje vertical imaginario. Fig. 1.20 Velocidad angular o ratio de viraje 1.2.6.2. Lectura del indicador de viraje Cuando las alas del avión en miniatura se alinean con las pequeñas líneas junto a la “L” (izquierda) o la “r” (derecha), esto significa que el avión tiene una velocidad angular de viraje estándar, que suele ser de 3º por segundo. Fig. 1.21 Lectura del indicador de viraje Para mantener un giro coordinado a una tasa determinada, se requiere un ángulo de alabeo que dependerá de la velocidad. Obviamente , no es lo mismo realizar un giro de 3º por segundo a una velocidad de 90 nudos que a una velocidad de 200 nudos. Para mantener una misma velocidad angular, a mayor velocidad del avión, mayor será el ángulo de alabeo requerido. Por este motivo, el régimen normalizado de viraje en aviones ligeros suele ser de 2 minutos, mientras que en aviones grandes o que desarrollan grandes velocidades es de 4 minutos. 1.2.6.3. Coordinador de viraje o bola La dirección de viraje de un avión, no es necesariamente la misma a la cual apunta su eje longitudinal, o lo que es lo mismo, el morro del avión.. Es más los Representación de instrumentos básicos de vuelo 17 aviones disponen de controles independientes con los que controlar la dirección de vuelo (alerones) y donde apunta el morro (timón de dirección). Para hacer un viraje, el piloto alabea el avión hacia el lado hacia el cual quiere virar, mediante los alerones, y acompaña el movimiento girando el timón de dirección hacia ese mismo lado. De este modo trata de poner el avión en una nueva dirección y mantener el eje longitudinal alineado con ella, lo que se llama un viraje coordinado. Si al actuar sobre cualquiera de los mandos, la cantidad de movimiento sobre uno de ellos es relativamente mayor o menor al movimiento dado al otro, el avión no hará un giro coordinado, sino que girará resbalando o derrapando. El instrumento que nos muestra la calidad de giro es el coordinador de viraje bola. 1.2.6.4. Resbale y derrape 1.2.6.4.1. Resbale Si la bola cae hacia el lado del viraje, el avión está resbalando. La fuerza de la gravedad es mayor que la fuerza centrífuga. El régimen de viraje es demasiado bajo para la inclinación dada, o la inclinación es excesiva para ese régimen. Para corregir un resbale, hay que aumentar el régimen de viraje o disminuir el ángulo de alabeo. 1.2.6.4.2. Derrape Si la bola se mueve hacia el lado contrario al viraje, el avión está derrapando. La fuerza centrífuga es mayor que la gravedad. El régimen de giro es demasiado elevado para el alabeo dado, o el alabeo es insuficiente para ese régimen Fig. 1.22 Lectura de la calidad de un viraje 24 Programación de los instrumentos básicos de vuelo Con el código: screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Utilizamos la herramienta que coge el tamaño de la pantalla de salida que estamos utilizando y actualiza los campos de screensize. De esta forma ajustaremos el instrumento a toda la pantalla. Esto es conveniente si queremos representar cada instrumento en pantallas individuales. Si queremos representar varios instrumentos en esta pantalla bastaría con definir las variables Width y Height de tipo Integer y después asociarlas al campo correspondiente de screensize. ScreenSize.width =Wwidth; screenSize.height=Height; Para finalizar con la construcción de la ventana de representación añadimos el código: ventana.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); Con este código conseguimos que al pulsar el botón X de la parte superior derecha de la ventana cerremos la aplicación y liberemos la memoria que el sistema estaba utilizando para hacer correr la aplicación. Con todo el código anterior tendríamos implementada una ventana que se adaptaría al tamaño de la pantalla conectada a la tarjeta gráfica de nuestro sistema, esta ventana tendría como nombre “Horizonte Artificial”. 3.2. Representación del contorno del instrumento Una vez tenemos la pantalla de visualización ajustada a nuestra pantalla comenzaremos con la visualización propiamente dicha, para ello dibujaremos, para ello utilizaremos el método drawOval de la clase Graphics. Fig. 3.1 Coordenadas necesarias para la representación de un óvalo Int Y Int X (X,Y) Representación de instrumentos básicos de vuelo 25 Para conseguir dibujar el círculo que forma el contorno exterior del instrumento se ha implementado la función ovalposition. 3.2.1. Función ovalposition Esta función introduce en una variable de tipo entero la posición inicial del rectángulo que debería contener dos círculos que formarán la parte exterior de nuestro instrumento. Para que estos círculos estén escalados de igual forma en cualquier tipo de pantalla se establece el diámetro de ellos a partir de la altura de la pantalla de visualización. rectangulo.OvalDiameter = java1507.HEIGHT - adjust; A este diámetro se le resta un valor de ajuste para que los límites superior e inferior no coincidan con los de la pantalla. Después introducimos, utilizando las dimensiones de la pantalla de visualización, conseguimos las coordenadas (X,Y) de los dos rectángulos que contendrán a los círculos del contorno de nuestro instrumento. rectangulo.Ovalpoint_x = ((java1507.HEIGHT)/2) - ((java1507.HEIGHT - adjust)/2); rectangulo.Ovalpoint_y = ((java1507.WIDTH)/2)-((java1507.HEIGHT - adjust)/2); rectangulo.Ovalpoint_x1 = rectangulo.Ovalpoint_x - 25; rectangulo.Ovalpoint_y1 = rectangulo.Ovalpoint_y - 25; rectangulo.OvalDiameter1 = rectangulo.OvalDiameter + 50; Vemos que el círculo de fuera tendrá un diámetro de 50 unidades superior al círculo del contorno interior. 3.3. Representación de la visualización del instrumento Una vez tenemos representado el contorno del instrumento, ahora ya podemos dibujar las líneas que nos servirán para la visualización del comportamiento del avión. Para ello nos basaremos en las dimensiones de los dos círculos que conforman el contorno para así, aplicando diferentes reglas trigonométricas, representar las diferentes variaciones en el vuelo del avión. 26 Programación de los instrumentos básicos de vuelo Fig. 3.2 Vista final del Horizonte Artificial En la figura 3.2 se muestran los componentes que forman el instrumento de Horizonte Artificial. 3.3.1. Representación del indicador de viraje El indicador de dirección nos indicará de forma aproximada el ángulo de viraje del avión. Estará representado sobre una escala, donde cada unidad corresponderá a una inclinación de 5º, hay que decir que el instrumento de horizonte artificial no es el instrumento más adecuado para conocer el ángulo de viraje del avión, pero le muestra una buena aproximación al piloto de las condiciones de vuelo actuales. El indicador de viraje estará formado por un polígono, formado por cuatro lados, que tendrá la siguiente forma. Fig. 3.3 Detalle del indicador de viraje Para ubicar correctamente el indicador de viraje dentro del instrumento, utilizaremos las dimensiones de los dos círculos exteriores, y aplicando las normas trigonométricas, localizaremos los cuatro vértices del puntero. Para realizar la localización de estos cuatro vértices, que son los parámetros que le debemos pasar al método drawPolygon, se ha implementado la función actualitation_polygon. Dirección Ind. Inclinación Posición Avión Horizonte OvalDiameter1 OvalDiameter Representación de instrumentos básicos de vuelo 27 3.3.1.1. Función actualitation_polygon Esta función tiene la estructura siguiente: actualitation_polygon (double inclination, int x_points[], int y_points[]); Ha esta función se le pasa tres valores, inclination, que corresponde al ángulo de inclinación del avión en ese momento, y las arrays x_points[] e y_points[], que será donde se guardarán los valores correspondientes a los cuatro vértices del indicador. actualitation_polygon(double inclination, int x_points[], int y_points[]){ double grays_radians; grays_radians = grays.degrees_to_radians(inclination); double inclination_1 = grays_radians - grays.degrees_to_radians(5.0); double inclination_2 = grays_radians + grays.degrees_to_radians(5.0); int i = 0; int aux; for (i=0; i < 4 ; i++){ if (i == 0){ x_points[i]=(java1507.WIDTH/2)+(int)(Math.sin(inclination_1)*(rectangulo. OvalDiameter/2))); } else if (i == 1){ x_points[i] = (java1507.WIDTH/2) + ((int)(Math.sin(grays_radians)*(rectangulo.OvalDiameter1/2))); } else if (i == 2){ x_points[i] = (java1507.WIDTH/2) + ((int)(Math.sin(inclination_2)*(rectangulo.OvalDiameter/2))); } else { x_points[i] = (java1507.WIDTH/2) + ((int)(Math.sin(grays_radians)*((rectangulo.OvalDiameter/2)+10))); } } for (i = 0; i < 4; i ++){ if (i == 0){ y_points[i] = (java1507.HEIGHT/2) - ((int)(Math.cos(inclination_1)*(rectangulo.OvalDiameter/2))); } else if (i==1){ y_points[i] = (java1507.HEIGHT/2) - ((int)(Math.cos(grays_radians)*(rectangulo.OvalDiameter1/2))); } else if(i==2){ y_points[i] = (java1507.HEIGHT/2) - ((int)(Math.cos(inclination_2)*(rectangulo.OvalDiameter/2))); } else { y_points[i] = (java1507.HEIGHT/2) - ((int)(Math.cos(grays_radians)*((rectangulo.OvalDiameter/2)+10))); } } De esta forma, fijando una obertura de cada vértice, respecto de la vertical de 5º, y teniendo en cuenta, y que el imaginario círculo que contendrá el punto vertical inferior se encuentra en un radio desde el centro de la pantalla igual a la mitad de la resta del radio del círculo exterior menos el radio del círculo interior, encontramos los cuatro puntos que forman el puntero del indicador de viraje. 28 Programación de los instrumentos básicos de vuelo 3.3.2. Representación del horizonte artificial El horizonte artificial lo representaremos mediante una línea, la colocación de esta línea en el instrumento dependerá de la inclinación que lleve el avión, si el avión está ganando altura, la línea se desplazará hacia la parte inferior del instrumento, y si el avión pierde altura, la línea se desplazará hacia la parte superior del instrumento. Para representar el movimiento del avión respecto del horizonte, se actualizará en cada momento la posición de los dos extremos de la línea, siguiendo las consideraciones trigonométricas que se representan en la siguiente figura. Fig. 3.4 Desglose coordenadas representación horizonte Con la figura anterior se ven como calcular cada uno de los vértices de la línea que representará el horizonte de nuestro instrumento. Para implementar el horizonte en el programa de visualización, se utiliza el método drawline, y se le pasan los parámetros indicados en la figura 3.4. 3.4 Representación del indicador del avión Con el indicador de inclinación del horizonte artificial, el piloto de la aeronave puede tener una idea de la inclinación con la que sube o baja el aparato, (anchura pantalla/2)-cos(alfa)*radio (anchura pantalla/2)-cos(alfa)*radio (Altura pantalla/2)-sen(alfa)*radio Representación de instrumentos básicos de vuelo 29 aunque para saber la magnitud verdadera de este ángulo deberá leer otro instrumento. Para la representación del este indicador utilizaremos la función marcas, dentro de la clase operations. Este indicador está formado por un conjunto de marcas horizontales, que se combinan en su longitud para tener una mejor lectura de esta magnitud en un vistazo rápido. Para ello, incluiremos dentro de la función principal de representación de nuestro instrumento, la función rectángulo, el siguiente bucle: for (i = 0; i < 13; i++){ operations.marcas(marcas, i, angle_aux); g2d.drawLine(marcas[0], marcas[1], marcas[2], marcas[3]); string_aux=java.lang.Integer.toString(-angle_aux); g2d.drawString(string_aux,(marcas[2]+5),marcas[3]); angle_aux = angle_aux+15; } Con este bucle dibujamos trece líneas, teniendo en cuenta que el avión se encuentra nivelado y al nivel del mar, se dibujan seis líneas por arriba del horizontes y seis líneas por debajo del horizontes y una que coincide con el horizonte y que nos indicará que el avión ni asciende ni desciende. Para actualizar las coordenadas de las diferentes líneas, llamamos al método marcas de la clase operations. En la siguiente sección se explicará este método. En las siguientes líneas, se coloca al lado de cada línea unos indicadores, texto, para informar de la inclinación correspondiente a cada punto. 3.4.1 Método marcas de la clase operations Este método es una función que tiene la siguiente estructura: public static void marcas(int marcas[], int col, int angle) • int marcas[]; es una array de enteros donde se guardarán las coordenadas X e Y correspondientes a cada línea. • int col; es un entero que nos indica si las coordenadas a calcular corresponden a una línea con posición par o impar. • int angle; es el ángulo de inclinación vertical del avión en el momento de refresco de la pantalla. 30 Programación de los instrumentos básicos de vuelo El método marcas está compuesto por el siguiente código: public static void marcas(int marcas[], int col, int angle){ int angle_aux = 0; int res = 0; if (col%2 == 0){ int adjust_1 = (java1507.WIDTH/2)/25 ; angle_aux = (int)((angle*(rectangulo.OvalDiameter/2 - rectangulo.OvalDiameter/4))/90); marcas[0] = (java1507.WIDTH/2)-adjust_1; marcas[1] = (java1507.HEIGHT/2) - angle_aux; marcas[2] = (java1507.WIDTH/2)+adjust_1; marcas[3] = (java1507.HEIGHT/2) - angle_aux; } else{ int adjust_1 = (java1507.WIDTH/2)/50 ; angle_aux = (int)((angle*(rectangulo.OvalDiameter/2 - rectangulo.OvalDiameter/4))/90); marcas[0] = (java1507.WIDTH/2)-adjust_1; marcas[1] = (java1507.HEIGHT/2) - angle_aux; marcas[2] = (java1507.WIDTH/2)+adjust_1; marcas[3] = (java1507.HEIGHT/2) - angle_aux; } } En esta función, dependiendo de la posición que ocupará la línea en el instrumento, que viene marcada por en entero col, se calcula una variable de ajuste, para conseguir que unas líneas sean más largas que otras. Los demás cálculos, se realizan mediante las diferentes razones trigonométricas, tomando como referencia los dos óvalos que forman el controno del instrumento, de esta forma se consigue que la apariencia del instrumento sea la misma sin importar donde se realice la visualización. Representación de instrumentos básicos de vuelo 31 CAPÍTULO 4. REPRESENTACIÓN DE LOS MOVIMIENTOS DEL AVIÓN Para representar los cambios de alabeo del avión, le pasaremos a nuestro programa una variable, que será proporcionado por los diferentes sensores que lleva equipado el avión, que nos indicará el ángulo de rotación de la aeronave en cada momento. Para ello utilizaremos la clase AffineTransform, dentro de esta clase podemos utilizar la propiedad setToRotation, que nos permite rotar objetos. 4.1. Explicación de la clase AffineTransform Utilizaremos esta clase para cambiar origen del plano de coordenadas de nuestro dibujo, de esta forma podemos reproducir la sensación que el avión está realizando un viraje. Para ello creamos una nueva variable de la AffineTransform: AffineTransform at = new AffineTransform(); Para realizar la rotación utilizaremos el método setToRotation de esta clase, de esta forma dotaremos al instrumento representado de la sensación de alabeo. 4.1.2. Explicación del método setToRotation Para realizar la rotación necesitaremos especificar el punto sobre el cual queremos realizar la rotación, por defecto, sino lo cambiamos, es el punto (0,0) y especificar un ángulo en radianes. Sino cambiáramos en punto de rotación tendríamos el resultado siguiente: Fig. 4.1 Ejemplo de rotación sin cambio de punto origen Vemos como el dibujo rota sobre el punto de origen, por defecto (0,0), para conseguir el efecto que nosotros deseamos, debemos conseguir que este punto de rotación coincida con el centro de nuestro dibujo. Punto de origen (0,0) 32 Representación de los movimientos del avión Clase Graphics Clase Graphics2D AffineTransform setToRotation Fig. 4.2 Ejemplo de rotación con cambio de punto origen Fijando el punto de referencia como el centro de la pantalla de representación, conseguimos que la figura que hemos dibujado gire sobre su eje. El método setToRotation consta de la siguiente estructura: at.setToRotation(Angulo_rotacion, PuntoXRef, PuntoYRef); • Angulo_Rotacion: Será el valor del ángulo de alabeo en radianes. • PuntoXRef: Será la coordenada horizontal, eje X, sobre el cual se realizará la rotación, en nuestro caso lo fijaremos en el centro del eje horizontal. • PuntoYRef: Será la coordenada vertical, eje Y, sobre el cual se realizará la rotación, en nuestro caso se fijará en la mitad del eje vertical. 4.2 Transformaciones para realizar la rotación Como hemos visto en capítulos anteriores, la clase principal, sobre la cual se utilizan todos los métodos necesarios para dibujar los instrumentos, es la clase Graphics. Una clase homónima, y que presenta los mismos métodos gráficos , y añade otras utilidades, como puede ser la definición de un punto de referencia sobre el cual efectuar diferentes operaciones, es la clase Graphics2D. Para realizar los cambios del punto de referencia, utilizaremos la clase AffineTransform. La estructura del programa será como se representa en el siguiente diagrama. Punto de origen (Anchura/2,Altura/2) Representación de instrumentos básicos de vuelo 33 Fig. 4.3 Diagrama de transformaciones para rotar un objeto Para empezar creamos la función pinta, que será la que representará todos los parámetros de nuestro instrumento, a esta función le pasamos un objeto de la clase Graphics. Transformamos este objeto Graphics, en otro objeto de la clase Graphics2D. Convertimos este último objeto Graphics2D en un objeto de la clase AffineTransform, ya con este objeto será con el que utilizaremos la clase setToRotation. Graphics2D g2d = (Graphics2D) g; AffineTransform at = new AffineTransform(); at.setToRotation((grays.degrees_to_radians(rotation_angle)),java1507.WIDTH/2,java1507.HEIGHT/2); Con la última línea de código, lo que hacemos es pasar al método setToRotation, el ángulo de alabeo que en ese momento tiene el avión, para representarlo en nuestro instrumento, poniendo como punto de referencia para realizar la rotación el centro de la pantalla g2d.transform(at); Con esta última línea, transformamos con el ángulo deseado el objeto Graphics2D. 4.3 Estrategia de visualización Para dotar al instrumento de sensación de movimiento, cada cierto tiempo debemos actualizar el dibujo que forma nuestro instrumento, con las nuevas coordenadas del avión, tanto de altura como de alabeo. La función encargada de redibujar el instrumento, es la función dibuja. public void dibuja() { while (isVisible()) { rectangulo.pinta(getGraphics()); 40 Bibliografía BIBLIOGRAFÍA • Adsuar Mazón, J., “Conocimiento general de la aeronave.Perfomance y planificación de vuelo”, Thomson Paraninfo S.A. , 2003. • Joyanes Aguilar, L., Zahomero Martínez, I.,”Programación en Java 2”, McGraw-Hill, 2002. • Cevallos Sierra, J., “El lenguaje de programación Java”, Ra-ma, 2001. ENLACES WEB http://www.faa.gov/atpubs/PCG/index.htm ,glosario de términos. www.planetalia.com/cursos/Java-Invaders/JAVA-INVADERS-00.clase , tutorial de java. Anexo 1. Factores de conversión entre unidades 41 ANEXO 1. FACTORES DE CONVERSIÓN ENTRE UNIDADES Reglas para convertir unidades Unidades de Para convertir a Formula Milibares pulgadas de mercurio mb * 30 / 100 Presión pulgadas de mercurio milibares inch * 30 + 1/10 Pies metros ft * 3 / 10 Altura Metros pies mt * 3 + 1/10 del resultado pies por minuto (fpm) metros por segundo fpm / 200 Velocidad vertical metros por segundo pies por minuto (fpm) m/sec * 200 Nudos kilómetros/hora kt. * 2 - 1/10 del resultado Velocidad horizontal kilómetros/hora nudos km/h / 2 + 1/10 del resultado millas náuticas kilómetros nm. * 2 - 1/10 del resultado Distancia Kilómetros millas naúticas km. / 2 - 1/10 Capacidad Litros galones US ltr * 4 - 20% del resultado libras (Av) kilos lb. / 2 + 10% del resultado Peso Kilos libras (Av.) kg. * 2 + 2% del resultado grados F (Farenheit) grados C (Celsius) (Fº - 32) * 5/9 Temperatura grados C (Celsius) grados F (Farenheit) (Cº * 9/5) + 32 Anexo 2.Nomenclatura de velocidades 42 ANEXO 2. NOMENCLATURA DE VELOCIDADES V1 The maximum speed in the takeoff at which the pilot must take the first action (e.g. apply brakes, reduce thrust, deploy speed brakes) to stop the aircraft within the accelerate-stop distance. V1 also means the minimum speed in the takeoff, following a failure of the critical engine at VEF, at which the pilot can continue the takeoff and achieve the required height above the takeoff surface within the takeoff distance. V2 Takeoff safety speed. V2MIN Minimum takeoff safety speed. VA Design maneuvering speed. This is the“rough air” speed and the maximum speed for abrupt maneuvers. If during flight, rough air or severe turbulence is encountered, reduce the airspeed to maneuvering speed or less to minimize stress on the airplane structure. It is important to consider weight when referencing this speed. For example, VA may be 100 knots when an airplane is heavily loaded, but only 90 knots when the load is light. VB Design speed for maximum gust intensity. VC Design cruising speed. VD Design diving speed. VDF/MDF Demonstrated flight diving speed. VEF Speed at which the critical engine is assumed to fail during takeoff. VF Design flap speed. VFC/MFC Maximum speed for stability characteristics. A speed that may not be less than a speed midway between maximum operating limit speed (VMO/MMO) and demonstrated flight diving speed (VDF/MDF). VFE Maximum flap extended speed. VFTO Final takeoff speed. VH Maximum speed in level flight with maximum continuous power. VLE Maximum landing gear extended speed. The maximum speed at which an airplane can be safely flown with the landing gear extended. VLO Maximum landing gear operating speed. Anexo 2. Factores de conversión entre unidades 43 The maximum speed for extending or retracting the landing gear if using an airplane equipped with retractable landing gear. VLOF Lift-off speed. VMC Minimum control speed with the critical engine inoperative. This is the minimum flight speed at which a light, twin-engine airplane can be satisfactorily controlled when an engine suddenly becomes inoperative and the remaining engine is at takeoff power. VMU Minimum unstick speed. VMO/MMO Maximum operating limit speed. VNE Never-exceed speed. VNO Maximum structural cruising speed. VR Rotation speed. VREF Reference landing speed VS Stalling speed or the minimum steady flight speed at which the airplane is controllable. VS0 Stalling speed or the minimum steady flight speed in the landing configuration. VS1 Stalling speed or the minimum steady flight speed obtained in a specific configuration. VSR Reference stall speed. VSR0 Reference stall speed in the landing configuration. VSR1 Reference stall speed in a specific landing configuration. VX Speed for best angle of climb. The airspeed at which an airplane gains the greatest amount of altitude in the shortest distance. It is used during a short-field takeoff to clear an obstacle. VY Speed for the best rate of climb. The speed at which an aircraft will gain the most altitude in the least amount of time. VYSE This airspeed provides the most altitude gain in a given period of time in a light, twin engine airplane following an engine failure.