Vous êtes sur la page 1sur 23

Plan du cours

Le filtre de Kalman

I. Introduction II. Le filtre de Kalman discret : algorithme III. Le filtre de Kalman continu IV.Le filtre de Kalman dans les cas non linaires

Module 5AS2-10 troisime anne ENSICA

Yves Briere ENSICA

Plan du cours

Prrequis :
Automatique ENSICA 1A et 2A

Outils :
Matlab / Simulink

I. Introduction

Rfrences :
Kalman Filtering : Theory and Practice , Mohinder S. Grewal, Angus P. Andrews, Prentice Hall ed. homepage.ensica.fr/~ybriere/5AS2-10
3 4

I.0 Un exemple
Centrale dattitude : Gyroscope

I.0 Un exemple
Centrale dattitude composants lis Strapdown
Gyromtres Acclromtres GPS Pices mobiles maintient constant de lattitude Baromtre Calculateur Capteur de T Etc
            

Calculateur : Fusion de donnes


 

Pitot





! !

 

 

Attitude? Position?
                   

 

I.0 Un exemple
Centrale dattitude composants lis Strapdown
Gyromtre : mesure de la vitesse de rotation Dans le repre local (li au capteur) Drive, biais, sensibilit la temprature Haute bande passante Acclromtre : mesure de lacclration Dans le repre local (li) Drive, biais, sensibilit la temprature Ne distingue pas lacclration inertielle et lacclration de la pesanteur (merci Einstein) Haute bande passante

I.0 Un exemple
Centrale dattitude composants lis Strapdown
##     %%   %%  "" $$ $ $ "" ""   "" ""       

&





