Aller au contenu

Filtre de Kalman

Un article de Wikipédia, l'encyclopédie libre.
Filtre de Kalman
Type
Nommé en référence à
(en) Concept de base du filtre de Kalman.

En statistique et en théorie du contrôle, le filtre de Kalman est un filtre à réponse impulsionnelle infinie qui estime les états d'un système dynamique à partir d'une série de mesures incomplètes ou bruitées. Le filtre a été nommé d'après le mathématicien et informaticien américain d'origine hongroise Rudolf Kálmán.

Exemples d'applications

[modifier | modifier le code]

Le filtre de Kalman est utilisé dans une large gamme de domaines technologiques (radar, vision électronique, communication…). C'est un thème majeur de l'automatique et du traitement du signal. Un exemple d'utilisation peut être la mise à disposition, en continu, d'informations telles que la position ou la vitesse d'un objet à partir d'une série d'observations relatives à sa position, incluant éventuellement des erreurs de mesures.

Par exemple, pour le cas des radars où l'on désire suivre une cible, des données sur sa position, sa vitesse et son accélération sont mesurées à chaque instant mais avec énormément de perturbations dues au bruit ou aux erreurs de mesure. Le filtre de Kalman fait appel à la dynamique de la cible qui définit son évolution dans le temps pour obtenir de meilleures données, éliminant ainsi l'effet du bruit. Ces données peuvent être calculées pour l'instant présent (filtrage), dans le passé (lissage), ou sur un horizon futur (prédiction).

Le filtrage de Kalman est aussi de plus en plus utilisé en dehors du domaine de l'électronique, par exemple en météorologie et en océanographie, pour l'assimilation de données dans un modèle numérique, en finance ou en navigation et il est même utilisé dans l'estimation[1] des états de trafic routier dans le cas de commande par rampe d'accès où le nombre de boucles magnétiques sur la route est insuffisant.

Le filtre de Kalman doit son nom à Rudolf Kalman bien que Thorvald Nicolai Thiele[2] et Peter Swerling aient développé un algorithme similaire avant lui. La paternité du filtre fait l'objet d'une petite controverse dans la communauté scientifique. Le filtre a été décrit dans diverses publications par Swerling (1958), Kalman (1960)[3] et Kalman-Bucy (1961)[4].

Stanley Schmidt est reconnu comme ayant réalisé la première mise en œuvre du filtre. C'était lors d'une visite de Rudolf Kalman au NASA Ames Research Center qu'il vit le potentiel du filtre pour l'estimation de la trajectoire pour le programme Apollo. Ceci conduisit à l'utilisation du filtre dans l'ordinateur de navigation.

Une grande variété de filtres de Kalman a été, depuis, développée à partir de la formulation originale dite filtre de Kalman simple. Schmidt développa le filtre de Kalman étendu, Bierman, Thornton et bien d'autres développèrent toute une gamme de filtres racine carrée. Le filtre le plus utilisé est vraisemblablement la phase-locked loop, largement répandue dans les radios, ordinateurs, équipements de communication, etc.

Le filtre de Kalman en contexte discret

[modifier | modifier le code]

Le filtre de Kalman en contexte discret est un estimateur récursif : pour estimer l'état courant, seules l'estimation de l'état précédent et les mesures actuelles sont nécessaires. En d'autres termes, l'historique des observations et des estimations n'est ainsi pas requis. Le filtre de Kalman suppose que le processus discret réel (où dénote l'indice de temps), suit la loi d'évolution linéaire suivante :

dans laquelle :

  • est la matrice d'évolution, ou matrice de transition, reliant l'état précédent à l'état actuel  ;
  • est la commande en entrée ;
  • est la matrice de contrôle de la commande reliant la commande à l'état  ;
  • est le bruit d'évolution, gaussien centré et de matrice de covariance .

À chaque instant , le processus est observé par des mesures s'exprimant comme suit :

dans laquelle :

  • est la matrice d'observation ;
  • est le bruit de mesure, gaussien centré et de matrice de covariance .

Ces deux équations sont appelées les équations d'évolution et d'observation du système.

L'état réel est estimé par 2 variables :

  • , l'estimation de l'état à l'instant k ;
  • , la matrice de covariance de l'erreur (une mesure de la précision de l'état estimé).

Les notations et désignent l'estimation et la covariance de l'estimateur obtenues à l'instant à partir des observations jusqu'à l'instant .

