🎯 Filtre de Kalman · fondements théoriques

Chapitre 07
La correction : le gain optimal

Objectifs du chapitre

1. Les équations, d'abord

La correction part de l'a priori (x⁻, P⁻) issu de la prédiction, encaisse la mesure z, et produit l'a posteriori (x, P). Voici les cinq lignes ; le reste du chapitre les dérive.

innovation :        y = z − H·x⁻
covariance d'innovation : S = H·P⁻·Hᵀ + R
gain de Kalman :      K = P⁻·Hᵀ·S⁻¹
état corrigé :         x = x⁻ + K·y
covariance corrigée :   P = (I − K·H)·P⁻

Toute la subtilité tient dans le choix de K. On va le trouver trois fois. Que trois raisonnements différents aboutissent au même K n'est pas un hasard : c'est la manifestation de l'optimalité.

2. Dérivation 1 — le conditionnement gaussien

C'est la voie la plus directe : elle réutilise mot pour mot les formules de conditionnement du chapitre 3 (§3.3). L'idée : considérer la loi jointe de l'état et de la future mesure, puis conditionner sur la valeur observée.

Avant de mesurer, x ∼ N(x⁻, P⁻) et z = H·x + v avec v ∼ N(0, R). Le couple (x, z) est gaussien ; calculons ses blocs :

E[z] = H·x⁻
Cov[z] = H·P⁻·Hᵀ + R = S
Cov[x, z] = P⁻·Hᵀ

(Le bloc croisé Cov[x,z] = E[(x−x⁻)(z−Hx⁻)ᵀ] = E[(x−x⁻)(x−x⁻)ᵀ]Hᵀ = P⁻Hᵀ, le bruit v étant indépendant de x.) On applique la formule de conditionnement μ' = μ₂ + Σ₂₁Σ₁₁⁻¹(z−μ₁) avec x₂ = x et x₁ = z :

x = x⁻ + P⁻·Hᵀ·S⁻¹ · (z − H·x⁻)
P = P⁻ − P⁻·Hᵀ·S⁻¹ · H·P⁻

Le facteur souligné est exactement K = P⁻·Hᵀ·S⁻¹. En le substituant, x = x⁻ + K·y et P = (I − K·H)·P⁻. Les cinq équations tombent d'un coup. La mise à jour de Kalman est le conditionnement d'une gaussienne — la figure 3.2 le montrait déjà géométriquement : la mesure découpe une tranche, la loi se recale et se resserre.

3. Dérivation 2 — moindres carrés pondérés (MAP)

Deuxième voie, sans parler de conditionnement : on cherche l'état le plus probable a posteriori (le maximum a posteriori, MAP). Comme la loi est gaussienne, maximiser sa densité revient à minimiser l'opposé de son log — une somme de deux distances de Mahalanobis :

J(x) = (x − x⁻)ᵀ P⁻⁻¹ (x − x⁻)  +  (z − H·x)ᵀ R⁻¹ (z − H·x)

Lisons ce coût : le premier terme pénalise l'éloignement de la prédiction (pondéré par la confiance dans le modèle, P⁻⁻¹) ; le second pénalise le désaccord avec la mesure (pondéré par la confiance dans le capteur, R⁻¹). L'estimation optimale est le compromis qui minimise la somme.

On annule le gradient ∂J/∂x = 0 :

−2 P⁻⁻¹ (x − x⁻) − 2 Hᵀ R⁻¹ (z − H·x) = 0
( P⁻⁻¹ + Hᵀ R⁻¹ H ) x = P⁻⁻¹ x⁻ + Hᵀ R⁻¹ z

On identifie la covariance a posteriori sous forme d'information — les informations s'additionnent, exactement comme dans la fusion scalaire du chapitre 3 :

P⁻¹ = P⁻⁻¹ + Hᵀ R⁻¹ H

La forme « gain » s'en déduit par le lemme d'inversion matricielle (Sherman-Morrison-Woodbury), qui donne l'identité P⁻¹ = P⁻⁻¹ + HᵀR⁻¹H ⇒ P·Hᵀ·R⁻¹ = P⁻·Hᵀ·S⁻¹ = K. On retrouve alors x = x⁻ + K(z − Hx⁻) et P = (I − KH)P⁻.

Cette voie éclaire un point capital : le filtre de Kalman est un moindres carrés récursif pondéré par les incertitudes. Là où Gauss ajustait une orbite en minimisant la somme des carrés des résidus, Kalman fait de même à chaque pas, en pondérant chaque terme par l'inverse de sa covariance, et en repartant du résultat précédent au lieu de tout recalculer.

