0% ont trouvé ce document utile (0 vote)
27 vues8 pages

Kalman

Le document présente une initiation au filtre de Kalman, une méthode d'estimation d'état utilisée pour traiter des données bruitées dans des systèmes dynamiques. Il explique le fonctionnement du filtre à travers ses phases de prédiction et de mise à jour, ainsi que son application pratique sur un oscillateur harmonique amorti. Des exemples d'applications dans divers domaines, tels que la navigation inertielle et le traitement du signal, sont également fournis.

Transféré par

Enzo ANDREANI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
27 vues8 pages

Kalman

Le document présente une initiation au filtre de Kalman, une méthode d'estimation d'état utilisée pour traiter des données bruitées dans des systèmes dynamiques. Il explique le fonctionnement du filtre à travers ses phases de prédiction et de mise à jour, ainsi que son application pratique sur un oscillateur harmonique amorti. Des exemples d'applications dans divers domaines, tels que la navigation inertielle et le traitement du signal, sont également fournis.

Transféré par

Enzo ANDREANI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Utilisation du filtre de Kalman

Édité le
Florian MAETZ – Relecture de Ludovic CHAMOIN 17/01/2025

Cette ressource est issue d’un travail personnel de Florian Matez, doctorant en 2ème année de thèse
au sein de l’université Paris Saclay. Ce texte a été relu par Ludovic Chamoin, enseignant chercheur
au LMPS, responsable de l’équipe STAN.

Pour connaître l’état d’un système, on peut envisager de l’instrumenter avec un ensemble de
capteurs. Cependant, il est souvent difficile d’installer des capteurs pour mesurer toutes les
grandeurs d’intérêt. De plus, les données fournies par ces capteurs sont souvent entachées
d’erreurs dues aux incertitudes liées au bruit de mesure. Le filtre de Kalman propose une solution
à ces problèmes en offrant une méthode d’estimation d’état à partir de mesures partielles et
bruitées. La Figure 1 illustre ce processus : les données bruitées de position, représentées en vert,
sont traitées par le filtre de Kalman pour estimer une position, affichée en orange, que l’on
compare à la trajectoire réelle, représentée en bleu.

Figure 1 : Utilisation de filtre de Kalman pour estimer une trajectoire à partir de mesures de positions
bruitées

Cette ressource présente une initiation aux filtres de Kalman appliqués à un système dynamique.
Elle offre un contexte théorique ainsi qu’un contexte pratique avec l’utilisation d’un notebook
Jupyter pour expérimenter l’utilisation du filtre de Kalman sur un oscillateur harmonique amorti.

1 - Introduction
Le filtre de Kalman, du nom de son inventeur le mathématicien et ingénieur Rudolf E. Kalman, a
été développé dans les années 1960 en tant qu'outil puissant dans le domaine de l'estimation d’état
et du traitement de données. Son invention résulte de la nécessité de résoudre des problèmes de
navigation et de contrôle dans le contexte du programme spatial américain.

1
Rudolf E. Kalman a présenté pour la première fois le filtre éponyme dans un article intitulé "A New
Approach to Linear Filtering and Prediction Problems" en 1960 [1]. Ce filtre s'est rapidement imposé
comme une méthode de référence pour résoudre des problèmes d'estimation d’état dans des
systèmes dynamiques sujets à des bruits et des incertitudes, à partir de mesures partielles sur le
système.

Le filtre de Kalman trouve une large application dans des domaines variés tels que :
• La navigation inertielle : Le filtre de Kalman est largement utilisé dans la navigation
inertielle des avions, des navires et des véhicules spatiaux. En combinant les mesures des
capteurs inertiels avec les modèles de mouvement du véhicule, le filtre de Kalman peut
estimer avec précision la position, la vitesse et l'orientation, même en l'absence de signaux
de navigation externes.
• Le traitement du signal : Dans ce domaine le filtre de Kalman est utilisé pour estimer des
signaux dans des environnements bruités. Il est particulièrement utile pour la détection et
la poursuite d'objets dans des systèmes radar et sonar.
• La télédétection : Dans ce domaine le filtre de Kalman est appliqué pour estimer des
paramètres environnementaux, tels que la température de surface, la concentration de gaz,
et d'autres variables, à partir de données recueillies par des capteurs à distance.
• Le contrôle-santé de structures (Structural Health Monitoring-SHM) : Le filtre de Kalman
est également utilisé pour surveiller l’état de structures tels que des ponts ou des bâtiments.
Il permet alors d’estimer leurs états en condition réelle sans interruption de leurs
fonctionnements pour mettre en place des expérimentations [2].

