La simulación Software In The Loop consiste en crear un modelo Simulink que simula el comportamiento del piloto automático y la aeronave, sin conectar físicamente el dispositivo al ordenador, a diferencia de la simulación HIL que requiere que el piloto automático y el avión estén conectado al PC. La simulación SIL puede llevarse a cabo a una velocidad superior a la velocidad real, lo que permite realizar varias simulaciones en un tiempo relativamente corto.

Simulación del Autopiloto

El autopiloto es implementado en Simulink mediante una S-Function. Este tipo de bloque contiene código C, C++, Fortran e incluso código Matlab, y lo implementa en el bloque con unas determinadas entradas y salidas.

S-Function – Contiene el código embebido del autopiloto

Además de las entradas que aparecen en la figura, que son valores que cambian durante la simulación (datos del sensor, datos de GPS, temporizador …), el bloque S-Function necesita un conjunto parámetros que se correspondan con los datos de configuración en Veronte Pipe. Esta configuración contiene los parámetros de control de la plataforma, su diseño, fases de vuelo, automatizaciones, misiones, etc. Por lo tanto, la función del piloto automático emplea los datos del sensor y del archivo de configuración para calcular los parámetros y comandos del control y guiado.

El cuadro de diálogo empleado para configurar la S-Function se presenta en la siguiente figura.

Cuadro de diálogo S-Function 

El campo “S_function name” contiene el archivo con el código del algoritmo CNG que calcula los comandos de control y guiado. El código especificado aquí es el mismo que el incrustado en el piloto automático real. Además, el campo “S-function parameters” contiene la ruta donde se ha descomprimido el archivo de configuración. Una vez que la configuración se ha realizado en Veronte Pipe, guarde el archivo .ver y descomprímalo en una carpeta cuya ruta coincida con la introducida en este apartado.

Simulación de Sensores

Las lecturas del sensor se simulan en Simulink mediante dos bloques que se detallarán más adelante.

The sensors readings are simulated in Simulink with two blocks that will be shown and explained as follows.

Lecturas del Sensor

El primer bloque calcula las variables medidas empleando los valores del vector de estado y la Matrix Director Cosine (DMC). El nombre “var_2_sen” significa de variables a valores del sensor. Este bloque se presenta a continuación:

Variables al Bloque Sensor

Básicamente, este bloque adapta los valores del vector de estado (calculado con las ecuaciones dinámicas de la aeronave) de acuerdo con la orientación y la posición de los sensores en el piloto automático por ejemplo, si la IMU se gira con respecto a eje de la aeronave, esta rotación debe aplicarse a los valores del vector de estado, lo mismo para el magnetómetro, etc. Además, la posición obtenida mediante las ecuaciones de la aeronave se obtiene en un sistema de ejes planos, por lo que se debe transformar esta posición para generar una que sea proporcionada por un módulo de GPS real. En la figura anterior, los rectángulos verdes indican las entradas, mientras que los rectángulos rojos indican las salidas.

La siguiente figura muestra la disposición de los distintos sub-sistemas empleados para simular la lectura de datos del sensor.

 Bloque Procesado Señal

Las variables medidas (que son transformaciones de los valores del vector de estado) se envían al bloque de procesamiento de señales. Este bloque aplica el sesgo y la saturación de un sensor real para obtener una señal digital, que es la señal enviada al piloto automático realmente. Los modelos presentados son completamente adaptables a los sensores utilizados por el usuario en una situación real (gracias a la estructura de bloques de Simulink). Si alguna operación requiere el uso de un determinado sensor, este se puede integrar en la simulación para lograr un mayor grado de realismo.

En resumen, en una situación real el sensor proporciona una cierta medida del estado de la aeronave. En la simulación SIL, estos datos no están disponibles, por lo que deben calcularse de acuerdo con los valores del vector de estado, que se realiza en el modelo simulink gracias a los dos sub-sistemas presentados anteriormente.

Simulación Completa

Al combinar los tres bloques presentados en la sección anterior, el piloto automático se implementará completamente en Simulink (simulación de sensor + código Veronte para el algoritmo GNC). Para completar el proceso de simulación, es necesario definir un modelo de aeronave que será controlado por Veronte. Esto se puede hacer fácilmente con la arquitectura de bloques, o con una función S que contenga el código C necesario para resolver las ecuaciones de la dinámica de la aeronave. Una vez hecho esto, el piloto automático y el modelo de la aeronave se unen para formar el modelo completo de simulación. La siguiente figura muestra a continuación un ejemplo de un sistema completo.

Los dos bloques de visualización contienen una serie de gráficos que se pueden usar después del vuelo para analizar los datos, pero no se emplean durante el proceso de simulación.