Le filtre de Kalman est souvent présenté comme le saint Graal en ce qui concerne les méthodes d'estimations. Nous verrons dans cet article ce que permet de faire un tel filtre ainsi que ses limites.

Principe et points forts

Le filtre de Kalman est une méthode visant à estimer des paramètres d'un système évoluant dans le temps à partir de mesures bruités.
On retrouve ce filtre dans bon nombre de domaines relatifs au traitement du signal, radar, traitement d'images etc.
Un exemple d'utilisation de ce filtre pourrait être la détermination de la position et de la vitesse d'un véhicule à partir de données GPS fournis par plusieurs satellites.

La force de ce filtre est sa capacité de prédiction des paramètres et de rectification des erreurs, non seulement des capteurs, mais aussi du modèle lui-même !
En effet, pour appliquer un filtre de Kalman, il faut avant tout modéliser le système pour lequel on veut estimer les paramètres, de manière linéaire. (des variantes du filtre de Kalman existent pour la prise en compte de modèles non linéaires)
Dans une méthode d'estimation classique (par exemple, la méthode des moindres carrés), une simple erreur dans la modélisation du système entraine inévitablement une erreur au niveau de l'estimation. La force du filtre de Kalman est d'intégrer un terme d'imprécision sur le modèle lui-même, ce qui lui permet de donner des estimations correcte malgré les erreurs de modélisation (pour peu que les erreurs restent raisonnables).