2 - Un filtre de Kalman, comment ça marche ?

Figure 2 : Schéma Filtre de Kalman

Un filtre de Kalman est un algorithme de traitement du signal et d'estimation qui est utilisé pour
estimer l'état d'un système dynamique en présence de bruit. Techniquement, le filtre de Kalman
est basé sur des principes de probabilité et d'optimisation en supposant uniquement des erreurs
gaussiennes sans biais. Il opère en deux phases principales : la prédiction et la mise à jour.
L’algorithme initialement proposé en 1960 procède à ces deux phases en se basant sur les équations
suivantes qui sont supposées linéaires :

2
Equation d’évolution : 𝑥n+1 = 𝑓(𝑥n ) + 𝜀
• 𝑥n : Vecteur d’état du système à un instant n
• 𝑓 : Fonction linéaire décrivant l’évolution du système par un modèle, de matrice associée
𝐹
• 𝜀 : Bruit gaussien lié au processus, de covariance 𝑄

Equation d’observation : 𝑧𝑛 = 𝐻𝑥𝑛 + 𝑟


• 𝑧n : Vecteur de mesures effectués sur le système à un instant n
• 𝐻 : Opérateur linéaire projetant l’espace d’état sur l’espace de mesures
• 𝑟 : Bruit gaussien lié à la mesure, de covariance 𝑅

À partir de ces équations Kalman propose alors les processus suivants :

1. Phase de prédiction :
1. Équations de prédiction : À chaque étape de prédiction, le filtre utilise le modèle
dynamique du système pour estimer l'état futur. Cela se fait en utilisant les équations
de prédiction du système, qui intègrent les informations du modèle de mouvement
du système.
𝑥{𝑛+1,𝑛} = 𝑓(𝑥{𝑛,𝑛} )

2. Covariance de prédiction (P) : En parallèle, le filtre estime également la covariance


de prédiction (P), qui représente l'incertitude associée à la prédiction de l'état du
système. Cette covariance évolue en fonction du modèle de mouvement du système
et de la covariance du bruit de processus (Q).
𝑃𝑛+1,𝑛 = 𝐹𝑃𝑛,𝑛 𝐹 𝑇 + 𝑄

2. Phase de mise à Jour :


1. Mesures et innovation : Lorsque de nouvelles mesures sont disponibles, le filtre
compare les prédictions du modèle avec les observations réelles. La différence entre
la prédiction du modèle et la mesure réelle est appelée innovation.

(𝑧𝑛 − 𝐻𝑥𝑛,𝑛−1 )

2. Gain de Kalman : Le gain de Kalman, calculé à partir de la covariance de prédiction


et de la covariance du bruit de mesure (R), détermine la pondération entre la
prédiction du modèle et la nouvelle mesure. Il est ajusté pour minimiser l'erreur
estimée.
−1
𝐾𝑛 = 𝑃𝑛,𝑛−1 𝐻𝑇 (𝐻𝑃𝑛,𝑛−1 𝐻𝑇 + 𝑅𝑛 )

3. Correction de l'estimation : Le filtre combine la prédiction du modèle avec la


mesure réelle en utilisant le gain de Kalman pour obtenir une estimation mise à jour
de l'état du système. Cette étape réduit l'erreur estimée en tenant compte à la fois
de la prédiction du modèle et des mesures réelles.

𝑥𝑛,𝑛 = 𝑥𝑛,𝑛−1 + 𝐾𝑛 (𝑧𝑛 − 𝐻𝑥𝑛,𝑛−1 )

𝑃𝑛,𝑛 = (𝐼 − 𝐾𝑛 𝐻)𝑃𝑛,𝑛−1 (𝐼 − 𝐾𝑛 𝐻)𝑇 + 𝐾𝑛 𝑅𝑛 𝐾𝑛𝑇

3
On pourra remarquer dans les équations ci-dessus que : lim 𝑥𝑛,𝑛 → 𝑥𝑛,𝑛−1 . L’innovation n’est plus
𝐾𝑛 →0
prise en compte. La confiance accordée au modèle devient prédominante dans le processus
d’estimation et on néglige les mesures effectuées.