Si les bruits d'évolution et de mesure ne sont pas gaussiens, le filtre optimal n'est pas linéaire en général mais, comme on le montre aisément, les formules de récurrence qui suivent, utilisant la matrice de covariance et la moyenne des bruits d'évolution et de mesure, déterminent le meilleur estimateur linéaire possible au sens des moindres carrés[5]. Néanmoins, si les lois de probabilité de ces bruits sont très éloignées de lois gaussiennes, par exemple des lois de Poisson, le filtre linéaire optimal sera de piètre qualité en comparaison du filtre optimal (au sens des moindres carrés), qui est alors non linéaire[6].

Le filtre de Kalman est composé de deux phases distinctes : la prédiction et la mise à jour. La phase de prédiction utilise l'état estimé de l'instant précédent pour produire une estimation de l'état courant. Dans l'étape de mise à jour, les observations de l'instant courant sont utilisées pour corriger l'état prédit dans le but d'obtenir une estimation plus précise.

Prédiction

[modifier | modifier le code]
(état prédit)
(estimation prédite de la covariance)

avec :

  •  : matrice qui relie l'état précédent à l'état actuel
  •  : entrée de commande
  •  : matrice qui relie l'entrée de commande à l'état
  •  : matrice de covariance a posteriori estimée à l'état précédent
  •  : matrice de covariance du bruit d'évolution

Mise à jour

