Filtrage et lois de commande

Auteur: Gary Quinsac

Introduction

Le filtrage et les lois de commande sont présentés car ce spaont des aspects essentiels d'un SCAO. Néanmoins, ce cours a simplement pour ambition de vous en faire une brève introduction.

En mathématiques et en ingénierie, la théorie du contrôle a comme objet l’étude du comportement de systèmes dynamiques. En électronique et traitement du signal, un filtre est originellement un circuit qui rejette une partie indésirable d'un signal. On appelle également filtre un outil logiciel dont le but est la séparation des fréquences contenues dans un signal numérisé.


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".


Lois de contrôle

Auteur: Gary Quinsac

Introduction à la théorie du contrôle

La théorie du contrôle s'intéresse au comportement de systèmes dynamiques en fonction de leurs paramètres. Elle peut être vue comme une stratégie permettant de sélectionner la bonne entrée d'un système pour que le sortie soit celle désirée. Cela fait partie du domaine de l'automatique.

Boucles ouvertes et fermées

Un système de contrôle est un mécanisme altérant l'état futur d'un système. En l'absence de retour d'information concernant la sortie du système, on se trouve dans le cas d'une boucle ouverte. Prenons l'exemple d'un lave-vaisselle. Celui-ci est programmé pour tourner un certain temps, à une certaine température et avec une certaine quantité d'eau. Ces paramètres ne dépendent pas de l'état de la vaisselle qu'il contient.

Une boucle de rétroaction peut être ajoutée afin de modifier intelligemment la durée du cycle. On obtient alors ce que l'on appelle une boucle fermée, puisqu'une information sur l'état de sortie de notre système, obtenue à l'aide de capteurs, va être comparée à un signal de référence afin de nourir un contrôleur qui a la charge de choisir la bonne entrée. On peut ici parler d'asservissement.

Les boucles de contrôle d'attitude ont pour but d'assurer un contrôle stable de l'orientation du satellite, en prenant en compte les contraintes opérationnelles (temps de réponse aux commandes par exemple) et les perturbations externes et internes. On met en place un asservissement dans le but d'atteindre une valeur de consigne et de la maintenir. Pour ce faire, l'asservissement, ou correcteur, mesure en permanence l'écart entre la valeur réelle de la grandeur à asservir et la valeur de consigne. Il en déduit la commande appropriée que les actionneurs devront ensuite appliquer afin de réduire cet écart.

Systèmes linéaires

Un système linéaire est un objet qui peut être décrit par des équations linéaires. De tels systèmes sont essentiels car nous pouvons les résoudre. Pourtant, presque aucun système réel n'est un système linéaire. L'objectif est donc de simplifier l'objet étudié (actionneur, capteur, système dynamique...) afin de pouvoir l'approximer par un système linéaire. On parle alors de son domaine linéarité.

La réponse d'un système linéaire peut être obtenue en sommant ses réponses impulsionnelles. Cette sommation dans le domaine temporel est appelée convolution. Soit un signal d'entrée u(t) et une réponse impulsionnelle g(t), la sortie y(t) s'exprime :

y(t) = u(t) \ast g(t) = \int_0^t{u(\tau) \ g(t- \tau) \ d \tau}

Fonction de transfert

Afin de simplifier cette opération, on introduit la fonction de transfert. Une fonction de transfert est la transformée de Laplace de la réponse impulsionnelle d'un système linéaire lorsque ses conditions initiales (ou aux limites) sont nulles. Elle permet de transformer le produit de convolution en simple produit :

Y(p) = U(p) \cdot G(p)

definitionTransformée de Laplace

Soit f(t) une fonction du temps. Sa transformée de Laplace unilatérale F(p) est définie par L \left( f(t) \right) = F(p) = \int_{0}^{\infty}{f(t) \ exp(-p \ t) \ dt}p est la variable complexe.

Transformées de Laplace usuelles
f(t)F(p)
\delta (t) (Dirac)1
t\frac{1}{p^2}
x(t)X(p)
\dot x(t)p \cdot X(p) - X(0)
\ddot x(t)p^2 \cdot X(p) - p \cdot X(p) - \dot X(0)

Soit l'équation a x^n D \left( \frac{d}{dt} y \right) = N \left( \frac{d}{dt} u \right)u et y sont respectivement l'entrée et la sortie et D et N sont des polynômes à coefficients réels en (d/dt). Si l'on considère que les conditions initiales sont nulles, on peut réécrire l'équation différentielle précédente pour obtenir la fonction de transfert H :

D(p) \ Y(p) = N(p) \ U(p) \ \leftrightarrow \  \frac{Y(p)}{U(p)} = \frac{N(p)}{D(p)} = H(p)

Les pôles d'une fonction de transfert sont les valeurs pour lesquelles le dénominateur D, aussi appelé équation caractéristique, s'annule. Attention, tout ceci est vrai à condition que la fonction de transfert soit sous forme irréductible. Pour que le système soit stable, il faut que tous les pôles soient strictement à l'intérieur du cercle unité (\|p|<1).

Représentation de la boucle de contrôle d'attitude

On représente la boucle du SCA comme un contrôle en boucle fermée, avec le terme de rétroaction. On note R(p) le signal de référence, Y(p) le signal de sortie, D(p) la perturbation, U(p) le signal de contrôle, Gc(p) le contrôleur, E(p) l'erreur, Gp(p) le matériel à contrôler et C(p) la dynamique des capteurs. Si l'on considère que les perturbations sont nulles, la fonction de transfert s'écrit :

