Estimation d'attitude

Auteur: Gary Quinsac

Principe

L'estimation d'attitude consiste à estimer l'état actuel de l'orientation d'un satellite à partir d'un jeu d'observations et de références obtenues à partir de modèles. Ces observations ont été préalablement effectuées par des capteurs fixés sur le satellite. L'objectif est ici de trouver la meilleure estimation de l'état réel du système sous forme de matrice de changement de repère ou de quaternion d'attitude. La résolution exacte du problème n'est généralement pas possible car les observations sont entachées d'erreurs (erreurs de mesure, d'orientation du capteur, de modélisation...). De plus, on dispose souvent d'une surabondance d'information puisque plusieurs capteurs fournissent des informations par rapport à des références différentes (Soleil, champ magnétique, étoile...). On cherche alors à exploiter de manière optimale ces sources d'information en leur associant des modèles d'erreur.

Les problèmes de détermination d'attitude font intervenir des observations (orientation d'objets) pris à certaines dates. La détermination d'attitude statique représente le cas le plus simple, dans lequel on considère que toutes les mesures sont effectuées au même instant. Au contraire, lorsque le temps est introduit, on parle de détermination d'attitude récursive.

La qualité de la connaissance d'attitude dépend des limitations des capteurs, de la quantification des données, du temps d'échantillonnage et du traitement numérique. La détermination d'attitude embarquée est limitée par les capacités de filtrage de l'ordinateur de bord. Il arrive que pour obtenir une meilleure connaissance de l'attitude a posteriori les données des capteurs soient transmises au segment sol où elles sont post-traitées puis exploitables (par le segment sol ou le satellite).

Boucle SCA
images/boucle-SCA.png
Boucle de contrôle d'attitude.
Crédit : Gary Quinsac

Cas statique

Le cas particulier de l'estimation d'attitude à partir de mesures simultanées de directions non parallèles est ici introduit. À chaque observation sont associés deux vecteurs. Le premier est un vecteur unitaire {\bold b}_i définissant la direction mesurée (observée) de la source (la Terre, le Soleil, une étoile, le champ magnétique terrestre...), exprimée dans le repère lié au satellite. Le second est un vecteur unitaire {\bold r}_i qui définit la direction de référence de la source, exprimée dans le repère origine (généralement inertiel). L'estimation d'attitude consiste ici à déterminer la matrice de transformation orthogonale \bold C satisfaisant pour chaque observation i :

{\bold b}_i = \bold C \ {\bold r}_i

Méthode TRIAD

La méthode TRIAD se base sur l'observation de deux directions non-parallèles. Il s'agit de déterminer la MCD \bold C permettant de transformer les vecteurs de référence {\bold r}_1 et {\bold r}_2 en vecteurs d'observation {\bold b}_1 et {\bold b}_2. Puisque l'on cherche à obtenir l'attitude suivant 3 axes, il nous faut créer deux bases orthonormées (y1, y2, y3) et (x1, x2, x3), respectivement associées aux vecteurs d'oservation et de référence. Il ne reste plus qu'à déduire la matrice de transformation orthogonale (ou MCD) \bold C(3,3) satisfaisant :

\bold y_i = [C] \ \bold x_i , \begin{cases} \bold x_1 = \bold r_1 \\ \bold x_2 = \frac{\bold r_1 \wedge \bold r_2}{|\bold r_1 \wedge \bold r_2|} \\ \bold x_3 = \bold x_1 \wedge \bold x_2 \end{cases} , \begin{cases} \bold y_1 = \bold b_1 \\ \bold y_2 = \frac{\bold b_a1\wedge \bold b_2}{\bold b_1 \wedge \bold b_2} \\ \bold y_3 = \bold y_1 \wedge \bold y_2 \end{cases}

Cette méthode présente l'avantage d'être extrêmement simple, d'où son utilisation dans de nombreuses missions passées. De nos jours, cette méthode n'est plus considérée comme suffisamment précise. En effet, les mesures d'observation sont entachées d'erreur, ce qui empêche d'obtenir le même résultat suivant le vecteur d'observation choisi au départ. C'est pour cette raison que l'on choisit généralement l'observation la plus précise. Des techniques de calcul de la covarience de l'erreur de l'estimation ont été développées pour parer à ces inconvénients.

Méthode QUEST

Un critère quadratique peut être utilisé pour déterminer la matrice d'attitude. Cela revient à chercher la matrice orthogonale vecteur(C) minimisant la fonction de moindres carrés :

L = \frac{1}{2} \ \sum_{i=1}^{n}{a_i \left| \bold b_i - [C] \bold r_i \right|^2}

