• Aucun résultat trouvé

CHAPITRE 5 ALGORITHMES D’ATTITUDE ET DE POSITIONNEMENT

5.1 Développement de l’algorithme AHRS

5.1.5 Modélisation du filtre EKF pour corriger la dérive de la solution

Ce que nous voulons corriger est l’erreur sur le quaternion, dans ce cas spécifique, nous avons le modèle de propagation de l’erreur du quaternion, soit :

= ⊗ (5.13)

où : : Estimé de la valeur du quaternion

: Erreur du quaternion

Avec finalement, l’équation de propagation de l’erreur du quaternion :

= − × −1

2 (5.14)

Dans ce cas, nous n’utiliserons pas directement le vecteur d’état mais le vecteur d’erreur d’état afin de ne pas être obligé de linéariser la matrice de transition F et la matrice

d’observation H. A partir de l’équation précédente et en ajoutant l’erreur sur la vitesse angulaire, on obtient donc le vecteur d’erreur d’état suivant :

= (5.15)

Note : Afin de simplifier l’écriture des équations et éviter les répétitions, la calibration continue (section 4.3.5) n’est pas incluse dans la modélisation de ce filtre EKF. Elle est cependant incluse dans le modèle AHRS final.

La correction de l’erreur de propagation de l’attitude va donc être effectuée en utilisant un filtre de Kalman étendu rapide (FEKF). Puisque nous savons que le vecteur d’erreur d’état change au cours du temps, suivant l’attitude de chaque IMU, la matrice de transition F doit être calculée (contrairement aux méthodes de calibration) et par conséquent, la matrice de couplage dynamique du bruit G (on considère cependant ce bruit comme constant afin de simplifier les équations). Le système d’équations dans le domaine discret est donc le suivant :

= + (5.16)

= + (5.17)

Les étapes de réalisation sont les suivantes :

L’initialisation :

Nous estimons qu’à = 0, le vecteur d’erreur d’état ne contient aucune erreur, le vecteur prend donc les valeurs suivantes :

= [0 0 0 0 0 0] (5.18)

Afin que le modèle converge, la matrice de covariance va prendre des valeurs correspondant à l’incertitude posée sur , soit :

= (5.19)

On va également construire les matrices constantes à l’initialisation du système, soit la matrice de covariance des bruits d’états Q et la matrice de covariance des bruits d’observation R (Les données proviennent des coefficients du bruit blanc calculés préalablement à l’aide de la variance d’Allan excepté pour les valeurs de variance pour la méthode ZARU, où on choisira une valeur typique de 0.1 / ), soit :

= 0 0 0 0 0 0 (5.20) = (5.21)

On peut également construire la matrice de couplage dynamique du bruit G qui est une constante d’après l’équation (5.14), soit :

= −12 0

(5.22)

A partir de cet instant, les variables devront être recalculés à chaque itération. On va premièrement calculer la matrice de transition F et d’après l’équation (5.16), on obtient :

= −( ×) 0

0 0 (5.23)

Puisque que l’on travaille dans le domaine discret, il va être nécessaire de discrétiser la matrice de transition F, on va donc obtenir :

= ∆ ≈ Ι + ∆ + 1

On va maintenant calculer la matrice de bruit intégré à l’aide de la formule (3.59). Dans cette étape d’initialisation, il nous reste à construire la matrice d’observation , celle- ci va s’écrire :

= −2(−2( ×) 0×) 0

0 (5.25)

La prédiction :

On va faire un estimé du vecteur d’erreur d’état et de la matrice de covariance à partir de l’estimé mis à jour . Voir les équations (3.62) et (3.63).

La mise à jour des mesures :

À toutes les 5 trames et lorsque l’on a détecté un état stationnaire, on va calculer la mesure résiduelle, soit :

=

[0 0 ] −

(5.26)

On calcule alors le gain de Kalman, et sa matrice de covariance à l’aide des équations (3.64) à (3.68). Finalement, on met à jour l’erreur sur le quaternion .

Note : Puisque l’on utilise un filtre FEKF, le calcul du gain de Kalman s’effectue sans inversion de matrice (voir équation (6.1)).

5.1.6 Analyse des performances et discussion

Afin de démontrer le besoin de corriger la dérive de l’attitude au cours du temps, le premier graphique représentera la dérive de l’attitude de l’IMU « maître » du projet ibNav, après la calibration initiale et continue. L’enregistrement est effectué lors d’un scénario statique. A

cet instant le filtre de Kalman n’est pas encore utilisé, de ce fait, le calcul est réalisé uniquement avec les données du gyroscope. Voir la Figure 5.3.

Figure 5.3 Dérive de l’angle Phi (Roulis) avant et après la calibration

Dérive calculée :

• avant la calibration initiale: 11 531 °/h;

• après la calibration initiale (correction du biais) : 65 °/h.

Pour ce même enregistrement, nous allons ajouter la méthode de correction de la dérive présentée à la section 5.1.5, on obtient alors la Figure 5.4. On remarque que pour un enregistrement statique, lorsque le capteur est en état stationnaire, l’absence de dérive de la solution. Ce comportement s’explique puisqu’en tout temps, la vitesse angulaire est corrigée à l’aide de l’accéléromètre et du magnétomètre.

Figure 5.4 Dérive de l’angle Phi (Roulis) avant et après la correction de la dérive

Le prochain enregistrement correspond à un scénario quasi-statique où chacun des axes est excité. On obtient la Figure 5.5 représentant l’estimation des angles d’Euler et la Figure 5.6 représentant l’erreur sur l’estimation. Puisque nous n’avons pas à notre disposition une plateforme inertielle de référence, la référence correspond aux angles du robot de calibration, même si celui-ci n’est pas idéal. Les figures représentent trois enregistrements avec les méthodologies suivantes : FEKF, FEKF + CC (Calibration Continue), FEFK + ZARU + CC pour l’angle d’Euler Theta (tangage). L’angle de roulis et de lacet n’est pas représenté mais ils sont également en mouvement quasi-statique. On remarque également que l’erreur augmente rapidement lorsque l’on est en dynamique, ceci s’explique par l’absence de correction dans cet état.

Figure 5.5 Estimation de l’angle d’Euler Theta calculés par la méthode AHRS

Note : La référence est celle des angles des servomoteurs, de ce fait; ils ne correspondent pas exactement à l’attitude des IMUs, cette contrainte a été prise en compte afin de calculer les erreurs du Tableau 5.1.

Par analyse visuelle, on remarque que la calibration continue améliore légèrement la solution et que la méthode de correction de la dérive utilisant le modèle de connaissance ZARU permet d’obtenir une erreur plus faible sur chacun des angles. On obtient donc les erreurs suivantes :

Tableau 5.1 Erreur RMS statique et dynamique des angles d’Euler (en degrés) pour un angle de roulis, tangage et lacet de ± 90°

Angles d’Euler (°) FEKF FEKF + ZARU FEKF + CC + ZARU

RMS statique 0.8456 0.3633 0.3584 RMS dynamique 1.3140 0.9847 0.9755 RMS statique 1.6786 0.6108 0.5983 RMS dynamique 2.8272 1.4132 1.3724 RMS statique 3.4115 1.0739 1.0242 RMS dynamique 3.8776 1.9494 1.9101

L’inconvénient principal est que cette méthode permettant la correction de la dérive perd en performances lorsque l’utilisateur réalise de fortes dynamiques et/ou que les états stationnaires du système sont peu nombreux.