Desarrollo de un Simulador de Vuelo en Tiempo Real Usando
Transcripción
Desarrollo de un Simulador de Vuelo en Tiempo Real Usando
Desarrollo de un Simulador de Vuelo en Tiempo Real Usando LabVIEW y Compact FieldPoint "Aunque anteriormente pensamos en la programación gráfica de flujo de datos como una ayuda para diseño de ingeniería y fabricación, también ha probado ser una herramienta efectiva para desarrollar un simulador de vuelo en tiempo real." - Terry Keenan, Keenan Simulation Corporation (http://www.keenansimulationcorporation.com/) El Reto: Diseñar y construir un simulador de vuelo DC-9 que cumple con los estándares de Nivel D de la Administración Federal de Aviación (FAA) para la Marina de E.U. Lea el Caso de Estudio Completo La Solución: Usar hardware NI Compact FieldPoint y software LabVIEW para reemplazar el sistema completo de conexión de un simulador existente, el cual consistió en 1,800 canales de instrumentación de la cabina del piloto. Autor(es): Terry Keenan - Keenan Simulation Corporation (http://www.keenansimulationcorporation.com/) Contexto Este proyecto exigía un nuevo y actualizado simulador de vuelo DC-9 de Nivel D que correspondiera a las nuevas cabinas de piloto de vidrio de la flotilla naval. Este proyecto fue una plataforma ideal para la fase de prueba de concepto al desarrollar un simulador gráfico de flujos de datos. Con opciones limitadas para un nuevo servidor con un planificador en tiempo real, decidimos realizar la primera fase de este estudio, el Dataflow Architecture Flight Simulation Study (DAFSS). Comenzamos por recobrar y re-alojar un sistema de simulación tradicional DC-9 que originalmente se ejecutaba en una PC Gould SEL Modelo 8760 de 1984 y fue codificado en FORTRAN. Consideramos las diferencias entre comenzar desde cero o comprar uno de los simuladores DC-9 anteriores y actualizarlo. Ya que el DC-9 era un avión más viejo, encontramos algunos simuladores existentes que eran muy buenos candidatos para ser actualizados. Finalmente compramos un simulador Singer Link DC-9 de Aeroméxico ya que también fue originalmente programado en FORTAN y se mantuvo en servicio por 20 años sin ninguna actualización importante. Comenzamos el proyecto revisando los requerimientos para el contrato del simulador de Nivel D. El Singer Link aún tenía los instrumentos originales de la cabina de piloto DC-9 y enlaces de hardware asociados junto con su base de movimiento, controles de vuelo, sistema visual y estación del instructor. Después de considerar cuidadosamente cada sistema en base al nivel de esfuerzo y costo asociado para recuperarlo, decidimos solamente recuperar el programa de FORTRAN. El hardware simplemente estaba demasiado obsoleto para poder reutilizarlo. Reemplazamos la interfaz de hardware de los instrumentos de la cabina con una combinación de productos de National Instruments, incluyendo Compact FieldPoint ( http://www.ni.com/compactfieldpoint/esa/). La Figura 1 muestra el gabinete de interfaz del sistema. Figura 1: Gabinete de Interfaz de Instrumentos de la Cabina para el NI Compact FieldPoint A pesar de que teníamos la base del código para el DC-9, necesitábamos diseñar o comprar varios sistemas nuevos. Primero, necesitábamos una plataforma de PC en tiempo real adecuada para ejecutar el programa FORTRAN recuperado. Con opciones limitadas disponibles, escogimos un sistema Concurrent RedHawk. Para recuperar el programa DC-9, nos enfrentamos con dos problemas principales. Primero, necesitábamos recuperar el planificador y las versiones de los archivos que se estaban usando en ese momento en el ejecutable del Singer Link. Todos estos archivos deben ser organizados y reconstruidos en el sistema de Concurrent junto con el conjunto de datos de variables del programa. Después, las funciones de la tabla de consulta para todos los paquetes de datos del avión eran funciones esenciales del SO del mainframe Gould, así que necesitábamos un reemplazo para estas funciones que se ajustaran con el presupuesto y programa del proyecto. Programación de Flujo de Datos Inicialmente, escogimos el software Simulink ® de MathWorks, Inc. para el proyecto, por ser una herramienta de modelado de simulación bien conocida que contiene ejemplos aerodinámicos. Integrar los datos aerodinámicos en el entorno de Simulink y las funciones de la tabla de consulta funcionó perfectamente, pero hacer que estas funciones se ejecutaran como reemplazos en el código original FORTRAN resultó ser muy difícil. Exportar las funciones del modelo desde Simulink para ejecutarse en hardware en tiempo real requiere un paquete separado llamado Simulink Real-Time Workshop™. Esta exportación generó más de 20,000 líneas de código basado en texto y aún así no pudimos integrar el código en el programa FORTRAN y reemplazar las funciones incompatibles de la tabla de consulta. La presión del tiempo comenzó a cobrar factura en nuestro equipo de 1/3 www.ni.com FORTRAN y reemplazar las funciones incompatibles de la tabla de consulta. La presión del tiempo comenzó a cobrar factura en nuestro equipo de ingeniería, el cual consiste en programadores de flujo de datos y programadores de código basado en texto. Los programadores de código basado en texto querían buscar funciones en el código generado por Simulink que pudieran eliminar o reconstruir con sus propias estructuras de código. Los programadores de flujo de datos argumentaron que esto invalidaría el diagrama de flujo de datos original. Programar en LabVIEW Los programadores de flujo de datos decidieron intentar un enfoque distinto con un entorno de programación de flujo de datos comercial llamado LabVIEW (http://www.ni.com/labview/esa/). Aunque este entorno es comúnmente usado para pruebas y automatización, tiene todas las funciones de la tabla de consulta necesarias. Una vez más, los datos de la tabla aerodinámica se importaron correctamente y las funciones se ejecutaron perfectamente. Con LabVIEW, sin embargo, pudimos construir las funciones del diagrama de flujo de datos directamente en bibliotecas compartidas sin generar ningún código basado en texto. Esto eliminó exitosamente los desacuerdos entre los programadores de flujo de datos y de código basado en texto y permitió cumplir con el calendario del proyecto. Los ingenieros pusieron un wrapper simple de código ANSI C alrededor de las llamadas a funciones de la biblioteca compartida con el mismo nombre que la función original, el cual les permitió llamar las bibliotecas directamente con el programa original FORTRAN. Con el éxito obtenido con las funciones de consulta con el enfoque de flujo de datos, programamos varios sistemas más con LabVIEW, incluyendo una estación de instructor, controladores para los instrumentos de la nueva cabina de piloto, una interfaz de controles Fokker, una interfaz RSI Visual Systems y un sistema de registro de datos para la prueba FAA 120-40B. Construimos todos los sistemas directamente en una biblioteca compartida o un ejecutable. Descubrimos que la clave para usar un entorno de flujo de datos visual es requerir que se construya directamente en una biblioteca compartida o ejecutable. Si genera código, como nuestra prueba en Simulink lo hizo, el primer impulso del programador basado en texto es editar el código, no el diagrama de flujo de datos que lo generó. Esto crea el riesgo de perder los cambios si el código es regenerado desde el diagrama de bloques. La Figura 2 muestra el diagrama de bloques de LabVIEW para la simulación del DC-9. Figura 2: Diagrama de Bloques del Flujo de Datos Gráfico de LabVIEW para la Simulación del DC-9. Con el éxito acumulándose, nuestros ingenieros decidieron intentar expandir las funciones de consulta de datos en la sección de coeficientes completos del DC-9. En lugar de construir el diagrama de flujo de datos de LabVIEW de los coeficientes completos en una biblioteca, decidieron construirlos directamente en un ejecutable y comenzar a evaluar la temporización. Primero medimos la PC Concurrent que ejecuta el programa FORTRAN original, después llamamos las bibliotecas compartidas de flujo de datos en comparación con el ejecutable integrado en LabVIEW. Encontramos que ambos se ejecutan aproximadamente en 1 milisegundo. En este punto, quedamos convencidos de que podríamos usar LabVIEW para diseñar el modelo de vuelo completo. Continuamos el experimento y convertimos las ecuaciones de movimiento, efecto suelo y partes de la navegación en el entorno de LabVIEW. Cuando terminamos, el núcleo del modelo de vuelo del DC-9 fue construido directamente en un ejecutable de LabVIEW y se ejecutó en 7 milisegundos, dejando más del 50% de tiempo libre. Durante el proceso de realojamiento del DC-9, encontramos varios beneficios de la programación gráfica de flujo de datos, incluyendo paralelismo natural para el uso en PCs multinúcleo, administración simplificada de proyectos y reducción significativa en el costo y la complejidad del desarrollo de simulación de vuelo, documentación y mantenimiento. Aunque anteriormente pensamos en la programación gráfica de flujo de datos como una ayuda para diseño de ingeniería y fabricación, también ha probado ser una herramienta efectiva para desarrollar un simulador de vuelo en tiempo real. Ya que esto fue un enfoque completamente nuevo para la simulación de vuelo, no estábamos seguros de que funcionaría. Varios ingenieros de simulación de vuelo al principio pensaron que una simulación basada en programación gráfica de flujo de datos se ejecutaría mucho más lento y por lo tanto no sería un dispositivo de entrenamiento en tiempo real confiable. Por lo tanto, necesitábamos probar que un modelo de simulación de vuelo completo basado en flujo de datos puede ejecutarse en el rango de velocidad de tiempo real de 60 cuadros por segundo, con por lo menos el 20% de tiempo libre entre cuadros. Otros requerimientos importantes para las bibliotecas de tablas de consulta y el ejecutable del modelo de vuelo incluyen desarrollar un programa que se pueda construir y ejecutar directamente en un kernel en tiempo real y soportar los controladores para 1,800 canales de E/S de conexión. Encontramos que los productos de software y hardware de National Instruments cumplieron con todos nuestros requerimientos, lo que resultó en un dispositivo de entrenamiento de vuelo de alta fidelidad y bajo costo. Ver Figura 3 para una vista de la cabina de piloto terminada. Figura 3: Cabina de Piloto Terminada del Simulador de Vuelo DC-9 Simulink® is a registered trademark of MathWorks, Inc. 2/3 www.ni.com Información del Autor: Terry Keenan Keenan Simulation Corporation (http://www.keenansimulationcorporation.com/) P.O. Box 2227 Castle Rock, CO 80104 Estados Unidos Tel: 303-990-9649 [email protected] (mailto:[email protected]) Vista Externa del Sistema de Simulación Legal Este caso de estudio (este "caso de estudio") fue desarrollado por un cliente de National Instruments ("NI"). ESTE CASO DE ESTUDIO ES PROPORCIONADO "COMO ES" SIN GARANTÍA DE NINGUN TIPO Y SUJETO A CIERTAS RESTRICCIONES QUE SE EXPONEN EN LOS TÉRMINOS DE USO EN NI.COM. 3/3 www.ni.com