La minimisation de ce critère n'a rien d'évident et de nombreuses méthodes ont été proposées. Il s'agit d'identifier les 9 paramètres de la MCD respectant les différentes contraintes énoncées précédemment (moindres carrés et règles de la MCD). L'algorithme QUEST (QUaternion ESTimation) offre une alternative intéressante. La forme quadratique est alors utilisée à la place de la MCD, permettant de réduire le nombre de paramètres. Nous ne rentrerons pas dans le détail de cette méthode dans le cadre de ce cours.


Cas général

Dans le cas général où nous ne disposons pas de plusieurs mesures de directions non parallèles effectuées au même instant, le problème d'estimation devient dépendant du temps. Bien que des méthodes récursives basées sur l'algorithme QUEST aient été développées et utilisées, le filtrage de Kalman est le moyen le plus utilisé pour estimer l'attitude d'un satellite en présence de bruits de mesure.

Filtre de Kalman

Le filtre de Kalman a été développé en 1960 comme une nouvelle approche pour le filtrage linéaire et les problèmes de prédiction. Il permet de maintenir une estimation de l'état d'un système dynamique en dehors des périodes d'observation, à partir d'un modèle de son erreur. Puisqu'il s'agit d'un filtre récursif, la quantité d'informations à traiter reste limitée, ce qui en fait un filtre très apprécié à bord des satellites. On a pour habitude de distinguer deux phases dans ce type de filtres, la prédiction et la mise à jour :

exempleFiltre de Kalman discret

C'est la version la plus simple du filtre de Kalman, seules l'estimation de l'état précédent et les mesures actuelles sont nécessaires.

Processus à estimer

Ici, le processus stochastique à estimer est gouverné par une équation différentielle linéaire :

\bold x_k = [A]_k \ \bold x_{k-1} + [B]_k \ \bold u_{k-1} + \bold w_{k-1}

La mesure devant permettre l'estimation s'écrit :

\bold z_k = [H]_k \ \bold x_k + \bold v_k

\bold w_k et \bold v_k représentent respectivement les bruits de processus et de mesure. On les suppose indépendants, blancs et de distribution de probabilité normale. [A] est la matrice qui relie l'état précédent k-1 à l'état actuel k, [B] est la matrice qui relie l'entrée de commande \bold u à l'état \bold x. [H] est la matrice reliant l'état \bold x à sa mesure \bold z.

Phase de prédiction

Durant la phase de prédiction, l'état et l'estimation de la covariance sont projetés dans le temps de l'état k-1 à l'état k :

  • \hat{\bold x}_{k|k-1} = [A]_k \ \hat{\bold x}_{k-1|k-1} + [B]_k \ \bold u_{k-1}
  • [P]_{k|k-1} = [A]_k \ [P]_{k-1|k-1} \ {[A]_k}^T + [Q]_k

[Q] est la matrice de covariance du bruit de processus \bold w, [P]_{k|k-1} est la matrice d'estimation a priori de la covariance de l'erreur.

Phase de mise à jour

Trois étapes se succèdent dans la phase de mise à jour. Il faut d'abord calculer le gain de Kalman [K], puis générer une estimation de l'état a posteriori en incorporant la mesure. Enfin, on obtient la matrice de covariance de l'erreur d'estimation a posteriori [P]_{k|k}.

  • [K]_k = [P]_{k|k-1} {[H]_k}^T \ {[S]_k}^{-1}
  • \hat{\bold x}_{k|k} = \hat{\bold x}_{k|k-1} + [K]_k \ \bold y_k
  • [P]_k = \left( [I] - [K]_k \ [H]_k \right) [P]_{k|k-1}

[I] est la matrice identité. Deux équations supplémentaires permettent d'obtenir l'innovation, ou résiduel, \bold y_k, et la covariance de l'innovation [S]_k :

  • \bold y_k = \bold z_k - [H]_k \ \hat{\bold x}_{k|k-1}
  • [S]_k = [H]_k \ [P]_{k|k-1} \ {[H]_k}^T + [R]_k

À chaque étape le processus est répété afin d'obtenir de nouvelles estimations a posteriori à partir des estimations a priori. En pratique, la matrice de covariance [R] du bruit de mesure est déterminée avant d'utiliser le filtre et peut être mise à jour par la suite. Il est plus compliqué de déterminer la matrice de covariance du bruit de processus [Q] car nous ne pouvons généralement pas directement observer le processus à estimer. Afin d'améliorer les performances du filtre, il est habituel de régler ces deux paramètres.

La plupart des systèmes physiques, et notamment ceux étudiés, sont non linéaires. Le filtre de Kalman classique n'est donc optimal que sur une faible portion des phénomènes pris en compte. Dans le cas de systèmes non-linéaires, nous utilisons donc un filtre de Kalman étendu, ou "Extended Kalman Filter".