\frac{Y(p)}{R(p)} = \frac{G_c(p) \ G_p(p)}{1+G_c(p) \ G_p(p) \ C(p)}

Le dénominateur de cette équation est un polynome dont les racines déterminent le type de réponse. Le contrôleur peut être utilisé pour stabiliser le système ou lui donner des caractéristiques particulières.

Boucle ouverte ou fermée
images/boucles-ouverte-fermee.png
Dans la boucle ouverte, la durée du cycle de lavage ne dépend pas de la propreté de la vaisselle qu'il contient. Afin d'adapter cette durée à l'état des assiettes et verres, il faut qu'un capteur de propreté fournisse une information à comparer à la propretée désirée et qu'un contrôleur en déduise une nouvelle durée. C'est ce que l'on appelle une boucle fermée.
Crédit : Gary Quinsac
Fonction de transfert
images/fonction-transfert.png
Crédit : Gary Quinsac
Diagramme en bloc de la boucle de contrôle
images/boucle-SCA-fonction-transfert.png
Chaque élément de la boucle de contrôle d'attitude est représenté par sa fonction de transfert.
Crédit : "Fundamentals of Spacecraft Attitude Determination and Control", F. Landis Markley et John L. Crassidis.

Contrôleur

Le contrôleur a pour objectif de convertir l'erreur, c'est-à-dire l'écart entre la mesure de la sortie de la boucle et le signal de référence, en un signal de contrôle qui va finir par ramener l'erreur à 0.

Les performances du contrôleur et a fortiori de l'asservissement sont décrites par plusieurs paramètres :

L'asservissement doit ainsi assurer un compromis entre performance et stabilité. La performance est proportionnelle à la valeur du gain du correcteur, mais à partir d'une certaine valeur celui-ci a tendance à déstabiliser le système.

Contrôleur PID

Le contrôleur "Proportionnel-Intégral-Dérivé" est la logique de contrôle la plus utilisée pour les régulateurs avec boucle de rétroaction. Ce contrôleur agit de trois manières :

La fonction de transfert d'un régulateur PID s'exprime :

C(p) = K_p + \frac{1}{K_i} \ \frac{1}{p} +K_d \ p

Considérons un système de contrôle d'attitude mono-axe simple. L'équation d'Euler s'exprime :

[I] \ \ddot \theta (t) = u(t) + w(t)

[I] est la matrice d'inertie, \theta est l'angle, u est le couple de contrôle et w est le couple perturbateur extérieur.

Contrôleur PD

Un simple contrôle proportionnel ne pourrait pas atteindre une réponse asymptotiquement stable, nous introduisons donc un régulateur PD (proportionnel-dérivé) :

u(t) = -K_p \ \theta(t) - K_d \ \dot \theta (t)

K_p et K_d sont des gains qu'il faut déterminer. Le système en boucle fermée et son équation caractéristique s'écrivent alors :

[I] \ \ddot \theta (t) + [K_d] \ \dot \theta (t) + [K_p] \ \theta(t) = w(t) \ \leftrightarrow \ I \ p^2 + [K_d] \ p + [K_p] = 0

Dans le but d'identifier les valeurs des deux gains, nous introduisons \omega_n et \zeta, respectivement la fréquence propre (fréquence de la réponse sinusoïdale du système non amorti) et le facteur d'amortissement. L'équation caractéristique est réécrite en introduisant ces deux nouvelles grandeurs :

p^2 + 2 \ \zeta \ \omega_n \ p + {\omega_n}^2 = 0

Les gains du contrôleur s'expriment alors : [K_p] = [I] \ {\omega_n}^2 et [K_d] = 2 \ [I] \ \zeta \ \omega_n. On choisit généralement le facteur d'amortissement de tel sorte que 0,5 \leq \zeta \leq 0,707. Il est important de noter que l'information sur la dérivée provient de gyroscopes ou de différences finies de l'attitude.

Contrôleur PID

Pour une perturbation constante de valeur unitaire, le système asservi par le contrôleur PD produit une attitude en régime permanent non-nulle : \theta(\infty) = 1/K_p. Idéalement nous souhaitons que l'attitude en régime permanent soit nulle, c'est la raison pour laquelle nous introduisons le contrôleur PID (proportionnel-intégral-dérivé) :

u(t) = -K_p \ \theta(t) - K_i \int{\theta(t) \ dt} \ - K_d \ \dot \theta(t)

L'équation caractéristique s'écrit cette fois :

[I] \ p^3 + [K_d] \ p^2 + [K_p] \ p + [K_i] = 0 \ \leftrightarrow \ \left( p^2 + 2 \ \zeta \ \omega_n \ p + {\omega_n}^2 \right) \left( p + \frac{1}{T} \right) = 0

\omega_n et \zeta sont toujours la fréquence propre et le facteur d'amortissement, et T est la constante temporelle associée au contrôle intégral. Les gains du contrôleur PID s'expriment : [K_p] = [I] \left( {\omega_n}^2 + \frac{2 \ \zeta \ \omega_n}{T} \right), [K_i] = [I] \ \frac{{\omega_n}^2}{T} et [K_d] = [I] \left( 2 \ \zeta \ \omega_n + \frac{1}{T}\right). On choisit souvent la constante T telle que : T \approx \frac{10}{\zeta \ \omega_n}.

Facteur d'amortissement
images/facteur_amortissement.png
Réponse pour différents facteurs d'amortissement.
Crédit : "Fundamentals of Spacecraft Attitude Determination and Control", F. Landis Markley et John L. Crassidis.