Tandis que le contraire arrive pour : lim −1 𝑥𝑛,𝑛 → 𝐻 −1 zn. La confiance accordée au modèle devient
𝐾𝑛 →𝐻
négligeable et les mesures prédominent dans l’estimation.

Notations :
• 𝑥𝑛,𝑛−1 : Estimation a priori de l'état au temps n basée sur l'information disponible jusqu'au
temps n−1 ;
• 𝑃𝑛,𝑛−1: Covariance a priori de l'estimation au temps n ;
• 𝐹𝑛 : Matrice de transition à l'instant n ;
• 𝑄𝑛 : Covariance du bruit de processus à l'instant n ;
• 𝐾𝑛 : Gain de Kalman au temps n ;
• 𝑧𝑛 : Mesure réelle au temps n ;
• 𝐻 : Matrice de mesure au temps n ;
• 𝑅𝑛 : Covariance du bruit de mesure à l'instant n ;
• 𝐼 : Matrice identité.

L'utilisation pratique du filtre de Kalman implique la définition judicieuse des paramètres Q et R,


qui représentent respectivement la covariance du bruit de processus associée aux modèles
dynamiques du système et la covariance du bruit de mesure. Ces paramètres sont essentiels pour
ajuster la sensibilité du filtre et adapter son comportement à la dynamique spécifique du système
sous observation. Voici une explication pratique de leur utilisation :

Covariance du bruit de processus (Q) :

La covariance du bruit de processus (Q) représente l'incertitude de modélisation. En d'autres


termes, elle mesure à quel point les prédictions du filtre peuvent s'écarter du véritable état du
système en raison des erreurs de modélisation. Le choix de Q dépend de la connaissance que l'on a
de la dynamique du système. Si le modèle est considéré comme très fiable, la covariance du bruit
de processus peut être réduite. Si l'on sait que le système est sujet à des variations importantes et
imprévisibles, Q peut être augmentée. Le réglage de Q est souvent une tâche délicate, nécessitant
des ajustements itératifs basés sur l'analyse des performances du filtre. C’est l’un des enjeux
majeurs de l’utilisation du filtre de Kalman en pratique.

Covariance du bruit de mesure (R) :

La covariance du bruit de mesure (R) quantifie l'incertitude associée aux observations ou mesures
du système. Elle prend en compte les erreurs des capteurs et les fluctuations dans les mesures. Si
les capteurs sont considérés comme précis et fiables, la covariance du bruit de mesure peut être
réduite. À l'inverse, si les mesures sont sujettes à des variations importantes, R peut être
augmentée.

De la même manière que pour Q, le réglage de R peut nécessiter une itération et une évaluation
continue des performances du filtre.

4
3 - Application du filtre de Kalman à un système masse ressort amorti

Figure 3 : Schéma de l’Oscillateur Harmonique Amorti

On se propose désormais d’appliquer le filtre de Kalman à un oscillateur mécanique amorti (Figure


3) dont on aura une mesure de la position q. L’équation qui décrit l’évolution du système sous une
force extérieure est :
𝑞̈ + 2ξω0 𝑞̇ + ω20 𝑞 = 𝐹𝐸𝑥𝑡
𝑘
avec ω20 = 𝑚 , 𝑐 = 2ξω0 , 𝑚 = 1.

En écrivant cette équation différentielle au premier ordre sous la forme 𝑥̇ = 𝐴𝑥 on obtient :

Equation d’évolution : 𝑥n+1 = 𝑓(𝑥n ) + 𝜀


𝑞̇
• 𝑥𝑛 = ( 𝑛 )
𝑞𝑛
• 𝑓(𝑥𝑛 ) = (𝐼 + 𝑑𝑡 𝐴) 𝑥𝑛 , ou 𝑑𝑡 est le pas de temps entre deux mesures
2
• 𝐴 = [−2𝜉𝜔0 −𝜔0 ]
1 0
• 𝜀 : Bruit gaussien lié au processus de covariance 𝑄

Equation d’observation : 𝑧𝑛 = 𝐻𝑥𝑛 + 𝑟

• 𝑧n : Mesure de la position à l’instant n


• 𝐻 = [0 1] : On projette l’état sur la position via la matrice d’observation H.
• 𝑟 : Bruit gaussien liée à la mesure de covariance 𝑅

𝑄 = 10−10 𝑄 = 10−2 𝑄 = 1010