Un autre point fort du filtre de Kalman (mais que l'on retrouve aussi dans la méthode des moindres carrés par exemple) est sa capacité à déterminer l'erreur moyenne de son estimation. En effet, l'outil Kalman fournir un vecteur contenant les paramètres estimés, mais aussi une matrice de covariance de l'erreur ! Cette matrice nous renseigne donc sur la précision de l'estimation, ce qui peut être utile dans de nombreuses applications. Un autre atout du filtre de Kalman est que la convergence de cette erreur est garantie !

Le fonctionnement du filtre de Kalman peut se diviser en deux étapes

  • Une première étape de prédiction de l'estimation selon le modèle du système. Pour ce faire, le filtre de Kalman reprend l'estimation précédente des paramètres et de l'erreur et prédit les nouveaux paramètres et la nouvelle erreur en fonction de la modélisation du système.
  • La seconde étape va faire la mise à jour de cette prédiction grâce aux nouvelles mesures. Ces mesures (par définition bruités) vont permettre d'obtenir une estimation des paramètres et de l'erreur à partir de la prédiction faite. Si jamais le modèle comporte des erreurs, cette étape de mise à jour permettra de les rectifier.

 

Les limites

Le filtre de Kalman est donc une méthode d'estimation et de prédiction puissante prenant en compte les modélisations du système. Néanmoins, ce filtre n'est pas forcement l'outil à appliquer dans tous les cas. En effet, comme nous l'avons vu, le développeur à besoin de modéliser le système assez précisément afin de designer un filtre efficace. Le problème est que certains systèmes sont difficilement modélisable et, encore moins linéairement.
Dans le cas où la modélisation est trop approximative, le filtre n'est pas assez performant et l'erreur des estimations ne convergera pas assez rapidement, elle restera grande.
Pour palier à ce problème de modélisation linéaire du système, un filtre de Kalman étendu a été développé et permet de prendre en compte une modélisation non linéaire. Néanmoins, cette technique à quelques défauts. En premier lieu, la covariance de l'erreur (la précision des estimations) ne converge pas obligatoirement (comme c'était le cas avec une modélisation linéaire). Le second défaut est sont coût calculatoire plus important. En effet, de nouvelles matrices coûteuses rentre en jeux (les matrices des dérivés partielles des équations d'états et de mesures modélisant le système), ce qui peut être une limite à son utilisation, surtout dans des systèmes embarqués très restreint au niveau de la puissance de calcul.

Une autre limite importante d'une telle méthode est que le filtre de Kalman permet de prendre en compte uniquement un modèle de bruit Gaussien. Le bruit peut en général être modélisé de façon Gaussienne, mais dans certains cas, un autre type de bruit est requit (notamment en traitement d'images où l'on utilise fréquemment des bruits de Poisson). Cette restriction limite donc l'utilisation du filtre de Kalman.

 

Le filtre de Kalman est donc une méthode d'estimation intéressante, mais qui n'est utilisable que lorsque l'on peut décrire assez précisément notre système. S'il est impossible de trouver une modélisation correcte du système, il est alors préférable de se tourner vers d'autres méthodes (comme la méthode de Monté-Carlo par exemple qui est une méthode statistique, mais qui requiert une importante puissance de calcul)

 

 

Pour en savoir plus sur le filtre de Kalman, n'hésitez pas à lire cet article qui explique le côté mathématique de ce filtre : De l'estimateur optimal au filtre de Kalman

16 commentaires à “Le filtre de Kalman : intérêts et limites”

  1. Bonjour,

    Merci pour votre article, vraiment très bien fait !
    J'aurais juste une petite question : savez vous comment le fait que l'erreur converge dans le cas d'une modélisation linéaire, se traduit ? Est-ce que ça se traduit sur la matrice P+(k) ?

    Bonne journée !

    • Bonjour,

      Oui, c'est ça. La matrice Pk représente la covariance de l'erreur d'estimation. Les termes sur la diagonale déterminent donc le niveau de crédibilité à accordé à l'estimation des paramètres du vecteur estimé.
      Cette variance converge jusqu'à atteindre la borne de Cramer-Rao dans le cas d'une estimation optimale (la modélisation colle parfaitement avec la réalité). Si la modélisation approxime le comportement réel du système, les coefficients de la matrice Q seront plus important. De ce fait, cette covariance de l'erreur convergera toujours, mais sera supérieure cette borne de Cramer-Rao.

      D'où l'importance de la modélisation du système dans un filtre de Kalman.

  2. salut
    Merci pour votre article, vraiment très bien fait
    j'ai pas compris comment la matrice de covariance de l'erreur ! nous renseigne sur la précision ?
    est ce que vous pouvez m'expliquer svp .
    mrc

  3. bonjour j'espere tu vas bien .

    svp vous avez dit que la force du filtre de Kalman est d'intégrer un terme d'imprécision sur le modèle lui-même.
    c quoi ce terme d'imprécision ?
    grace a quoi le filtre de kalman corrige les erreur est ce que grace au gain de filtre ?

    Merci d'avance.
    bonne journée

    • Bonjour,

      grace a quoi le filtre de kalman corrige les erreur est ce que grace au gain de filtre ?

      Ce n'est pas exactement ça. Le gain de Kalman est déjà présent dans l'implémentation réursive du moindre carré.
      C'est plutôt dû à la matrice Q (covariance du bruit d'état) qui autorise le modèle à évoluer dans le temps.

      Je te conseil de lire l'article suivant. ça y est expliqué.
      Ferdinand

  4. salut,
    comment déterminer le gain de filtre de KALMAN?
    merci.

  5. Bonjour,

    je fait mon projet de fin d'études sur l'estimation des paramètres cinétiques d'un réacteur nucléaire, j'essaye de modéliser mon System pour utiliser le filtre de Kalman, pour le moment j'ai un problème avec le bruit d'état et le bruit d'observation, les deux bruit sont gaussiens mais j'ai pas la variance et la moyenne de chacun, pouvez vous me proposer une solution

    Merci

  6. S'il vous plait est ce que vous pouvez m'expliquer queleques choses en ce qui concerne le filtre de kalman puisque j'ai un Tipe a propos de ce filtre et j'ai perdu le fil!!

  7. bonjour,
    je vous remrcie pour toute cette documentation sur le filtre de kalman.
    est ce que un ensemble de vehicule se deplaçant sur une autoroute peuvent estimer (predire) la prochaine position
    de tout ces voisins sachant qu'ils diffusent periodiquemment des beacons qui conttienne leurs position,vitesse direction et accélération
    merci

  8. bonjour
    peut-on me donné des documentations à propos le filtre kalman etendu j'ai beaucoup de problème sur ce-ci et merci d'avence voila mon e_mail hanane.compte@yahoo.fr
    cordialemment

  9. j'ai utilise le filtre de Kalman pour estimer la pose d'un robot mobile, une fois que j'estime la position et la vitesse plus l'accélération; j'ai des résultats bon, mais une fois que j'utilise ces résultats comme trajectoire de référence sur le quadrotor j'ai trouve les sortie de quadrotor (x,y,z) un peut bruité. comment faire pour éliminer ce bruit?

  10. Bonjour a Tous ,
    j'ai une centrale inertielle et je voudrais bien faire un algorithme de fusion pour avoir l'orientation , du coup je sais pas quoi faire , quelqu'un peut m'aider Svp

    merci

  11. bonjour, votre article est très intéressant. croyez vous que ce filtre est utilisable pour lisser un signal bruité en instantanée ?

Laisser un commentaire

Vous pouvez utiliser ces tags et attributs HTML&nsbp;: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

© 2011-2012 Ferdinand Piette