La simulation Software in the Loop consiste à créer un modèle Simulink qui simule le comportement du système formé par l’autopilote et l’aéronef, sans connecter physiquement l’appareil à l’ordinateur, contrairement à la simulation HIL qui nécessite que l’autopilote et l’aéronef soient connectés au PC. La simulation SIL peut être effectuée à une vitesse supérieure à la vitesse réelle, ce qui permet d’effectuer plusieurs simulations en un temps relativement court.

Simulation de l’Autopilote

L’autopilote est implémenté dans Simulink grâce à un bloc S-Function. Ce type de bloc contient un code C, C++, Fortran ou même Matlab, qui a un certain nombre d’entrées et de sorties.

S-Function contenant le code embarqué de l’autopilote

En plus des entrées apparaissant sur la figure, qui sont des valeurs changeant au cours de la simulation (données capteur, données GPS, Timer …), le bloc S-Function a besoin des paramètres contenant les données de la configuration de Veronte Pipe. Cette configuration contient les paramètres de contrôle de la plateforme, sa disposition, les phases de vol, les automations, les missions etc… Par conséquent, la fonction de l’autopilote utilise les données des capteurs et le fichier de configuration pour calculer les commandes de contrôle et de guidage.

Cette boîte de dialogue permet de configurer la S-Function présentée dans la figure suivante.

Boite de dialogue du bloc S-function

Le champ “S_function name” contient le fichier avec le code de l’algorithme GNC qui calcule les commandes de contrôle et de guidage. Le code spécifié ici est le même que celui embarqué dans l’autopilote réel. De plus, le champ “S-function parameters” contient le chemin dans lequel le fichier de configuration a été dézippé. Une fois que la configuration est effectuée dans Veronte Pipe, enregistrez le fichier .ver et dézippez-le dans un fichier dont le chemin d’accès correspond à celui renseigné ici.

Simulation des capteurs

Les données des capteurs sont simulées dans Simulink grâce à deux blocs qui vont être détaillés par la suite.

Simulation des capteurs

Le premier bloc calcule les variables mesurées en utilisant les valeurs du vecteur d’état et la matrice Director Cosine Matrix (DCM). Le nom “var_2_sen” signifie variable vers capteur. Ce bloc est présenté ci-dessous:

Bloc Variables to Sensors

Ce bloc adapte les valeurs du vecteur d’état (calculé dans les équations dynamiques de l’aéronef) en fonction de l’orientation et de la position des capteurs dans l’autopilote (par exemple, si l’IMU est pivotée par rapport aux axes de l’aéronef, cette rotation doit être appliquée aux valeurs du vecteur d’état, de même pour le magnétomètre etc… De plus, la position donnée par les équations de l’aéronef donnent sa position dans le système des axes plats, donc elle doit être transformée pour générer une position fournie par un module GPS réel. Dans la figure ci-dessus, les rectangles verts indiquent les entrées tandis que les rectangles rouges indiquent les sorties.

L’illustration ci-dessous montre la disposition du bloc utilisé dans le sous-système permettant de simuler le traitement des valeurs des capteurs par le microcontrôleur.

Bloc de traitement du Signal

Les variables mesurées (qui sont des transformations des valeurs du vecteur d’état) sont envoyées au bloc de traitement du signal. Ce bloc applique les biais et la saturation d’un capteur réel de manière à obtenir un signal digital, qui est le signal réel envoyé à l’autopilote dans la réalité. Les modèles présentés sont totalement adaptables aux capteurs utilisés par l’utilisateur en situation réelle (grâce à la structure par bloc de Simulink). Si un type d’opération nécessite l’utilisation d’un certain capteur, celui-ci peut être intégré dans la simulation pour atteindre un plus haut degrés de réalisme.

Pour résumer, en situation réelle le capteur fourni une certaine mesure de l’état de l’aéronef. Dans le simulation SIL, ces données ne sont pas disponibles, donc elles doivent être calculées en fonction des valeurs du vecteur d’état, ce qui est réalisé dans le modèle simulink grâce aux deux sous-systèmes présentés auparavant.

Simulation Complète

En combinant les trois blocs présentés dans la section précédente, l’autopilote sera entièrement implémenté dans Simulink (simulation des capteurs + code Veronte pour l’algorithme GNC). Pour compléter le processus de simulation, il faut définir un modèle d’aéronef qui sera contrôlé par le Veronte. Cela peut être facilement grâce à l’architecture par bloc, ou grâce à une S-Function contenant un code C résolvant les équations de la dynamique. Une fois que cela a été fait, l’autopilote et le modèle de l’aéronef sont liés pour former un tout. La figure ci-dessous montre un exemple de système complet.

Les deux blocs de visualisation contiennent une série de graphes pouvant être utilisés après le vol pour analyser celui-ci, mais ils ne sont pas utilisés lors du processus de simulation.