Figure 4 : Evolution de l’estimation de la position par Filtre de Kalman pour différentes valeurs de Q

La Figure 4 montre l’évolution temporelle des mesures de positions en bleues et de son estimation
par Kalman en orange. On peut y voir l’évolution de la qualité du filtrage en fonction de l’ordre de
grandeur de Q. On observe que lorsque celui-ci est trop faible les mesures ne sont pas prises en
compte. Si celui-ci augmente on prend alors les mesures en compte mais on arrive à éliminer une
partie du bruit pour 𝑄 = 10−2, mais lorsqu’on augmente trop l’ordre de grandeur on perd cette

5
propriété de filtrage, on augmente même l’incertitude par rapport aux mesures. Pour des systèmes
plus complexes cela peut même engendrer des comportements instables qui divergent.

Le notebook Jupyter en annexe [6] permet d’étudier de façon interactive l’influence des différents
paramètres sur le filtre de Kalman dans le cadre de ce problème.

On pourra notamment à s’intéresser à :


• L’optimisation des paramètres 𝑄, 𝑅, 𝑃0,0 , 𝑥0,0 pour les valeurs de ξ, ω0 données pour différents
niveaux de bruits.
o A noter ici que l’on a présupposé les matrices 𝑄 et 𝑅 comme étant des matrices
diagonales dont les composantes sont le paramètre d’entrée (𝑄, 𝑅) ; en réalité ces
composantes peuvent être différentes le long de la diagonale et il peut y avoir des
termes hors diagonaux.
• L’effet provoqué par une variation de ξ, ω0 sur le choix des valeurs de 𝑄, 𝑅, 𝑃0,0 , 𝑥0,0 ;

• La conséquence d’un biais dans le modèle par exemple une erreur de 5% sur la valeur de la
raideur du modèle ;
• La résolution temporelle utilisée, existe-t-il une fréquence d’échantillonnage minimale ?
• (Ouverture) Une modification du programme est possible pour :
o Etudier un cas où la force extérieure 𝐹𝐸𝑥𝑡 évolue avec le temps
o Etudier un problème non-linéaire de type oscillateur de Duffing :
𝑞̈ + 2𝜉𝜔0 𝑞̇ + 𝜔02 (1 + 𝜖𝑞 2 )𝑞 = 𝐹𝐸𝑥𝑡

Pour ce faire, il est possible d’utiliser l’approche du Filtre de Kalman Etendu (EKF)
[3] qui consiste à linéariser le système autour de son état courant 𝐹𝑛 = 𝐽𝑓 (𝑥𝑛 ) .
D’autres approches visent à étendre l’utilisation du filtre de Kalman aux problèmes
non-linéaires telle que le Unscented Kalman Filter [4].

• (Ouverture) Il est aussi possible de modifier le programme afin d’augmenter le vecteur


d’état du système pour effectuer des résolutions de problèmes inverses.
o En estimant les valeurs intrinsèques du système telles que 𝑚, 𝑐, 𝑘 on pourra faire du
SHM
o En gardant uniquement la mesure de la position x on peut venir estimer la force 𝐹𝐸𝑥𝑡
comme le propose Hamann pour l’estimation d’efforts appliqués sur un véhicule
(Hamann, 2014)

Naturellement, le même formalisme s’applique à des systèmes à plusieurs degrés de liberté, cela
augmente la taille du vecteur d’état et remplace les précédentes composantes scalaires par des
matrices comme les matrices de raideur et de masse obtenues par votre code éléments finis
préféré.

3.1 - Problème inverse : estimation de forces extérieures

Le cas de l’estimation de 𝐹𝐸𝑥𝑡 est légèrement plus simple on fournit les expressions suivantes :

𝑞̇ 𝑛
𝑥𝑛 = ( 𝑞𝑛 )
𝐹𝐸𝑥𝑡 𝑛

6
Equation d’évolution : 𝑥n+1 = 𝑓(𝑥n ) + 𝜀
• 𝑓(𝑥𝑛 ) = (𝐼 + 𝑑𝑡 𝐴) 𝑥𝑛 , ou 𝑑𝑡 est le pas de temps entre deux mesures
−2𝜉𝜔0 −ω20 1
• 𝐴=[ 1 0 0]
0 0 0
• 𝜀 : Bruit gaussien lié au processus, de covariance 𝑄

Equation d’observation : 𝑧𝑛 = 𝐻𝑥𝑛 + 𝑟