[modifier | modifier le code]
(innovation)
(covariance de l'innovation)
(gain de Kalman)
(état mis à jour)
(covariance mise à jour)

avec :

  •  : observation ou mesure du processus à l'instant k
  •  : matrice qui relie l'état à la mesure
  •  : matrice d'estimation a posteriori de la covariance de l'erreur
  •  : matrice de covariance du bruit de mesure
  •  : matrice identité aux dimensions adéquates

Le gain de Kalman est choisi pour minimiser la valeur de la covariance a posteriori de l'estimateur.

Le filtre d'information

[modifier | modifier le code]

Durrant Whyte a bien traité[Quoi ?] le filtre informationnel et a montré ses avantages par rapport au filtre de Kalman[réf. nécessaire], il a surtout traité son aspect décentralisé. Dans le cas décentralisé on n'a pas besoin d'une unité centrale de traitement de données, ce qui réduit fortement le temps d'exécution.

Dans le filtre de l'information, la covariance et l'état estimés sont respectivement remplacés par la matrice d'information et le vecteur d'information. Ils sont définis par :

De même, la covariance et l'état prédits ont les formes d'information équivalentes, définies par :

La covariance et le vecteur de mesure sont définis par :

La mise à jour de l'information devient maintenant une somme triviale :

L'avantage principal du filtre de l'information est que N mesures peuvent être filtrées à chaque instant simplement en additionnant leurs matrices et vecteurs de l'information si la matrice R est une matrice diagonale.

Pour prédire le filtre d'information, la matrice et le vecteur d'information peuvent être convertis de nouveau à leurs équivalents de l'espace d'état ou, alternativement, la prédiction de l'espace d'information peut être utilisée.

Noter également que F et Q doivent être inversibles.

L'avantage principal du filtre informationnel apparait dans son étape de correction qui est beaucoup plus simple que celle du filtre de Kalman. Ceci apporte de nombreux avantages au problème de diagnostic et surtout dans le cas de détection de plusieurs défauts simultanés.

Les filtres non linéaires

[modifier | modifier le code]

Le filtre de Kalman est limité aux systèmes linéaires. Cependant, la plupart des systèmes physiques sont non linéaires. Le filtre n'est donc optimal que sur une petite plage linéaire osculatrice des phénomènes réels pris en compte par la linéarisation de l'équation physique. La non-linéarité peut être associée au modèle du processus, au modèle d'observation ou bien aux deux.

Filtre de Kalman étendu

[modifier | modifier le code]

Dans le filtre de Kalman étendu (FKE), les modèles d'évolution et d'observation n'ont pas besoin d'être des fonctions linéaires de l'état mais peuvent à la place être des fonctions différentiables.

La fonction f peut être utilisée pour calculer l'état prédit à partir de l'état estimé précédent et, semblablement, la fonction h peut être employée pour calculer l'observation prédite de l'état prédit. Cependant, f et h ne peuvent pas être appliqués directement au calcul de la covariance : une matrice des dérivées partielles, la Jacobienne, est calculée.

À chaque instant, la Jacobienne est évaluée avec les états estimés courants. Ces matrices peuvent être employées dans les équations du filtre de Kalman. Ce processus linéarise essentiellement la fonction non linéaire autour de l'estimation courante.

Ceci donne les équations du filtre de Kalman étendu suivantes :

Prédiction

Mise à jour

Où les matrices de transition et d'observation sont définies comme étant les Jacobiennes suivantes :

Remarque : la convergence de ce filtre n'est aucunement assurée car il s'agit d'une convergence locale. En fait, il existe de nombreux exemples pour lesquels la convergence du filtre dépend de l'initialisation de l'état à l'instant initial.

Filtre de Kalman sans parfum

[modifier | modifier le code]

Le filtre de Kalman sans parfum (Unscented Kalman filter, UKF)[7], procède à une approximation de la densité a posteriori par une gaussienne comme dans le filtre de Kalman étendu. Mais plutôt que de faire une approximation des fonctions non linéaires du modèle d'évolution et du modèle de mesure, il réalise une approximation de la densité de probabilité par un ensemble de points pondérés convenablement choisis de façon déterministe. Ces points sont transformés par les fonctions non linéaires d'évolution et de mesure afin d'obtenir une nouvelle densité de probabilité. Cette approximation est appelée la transformée sans parfum (Unscented Transform).

Les modèles d'évolution et de mesure sont les mêmes que celles du filtre de Kalman étendu.

L'algorithme du filtre de Kalman sans parfum est le suivant :

Calcul des points d'approximation

avec :

et

Calcul des poids associés

Ceci est réalisé par l'usage de la transformée sans parfum.

Prédiction

Estimation

Le filtre de Kalman sans parfum fournit une alternative intéressante au filtre de Kalman étendu et donne dans plusieurs cas de meilleurs résultats que ce dernier, pour une complexité équivalente[8]. Cependant, ce filtre montre ses limites dans le cas de systèmes fortement non linéaires et/ou non gaussiens[9],[10].

Applications

[modifier | modifier le code]

Références

[modifier | modifier le code]
  1. www.springerlink.com/index/M87W5148L57H0L46.pdf
  2. Steffen L. Lauritzen, Thiele: Pioneer in Statistics, Oxford University Press, 2002. (ISBN 0-19-850972-3).
  3. Kalman, R. E. "A New Approach to Linear Filtering and Prediction Problems," Transactions of the ASME - Journal of Basic Engineering Vol. 82: p. 35-45 (1960)
  4. Kalman, R. E., Bucy R. S., "New Results in Linear Filtering and Prediction Theory", Transactions of the ASME - Journal of Basic Engineering Vol. 83: p. 95-107 (1961).
  5. (en-US) Jeffrey Uhlmann et Simon J. Julier, « Gaussianity and the Kalman Filter: A Simple Yet Complicated Relationship », Journal de Ciencia e Ingeniería, vol. 14, no 1,‎ , p. 21–26 (ISSN 2539-066X et 2145-2628, DOI 10.46571/jci.2022.1.2, lire en ligne, consulté le )
  6. (en-US) Oleg V. Makhnin, « Filtering and parameter estimation for a jump stochastic process with discrete observations », The Electronic Communications in Probability, vol. 13,‎ , p. 210-224 (ISSN 2539-066X et 2145-2628, DOI 10.1214/ECP.v13-1363, lire en ligne)
  7. Simon J. Julier et Jeffrey K. Uhlmann, « New extension of the Kalman filter to nonlinear systems », Signal Processing, Sensor Fusion, and Target Recognition VI, SPIE, vol. 3068,‎ , p. 182–193 (DOI 10.1117/12.280797, lire en ligne, consulté le )
  8. Simon S. Haykin, Kalman filtering and neural networks, Wiley, (ISBN 0-471-46421-X, 978-0-471-46421-1 et 0-471-22154-6, OCLC 52366672, lire en ligne)
  9. S.J. Julier, « The scaled unscented transformation », Proceedings of the 2002 American Control Conference (IEEE Cat. No.CH37301), vol. 6,‎ , p. 4555–4559 vol.6 (DOI 10.1109/ACC.2002.1025369, lire en ligne, consulté le )
  10. Cindy CAPPELLE, « Localisation de véhicules et détection d'obstacles Apport d'un modèle virtuel 3D urbain », Thèse de doctorat Université de Lille,‎