La forme information P⁻¹ = P⁻⁻¹ + HᵀR⁻¹H est belle et parlante : chaque mesure ajoute de l'information (HᵀR⁻¹H ⩾ 0), donc P ne peut que diminuer. C'est le pendant exact de « prédire = perdre, corriger = gagner ». Certaines implémentations travaillent d'ailleurs directement en information — c'est le filtre d'information (chapitre 10), commode pour fusionner beaucoup de capteurs.

4. Dérivation 3 — la variance minimale (BLUE)

Troisième voie, la plus exigeante et la plus révélatrice. Elle ne suppose pas la gaussianité : on impose seulement à l'estimateur d'être linéaire en la mesure et non biaisé, puis on choisit celui de variance minimale. On cherche donc K dans la forme x = x⁻ + K(z − Hx⁻) qui minimise l'incertitude résiduelle.

Premier calcul, exact pour tout K : la covariance a posteriori en fonction de K. En posant l'erreur e = x − (x⁻ + K y) et en développant, on obtient la forme de Joseph :

P(K) = (I − K·H)·P⁻·(I − K·H)ᵀ + K·R·Kᵀ

Cette expression est valable quel que soit K (même mal choisi) et reste manifestement symétrique et positive — on y reviendra pour la stabilité numérique (chapitre 10). Reste à choisir le K qui minimise l'incertitude totale, c'est-à-dire la trace de P(K) (la somme des variances des composantes).

On développe la trace et on annule sa dérivée par rapport à K (via ∂ tr(KAKᵀ)/∂K = 2KA et ∂ tr(KB)/∂K = Bᵀ) :

∂ tr(P) / ∂K = −2 (I − K·H)·P⁻·Hᵀ + 2 K·R = 0
K·(H·P⁻·Hᵀ + R) = P⁻·Hᵀ
K = P⁻·Hᵀ·(H·P⁻·Hᵀ + R)⁻¹ = P⁻·Hᵀ·S⁻¹

Le même K, pour la troisième fois. En le réinjectant dans la forme de Joseph, les termes se simplifient jusqu'à la forme courte P = (I − KH)P⁻ — mais cette simplification n'est valide que pour le K optimal (d'où l'intérêt de garder Joseph quand on doute du réglage).

5. Trois chemins, un sommet

Récapitulons ce qui vient de se passer. Trois questions différentes :

… et une seule réponse : K = P⁻·Hᵀ·S⁻¹. Cette convergence n'est pas fortuite. Sous les hypothèses linéaires-gaussiennes, l'espérance conditionnelle (la meilleure estimation possible), le mode a posteriori et le meilleur estimateur linéaire coïncident. C'est ce que veut dire « le filtre de Kalman est optimal » : il n'y a rien au-dessus à atteindre. Le chapitre 8 dépliera cette optimalité (MMSE, innovation orthogonale).

Les deux formes de P ne sont pas équivalentes en pratique. La forme courte (I − KH)P⁻ est rapide mais fragile : les arrondis peuvent lui faire perdre symétrie et positivité, et elle n'est exacte que pour le K optimal. La forme de Joseph (I−KH)P⁻(I−KH)ᵀ + KRKᵀ est plus coûteuse mais reste symétrique définie positive même avec un K approché ou des arrondis — précieuse pour un filtre qui tourne des heures (chapitre 10).

Exercices

Exercice 1 — Retrouver le cas scalaire

Prenez H = 1 et des scalaires. Réduisez K = P⁻HᵀS⁻¹ et P = (1−KH)P⁻. Comparez à la fusion de gaussiennes du chapitre 3.

Voir la solution
S = P⁻ + R    K = P⁻ / (P⁻ + R)    P = (1 − K)·P⁻

C'est exactement la fusion scalaire du chapitre 3 (K = A/(A+B) avec A = P⁻, B = R). La mise à jour de Kalman n'est rien d'autre que cette fusion, rhabillée en matrices pour l'état multidimensionnel avec une observation partielle H.

Exercice 2 — Pourquoi inverser S et pas P ?

L'état a n composantes, la mesure m, avec m ≪ n en général. Dans K = P⁻HᵀS⁻¹, quelle matrice inverse-t-on, et de quelle taille ? Pourquoi est-ce une bonne nouvelle ?

Voir la solution

On inverse S, de taille m×m — la dimension des mesures, souvent 1 à 3. On n'inverse jamais P (n×n, potentiellement grand). Une inversion de matrice coûte ~O(m³) ; garder m petit rend la correction bon marché et bornée, ce qui compte pour le temps réel. Pour m=1, l'« inversion » est une simple division. C'est un des atouts pratiques majeurs du filtre.

Récapitulatif