• 𝑧n : Mesure de la position à l’instant n
• 𝐻 = [0 1 0 ] : On projette l’état sur la position via la matrice d’observation H.
• 𝑟 : Bruit gaussien lié à la mesure, de covariance 𝑅

On a toujours 𝐹 = 𝐼 + 𝑑𝑡 𝐴, on remarque que d’après notre modèle 𝐹𝐸𝑥𝑡 ̇ = 0. C’est un processus


de marche aléatoire. Donc c’est le bruit de processus 𝑄 correspondant à 𝐹𝐸𝑥𝑡 qui doit être capable
de capturer l’évolution temporelle de la force. Naturellement si l’on possède des modèles sur les
sources d’excitations cela viendra renforcer notre aptitude d’estimations.

𝑄2,2 = 102 𝑄2,2 = 104


Figure 5 : Evolution temporelle de l’effort imposé et de l’effort estimé par Kalman pour différent Q

Sur la Figure 5 on observe les résultats pour différentes valeurs de 𝑄2,2 et on peut constater la
présence d’un délai entre la force Input qui correspond à la force 𝐹𝐸𝑥𝑡 (𝑡) théorique en bleu et
l’estimation du filtre de Kalman en orange. On peut cependant réduire ce délai en augmentant 𝑄2,2
mais cela augmente le bruit sur l’estimation de la force par le filtre.

3.2 - Problème inverse : Structural Health Monitoring

Si l’on veut surveiller l’état de la structure cela complexifie un peu le processus car cela introduit
plus de couplages dans la matrice de transition, c’est pour cela qu’usuellement, on dédouble
l’utilisation de filtres de Kalman en estimant d’abord par exemple la position puis les variables
d’état internes. Sans procéder à cela on a les équations suivantes :

𝑞̇ 𝑛
𝑥𝑛 = (𝑞𝑛 )
𝑘𝑛

Equation d’évolution : 𝑥n+1 = 𝑓(𝑥n ) + 𝜀


• 𝑓(𝑥𝑛 ) = (𝐼 + 𝑑𝑡 𝐴) 𝑥𝑛 , ou 𝑑𝑡 est le pas de temps entre deux mesures

7
𝑘 𝑘
−2𝜉√ − 0
• 𝐴(𝑥𝑛 ) = [
𝑚 𝑚
]
1 0 0
0 0 0
• 𝜀 : Bruit gaussien lié au processus, de covariance 𝑄

La matrice A dépend du vecteur d’état à travers k ce n’est donc plus un système linéaire ; on peut
cependant exprimer la matrice de transition 𝐹𝑛 via la jacobienne de l’équation de prédiction selon
le filtre de Kalman Etendu.
1
−2𝜉𝜔0 −ω20 −𝑞𝑛 + 𝜉𝑞𝑛̇
𝐹𝑛 = √𝑘𝑛 𝑚
1 0 0
[ 0 0 0 ]

4 - Conclusion

Dans cet article nous avons proposé une approche pratique à l’utilisation du filtre de Kalman avec
en premier lieu une explication de son fonctionnement et de ses principales composantes puis dans
un second temps une prise en main du problème pratique de l’utilisation de filtre de Kalman sur un
problème simple avec une ouverture du sujet sur des problèmes mécaniques plus compliqués
s’approchant d’utilisations réelles.

5 - Références

[1] R. E. Kalman, A new approach to linear filtering and prediction problems, 1960.

[2] L. a. W. S. a. Y. J. N. Zhou, «Experimental study of an adaptive extended Kalman filter for


structural damage identification,» Journal of Infrastructure Systems, 2008.

[3] M. I. Ribeiro, «Kalman and extended kalman filters: Concept, derivation and properties,»
Institute for Systems and Robotics, 2004.

[4] S. a. U. J. a. D.-W. H. F. Julier, «A new method for the nonlinear transformation of means and
covariances in filters and estimators,» IEEE Transactions on automatic control, 2000.

[5] H. H. J. R. S. &. G. F. Hamann, «The force estimation for a passenger vehicle with the
unscented kalman filter,» IEEE intelligent vehicles symposium proceedings (pp. 814-819), 2014.

[6] Annexe : Ressources - Utilisation du filtre de kalman, F. Maetz,


[Link]
filtre-de-kalman

Ressource publiée sur Culture Sciences de l’Ingénieur : [Link]

Vous aimerez peut-être aussi