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

Documentos relacionados