Académique Documents
Professionnel Documents
Culture Documents
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
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
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
"
" "
"
"
mes = vrai + b +
%%
(
""
" "
!
$$ $ $
""
"
% 2 "
"
!
"
"" ""
!
$$ $
% ! %
Bruits de mesure
"
"
""
%%
"
!! !!
"" ""
11
9
& $ " # " ## ## $$ $
I.0 Un exemple
& &
" "
11
%
"
M mes = M vrai + b +
$
" "
( ! !
En gnral
" "
%
"
"
3
Bruits de mesure
%
Cest un estimateur qui permet de reconstituer les tats dun systme perturb en utilisant des mesures. Les mesures peuvent tre : - incompltes, - indirectes, - intermittentes, - bruites
"
"
10
1894-1964 : Norbert Wiener Filtre de Wiener : utilisation des fonctions de corrlation et de densit spectrale
13
14
X = A X + Bu y = CX
~ ~ X = A X + Bu ~ ~ = CX y ~ ~ X = A X + B u + K (y - ~ ) y ~ ~ = CX y
Observateur Identit :
16
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 :
p 2 = A T + a n 1 I p1 p3 ...
+ a n 2 I p1
18
17
C 0 = (1
0)
20
(p ) = p n +
n 1
p n 1 +
n 1
p n 1 + ... + 1p +
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)
21
22
X = A X + B u + G w (t ) y = C X + v (t )
x (k + 1) = A x (k ) + B u (k ) + G w (k ) y(k ) = C x (k ) + v(k )
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 )
25
E x (0 ) x (0 ) = P0
T
E[x (0 )] = x 0
26
x (k ) x (k + 1 | k ) x (k + 1 | k + 1)
Ltat prdit :
Moyenne nulle
Ltat filtr :
Moyenne nulle
y(k + 1) y(k + 1 | k )
27 28
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) = 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]
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 :
J (k + 1) = E (k + 1) S (k + 1) , S > 0
T
J (k + 1) = trace(P(k + 1 | k + 1))
Il est plus simple de travailler sur la matrice de covariance
30
29
................................... + K (k + 1) R K (k + 1)
T
32
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
))
[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)
33
34
P(k + 1 | k ) = A P(k | k ) A T + G Q G T
K (k + 1) = P(k + 1 | k ) C T C P(k + 1 | k ) C T + R
Gain de Kalman
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
x (k + 1) = A x (k ) + B u (k ) + G w (k )
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
A P A T P A P C T R + C P C T
C P A T + G.Q.G T = 0
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
(k i ) QR (k )
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
...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
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
On rajoute un tat x :
x (k + 1) = w 1 y = x (k )
45
46
P = A P AT + G Q GT
Estimation
Augmentation de P
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
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
x (k + 1) = A x (k ) + B u (k ) + G w (k ) y(k ) = C x (k ) + v(k )
1 2 3 4 5
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 20,07 30,07 40,07 50,07 15,00 11,11 10,27 20,27 30,27 13,36
51
52
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
(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
est la covariance de lerreur sur la prdiction de la mesure y Pour chaque mesure on calcule linnovation :
T
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%
56
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
Problme numrique
x (t ) = A x (t ) + B u (t ) + G w (t ) y(t ) = C x (t ) + v(t )
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
63
64
J (t ) = (x (t ) x (t )) S (x (t ) x (t ))
O S est dfinie positive
65
66
0 = A P + P A T + G Q G T K C P K = P C T R 1
Equation de Riccati continue
67
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
E[w ] = 0
E w wT = Q
E[v] = 0
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=
P(k + 1 | k + 1) = [I K (k + 1) H ] P(k + 1 | k )
Covariance de ltat filtr
69 70
Etat
Temps
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
ac c mc rc , vc
Acc
Gyro GPS
73
Dynamique
74
Orientations
Orientations reprsentes par les anglers dEuler Orientations reprsentes par les quaternions
Quaternion dorientation : Vecteur des vitesses angulaires :
xa
vion
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
p q r
0 r q
r q 0 p p 0
76
Localisation
r + = r + Te v + v r v + = v + Te a + v v a+ = a + va
GPS
Statique Absolue FUSION DE DONNES
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
rxECEF rzECEF
ECEF
cxx czx
cxy c yy czy
cxz czz
NED
rxNED rzNED
v x v y v z
c yz ryNED
xr r + y zr
sxy ky szy
cxy c yy czy
cxz mx x vx c yz m y + x + v y czz mz
szx
vz
80
S = K+L
quations mesures
R = r + vr V = v + vv A = S a C ( a g ) + vv M = S m C m + vm G = S + v
+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
, t +1
=S
+ wS
t +1
+w
S m, t +1 = S m, t + w Sm
V. 3 Simplification du problme
V. 3 Simplification du problme
P + = F P FT + Q x+ = ( x)
Symbole
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=
9+10=19
83
+ K y xx ==xx+ K ((yii hi ( x ) )
++
84
V. 3 Simplification du problme
V. 4 Rsultats
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 !!
k p P(:,14) + P(:,17)
V. 4 Rsultats
Attitude 1
V. 4 Rsultats
Attitude 1
-1
-1
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
-1 2 0 -2
10
20
30
40 Angular rates
50
60
70
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
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