''''

"

! !

A = Ca + v + g + b +
11 11   

Bruits de mesure
    %     !! !! "" "" !    %   "   "  2 3 !  2 "

 

 

"" ""

 

44

   



"" ""

""

% %

 

GPS : mesure de la position Dans un repre absolu Peu prcis Faible bande passante

 

" "

"





! !

'





 

 

"

" "

&

 $

' # #

"

 

"

 

"

"

 

"

   4 4

I.0 Un exemple
## ## $$ $ 

I.0 Un exemple

      "     

! "" ""  " " !



 

 

"   !   %   " %   1 " %

" "

" 

   " 

 

 

mes = vrai + b +

%%     

   (

 

  "" 

 

" "

! 

  

 

 

 

$$ $ $

""

 

"

   

 

%  2 "

 

  

"

 !

"

"" ""

!  

$$ $

  %  ! %

Bruits de mesure

 

  "     

"

""

 

%%

"

Centrale dattitude composants lis Strapdown

Centrale dattitude composants lis Strapdown

 



!! !!



"" ""

11

9
&  $   " #   "  ## ## $$ $

I.0 Un exemple

& &





" "

11

 %

 

"   

M mes = M vrai + b +

   $ 



" "   

( ! !   

  

En gnral

" "

  %

"

"

 

3  



Bruits de mesure

%   

I.1 Quest-ce quun filtre de Kalman ?

Cest un estimateur qui permet de reconstituer les tats dun systme perturb en utilisant des mesures. Les mesures peuvent tre : - incompltes, - indirectes, - intermittentes, - bruites

Domaines dapplication : aronautique (centrales inertielles de navigation), spatial, etc


12

Une des plus grandes inventions du sicle (bigre)



 

Centrale dattitude composants lis Strapdown

"

"

10

I. Introduction I.2 La thorie de lestimation

I.2 La thorie de lestimation


Historique
1777-1855 : Carl Friedrich Gauss Mthode des moindres carrs : premire mthode destimation optimale

1894-1964 : Norbert Wiener Filtre de Wiener : utilisation des fonctions de corrlation et de densit spectrale

1960 : Kalman Filtre de Kalman : utilisation de la reprsentation dtat

13

14

I. Introduction I.3 Rappel sur les observateurs

I.3 Rappel sur les observateurs


Rappel sur lobservateur Identit
Permet de reconstituer les tats du systme

Ce que lon connat du systme :

X = A X + Bu y = CX
~ ~ X = A X + Bu ~ ~ = CX y ~ ~ X = A X + B u + K (y - ~ ) y ~ ~ = CX y

Observateur en boucle ouverte :

Observateur Identit :

Le rglage de K rduit lerreur y 15

16

I.3 Rappel sur les observateurs


Rglage de lobservateur Identit
Ce que lon connat du systme :

I.3 Rappel sur les observateurs


Rglage de lobservateur Identit
Mthode 1 : passage dans la base compagne dobservation

X = A X + Bu y = CX
~ ~ y X = A X + B u + K (y - ~ ) ~ ~ = CX y

Observateur Identit :

X = A X + Bu y = CX
PO = M O

X = MO XO
1 2 n

X O = A O X O + BO u y = CO X O

~ ~ X - X = (A - K C ) X - X = (A - K C )

1 T

) = [p , p ,...p ]
[ ] = [(A ) + a A
T 2 n 1 T

p1 = C T
Avec :

A - K.C : Dynamique de lobservateur

p 2 = A T + a n 1 I p1 p3 ...

+ a n 2 I p1
18

17

I.3 Rappel sur les observateurs


Rglage de lobservateur Identit
a n 1 a n 2 A0 = . . a1 a0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 B0 = b n 1 b n 2 . . b1 b0

I.3 Rappel sur les observateurs


Rglage de lobservateur Identit
a n 1 k n 1 a n 2 k n 2 A 0 - K 0 C0 = . . a1 k1 a0 k0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0

C 0 = (1

0)

Coefficients du polynme caractristique de lobservateur Le rglage de lobservateur consiste placer n ples

y(p ) N(p) b p n 1 + b n 2 p n 2 + ... + b1p + b 0 = = n n 1 u (p ) D(p) p + a n 1p n 1 + a n 2 p n 2 + ... + a1p + a 0


19

20

I.3 Rappel sur les observateurs


Rglage de lobservateur Identit
Mthode 2 : formule dAckerman

I.3 Rappel sur les observateurs


Rglage de lobservateur Identit
Mthode 3 : avec matlab

(p ) = p n +

n 1

p n 1 +

n 1

p n 1 + ... + 1p +

Polynme caractristique dsir de lobservateur (n ples)

O = CT , A T CT , A

( ) C ...(A ) C
2 T T n -1 T
1

>> K=place(A,C,poles)

Matrice dobservabilit

K = [0,0,...0,1] O (A )
Formule dAckerman ! Trs mauvais si n grand (problmes numriques en multivariable et en mono si n > 6)

Mthode numrique optimise

21

22

I.3 Rappel sur les observateurs


Inconvnient de lobservateur Identit
Comment placer les ples de manire optimale ?... Comment placer les ples si certains modes sont bruits ?...

X = A X + B u + G w (t ) y = C X + v (t )

II. Le filtre de Kalman discret


23 24

II. Le filtre de Kalman discret

II. Le filtre de Kalman discret : quations


Hypothses
On considre un processus linaire dcrit par lquation :

II.1 Equations du filtre de Kalman

x (k + 1) = A x (k ) + B u (k ) + G w (k ) y(k ) = C x (k ) + v(k )

W(k) et v(k) sont des bruits blancs non corrls

E[w (k )] = 0

E w (k ) w (i ) =
T

(k i ) Q(k )

E v(k ) v(i ) =
T

E[v(k )] = 0

(k i ) R (k )

Condition initiale : x(0)

25

E x (0 ) x (0 ) = P0
T

E[x (0 )] = x 0

26

II. Le filtre de Kalman discret : quations


Notations
Ltat :

II. Le filtre de Kalman discret : quations


Etape 1 : prdiction de ltat
On utilise le modle du systme pour prdire ltat partir de la prdiction prcdente:

x (k ) x (k + 1 | k ) x (k + 1 | k + 1)

Ltat prdit :

E[x + | k = E x x | x (k (k1+ 1)]= A[A (k (k ) + B u (k ) + G w (k )]


On utilise le modle du systme pour prdire la mesure suivante:

Moyenne nulle

Ltat filtr :

[ (( + | ] ) E[C x( ( ) Eyykk+ 11)k == C xkk| |kk ) + v(k )]


On value lerreur ( innovation ) :

Moyenne nulle

y(k + 1) y(k + 1 | k )
27 28

II. Le filtre de Kalman discret : quations


Etape 2 : filtrage de ltat
On utilise ltat prdit pour obtenir ltat estim :

II. Le filtre de Kalman discret : quations


Etape 2 : estimation de ltat
Lien entre critre quadratique et matrice de covariance : Critre quadratique :

x (k + 1 | k + 1) = x (k + 1 | k ) + K (k + 1) (y(k + 1) y(k + 1 | k ))
K(k+1) est le gain de Kalman Comment choisir K(k+1) pour minimiser l erreur entre tat r el et tat estim ?

J (k + 1) = E (k + 1) (k + 1) = E
T

] [
T

(k + 1)2 + ... + n (k + 1)2 ]


E[ E[ E[
1 1

(k + 1) = x (k + 1) x (k + 1 | k + 1)

Matrice de covariance :

P(k + 1 | k + 1) = E (k + 1) (k + 1) =

] 1] ]

E[ E[

1 2

] 2]

Erreur au sens quadratique : on cherche


T 2 2 J (k + 1) = E[ (k + 1) (k + 1)] = E[ 1 (k + 1) + ... + n (k + 1) ]

minimiser le crit re :

n 1

. .

. . . . . . . E[ n

Lien :

Propri t fondamentale : minimiser J(k+1) est quivalent

J (k + 1) = E (k + 1) S (k + 1) , S > 0
T

minimiser J(k+1) avec :

J (k + 1) = trace(P(k + 1 | k + 1))
Il est plus simple de travailler sur la matrice de covariance
30

29

II. Le filtre de Kalman discret : quations


Etape 2 : estimation de ltat
Calcul de la matrice de covariance :

II. Le filtre de Kalman discret : quations


Etape 2 : estimation de ltat
Calcul de la matrice de covariance (suite) :

x (k + 1) = A x (k ) + B u (k ) + G w (k ) x (k + 1 | k ) = A x (k | k ) + B u (k ) x (k + 1) x (k + 1 | k ) = A (x (k ) x (k | k )) + G w (k ) P(k + 1 | k ) = E (A (x (k ) x (k | k )) + G w (k )).(A (x (k ) x (k | k )) + G w (k )) ... ... P(k + 1 | k ) = A P(k | k ) A T + G Q G T


P(k+1 | k+1) ?
31

P(k + 1 | k + 1) = E (x (k + 1) x (k + 1 | k + 1)) (x (k + 1) x (k + 1 | k + 1)) P(k + 1 | k + 1) = [I K (k + 1) C] P(k + 1 | k ) [I K (k + 1) C]


T T

................................... + K (k + 1) R K (k + 1)
T

32

II. Le filtre de Kalman discret : quations


Etape 2 : estimation de ltat
Calcul du gain de Kalman Rappel : le gain de Kalman doit permettre de minimiser le critre quadratique :

II. Le filtre de Kalman discret : quations


Etape 2 : estimation de ltat
Calcul du gain de Kalman (suite)

min (J (k + 1)) = min (trace(P(k + 1 | k + 1)))


K K

Autre criture de la relation dvolution de P :

J (k + 1) =0 K (k + 1)

P(k + 1 | k + 1) = [I K (k + 1) C] P(k + 1 | k )

trace K A K T = 2 K A K

))

(Comme tout le monde sait)

P(k + 1 | k + 1) = P(k + 1 | k ) K (k + 1) C P(k + 1 | k )


Cette relation montre que le filtre converge car :

[I K (k + 1) C] P(k + 1 | k ) C T + K (k + 1) R = 0

K (k + 1) = P(k + 1 | k ) C T C P(k + 1 | k ) C T + R
(Equation de Riccati)

K (k + 1) C P(k + 1 | k ) est dfinie positive


Ouf

33

34

II. Le filtre de Kalman discret : quations


Rsum : le filtre de Kalman discret
x (k + 1 | k ) = A x (k | k ) + B u (k )
Etat estim
Covariance du bruit sur ltat Covariance du bruit sur la mesure

II. Le filtre de Kalman discret : quations


Conclusion

P(k + 1 | k ) = A P(k | k ) A T + G Q G T

Systme linaire + Bruits blans Gaussiens

K (k + 1) = P(k + 1 | k ) C T C P(k + 1 | k ) C T + R
Gain de Kalman

Covariance de (tat estim tat rel)

Convergence + Filtre optimal

x (k + 1 | k + 1) = x (k + 1 | k ) + K (k + 1) (y(k + 1) y(k + 1 | k ))
Etat filtr Prise en compte de la mesure

P(k + 1 | k + 1) = [I K (k + 1) C] P(k + 1 | k )
Covariance de ltat filtr
35 36

II. Le filtre de Kalman discret stationnaire

II. Le filtre de Kalman discret stationnaire


On considre un processus linaire dcrit par lquation :

x (k + 1) = A x (k ) + B u (k ) + G w (k )

II.2 Filtre stationnaire

y(k ) = C x (k ) + v(k )

Hypoth ses suppl mentaires : A, B et C constants Bruits blancs stationnaires (A,B) commandable (A,C) observable Le filtre de Kalman tend vers un r gime permanent :

x (k + 1 | k + 1) = A x (k | k ) + B u (k ) K (y(k + 1) C x (k | k )) K = P C T R + C P C T A P A T P A P C T
37

] [R + C P
1

CT

C P A T + G.Q.G T = 0
38

II. Le filtre de Kalman discret stationnaire

II. Le filtre de Kalman discret stationnaire

A P A T P A P C T R + C P C T

C P A T + G.Q.G T = 0

II.3 Les bruits ne sont pas honntes

Equation alg brique de Riccati discr te On conserve la solution d finie positive L erreur v rifie l quation diff rentielle :

(k + 1) = (A K C A ) (k ) + ...
Constante de temps

Fonction Matlab : dare (discrete algebric riccati equation) >> Pinf = dare(A,C,G*Q*G,R)
39 40

II. Le filtre de Kalman discret stationnaire


Les bruits sont corrls !
E w (k ) v(i ) =
T

II. Le filtre de Kalman discret stationnaire


Les bruits sont corrls dans le temps!
Le bruit peut tre modlis comme dcrivant une quation dtat :

(k i ) QR (k )

Les quations sont

peine chang es :

v(k + 1) = A v v(k ) + w 1 (k )
O w1 est maintenant un bruit blanc gaussien. Ouf
1

x (k + 1 | k ) = A x (k | k ) + B u (k )

P(k + 1 | k ) = A P(k | k ) A T + G Q G T
K (k + 1) = P(k + 1 | k ) C T + QR

C P(k + 1 | k ) C + R + ...
T

On travaille alors sur la nouvelle reprsentation dtat :

...C QR + QR T C T

x (k + 1) v(k + 1)

A 0

0 Av x (k ) v(k )

x (k ) v(k )

B 0

u (k ) +

G 0 0 I

x (k + 1 | k + 1) = x (k + 1 | k ) + K (k + 1) (y(k + 1) y(k + 1 | k ))
P(k + 1 | k + 1) = P(k + 1 | k ) K (k + 1) C P(k + 1 | k ) + QR T

w (k ) w 1 (k )

y(k ) = [C I]

41

42

II. Le filtre de Kalman discret stationnaire


Exemple : constante alatoire
Mon acclromtre est biais, dune valeur biais imprvisible On rajoute un tat reprsentant ce biais :

II. Le filtre de Kalman discret stationnaire


Exemple : sinusode alatoire
Je suis perturb par le 50Hz : amplitude et phase alatoire de y On rajoute un tat x :

biais = x biais (k ) + w 1

x biais (k + 1) = 0

x=

0 0
2

1 0

x +

0 1

y = (0 1) x

43

44

II. Le filtre de Kalman discret stationnaire


Exemple : marche alatoire
Processus de Weiner ou mouvement Brownien

II. Le filtre de Kalman discret : algorithme

II.3 Algorithme du filtre de Kalman

On rajoute un tat x :

x (k + 1) = w 1 y = x (k )

45

46

II. Le filtre de Kalman discret : algorithme


Apothose : lalgorithme
= A + Bu x x
Filtrage Diminution de P

II. Le filtre de Kalman discret : algorithme


Forme de Joseph

P = A P AT + G Q GT

Estimation
Augmentation de P

Equation mal conditionne :

P(k + 1 | k + 1) = [I K (k + 1) C] P(k + 1 | k )
Forme de Joseph : mieux conditionne

= + K (y ) x x y
y = Cx

P(k + 1 | k + 1) = [I K (k + 1) C] P(k + 1 | k ) [I K (k + 1) C] + K (k + 1) R K (k + 1)
T

K = P CT C P CT + R
P = [I K C] P

47

48

II. Le filtre de Kalman discret : algorithme


Rduction de la complexit de lalgorithme en dcouplant les mesures

II. Le filtre de Kalman discret : algorithme


Algorithme avec mesures dcouples
K = P C1 C1 P C1 + R 1
T T

Inversions scalaires !

Condition dapplication : Bruits sur les mesures dcoupls : R diagonal Mthode On considre une quation de mesure par grandeur mesure

P = [I K C 1 ] P

x = x + K (y 1 C 1 x )
K = P C2 C2 P C2 + R 2
T T

P = [I K C 2 ] P

x = x + K (y 2 C 2 x )
Etc 49 50

II. Le filtre de Kalman discret : algorithme


Mise en uvre de lalgorithme
function [xest,P]=estimation(u,xest,P) xest=A*xest+B*u P=A*P*A+G*Q*G end function [xest,P]=kalman1(y1,xest,P) K=P*C1*(C1*P*C1+R)^-1 P=P-K*C1*P yest=C1*xest xest=xest+K*(y-yest) end Main P=P0 x=x0 while (1) [xest,P]=estimation(u,xest,P) si (mesure(capteur1)==disponible) alors [xest,P]=kalman1(y,xest,P) end si (mesure(capteur2)==disponible) alors [xest,P]=kalman2(y,xest,P) end end end function [xest,P]=kalman2(y2,xest,P) K=P*C2*(C2*P*C2+R)^-1 P=P-K*C2*P yest=C2*xest xest=xest+K*(y-yest) end

II. Le filtre de Kalman discret : algorithme


Mise en uvre de lalgorithme exemple
Donnes A C G P0 Q R = = = = = = 1 1 1 50 10 20

x (k + 1) = A x (k ) + B u (k ) + G w (k ) y(k ) = C x (k ) + v(k )
1 2 3 4 5

n= estimation P= A.P.A'+GQG kalman K= PC'/(CPC'+R) filtrage P= P-KCP P= 50

10

11

12

13

14

60,00 25,00 21,11 20,27 20,07 30,07 40,07 50,07 60,07 25,00 21,11 20,27 30,27 40,27 0,75 0,56 0,51 0,50 0,75 0,56 0,51 0,67 13,36

15,00 11,11 10,27 10,07

15,00 11,11 10,27

15,00 11,11 10,27 10,07 20,07 30,07 40,07 50,07 15,00 11,11 10,27 20,27 30,27 13,36

51

52

II. Le filtre de Kalman discret : algorithme


Mise en uvre de lalgorithme Rglages
Initialisations tat initial : x0 Covariance initiale : traduire la mconnaissance de x0 par P = a.I avec a grand Choix de Q et R Q traduit la perturbation sur ltat R traduit le bruit de mesure Possibilit de rglage la main

II. Le filtre de Kalman discret : algorithme


Mise en uvre de lalgorithme Vrifications
Vrifications Vrifier chaque calcul que P est dfini positif Si P nest pas dfini positif, il y a un problme quelque part bug informatique matrice(s) mal conditionne(s) Etat non observable Etc. Notion dinnovation v(k) :

v(k + 1) = y(k + 1) C x (k + 1 | k )

Si le filtre est optimal, v(k) est un bruit blanc de valeur moyenne nulle Test de blancheur
53 54

II. Le filtre de Kalman discret : algorithme


Mise en uvre de lalgorithme
Test de blancheur

II. Le filtre de Kalman discret : algorithme


Mise en uvre de lalgorithme
Rjection de mesures errones Test de blancheur de linnovation

(i ) = y(i + 1) C x (i + 1 | i ) R (0 ) RN (0) = =1 R (0 ) R (i ) RN (i ) = R (0 )

1 N (k )2 R (0 ) = N k =1 1 N (k ) (k i ) R (i ) = N k =1

On montre que le terme S(k + 1) = C P(k + 1 | k ) C + R


T

est la covariance de lerreur sur la prdiction de la mesure y Pour chaque mesure on calcule linnovation :
T

Bruit blanc parfait : Test de blancheur :

RN (0) = 1, RN (i ) = 0
2,17 RN(0 ) = 1, RN (i ) N

On dfini le terme :

(i ) = y(i + 1) C x (i + 1 | i ) (k + 1) S(k + 1) (k + 1)
m

Pour un filtre parfaitement modlis, avec des bruits blancs Gaussiens, alors ce terme a une distribution chi 2 Pour un Intervalle de confiance 3% on limine les mesures correspondant un chi2 suprieur 4,7
55

Intervalle de confiance 3%

En pratique : rglage empirique du seuil

56

II. Le filtre de Kalman discret : algorithme

II. Le filtre de Kalman discret : a marche pas


Divergence ?

II.4 Ca marche pas


Et pourtant a marchait en simulation

Problme de modlisation

Variables dtat non modlises Analyser la densit spectrale de linnovation : les dynamiques non modlises apparaissent Bruit sur la dynamique non modlise Amliorer la modlisation du bruit Erreur sur les coefficients dfinissant la dynamique

57

58

II. Le filtre de Kalman discret : a marche pas


Divergence ?
Problme de mesure

Mesures errones intermittentes, cf. test de blancheur

Problme numrique

III. Le filtre de Kalman continu


59 60

Utilisation dalgorithmes volus

III. Le filtre de Kalman continu : Kalman-Bucy


Hypothses
On considre un processus linaire dcrit par lquation :

III. Le filtre de Kalman continu : Kalman-Bucy


Hypothses
Dfinitions Q est la covariance du bruit sur ltat Gnralement non mesurable R est la covariance du bruit sur les mesures

x (t ) = A x (t ) + B u (t ) + G w (t ) y(t ) = C x (t ) + v(t )

W(t) et v(t) sont des bruits blancs non corrls

E w (t1 ) w (t 2 ) =
T

E[w (t )] = 0

(t1 t 2 ) Q(t )

E v(t1 ) v(t 2 ) =
T

E[v(t )] = 0

Gnralement mesurable

(t1 t 2 ) R (t )

P est la covariance de lerreur sur ltat estim Permet de tester la qualit de lestimation

P(t ) = E (x (t ) x (t )) (x (t ) x (t ))
61

]
62

III. Le filtre de Kalman continu : Kalman-Bucy


Objectif
Obtenir un estim de ltat partir de la connaissance : - du modle - des entres et des sorties

III. Le filtre de Kalman continu : Kalman-Bucy


Equations du filtre de Kalman-Bucy (continu)
x (t ) = A x (t ) + B u (t ) + K (t ) (y(t ) C x (t )) avec K (t ) = P(t ) C T R 1
K(t) est le gain du filtre

P(t ) = A P(t ) + P(t ) A T + G Q G T K (t ) C P(t )

63

64

III. Le filtre de Kalman continu : Kalman-Bucy


Lien avec lobservateur optimal
Les quations prcdentes dcrivent un observateur optimal Il minimise tout critre quadratique du type

III. Le filtre de Kalman continu : Kalman-Bucy


Schma de lobservateur

J (t ) = (x (t ) x (t )) S (x (t ) x (t ))
O S est dfinie positive

65

66

III. Le filtre de Kalman continu : Kalman-Bucy


Filtre de Kalman-Bucy stationnaire
Hypothses - w et v sont des bruits blancs gaussiens stationnaires - w et v sont indpendants - La paire (A,C) est observable - La paire (A,B) est commandable Equations du filtre continu

0 = A P + P A T + G Q G T K C P K = P C T R 1
Equation de Riccati continue
67

IV. Le filtre de Kalman dans les cas non linaires


68

IV. Le filtre de Kalman tendu


Hypothses
On considre un processus non linaire dcrit par lquation :

IV. Le filtre de Kalman tendu


Rsum : le filtre de Kalman tendu
x (k + 1 | k ) = (x (k | k ), u (k ))
Etat estim : intgration de lqua dif
Covariance du bruit sur ltat : Q = TeQ Covariance du bruit sur la mesure

x (t ) = f (x (t ), u (t ), t ) + w (t ) y(t ) = h (x (t ), t ) + v(t )
w(k) et v(k) sont des bruits blancs non corrls

P(k + 1 | k ) = F P(k | k ) F T + Q'

E[w ] = 0

E w wT = Q

E[v] = 0

Covariance de (tat estim tat rel)

E v vT = R

K (k + 1) = P(k + 1 | k ) H T H P(k + 1 | k ) H T + R
Gain de Kalman

Lalgorithme de filtre de Kalman tendu utilise les jacobiens pour les calculs du gain de Kalman et de la matrice de covariance

x (k + 1 | k + 1) = x (k + 1 | k ) + K (k + 1) (y(k + 1) y(k + 1 | k ))
Etat filtr Prise en compte de la mesure

f (x ) x h (x ) H= x F=

Attention : Jacobien nest pas drive

P(k + 1 | k + 1) = [I K (k + 1) H ] P(k + 1 | k )
Covariance de ltat filtr
69 70

Etat

Temps

IV. Le filtre de Kalman tendu


Lalgorithme
x = (x, u )
Filtrage Diminution de P

P = F P F T + Q'

Estimation
Augmentation de P

= + K (y ) x x y
y = h (x )

K = P HT H P HT + R
P = [I K H ] P

V. Un exemple complet : reconstitution dattitude par centrale dattitude composants lis (Strapdown Inertial and Attitude System)
(J.Sola 2003)
71 72

V.1 Position du problme

V.1 Position du problme

Les tats observer


Localisation dans l'espace : Vitesse de translation : Acclration : Orientation : Vitesse d'orientation : r (m) v (m/s) a (m/s2) q (quaternion) (rad/s)

Les capteurs embarqus



Prcision

Acclromtre 3D Gyromtre 3D Magntomtre 3D Rcepteur GPS


Mag

ac c mc rc , vc
Acc

Gyro GPS
73

Dynamique
74

V.1 Position du problme


zECEF
Ple Nord N E D Greenwich

V.1 Position du problme


ya
vion

Orientations
Orientations reprsentes par les anglers dEuler Orientations reprsentes par les quaternions
Quaternion dorientation : Vecteur des vitesses angulaires :
xa
vion

Les systmes de rfrence


La rfrence ECEF
GPS

za

vion

Equateur

yECEF xECEF

q = [q 0 , q1 , q 2 , q 3 ]T = [p, q, r ]T

La rfrence NED
tat : r, v, a, q

La rfrence avion
Acc, Mag, Gyro tat :

yavion

0 p q
xavion zavion

Matrice de vitesse angulaire :


75

p q r

0 r q

r q 0 p p 0

76

V.1 Position du problme

V.2 Equations du filtre de Kalman tendu

Localisation

Le modle cinmatique d'tat


Acc
Dynamique Relative

r + = r + Te v + v r v + = v + Te a + v v a+ = a + va

GPS
Statique Absolue FUSION DE DONNES

Sparation en sous systmes


Le sous systme de localisation Le sous systme d'orientation

q + = q + Te
+

q + vq

+v

0 = p q r

p 0 r q

Acc + Mag
Orientation

Gyro

r q 0 p p 0

77

78

V.2 Equations du filtre de Kalman tendu

V.2 Equations du filtre de Kalman tendu

Les modles des mesures GPS


Amplitude relle de ltat Rotation constante Translation constante

Les modles des mesures Acc, Mag et Gyro


Amplitude relle avion Changement de repre variable C NED ( q ) Biais Gains: K Dsalignements: L (m, ou bien a+g) (pas pour le Gyro)

rxECEF rzECEF
ECEF

r0ECEF x r0ECEF z cxy c yy czy

cxx czx

cxy c yy czy

cxz czz
NED

rxNED rzNED
v x v y v z

ryECEF = r0ECEF + c yx y vx cxx ECEF = c yx vy vzECEF czx

c yz ryNED

xr r + y zr

vx cxz NED + c yz v y czz vzNED

mcx kx mcy = s yx mcz


79

sxy ky szy

sxz cxx s yz c yx kz czx

cxy c yy czy

cxz mx x vx c yz m y + x + v y czz mz

szx

vz
80

S = K+L

V.2 Equations du filtre de Kalman tendu


quations systme
rt +1 = rt + Te v t + w r v t +1 = v t + Te a t + w v a t +1 = a t + w a
t +1

V.2 Equations du filtre de Kalman tendu

quations mesures
R = r + vr V = v + vv A = S a C ( a g ) + vv M = S m C m + vm G = S + v

Augmentation du vecteur dtat avec les incertitudes des capteurs


Symbole r v a q 4x1 4x1 3x1 3x1 3x1 3x1 Sg 3x3 9x1 3x1 3x1 Sa 3x3 9x1 3x1 3x1 Sm 3x3 9x1

+w

Sa , t +1 = Sa , t + w Sa Q t +1 = Te t Q t + w Q
t +1

Dimension 3x1 3x1 3x1 Sous 3x1 3x1 3x1 vecteur Indices 1-3 4-6 7-9

= = =

t t

+w +w
,t

t +1

10-13 14-16 17-19 20-28 29-31 32-40 41-43 44-52

, t +1

=S

+ wS

t +1

+w

Incertitudes : mouvements browniens


81 82

S m, t +1 = S m, t + w Sm

V. 3 Simplification du problme

V. 3 Simplification du problme

Observateurs de poursuite: tat plus biais du gyromtre.


Algorithmes embarqus diffrencis pour la localisation et lorientation. tats estimer :
3x1 3x1 5-7 3x1 3x1 8-10

Traitement des mesures asynchrones


F=
NON

P + = F P FT + Q x+ = ( x)

Boucle de prdiction synchrone 40 ms

Symbole

q 4x1 4x1 1-4

Nouvelle mesure ? OUI

Dimension 3x1 3x1 3x1 Sous 3x1 3x1 3x1 vecteur Indices 1-3 4-6 7-9

h Hi = hii H i = x x x K= K=

Boucle de correction larrive de chaque mesure

9+10=19
83

+ K y xx ==xx+ K ((yii hi ( x ) )
++

P ++= ((II KHii ) P P = KH

PHT PHiT i H i iPHTiT + rii H PHi +

84

V. 3 Simplification du problme

V. 4 Rsultats

viter linversion de matrices


yi = hi (x) + vi
Hi = hi x
PHT i H i PHT + ri i

Sous systme dorientation


K=

Calibrage du gyromtre: gains et dsalignements (19 tats) Poursuite avec estimation du biais (10 tats). Recherche dun jeu de mesures rduit. Donnes artificielles et relles
86

R est diagonale

Scalaire !!

Ne calculer que les composantes non nulles


K= k P(14,14) + k p ( P(14,17) + P(17,14) ) + P(17,17) + rp
2 p

k p P(:,14) + P(:,17)

12 produits 14 additions 10 divisions


85

V. 4 Rsultats
Attitude 1

V. 4 Rsultats
Attitude 1

-1

Calibration. Donnes artificielles Gxyz Axyz Mxyz


0 5 10 15 20 Angular25 rates 30 35 40 45

-1

Calibration. Donnes relles Gxyz Axyz Mxyz


0 50 Angular rates 100 150

2 0 -2 0 0.4 5 10 15 20 Gyro drifts 25 30 35 40 45

2 0 -2 0 0.15 50 Gyro drifts 100 150

0.2 0 0 1.5 1 0.5 0 0 5 10 15 20 25 30 35 40 45 5 10 15 Gyro gains and disalignements 20 25 30 35 40 45

0.1 0.05 0 0 1 0.5 0 0 50 100 150 50 Gyro gains and disalignements 100 150

87

88

V. 4 Rsultats
Attitude 1

V. 4 Rsultats
Attitude 1

-1

Poursuite. Donnes artificielles Gxyz Axy Mxy


0 5 10 15 20 Angular25 rates 30 35 40 45

-1 2 0 -2

10

20

30

40 Angular rates

50

60

70

Poursuite. Donnes relles Gxyz Axy Mxy

2 0 -2 0 1 5 10 15 20 Gyro drifts 25 30 35 40 45

0 0.3

10

20

30

40 Gyro drifts

50

60

70

0.2 0.1 0

-1 0.03 0.02 0.01

10

15

20 Variances 25

30

35

40

45

0 -3 x 10 15 10 5

10

20

30

40 Variances

50

60

70

10

15

20

25

30

35

40

45

10

20

30

40

50

60

70

89

90

Vous aimerez peut-être aussi