Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 74

Introduction au filtre de Kalman

Notes de cours
Exercices corrig
es
Sessions Matlab

D.Alazard

Octobre 2006 - version 0.2


PAGE SANS TEXTE
3

Contents

Introduction 5

1 Signaux al eatoires et syst` emes lin eaires 7


1.1 Position du probl`eme . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Rappels et definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Caracterisation dune variable aleatoire scalaire . . . . . . . . 9
1.2.2 Caracterisation dune variable aleatoire `a plusieurs dimensions 11
1.2.3 Signal aleatoire (processus stochastique) . . . . . . . . . . . . 14
1.2.4 Moments dun signal aleatoire . . . . . . . . . . . . . . . . . . 14
1.2.5 Stationnarite . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.6 Spectre complexe . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2.7 Bruit blanc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3 Passage dun signal aleatoire dans un syst`eme lineaire . . . . . . . . . 20
1.3.1 Approche temporelle . . . . . . . . . . . . . . . . . . . . . . . 20
1.3.2 Approche frequentielle (spectrale) . . . . . . . . . . . . . . . . 21
1.4 Illustration sous Matlab . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2 Le filtre de Kalman 27
2.1 Principe du filtre de Kalman . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1 Le mod`ele de Kalman . . . . . . . . . . . . . . . . . . . . . . 27
2.1.2 Hypoth`eses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.3 Structure dun estimateur non biaise . . . . . . . . . . . . . . 29
2.2 Estimateur `a variance minimale . . . . . . . . . . . . . . . . . . . . . 31
2.2.1 Solution generale . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.2 Regime permanent du filtre de Kalman . . . . . . . . . . . . 33
2.2.3 Reglage du filtre de Kalman . . . . . . . . . . . . . . . . . . 33
2.3 Exercices corriges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Introduction au filtre de Kalman Page 3/74


4 Contents

2.3.1 Syst`eme du premier ordre . . . . . . . . . . . . . . . . . . . . 34


2.3.2 Estimation dun biais . . . . . . . . . . . . . . . . . . . . . . . 41
2.4 Le filtre de Kalman discret . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.1 Le mod`ele de Kalman discret . . . . . . . . . . . . . . . . . . 44
2.4.2 Cas particulier dun syst`eme continu echantillonne . . . . . . . 45
2.4.3 Les equations recurrentes du filtre de Kalman . . . . . . . . 47
2.4.4 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.5.1 Syst`eme du second ordre: . . . . . . . . . . . . . . . . . . . . 52

3 A propos des unit


es physiques 55

R
ef
erences 57

A Int
egration de lequation l etat 59
A.1 Cas continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
A.2 Cas discret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

B Passage dun bruit dans un syst` eme lin eaire 63


B.1 Complement: caracterisation des signaux aleatoires discrets . . . . . . 63
B.2 Approche temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
B.2.1 Cas continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
B.2.2 Cas discret . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
B.3 Approche frequentielle . . . . . . . . . . . . . . . . . . . . . . . . . . 68
B.3.1 Cas continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
B.3.2 Cas discret . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

C Code source Matlab des fichiers de d emonstration 71


C.1 Fonction Kf t.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
C.2 Fichier demoKalman.m . . . . . . . . . . . . . . . . . . . . . . . . . . 71
C.3 Fichier demoKalmand.m . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Introduction au filtre de Kalman Page 4/74


5

Introduction

Ce document est une introduction au filtre optimal de Kalman applique aux


syst`emes lineaires. On suppose connues la theorie des asservissements lineaires et du
filtrage frequentiel (continu et discret) ainsi que les notions detats pour representer
les syst`emes dynamiques lineaires.
Dune facon generale, la fonction de filtrage consiste `a estimer une information
(signal) utile qui est polluee par un bruit. Alors que le filtrage frequentiel suppose
quil existe une separation entre les reponses frequentielles du signal utile et du bruit
et consiste `a trouver une fonction de transfert satisfaisant un gabarit sur le gain de
sa reponse frequentielle (et beaucoup plus rarement sur la courbe de phase), le filtre
de Kalman vise `a estimer de facon optimale letat du syst`eme lineaire (cet etat
correspond donc `a linformation utile). Avant de definir le crit`ere doptimalite qui
permettra de calculer le filtre de Kalman (et qui est en fait un crit`ere stochastique),
il est necessaire de faire quelques rappels sur les signaux aleatoires.
Dans la premier chapitre de ce document, nous rappelons comment on car-
acterise mathematiquement un signal aleatoire et nous etudierons la reponse dun
syst`eme lineaire `a un signal aleatoire de facon tout `a fait complementaire `a la reponse
dun syst`eme lineaire `a un signal deterministe (echelon, rampe, ...). Dans le sec-
ond chapitre nous donnerons tous les elements definissant la structure du filtre de
Kalman. Le lecteur desirant sinformer sur la methodologie generale de reglage
dun filtre de Kalman pourra directement aller au chapitre 2. Par contre la lecture
du chapitre 1, certes plus lourd sur le plan theorique, sera incontournable `a celui
qui voudra comprendre les principes de base utilises dans le traitement des signaux
aleatoires et sur lesquels est fonde le filtre de Kalman.
Les applications du filtre de Kalman sont nombreuses dans les metiers de
lingenieur. Le filtre de Kalman permettant de donner un estime de letat de
syst`eme `a partir dune information a priori sur levolution de cet etat (mod`ele) et
de mesures reelles, il sera utilise pour estimer des conditions initiales inconnues
(balistique), predire des trajectoires de mobiles (trajectographie), localiser un
engin (navigation, radar,...) et egalement pour implanter des lois de commande
fondees sur un estimateur de letat et un retour detat (Commande Lin eaire
Quadratique Gaussienne). Les bases de traitement de signal sur lesquelles re-

Introduction au filtre de Kalman Page 5/74


6 Introduction

pose le filtre de Kalman seront egalement utiles `a tout ingenieur confronte `a


des probl`emes de definition de protocoles dessais, de depouillements dessais et
egalement didentification param etrique, cest-`a-dire la determination experi-
mentale de certains param`etres du mod`ele.

Introduction au filtre de Kalman Page 6/74


7

Chapter 1

Signaux al
eatoires et syst`
emes
lin
eaires

1.1 Position du probl`


eme
Considerons le mod`ele detat dun syst`eme suppose lineaire et stationnaire :

x(t)
= Ax(t) + Bu(t) + M w(t) (equation detat)
(1.1)
y(t) = Cx(t) + Du(t) + v(t) (equation de mesure)

o`
u:

x(t) Rn est le vecteur detat du syst`eme,

u(t) Rm est le vecteur des entrees deterministes et connues (commandes,...),

w(t) Rq est le vecteur des signaux aleatoires inconnus qui viennent per-
turber directement lequation detat du syst`eme `a travers une matrice dentree
Mnq (on note wx = M w le bruit detat),

y(t) Rp est le vecteur des mesures,

v(t) Rp est le vecteur des signaux aleatoires (bruit de mesure) qui polluent
les mesures y(t) (on suppose quil y a autant de bruits que de mesures).

Exemple 1.1 Le mod`ele dit quart de vehicule utilise pour etudier une suspension
active de voiture est represente sur le figure 1.1. Lorgane de commande permet
dappliquer des efforts u entre la roue (de masse m reperee par sa position verticale
z) et la caisse du vehicule (de masse M reperee par sa position verticale Z). On
designe par K et f la raideur et le frottement visqueux de la suspension passive, par
k la raideur du pneu entre la roue et la route. Enfin, on note w la position verticale
du point de contact pneu/sol sollicitee par les irregularites de la route (bruit de

Introduction au filtre de Kalman Page 7/74


8 atoires et syste
1. Signaux ale `mes line
aires

roulement). On mesure lacceleration de la caisse avec un accelerom`etre sensible `a


la gravite (g = 9.81 m/s2 ) et on note v le bruit de mesure de ce capteur.

K f u
g
m
Z

k
z

ground w

Figure 1.1: Mod`ele 1/4 de vehicule.

On note z et Z les variations de z et Z autour dune position dequilibre z0 et Z0


(obtenue en supposant que w = 0, u = 0 et que la gravite est enti`erement compensee
par lecrasement des 2 raideurs K et k). En appliquant le principe fondamental de
la dynamique sur les 2 masses M et m (calcul aux variations), on obtient :
= K(z Z) + f (z
M Z Z)
+u
mz = K(z Z) f (z Z)
u k(z w) .

z]
En choisissant x = [Z, z, Z, T comme vecteur detat, on obtient la representation
detat suivante :

0 0 1 0 0
0 0
0 0 0 1 0 u 0 0
x =
K/M
x +


1/M
g +
0 w

K/M f /M f /M 0
K/m (K + k)/m f /m f /m 1/m
0 1/k
u
y = K/M K/M f /M f /M x + [1/M
1] +v .
g
(1.2)
On obtient donc un mod`ele du type de (1.1) avec n = 4, m = 2, q = 1 et p = 1.

Introduction au filtre de Kalman Page 8/74


finitions
1.2 Rappels et de 9

On reconnat dans les matrices (A, B, C, D) du mod`ele (1.1) la representation


detat classique du transfert entre lentree u et la sortie y : 1 :

F (s) = D + C(sI A)1 B .

La reponse de ce mod`ele `a des entrees deterministes u(t) sur un horizon t [t0 , t]


et `a des conditions initiales x(t0 ) secrit :
Z t
A(tt0 )
x(t) = e x(t0 ) + eA(t ) Bu( ) d (1.3)
t0
y(t) = Cx(t) + Du(t) (1.4)

D
emonstration: voir annexe A dans la quelle figure egalement un exercice dapplication.
Quen est-il de la reponse du mod` ele (1.1) `a un signal al
eatoire w(t) ?
Pour repondre `a cette question, nous allons :

dabord rappeler comment on caracterise mathematiquement (ou stochastique-


ment) les signaux aleatoires (ou processus stochastiques),

enoncer quelques hypoth`eses sur les caracteristiques stochastiques des bruits


w(t)et v(t) (bruits blanc gaussiens) pour faciliter le calcul de la reponse du
mod`ele (1.1),

calculer les caracteristiques stochastiques de cette reponse (x(t) et y(t)).

Les differentes definitions et rappels donnes ci-dessous sont extraits de la reference


[4] (chapitre II et annexe A.I).

1.2 Rappels et d
efinitions
1.2.1 Caract
erisation dune variable al
eatoire scalaire
Soit X une variable aleatoire scalaire prenant ses valeurs dans R. La fonction de
r
epartition F (x) associe `a tout reel x la probabilite de levenement X < x. On
note:
F (x) = P [X < x] .
Proprietes:

x1 < x2 , P [x1 X < x2 ] = F (x2 ) F (x1 ),

limx+ F (x) = 1; limx F (x) = 0.


1
s designe la variable de Laplace.

Introduction au filtre de Kalman Page 9/74


10 atoires et syste
1. Signaux ale `mes line
aires

F (x) est monotone, non decroissante, et peut etre continue ou discontinue


selon que X prenne des valeurs continues ou discr`etes.

Si F (x) est derivable, alors sa derivee est appelee densit


e de probabilit
e et notee
p(x):
dF (x)
p(x) = soit : p(x)dx = P [x X < x + dx] .
dx
Pour caracteriser et manipuler mathematiquement une variable aleatoire X , on
utilise egalement les moments de cette variable. Le moment dordre 1 est plus
connu sous le nom de moyenne ou esp erance math ematique. Le moment centre
dordre 2 est appele variance que lon note varx = x2 ; x designe l ecart type.
Soit :

lesp
erance math
ematique ou moyenne:
Z + Z +
E[X ] = x p(x) dx = x dF (x) , (1.5)

le moment dordre k:
Z +
k
E[X ] = xk p(x) dx , (1.6)

2
le moment centr
e dordre k:
Z +
k
E[(X E[X ]) ] = (x E[X ])k p(x) dx .

Les moments dordre superieur ou egal `a 3 sont tr`es peu utilises car ils se
pretent mal au calcul theorique. Linteret (mathematique) des variables aleatoires
gaussiennes est quelles sont enti`erement caracterisees par leurs moments dordre
1 et 2. Soit X une variable aleatoire gaussienne de moyenne m et decart type ,
alors:
1 (xm)2
p(x) = e 22 , E[x] = m, E[(x m)2 ] = 2 .
2
Exemple 1.2 (Loi uniforme) La variable aleatoire X est equirepartie entre deux
valeurs a et b avec b > a.
Z b b
x 1 1 2 1 b2 a2 a+b
E[X ] = dx = x = =
a ba ba 2 a 2 ba 2
Z b 2 " 3 #b
1 a + b 1 1 a + b
varx = E[(X E[X ])2 ] = x dx = x
ba a 2 ba 3 2
a
2
Rappel: varx = E[X 2 ] E[X ]2 .

Introduction au filtre de Kalman Page 10/74


finitions
1.2 Rappels et de 11

F(x) p(x)

1 1/(ba)

a 0 b x a 0 b x

Figure 1.2: Fonction de repartition et densite de probabilite de la loi uniforme.

3
1 1 ba (b a)2
varx = = .
3ba 2 12
2

Variable al eatoire discr` ete: si la variable aleatoire X prends ses valeurs dans
un ensemble discret de N valeurs xi , i = 1, , N alors on ne parle plus de densite
de probabilite et on defini directement la probabilite que X = xi que lon note
P (X = xi ). La calcul des moments fais alors intervenir une somme discr`ete :
N
X
k
E[X ] = xki P (X = xi ) .
i=1

Exemple 1.3 La variable aleatoire X correspondante au lance dun de:


1 21 35
P (X = i) = , i = 1, , 6 ; E[X ] = ; varx = .
6 6 12
2

1.2.2 Caract
erisation dune variable al
eatoire `
a plusieurs di-
mensions
Soit X = [X1 , , Xq ]T une variable aleatoire `a q dimensions prenant ses valeurs
dans Rq .

Fonction de r
epartition

F (x1 , , xq ) = P (X1 < x1 et X2 < x2 et et Xq < xq ) .

Densit
e de probabilit
e

q F (x1 , , xq )
p(x1 , , xq ) = .
x1 xq

Introduction au filtre de Kalman Page 11/74


12 atoires et syste
1. Signaux ale `mes line
aires

Moments

On note: x = [x1 , , xq ]T et on ne sinteressera quau vecteur des moments dordre


1 (cest-`a-dire le vecteur moyen) et `a la matrice des moments dordre 2 centres (cest
`a dire la matrice de covariance).

Moyenne: E[X ] = [E[X1 ], , E[Xq ]]T .

Covariance: Covx = E[(X E[X ])(X E[X ])T ]. Lelement Covx (i, j) de la
ligne i et colonne j de cette matrice de covariance verifie:
Z
Covx (i, j) = (xi E[Xi ])(xj E[Xj ]) dF (xi , xj ) .
R2

La matrice de covariance est definie, positive et symetrique.

Vecteur al
eatoire gaussien de moyenne m et de covariance

1 1 T 1 (xm)
p(x) = e 2 (xm) .
(2)q/2 det
Le vecteur aleatoire gaussien de moyenne m et de covariance peut etre genere
`a partir du vecteur gaussien normalis e N (cest-`a-dire de moyenne nulle et de
covariance unite) de la facon suivante:

X = m + GN

u G est une matrice verifiant: GGT = .


o`

Ind
ependance

Deux variables aleatoires X1 et X2 sont independantes si et seulement si:

F (x1 , x2 ) = F (x1 )F (x2 ) .

Une condition necessaire dindependance secrit :

E[X1 X2 ] = E[X1 ]E[X2 ] . (1.7)

Exercice 1.1 On consid`ere 2 variables aleatoires X1 et X2 uniformement reparties


entre 1 et 1 et independantes. On definit la variable aleatoire Y = X1 +X
2
2
.
Calculer E[Y], vary et covx1 ,y la matrice de covariance du vecteur: (X1 , Y)T .

Correction : Dapr`es ce qui prec`ede (lois uniformes), on peut ecrire:


1
E[X1 ] = E[X2 ] = 0; varx1 = varx2 = .
3
Introduction au filtre de Kalman Page 12/74
finitions
1.2 Rappels et de 13


X1
Par definition: Y = (1/2 1/2) . On en deduit :
X2

X1
E[Y] = (1/2 1/2) E =0,
X2

X1 1/2 1/2
vary = (1/2 1/2)E (X1 X2 ) = (1/2 1/2)covx1 ,x2
X2 1/2 1/2

1/3 0
Du fait de lindependance de X1 et X2 : covx1 ,x2 =
0 1/3
1
vary = .
6
On montre egalement que:

1 0
covx1 ,y = Gcovx1 ,x2 GT , avec : G =
1/2 1/2
.
1/3 1/6
=
1/6 1/6
Remarque : on aurait pu egalement, au prix de calculs bien plus laborieux, car-
acteriser (compl`etement) la variable aleatoire Y par sa fonction de repartition F (y)
et de densite de probabilite p(y) pour en deduire les moments dordre 1 et 2 :
Z
X1 + X2
F (y) = P < y = P (X1 < 2y X2 ) = P (X1 < 2y x2 )p(x2 )dx2 .
2 Dx2

Pour une valeur donnee de y, on peut ecrire (voir figure 1.2):

P (X1 < 2y x2 ) = 0 x2 / 2y x2 < 1 x2 > 2y + 1,


2y x2 + 1
P (X1 < 2y x2 ) = x2 / 1 2y x2 < 1 x2 / 2y 1 < x2 2y + 1,
2
P (X1 < 2y x2 ) = 1 x2 / 2y x2 1 x2 2y 1.

Et p(x2 ) = 1/2 si 1 x2 < 1, p(x2 ) = 0 sinon. Donc 3 :


Z 1 Z 2y+1
1 2y x2 + 1 (y + 1)2
si y < 0 F (y) = 0 dx2 + dx2 + 0 = ,
2y+1 2 1 4 2
3
En utilisant les probabilites conditionnelles, on peut egalement ecrire:
Z Z
2y x2 + 1
F (y) = 0 p(x2 |x2 > 2y + 1)dx2 + p(x2 |2y 1 < x2 2y + 1)dx2
Dx2 Dx2 2
Z
+ 1 p(x2 |x2 2y 1)dx2 .
Dx2

Introduction au filtre de Kalman Page 13/74


14 atoires et syste
1. Signaux ale `mes line
aires

Z 1 Z 2y1
2y x2 + 1 1 y 2 + 2y + 1
si y 0 F (y) = 0 + dx2 + dx2 = .
2y1 4 1 2 2
On en deduit :
p(y) = y + 1 y [1, 0],
p(y) = y + 1 y [0, 1],
R1 R0 R1
E[Y] = 1 y p(y)dy = 1 y(y + 1)dy + 0 y(y + 1)dy = 0,
R1 R0 R1
vary = 1 y 2 p(y)dy = 1 y 2 (y + 1)dy + 0 y 2 (y + 1)dy = 61 .

F(y) p(y)
1 1

1 0 1 y 1 0 1 y

Figure 1.3: Fonction de repartition et densite de probabilite de Y.

Dans ce qui suit, on parle de variable (resp. signal) aleatoire quil sagisse dune
variable (resp. signal) scalaire (q = 1) ou vectorielle `a q composantes.

1.2.3 Signal al
eatoire (processus stochastique)

Etant donne une variable aleatoire X , le signal al
eatoire ou processus stochas-
tique x(t) est un signal fonction du temps t tel que pour tout t fixe, x(t) corresponde
`a une valeur de la variable aleatoire X .

1.2.4 Moments dun signal al


eatoire
Le moment dordre 2 dun signal aleatoire est appele la fonction dauto-corr
elation.
Soit w(t) un signal aleatoire, alors:

moment dordre 1: m(t) = E[w(t)] (1.8)


T
moment dordre 2: ww (t, ) = E[w(t)w(t + ) ] . (1.9)

Remarque 1.1 Si w(t) est un signal vectoriel `a q composantes alors ww (t, ) est
une matrice de taille q q definie positive pour chaque valeur de t et de . Les
termes de la diagonales sont les fonctions scalaires dauto-correlation de chaque com-
posantes et les termes hors-diagonaux sont les fonctions scalaires dinter-corr elation
entre composantes.

Introduction au filtre de Kalman Page 14/74


finitions
1.2 Rappels et de 15

Un signal al eatoire gaussien centr e, cest-`a-dire `a moyenne nulle, est donc


enti`erement defini par sa fonction dauto-correlation.

1.2.5 Stationnarit
e
Un signal aleatoire est dit stationnaire `a lordre 2 si sa moyenne est constante
(m(t) = m) et si sa fonction dauto-correlation ne depend que de (ww (t, ) =
ww ( )).
La moyenne quadratique ou variance 4 dun signal aleatoire centre stationnaire
est la valeur de la fonction dauto-correlation `a lorigine:

w2 = ww ( )| =0

Exemple 1.4 Un signal aleatoire b(t) est genere de la facon suivante: `a partir de
linstant initial t0 = 0, on bloque le signal b(t) toutes les dt secondes sur la valeur
dune variable aleatoire gaussienne centree X decart type ; tous les tirages xi de la
variable X sont independants les uns des autres. Soit: b(t) = xi t [idt, (i + 1)dt[
(voir figure 1.4).

b(t)

dt

95 % de chance
que le signal soit
compris entre ces
0 2 limites

0 10 dt 20 dt .... t

Figure 1.4: Reponse temporelle dune realisation du signal b(t).

Calculer la moyenne m(t) et la fonction dauto-correlation bb (t, ) du signal


b(t). b(t) est-il stationnaire `a lordre 2?.
4
ou covariance sil sagit dun signal aleatoire vectoriel.

Introduction au filtre de Kalman Page 15/74


16 atoires et syste
1. Signaux ale `mes line
aires

Reprendre les questions precedentes en supposant maintenant que linstant


initial est une variable aleatoire uniformement repartie entre 0 et dt.

ements de solution:
El

m(t) = E[b(t)] = E[X ] = 0, t,

bb (t, ) = E[b(t)b(t + )] = 2 si t et t + sont dans le meme intervalle de


temps dt; 0 sinon (car les tirages sont independants et centres).

La fonction dauto-correlation depend de t et ; le signal b(t) nest donc pas


stationnaire `a lordre 2. Par exemple, pour t = i dt + (i, [0, dt[) , la
reponse de bb (t, ) est donnee sur la figure 1.5.

Figure 1.5: Fonction dautocorrelation du signal b(t).

dt 0 dt

Figure 1.6: Fonction dautocorrelation du signal b0 (t).

si linstant initial t0 est maintenant aleatoire uniformement reparti entre 0 et


dt (on notera b0 (t) ce nouveau signal aleatoire) alors cela revient `a considerer
que, dans le calcul precedent, est uniformement reparti entre 0 et dt:
Z
1 dt
b0 b0 (t, ) = bb (i dt + , )d
dt 0

pour dt > 0, bb (i dt + , ) = 2 ssi 0 < < dt , 0 sinon. Soit


Z dt
2 2
b0 b0 (t, ) = d = (dt ) / 0 < dt .
dt 0 dt

Introduction au filtre de Kalman Page 16/74


finitions
1.2 Rappels et de 17

pour dt < < 0, bb (i dt + , ) = 2 ssi < < dt, 0 sinon. Soit :


Z
2 dt 2
b0 b0 (t, ) = d = (dt + ) / dt < < 0 .
dt dt

On a donc b0 b0 (t, ) = 2 (1 |dt| ) [dt dt], 0 sinon (voir figure 1.6)


qui ne depend plus que de , le signal est maintenant stationnaire `a lordre 2.

1.2.6 Spectre complexe


On peut egalement caracteriser les signaux aleatoires, sils sont stationnaires, par
leurs reponses frequentielles quon appelle densit
e spectrale de puissance ou leurs
spectres complexes (on passe de lun `a lautre en remplacant s par j). On parle
alors danalyse harmonique. Le spectre complexe dun signal aleatoire station-
naire est la transformee de Laplace bilaterale de sa fonction dauto-correlation 5 .
Z
ww (s) = LII [ww ( )] = ww ( )e s d . (1.10)

Densit
e spectrale de puissance (DSP): ww () = ww (s)|s=j .

Remarque 1.2 :
Z Z
s
ww (s) = ww ( )e d + ww (u)eus du
0 0
= +
ww (s) + ww (s)

avec :

+ +
ww (s) = L[ww ( )] et +
ww ( ) = ww ( ) si 0, +
ww ( ) = 0 sinon ,


ww (s) = L[ww ( )] et
ww ( ) = ww ( ) si 0,
ww ( ) = 0 sinon .

Si la fonction ww ( ) est paire alors +


ww = ww et la spectre complexe ww (s) est
une fonction bicarree en s.
Le theor`eme de la valeur initiale de la transformee de Laplace (mono-laterale)
permet alors de calculer la variance directement `a partir du spectre complexe :

w2 = ww ( )| =0 = lim s+
ww (s) .
s

5
La transformee de Laplace bilaterale inverse secrit :
Z +j
1 1
ww ( ) = LII ww (s) = ww (s)es ds
2 j j

Introduction au filtre de Kalman Page 17/74


18 atoires et syste
1. Signaux ale `mes line
aires

Remarque 1.3 : A partir de la DSP on peut alors ecrire :


Z + Z +
1 j 2 1
ww ( ) = ww ()e d et w = ww ()d .
2 2

La variance du bruit w est, `a 2 pr`es, lintegrale de sa DSP.

Exemple 1.5 On reconsid`ere le signal b0 (t) de la section 1.4 dont la fonction dautocorrelation
secrit : b0 b0 (t, ) = 2 (1 |dt| ) (fonction paire). Le spectre complexe de ce signal
est : Z
| | s
b0 b0 (s) = 2 (1 )e d = + +
b0 b0 (s) + b0 b0 (s) avec:
dt

Z dt

+
b0 b0 (s) = 2 (1 )e s d
0 dt
( dt Z )
2 dt s 1 dt s
= e e d (integration par parties)
dt s 0 s 0
( s dt )
2 dt e 2
= + 2
= 2
s dt + es dt 1 .
dt s s 0 dt s

2

b0 b0 (s) = dt s2
es dt + es dt 2 .
La densite spectrale de puissance est donc :

2 j dt j dt
2 2 4 2 dt
b0 b0 () = 2
e + e 2 = 2
(1 cos( dt)) = 2
sin2 ( )
dt dt dt 2

sin2 ( 2dt )
b0 b0 () = 2 dt ( 2dt )2
.

La caracteristique de b0 b0 () est presentee figure 1.7 6 . Dun point de vue pratique,


on preferera la caracteristique en echelle logarithmique presentee figure 1.8 qui met
en evidence que la densite spectrale de puissance peut-etre consideree comme con-
stante pour des pulsations tr`es inferieures `a la pulsation dechantillonnage 2/dt.
Ce signal pourra donc etre utilise comme une source de bruit blanc de
densit e spectrale R dans une plage de pulsations donn ee si lon choisi
2 /dt tr` es grand par rapport ` a cette plage de pulsations et si lon choisi
2
= R/dt (voir section suivante).

Introduction au filtre de Kalman Page 18/74


finitions
1.2 Rappels et de 19

bb()


2
dt

4/dt 2/dt 0 2/dt 4/dt

Figure 1.7: Densite spectrale de puissance du signal b0 (t).

bb() |dB

20 log10(2 dt)

0 2/dt
4/dt

Figure 1.8: Densite spectrale de puissance du signal b0 (t) (echelles logarithmiques).

Introduction au filtre de Kalman Page 19/74


20 atoires et syste
1. Signaux ale `mes line
aires

Cette representation frequentielle des signaux aleatoires est particuli`erement


utile pour etudier la transmission des signaux aleatoires `a travers les syst` emes
lin
eaires stationnaires (voir section 1.3.2).

1.2.7 Bruit blanc


Enfin, un bruit blanc est un signal aleatoire de variance infinie dont la fonction
dauto-correlation est proportionnelle `a un dirac (cest-`a-dire un spectre complexe
constant sur toute la plage des frequences). Cela traduit que les valeurs du signal
pris `a deux instants, meme tr`es proches, ne sont pas du tout correlees.
Les bruits blancs gaussiens centres w(t) et v(t) que nous allons utilises dans le
cadre du filtre de Kalman sont donc enti`erement definis par leur densit es spec-
trales respectives W (t) et V (t):
E[w(t)w(t + )T ] = W (t)( ), E[v(t)v(t + )T ] = V (t)( ) (1.11)
Les matrices W (t) et V (t) deviennent constantes dans le cas de bruits blancs sta-
tionnaires. Le bruit blanc gaussien normalise est tel que W (t) = Iqq (q: nombre de
composantes dans le bruit).

Remarque 1.4 En pratique, on ne sait pas simuler sur un calculateur numerique


un bruit blanc continu de densite spectrale finie R (mais de variance et de puissance
infinies). On utilisera lapproximation presentee dans lexemple 1.4 (voir figure 1.8)
qui consiste `a bloquer sur une periode dt (que lon choisira tr`es petite par rapport
aux constantes de temps du syst`eme que lon veut simuler) une variable aleatoire
gaussienne de variance 2 = R/dt (cest cela meme qui est fait dans le bloc Band-
limited white-noise de Simulink).

1.3 Passage dun signal al


eatoire dans un syst`
eme
lin
eaire
1.3.1 Approche temporelle
Sous lhypoth`ese dun syst`eme lineaire (equation 1.1) et dun bruit w gaussien, nous
pouvons affirmer que letat x et la sortie y sont egalement des signaux (vectoriels)
gaussiens qui sont donc enti`erement caracterises par leurs moments dordre 1 et 2.
Le theor`eme suivant va nous permettre de calculer ces caracteristiques stochastiques.
Nous supposons dans ce qui suit que lentree deterministe est nulle (u(t) = 0).
6
On rappelle que limx0 ( sin x
x )=1

Introduction au filtre de Kalman Page 20/74


atoire dans un syste
1.3 Passage dun signal ale `me line
aire 21

Th
eor`
eme 1.1 Soit le syst`eme lineaire:
= Ax(t) + M w(t) .
x(t) (1.12)

w(t) est un bruit blanc gaussien stationnaire centre de densite spectrale de puissance
W . On note m(t0 ) et P (t0 ) la moyenne et la covariance de letat initial x(t0 ) (lui
aussi aleatoire). Alors x(t) est un signal aleatoire gaussien :

de moyenne:
m(t) = E[x(t)] = eA(tt0 ) m(t0 )

de covariance P (t) = E[(x(t)m(t))(x(t)m(t))T ] verifiant lequation differentielle :


= AP (t) + P (t)AT + M W M T .
P (t) (1.13)

Si le syst`eme est stable (toutes les valeurs propres de A sont `a partie reelle
negative) on tend vers un regime permanent (stationnaire) : P = 0 et P (t) =
P verifie alors lequation de Lyapunov continue :

AP + P AT + M W M T = 0 . (1.14)

D
emonstration: (voir annexe B.2).

Remarque 1.5 Si lon consid`ere lequation de sortie y(t) = Cx(t) alors la matrice
de covariance Py (t) de y(t) verifie :

Py (t) = CP (t)C T

(si lon consid`ere un bruit blanc de mesure, alors cette covariance est infinie).

1.3.2 Approche fr
equentielle (spectrale)
Nous nous interessons ici uniquement au regime permanent.

Theor`eme 1.2 (Passage dun bruit dans un syst` eme lin eaire) La sortie y dun
syst`eme lineaire stable defini par la matrice de transfert G(s)pq et attaque par un
signal aleatoire w de spectre complexe ww (s)qq est un signal aleatoire de spectre
complexe
yy (s)pp = G(s)ww (s)GT (s) .

Demonstration: (voir annexe B.3).


Dans le cas dun transfert G mono-entree, mono sortie (SISO), cette relation
est decrite par la figure 1.9.

Introduction au filtre de Kalman Page 21/74


22 atoires et syste
1. Signaux ale `mes line
aires

G(s)

Figure 1.9: Cas SISO.

Reciproquement : considerons un signal aleatoire w(t) de spectre complexe


donne ww (s) reel (cest-`a-dire qui ne fait apparatre que des puissances paires de s;
ce qui implique que le fonction dauto-correlation associee ww ( ) est paire); alors
la decomposition 7 :
ww (s) = G(s)GT (s)
o`
u G(s) est le transfert qui regroupe tous les poles stables de ww (s), permet de don-
ner une representation markovienne du signal w(t), cest-`a-dire une representation
detat de G(s) notee (on supposera G(s) strictement propre).

xG(t) = AG xG (t) + BG b(t)
w(t) = CG xG (t)

o`
u b(t) est un bruit blanc normalise bb (s) = Iqq .

Exemple 1.6 0n reprend lexemple 1.1 relatif au mod`ele 1/4 de vehicule. Des essais
en condition reelle de roulement ont montre que la densite spectrale de puissance
du bruit de roulement pour un vehicule roulant `a 90 km/h sur une departementale
pouvait etre approchee par la fonction suivante:

2 + 104
ww () =
4 1.75 104 2 + 108

a) Donner le spectre complexe du bruit w(t).

b) Donner une representation markovienne de w(t).

c) Quel est la variance du signal w(t) (on suppose le signal centre)?

Solution :
s2 +104
a) Par definition: ww (s) = s4 +1.75 104 s2 +108
.

b) Une decomposition ww (s) = G(s)G(s) secrit :



102 + s 102 s
ww (s) = .
s2 50s + 104 s2 + 50s + 104
7
Une telle decomposition nest pas unique comme le montre lexemple 1.6.

Introduction au filtre de Kalman Page 22/74


1.4 Illustration sous Matlab 23

Il faut regrouper dans G(s) tous les poles stables de ww(s), ce qui permet
de fixer le denominateur de G(s) mais il ny a aucune condition sur la sta-
bilite des zeros de G(s). Il y a donc 2 filtres stables qui permettent, lorsquil
sont attaques par un bruit blanc normalise b(t), de generer un bruit de spectre
ww (s):
102 s 0 102 + s
G(s) = 2 et G (s) =
s + 50s + 104 s2 + 50s + 104
Si lon choisi G(s) alors une representation markovienne de w(t) secrit (on
choisit par exemple une forme compagne horizontale) :

0 1 0
xG (t) = xG (t) + b(t)
104 50 1 . (1.15)
2
w(t) = [10 1]xG (t)

c) La variance peut etre calculee de 2 facons :

`a partir du spectre complexe et du theor`eme de la valeur initiale (voir


Remarque 1.2) :
1/50 s + 1/2 1/50 s + 1/2
ww (s) = 2 4
+ 2 4
= +
ww (s) + ww (s)
s + 50s + 10 s 50s + 10
w2 = ww ( )| =0 = lim s+
ww (s) = 1/50.
s

`a partir de la representation markovienne et du theor`eme 1.1 : en regime


permanent, la matrice de covariance P du vecteur detat xG de la representation
1.15 verifie lequation de Lyapunov :

0 1 0 104 0 0 0 0
P +P + =
104 50 1 50 0 1 0 0
6
10 0
P =
0 102
6 2
2 2 10 0 10
w = [10 1] = 1/50 .
0 102 1

1.4 Illustration sous Matlab


Le fichier bruit.m donne ci-dessous permet dillustrer lutilisation de macro-fonc-
tions Matlab pour resoudre lexemple 1.6. Il montre egalement comment simuler
sur un calculateur numerique un tel bruit colore `a partir dun bruit pseudo-blanc

Introduction au filtre de Kalman Page 23/74


24 atoires et syste
1. Signaux ale `mes line
aires

echantillonne-bloque `a la cadence dt et permet donc de valider les resultats des exem-


ples 1.4 et 1.5. Il utilise pour cela le fichier Simulink simule_bruit.mdl represente
sur la figure 1.10 8 . Les reponses du bruit pseudo-blanc b(t) et du bruit de roule-
ment w(t) presentees respectivement figures 1.11 et 1.12 mettent en evidence que la
variance de w(t) est independante de dt (du moment que dt est rapide par rapport
`a la dynamique du filtre G(s)) alors que la variance de b(t) est egale `a 1/dt: on
retrouve que cette variance tend vers linfini si dt tend vers 0 tout comme la vari-
ance dun bruit blanc continu est infinie (par contre la densite spectrale de b(t) est
independante de dt et vaut 1).
Lexemple B.1 en annexe compl`ete cette illustration par une analyse de la vari-
ance du bruit w en temps discret (`a la cadence dt).

%=============================================================
clear all close all
% D
efinition du filtre:
G=tf([-1 100],[1 50 10000])
% Calcul dune r
ealisation:
[A,B,C,D]=ssdata(G);
% Calcul de la variance par lequation de Lyapunov:
P=lyap(A,B*B); var_w=C*P*C
% ==> On retrouve bien le r esultat esp
er
e: variance=1/50.
% (
ecart type: sigma=0.14)

% Validation en simulation: voir fichier SIMULINK: simule_bruit.mdl

% Choix dun pas dechantillonnage rapide par rapport `


a
% la dynamique du filtre (100 rd/s):
dt=0.0001;
% Simulation:
sim(simule_bruit);
% Trace des r
esultats:
plot(b.time,b.signals.values,k);
% Calcul numerique de la variance de b(t):
var(b.signals.values) % On retrouve var_b=1/dt=10000.
figure
plot(w.time,w.signals.values,k)
% Calcul numerique de la variance de w(t):
var(w.signals.values) % On retrouve var_w=1/50 (`a peu pr
es)

8
Merci denvoyer un mail `a alazard@supaero.fr avec Introduction Kalman pour sujet si
vous desirez une copie des 2 fichiers bruit.m et simule bruit.mdl.

Introduction au filtre de Kalman Page 24/74


1.4 Illustration sous Matlab 25

% On multiplie le pas d
echantillonnage par 10:
dt=0.001;
sim(simule_bruit);
figure(1) hold on
plot(b.time,b.signals.values,g-);
var(b.signals.values) % On retrouve var_b=1/dt=1000.
figure(2) hold on
plot(w.time,w.signals.values,g-)
var(w.signals.values) % On retrouve var_w=1/50 (`
a peu pr
es).
%=============================================================

b(t) s+100 w(t)


w
s2+50s+10000
BandLimited G(s) To Workspace
White Noise:
Noise power =1
Sample time=dt b

To Workspace1

Figure 1.10: Fichier SIMULINK simule bruit.mdl pour la simulation du bruit de


roulement.

400

300

200

100
b(t)

100

200

300

400
0 0.5 1 1.5 2
Temps (s)

Figure 1.11: Reponse du bruit blanc normalise b(t) (avec dt = 0.0001 s: noir; avec
dt = 0.001 s: gris).

Introduction au filtre de Kalman Page 25/74


26 atoires et syste
1. Signaux ale `mes line
aires

0.4
2w=0.28
0.3

0.2

0.1

w(t)
0.1

0.2

0.3

0.4

0.5
0 0.5 1 1.5 2
Temps (s)

Figure 1.12: Reponse du bruit de roulement w(t) (avec dt = 0.0001 s: noir; avec
dt = 0.001 s: gris).

1.5 Conclusion
Ce chapitre a permis de presenter les outils mathematiques utilises pour analyser
les signaux aleatoires continus et leurs transmission dans les syst`emes dynamiques
lineaires. Il a egalement permis dintroduire la notion de bruit gaussien centre
(hypoth`ese requise dans le mod`ele de Kalman presente dans le chapitre suivant)
qui a lavantage detre enti`erement caracterise par sa fonction dautocorrelation (ou
son spectre complexe sil est stationnaire).
Le lecteur trouvera en annexe B des complements pour lanalyse des signaux
aleatoires discrets.

Introduction au filtre de Kalman Page 26/74


27

Chapter 2

Le filtre de Kalman

2.1 Principe du filtre de Kalman


2.1.1 Le mod`
ele de Kalman
Nous reprenons le mod`ele presente au debut du chapitre 1 qui fait apparatre des
entrees deterministes u(t) et aleatoires w(t) et v(t). Nous supposerons donc que notre
syst`eme perturbe peut etre modelise par le mod`ele detat suivant appele mod` ele
de Kalman :

= Ax(t) + Bu(t) + M w(t) equation detat, x Rn , u Rm , w Rq
x(t)
y(t) = Cx(t) + Du(t) + v(t) equation de mesure, y Rp , v Rp
(2.1)
auquel nous adjoindrons les hypoth`eses suivantes.

2.1.2 Hypoth`
eses
Nous supposerons que :

H1: La paire (A, C) est detectable, cest-`a-dire quil ny a pas de mode instable et
inobservable dans le syst`eme,

H2: les signaux w(t) et v(t) sont des bruits blancs gaussiens centr
es de Densit
e
Spectrale de Puissance (DSP) W et V respectivement, cest-`a-dire :

E[w(t) w(t + )T ] = W ( ),
E[v(t) v(t + )T ] = V ( )
E[w(t) v(t + )T ] = 0 (cette derni`ere relation traduit lindependance
stochastique des bruits w(t) et v(t) : cette hypoth`ese est introduite pour
alleger les calculs qui vont suivre mais nest pas necessaire. On trouvera

Introduction au filtre de Kalman Page 27/74


28 2. Le filtre de Kalman

dans la reference [4] les formules qui prennent en compte une correlation
entre les bruits detat et de mesure).

H3: V est inversible (il y a autant de sources de bruits blancs independantes que
de mesures dans lequation de mesure) 1 .

Quelques remarques:

Bien que toute la theorie du filtre Kalman soit valable dans le cas non-
stationnaire, nous supposerons que le syst`eme et les bruits sont stationnaires:
les matrices A, B, M , C, D, W et V sont supposes ici independantes du temps.

La moyenne dun signal aleatoire, que lon appelle aussi biais, est consideree
comme deterministe et doit etre, le cas echeant, extraite du signal w(t) pour
que celui-ci satisfasse lhypoth`ese de signal centr e (hypoth`ese H2). Par ex-
emple si le signal aleatoire w(t) qui perturbe le syst`eme lineaire defini par
(2.1) est biaise et si ce biais E[w(t)] est connu alors on appliquera le filtre de
Kalman sur le mod`ele suivant:

u(t)
x(t) = Ax(t) + [B M ] + M (w(t) E[w(t)])
E[w(t)] .

y(t) = Cx(t) + Du(t) + v(t)

Le bruit detat w(t)


= w(t)E[w(t)] est maintenant centre. Si le biais E[w(t)]
est inconnu alors on pourra le modeliser comme une condition initiale sur une
variable detat supplementaire et le filtre de Kalman permettra destimer ce
biais (voir exemple de la section 2.3).

Si les bruits sont des bruits colores et caracterises par des spectres complexes
alors les resultats de la section 1.3.2 permettront de prendre en compte la
couleur (ou reponse frequentielle) de ces bruits par un mod`ele de Kalman
augmente de la repr esentation Markovienne des bruits. Par exemple:
si on connat le spectre complexe ww (s) du signal aleatoire w(t) centre et
colore qui intervient dans lequation detat (2.1), la decomposition ww (s) =
G(s)GT (s) permettra de determiner une repr esentation Markovienne du
signal aleatoire w(t) cest-`a-dire une representation detat de G(s) (voir exem-
ple 1.6) :
xG(t) = AG xG (t) + BG b(t)
w(t) = CG xG (t)
o`
u b(t) est maintenant un signal aleatoire de spectre complexe unitaire
bb (s) = Iqq (cest-`a-dire un bruit blanc normalise).
1
V est donc une matrice definie positive et W est une matrice semi-definie positive.

Introduction au filtre de Kalman Page 28/74


2.1 Principe du filtre de Kalman 29

Le mod`ele augmente:
" #


x(t) A M CG x(t) B 0

= + u(t) + b(t)
xG(t) 0 AG xG (t) 0 BG


x(t)

y(t) = [C 0]
xG (t)

satisfait maintenant les hypoth`eses du mod`ele de Kalman.

En fait toute linformation deterministe que lon peut connatre du syst`eme doit etre
regroupee dans le mod`ele (soit x = Ax + Bu, y = Cx + Du et la matrice M ); toute
linformation aleatoire doit etre regroupee dans les bruits w(t) et v(t). Le bruit
detat wx = M w represente les perturbations exterieures (le vent dans le cas dun
avion, les irregularites de la route dans le cas dune voiture, ...) et/ou egalement
les erreurs de modelisation (ecart entre le mod`ele tangent et le mod`ele non-lineaire
qui apparat lors de la linearisation, phenom`enes dynamiques negliges,...): wx est un
majorant de tout ce qui fait que letat nevolue pas exactement comme le predit le
mod`ele deterministe x = Ax + Bu.

2.1.3 Structure dun estimateur non biais


e
Un filtre de Kalman est un syst`eme dynamique avec 2 entrees (vectorielles): la
commande deterministe u et la mesure y, cest-`a-dire tous les signaux connus du
syst`eme. Letat x
b (ou la sortie) de ce filtre est un estime de letat x du syst`eme.
Soit :

u(t)
b (t) = Af x
x b(t) + [Bf Kf ] (2.2)
y(t)
= Af xb(t) + Bf u(t) + Kf y(t) (2.3)

la representation detat de ce filtre. Bien entendu il faut initialiser ce filtre avec


x
b(t0 ): lestime de letat du syst`eme `a linstant initial t0 .
On note (t) = x(t) x b(t) lerreur destimation de letat du syst`eme et (t0 ) =
x(t0 ) xb(t0 ) lerreur dinitialisation.
En retranchant lequation (2.3) de lequation detat (2.1) et en utilisant lequation
de mesure, nous pouvons ecrire :

= Ax + Bu + M w Af x
b Bf u Kf (Cx + Du + v)
= (A Kf C)x Af x
b + (B Bf Kf D)u + M w Kf v
= (A Kf C) + (A Kf C Af )b
x + (B Kf D Bf )u + M w Kf v . (2.4)

Introduction au filtre de Kalman Page 29/74


30 2. Le filtre de Kalman

Etant donne que les bruits w et v sont gaussiens et le syst`eme est lineaire, on
peut affirmer que (t) est une variable aleatoire gaussienne. Nous allons maintenant
nous interesser `a lesperance mathematique (moyenne) de (t).
Estimateur non biais e: avant tout, on souhaite que lestimateur soit non biaise,
cest-`a-dire que:

quel que soit le profil de commande u( ) applique sur lhorizon [t0 , t],

quel que soit linitialisation x


b(t0 ),

on souhaite que la moyenne de lerreur destimation tende vers 0 lorsque t tend vers
linfini.
Les bruits w et v etant centres, nous pouvons ecrire :

E[(t)] = E[(t)]
= (AKf C)E[(t)]+(AKf C Af )E[b
x(t)]+(B Kf DBf )u(t)

et limt E[(t)] = 0, u(t), E[b


x(t)], si et seulement si :

Af = A Kf C, Bf = B K f D (2.5)

et A Kf C est stable. (2.6)


En effet, dapr`es le theor`eme 1.1 (page 21), on a alors :

E[(t)] = e(AKf C)(tt0 ) (t0 ) et lim E[(t)] = 0 .


t

Si lon reporte (2.5) dans (2.3), lequation du filtre de Kalman secrit:

b = (Ab
x x + Bu) + Kf (y Cb
x Du) . (2.7)

On reconnat dans le premier terme du second membre de cette equation, le mod`ele


du syst`eme (Ab x +Bu) qui est exploite pour predire levolution de letat du syst`eme `a
partir de lestimation courante xb. Cette prediction est en fait une simulation en ligne
du mod`ele du syst`eme. Le mod`ele etant faux, la prediction est recalee en fonction
de lerreur entre la mesure y et la mesure predite yb = C x b + Du et du gain du filtre
Kf . Le signal derreur y yb est aussi appele linnovation. Le schema correspondant
(dans le cas o`u D = 0) est represente sur la figure 2.1. Cette structure garantit que
lestimateur est non biaise quel que soient les matrices A, B, C, D du syst`eme et le
gain Kf tel que A Kf C soit stable (cela justifie en fait lhypoth`ese H1: la presence
dun mode instable et inobservable ne permet pas de trouver de gain Kf stabilisant
et donc de construire un estimateur non-biaise).

Introduction au filtre de Kalman Page 30/74


` variance minimale
2.2 Estimateur a 31

u y +
Plant

Kf
^
B
+ Z

+
+
x
C

A
Kalman filter
^
x

Figure 2.1: Schema fonctionnel du filtre de Kalman (cas D = 0).

2.2 Estimateur `
a variance minimale
Le gain Kf est calcule en fonction de la confiance que lon a dans le mod`ele (exprimee
par la densite spectrale W ) relativement `a la confiance que lon a dans la mesure
(exprimee par la densite spectrale V ). Si le mod`ele est tr`es bon (W tr`es petit) et
la mesure tr`es bruitee (V tr`es grand) alors le gain Kf devra etre tr`es petit. En fait
parmi tous les gains Kf satisfaisant la contrainte (2.6), nous allons choisir celui qui
minimise la variance de lerreur destimation de letat du syst`eme (t) (t). Nous
rappelons (voir section precedente) que (t) = x(t) x b(t) est une variable aleatoire
vectorielle (`a n composantes) centree (non-biaisee) gaussienne. Le caract`ere gaussien
de cette variable permet daffirmer que si la variance de lerreur destimation est
effectivement minimisee, alors x b(t) est vraiment le meilleur estime de x(t).

2.2.1 Solution g
en
erale
On cherche donc Kf qui minimise :
n
X
J(t) = E[i (t)2 ] = E[T (t)(t)] (2.8)
i=1
= trace E[(t)T (t)] (2.9)
= trace P (t) . (2.10)

P (t) = E[(x(t) x b(t))T ]: matrice de covariance de lerreur destimation.


b(t))(x(t) x
En reportant (2.5) dans (2.4), levolution de (t) est decrite par lequation
detat :
w(t)
(t)
= (A Kf C)(t) + [M K] , (2.11)
v(t)

Introduction au filtre de Kalman Page 31/74


32 2. Le filtre de Kalman

avec :
w(t) T T Wqq 0qp
E [w (t + ) v (t + )] = ( ) .
v(t) 0pq Vpp
On peut donc appliquer le theor`eme 1.1 (page 21) et conclure que la covariance de
lerreur destimation P (t) obeit `a lequation differentielle :

T W 0 MT
P (t) = (A Kf C)P (t) + P (t)(A Kf C) + [M Kf ]
0 V KfT
= (A Kf C)P (t) + P (t)(A Kf C)T + M W M T + Kf V KfT . (2.12)

:
Pour minimiser trace P (t), il suffit de minimiser trace P (t)

(trace P (t))
= P (t)C T P (t)C T + 2Kf V
Kf

Kf (t) = P (t)C T V 1 . (2.13)


En reportant (2.13) dans (2.12), nous obtenons :

P (t) = AP (t) + P (t)AT P (t)C T V 1 CP (t) + M W M T . (2.14)

Cette equation differentielle de Riccati doit etre integrer et initialiser avec P (t0 )
qui traduit la confiance que lon a dans linitialisation du filtre avec xb(t0 ):

P (t0 ) = E[(x(t0 ) x b(t0 ))T ] .


b(t0 ))(x(t0 ) x

On obtient alors le gain Kf (t) `a partir de P (t) et de lequation (2.13). Le filtre de


Kalman est donc non-stationnaire.
Les equations (2.7), (2.13) et (2.14) constituent les equations du filtre de Kalman
continu quil faut integrer `a partir de linitialisation x
b(t0 ) et P (t0 ). Lintegration de
(2.14) et le calcul de Kf (t) (2.13) peuvent etre effectues en ligne ou hors ligne.
Dans ce dernier cas, il faudra stocker dans le calculateur la loi Kf (t). En pratique,
limplantation du filtre de Kalman se fera sur un calculateur numerique et donc en
temps discret. On peut alors discretiser lequation detat (2.7) du filtre de Kalman
(integration par la formule des rectangles ou des trap`ezes, utilisation la transfor-
mation bilineaire si lon ne sinteresse quau regime permanent, ...). On peut aussi
choisir de faire la synth`ese dun filtre de Kalman directement en discret (voir sec-
tion 2.4.2). Enfin, les equations du filtre sont enti`erement definies par les donnees
du probl`eme, cest-`a-dire les matrices A, B, M , C, D, W et V .

Introduction au filtre de Kalman Page 32/74


` variance minimale
2.2 Estimateur a 33

2.2.2 R
egime permanent du filtre de Kalman
En regime permanent, une fois passe le regime transitoire d
u aux erreurs dinitialisation,
lerreur destimation devient un signal aleatoire stationnaire (cela est vrai pour tous
les signaux qui circulent dans le schema de la figure 2.1). On donc :

P (t) = 0 .

P , matrice constante definie positive qui represente la covariance de lerreur destimation


en regime permanent, est la solution positive de lequation algebrique de Riccati :

AP + P AT P C T V 1 CP + M W M T = 0 (2.15)

Le gain du filtre Kf = P C T V 1 devient egalement constant.


On peut verifier que la positivite de P implique la stabilite du filtre, cest-`a-dire
que toutes les valeurs propres de la matrice A Kf C sont `a partie reelle negative
(dapr`es le regime permanent de lequation de Lyapunov (2.12)).
On trouvera dans [1], une methode generale pour trouver la solution positive
dune equation de Riccati. Sur la plan pratique, il faut savoir que tels solveurs sont
disponibles dans les logiciels de CAO dautomatique : fonction lqe sous Matlab
ou Scilab qui fournit directement P et Kf (voir aussi les fonctions care et kalman
sous Matlab).

2.2.3 R
eglage du filtre de Kalman
Pour un mod`ele donne (matrices A, B, M , C, D), le gain du filtre Kf et son
evolution en fonction du temps ne dependent que de :

W : la confiance que lon a dans lequation detat,

V : la confiance que lon a dans la mesure,

P (t0 ): la confiance que lon a dans linitialisation.

En regime permanent si le syst`eme et les bruits sont stationnaires, le gain de


Kalman Kf est constant et sa valeur ne depend plus que de W et V .
Le gain Kf et la reponse de lerreur destimation (t) dependent du poids relatif
de P (t0 ) par rapport `a V (en regime transitoire) et du poids relatif de W par rapport
`a V (en regime permanent). Il est en effet aise de verifier que le gain Kf (et donc
le filtre) ne change pas si lon multiplie les trois matrices W , V et P (t0 ) par une
constante . Par contre la covariance de lerreur destimation P sera egalement
multipliee par . Par consequent il faudra verifier que ces 3 matrices sont realistes
si lon souhaite analyser P pour juger de la qualite de lestimation et conclure par

Introduction au filtre de Kalman Page 33/74


34 2. Le filtre de Kalman

exemple: la probabilite est de p 95 % pour que lap i`eme composante de letat xi (t)
soit comprise entre x bi (t) 2 P(i,i) (t) et x
bi (t) + 2 P(i,i) (t) (propriete des variables
gaussiennes) . En pratique, il est donc necessaire de valider le filtre de Kalman sur
un mod` ele de validation qui prend en compte des bruits de mesure realistes et
surtout une modelisation la plus fine possible des perturbations (non-linearites,...)
que lon a majorees par un bruit detat dans le mod` ele de Kalman.
Quel que soit le reglage, on peut verifier que la variance de lerreur destimation
P (t) est toujours inferieure `a la variance du bruit detat propage dans lequation
detat (donnee par P = AP +P AT +M W M T ) et la variance de lerreur destimation
de la sortie non bruitee yp = Cx+Du, cest-`a-dire : CP (t)C T , est toujours inferieure
`a la variance du bruit de mesure (qui est infinie en continu !! mais cette remarque
reste vrai et egalement plus pertinente en discret, voir section 2.4). Il vaut mieux
donc utiliser ybp = Cbx + Du plutot que la mesure brute y pour estimer la sortie reelle
du syst`eme yp .
On pourra sappuyer sur les compromis suivants pour regler qualitativement la
reponse de lerreur destimation.
Influence de P (t0 ) ./. V : en regime transitoire lerreur destimation initiale 0
sera dautant plus vite recalee (et la gain de Kalman sera dautant plus grand) que
P (t0 ) est grand rapport `a V . Mais lestime sera alors pollue par le bruit de mesure
dans laquelle on accorde beaucoup de confiance.
Influence de W ./. V en regime permanent, le gain Kf sera tr`es faible et
lestimation tr`es lisse si W est tr`es faible par rapport `a V (on fait confiance au
mod`ele). Par contre, si le mod`ele est soumis `a une perturbation que lon a sous es-
timee en reduisant trop W , lestime ne suivra pas ou mettra beaucoup de temps `a
se recaler, la variance de lerreur destimation P ne sera pas non plus representative
de ce phenom`ene.
Ces comportements sont illustres sur lexemple suivant qui, bien quetant tr`es
simple (mod`ele du premier ordre), permet de degager des conclusions qui restent
valables sur des cas plus complexes (continus ou discrets).

2.3 Exercices corrig


es
2.3.1 Syst`
eme du premier ordre

Enonc
e: on consid`ere un syst`eme stable du premier ordre
1
G(s) = avec a < 0 .
sa
La mesure y de la sortie de ce syst`eme est polluee par un bruit blanc v(t) de densite
spectrale unitaire. Lentree de ce syst`eme est soumise `a un retard de transmission

Introduction au filtre de Kalman Page 34/74


s
2.3 Exercices corrige 35

de duree T inconnue et variable. Pour la synth`ese du filtre de Kalman que lon


souhaite elaborer pour estimer la sortie de ce syst`eme, on propose de modeliser (tr`es
grossi`erement) cette perturbation de mod`ele comme un bruit blanc w(t), de densite
spectrale W et independant de v, agissant directement sur le signal dentree selon
la figure 2.2.

w v
u + 1 x + y
+ sa +

Figure 2.2: Mod`ele de synth`ese pour le filtre de Kalman.

a) Donner le mod`ele de Kalman et calculer le filtre de Kalman permettant


destimer la sortie x du syst`eme en fonction de a, W et P0 (la variance de
lerreur dinitialisation: = x0 x
b0 ). Etudier le comportement asymptotique
du gain du filtre pour W tendant vers 0.

b) Construire un simulateur sous M atlab/Simulink afin de verifier linfluence


des param`etres W et P0 sur la reponse de lerreur destimation (t) et sur sa
variance P (t).
Application numerique:

a = 1, x0 = 20, x
b0 = 0,
T = 0, 0.1, 0.5, 1(s) (on essaiera ces diverses valeurs),
u(t): creneau damplitude 10 et de periode 5 s,
dt = 0.01 s (pas dintegration du simulateur).

c) Que proposeriez vous de faire pour ameliorer la qualite de lestime dans le cas
dun retard T important et connu (T = 1 s) ?

Correction: Question a): le mod`ele de Kalman est immediat :



x(t)
= ax(t) + u(t) + w(t)
(n = 1; m = 1; p = 1),
y(t) = x(t) + v(t)
avec E[w(t)w(t + )] = W ( ), E[v(t)v(t + )] = ( ) et E[v(t)v(t + )] = 0.
Le premi`ere etape dans le calcul du filtre de Kalman consiste `a resoudre
lequation differentielle de Riccati (2.14) qui est ici scalaire :
P (t) = 2aP (t) P (t)2 + W
On trouvera dans les formulaires de mathematiques ([6]) une methode generale de
resolution dune telle equation differentielle scalaire. Cette methode consiste `a :

Introduction au filtre de Kalman Page 35/74


36 2. Le filtre de Kalman

chercher une solution particuli`ere constante (car les coefficients de lequation


differentielle ne dependent pas du temps) qui correspond en fait `a la solution
en regime permanent p = p qui verifie :
2
P 2aP W = 0 .

La seule solution positive est P = a + a2 + W ,

chercher une solution generale du type:


1
P (t) = P + .
z(t)

Apr`es developpement de P (t) on trouve :



= 2 a2 + W z(t) + 1 .
z(t)

Lintegration de cette equation differentielle par la methode de la variation de


la constante donne :
1 h i
2 2
z(t) = e2 a +W (tt0 ) 1 + e2 a +W (tt0 ) z0
2 a +W2

o`
u t0 est linstant initial et z0 = z(t0 ) est la condition initiale sur z(t) :
1
z0 =
P0 P

avec P0 condition initiale sur P (t). En notant k = 2 a2 + W , il vient :

k(P0 P )
P (t) = P +
(P0 P )(ek(tt0 ) 1) + kek(tt0 )
k(P0 P )
= P + k(tt0 ) .
e (P0 P + k) + P P0

Enfin: Kf (t) = P (t).

Si W = 0 alors P = a + |a| = 0 si a < 0 (syst`eme stable)

lim Kf = 0 .
t

Une fois recalee lerreur dinitialisation, on utilise plus que le mod`ele pour estimer
x. Ceci est logique puisque lon a suppose le mod`ele parfait (W = 0). Cela suppose
egalement que le mod`ele soit stable. En effet si le mod`ele est instable (a > 0) alors :

lim Kf = 2a .
t

Introduction au filtre de Kalman Page 36/74


s
2.3 Exercices corrige 37

Cest la valeur du gain qui permet de stabiliser la dynamique du filtre (A Kf C)


tout en minimisant leffet du bruit de mesure sur la variance de lerreur destimation
de x.
Question b): Le simulateur developpe sous Matlab Simulink est represente sur
la figure 2.3. Les differents param`etres dentree utilises par ce fichier Simulink
(simuKalman.mdl) sont mentionnes `a meme le schema. La fonction Matlab Kf_t.m
utilisee pour implanter le gain Kf non stationnaire est donnee en annexe C ainsi que
le fichier demoKalman.m definissant les differents param`etres et permettant le trace
des resultats 2 . Differents resultats de simulation sont presentes sur les figures 2.4 `a
2.8 :

Figure 2.4 : La confiance P0 dans linitialisation nest pas du tout representative


de lerreur destimation initiale qui est en fait tr`es importante (0 = x0
x
b0 = 20). Le transitoire de recalagep de cette erreur initiale est donc long et
lestimation de x `a 2 (avec (t) = P (t)) ne permet pas de cadrer la valeur
reelle de x durent le regime transitoire.

Figure 2.5 : Si lon degrade cette confiance dans linitialisation (P0 = 100),
ce transitoire devient plus rapide car le filtre exploite davantage les mesures.
Lestime est donc un peu plus bruite durant ce transitoire. En regime per-
manent, lestime redevient plus lisse car on fait confiance au mod`ele W = 1
(faible bruit detat). On peut constater que lestime est non biaise. Enfin
lestimation est bonne car pour cette simulation le mod`ele de validation (avec
T = 0) correspond effectivement au mod`ele de synth`ese du filtre de Kalman.

Figure 2.6 : Si maintenant on prends en compte un retard de 1 s dans le mod`ele


de validation, la (bonne) confiance que lon a dans le mod`ele (W = 1) ne
permet pas de representer les erreurs reelles de mod`eles; le filtre fait confiance
au mod`ele (qui est faux), reagi tr`es lentement et exploite mal les mesures.

Figure 2.7 : Si lon specifie maintenant que le mod`ele nest pas bon (W = 100),
le filtre fait davantage confiance aux mesures : lestime devient plus sensible
au bruit de mesure.

Figure 2.8 (reponse `a la question c)) : si lon sait effectivement quil y un


retard de 1 s, on peut en tenir compte dans le mod`ele de Kalman soit en
propageant directement ce retard dans la prediction soit, ce qui est propose
ici, en prenant compte dun filtre de Pade en serie avec le mod`ele du syst`eme
(voir fichier demoKalman.m).

2
Merci denvoyer un mail `a alazard@supaero.fr avec Introduction Kalman pour sujet si
vous desirez une copie de ces fichiers.

Introduction au filtre de Kalman Page 37/74


38 2. Le filtre de Kalman

v
SIMULATION PARAMETERS
BandLimited Start time: 0s Stop time: 10s
White Noise: Solver: ode4 (Runge Kutta)
Noise power=V; Fixed step=dt
Sample Time=dt; y

u x
x = Ax+Bu
y = Cx+Du
Signal Transport Delay 1/(s+1)
Generator Time Delay=T A=1;B=1;C=1;
D=0;X0

Scope
Clock
output

MATLAB To Workspace
Kf_t StructureWithTime
Function

1 c
b s
Integrator
Initial Condition=0

Figure 2.3: Fichier SIMULINK simuKalman.mdl pour la simulation du filtre de


Kalman.

50
y(t)
x(t)
u(t)
40
xhat(t)
xhat(t)+2
xhat(t)2
30

20

10

10

20

30

40
0 1 2 3 4 5 6 7 8 9 10

Figure 2.4: Simulation avec P0 = 1, W = 1, T = 0.

Introduction au filtre de Kalman Page 38/74


s
2.3 Exercices corrige 39

50
y(t)
x(t)
u(t)
40
xhat(t)
xhat(t)+2
xhat(t)2
30

20

10

10

20

30

40
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figure 2.5: Simulation avec P0 = 100, W = 1, T = 0 (zoom autour du transitoire) .

50
y(t)
x(t)
40 u(t)
xhat(t)
xhat(t)+2
30 xhat(t)2

20

10

10

20

30

40

50
0 1 2 3 4 5 6 7 8 9 10

Figure 2.6: Simulation avec P0 = 100, W = 1, T = 1.

Introduction au filtre de Kalman Page 39/74


40 2. Le filtre de Kalman

50
y(t)
x(t)
40 u(t)
xhat(t)
xhat(t)+2
30 xhat(t)2

20

10

10

20

30

40

50
0 1 2 3 4 5 6 7 8 9 10

Figure 2.7: Simulation avec P0 = 100, W = 100, T = 1.

40
y(t)
x(t)
u(t)
30
xhat(t)
xhat(t)+2
xhat(t)2
20

10

10

20

30

40

50
0 1 2 3 4 5 6 7 8 9 10

Figure 2.8: Simulation du filtre de Kalman stationnaire calcule sur un mod`ele ten-
ant compte dune approximation de Pade `a lordre 2 du retard (W = 1,
T = 1 s).

Introduction au filtre de Kalman Page 40/74


s
2.3 Exercices corrige 41

2.3.2 Estimation dun biais

Enonc e: un mobile se deplace le long dun axe Ox. On mesure la vitesse x et la


position x de ce mobile et on note vm et xm ces mesures.
La mesure xm est entachee dun bruit blanc gaussien centre v(t) de densite spectrale
unitaire V = 1 (m2 /Hz) : xm (t) = x(t) + v(t).
La mesure vm est biaisee par un signal b(t) modelise comme un echelon damplitude
+ b(t).
b0 inconnue : vm (t) = x(t)
A partir des 2 mesures vm et xm , on desire construire un filtre de Kalman perme-
ttant destimer la position x(t) et le biais b(t).

1) Donnez les equations detat du mod`ele de Kalman avec x et b comme variable


detat, vm comme variable dentree, xm comme variable de sortie.

2) Interpreter ce resultat `a laide dun schema fonctionnel.

En fait le biais b(t) est susceptible de deriver avec le temps. Pour tenir compte de
ces variations eventuelles, on suppose que la derivee du biais est polluee par un bruit
blanc w(t) de densite spectrale W = q 2 independant de v(t) :
= w(t) .
b(t)

3) Donnez les nouvelles equations du mod`ele de Kalman, calculez le gain de


Kalman en regime permanent (en fonction de q) et donner la representation
b et bb `a partir de xm et de
detat du filtre permettant de calculer les estimes x
vm .
b
4) Comment procederiez vous pour estimer la vitesse du mobile x?

5) Calculer la matrice de transfert F (s) du filtre :


" #
b
X(s) Xm (s)
b = F (s) .
X(s) Vm (s)

6) Commentez ce transfert (notamment X(s)/Vb


m (s)) en fonction q. Montrer que
ce filtre F (s) donne des estimes parfaits si les mesures sont parfaites.

Correction: Question 1. On peut directement ecrire :



vm (t) = x(t)
+ b(t) x = b + vm
soit: .
xm (t) = x(t) + v(t) xm = x + v

Introduction au filtre de Kalman Page 41/74


42 2. Le filtre de Kalman

Le biais est modelise comme un etat integral (b = 0) avec une condition initiale b0 .
On a donc :


x 0 1 x 1
= + vm
b 0 0 b 0
(2.16)

x
xm = [ 1 0 ] +v
b

avec E[v(t)v T (t + )] = ( ).
Question 2. Le schema fonctionnel du mod`ele de Kalman est represente sur la
figure 2.9

b0
s v

x
. x +
vm xm
+ +

Figure 2.9: Schema fonctionnel du mod`ele.

Question 3. Si lon calcule le filtre de Kalman sur le mod`ele 2.16, on trouvera un


gain nul en regiment permanent car lequation detat nest pas bruitee: une fois le
biais initial estime, le filtre ne sera plus capable de detecter une derive eventuelle de
ce biais. Pour pallier `a ce probl`eme on introduit un bruit w sur b(t) pour specifier
que ce biais nest pas constant. Le mod`ele secrit alors :


x 0 1 x 1 0
= + vm + w
b 0 0 b

0 1
(2.17)

x
xm = [ 1 0 ] +v
b

avec E[w(t)wT (t + )] = q 2 ( ). On a bien un mod`ele de la forme de (2.1) et on


peut identifier les matrices A, B, C, M .
T 1 p1 p12
La solution en regime permanent secrit : Kf = P C V avec P =
p12 p2
solution positive de lequation algebrique de Riccati:

0 1 p1 p12 p1 p12 0 0 p1 p12 1 0 p1 p12 0 0 0 0
+ + =
0 0 p12 p2 p12 p2 1 0 p12 p2 0 0 p12 p2 0 q2 0 0

soit :
2p12 + p21 = 0
p + p1 p12 = 0 .
2
p212 = q 2

Introduction au filtre de Kalman Page 42/74


s
2.3 Exercices corrige 43

la solution positive secrit:



2q q 2q
P = Kf = .
q q 2q q

Lequation detat du filtre secrit (dapr`es (2.7)) :


" #
b
x x
b x
b x
b xm
= A b +Bvm +Kf xm C b = (AKf C) b +[Kf B] ,
bb b b b vm

" #
b
x 2q 1 x
b 2q 1 xm
soit : = bb + q 0 .
bb q 0 vm

Question 4. On a directement un estime non-biaise de la vitesse en retranchant


lestime du biais bb de la mesure de vitesse vm : x
b = vm bb.
Question 5. La representation detat du transfert recherche secrit :
" #

b
x 2q 1 x
b 2q 1 xm

b =
b q 0 bb + q 0 vm


xb 1 0 x
b 0 0 xm

b = +
x 0 1 b
b 0 1 vm

La matrice de transfert F (s) correspondante secrit donc :


1
0 0 1 0 s 0 2q 1 2q 1
F (s) = + .
0 1 0 1 0 s q 0 q 0

On en deduit :

" # 2qs + q s

b
X(s) qs 2
s + 2qs Xm (s)
b = . (2.18)
X(s) s2 + 2qs + q Vm (s)

Question 6.
b
X s2 + 2qs
(s) = 2 .
Vm s + 2qs + q

Cest
un filtre passe haut du second ordre de pulsation q (rd/s) et damortissement
2/2 (q) qui a un gain statique nul (on filtre les composantes continues). La
frequence de coupure est dautant plus grande que q est grand, cest-`a-dire que le
biais est susceptible de deriver.
Si les mesures sont parfaites alors xm = x et vm = x. On a donc:

Introduction au filtre de Kalman Page 43/74


44 2. Le filtre de Kalman

Xm (s) = X(s) et Vm (s) = sX(s). En reportant cela dans la premi`ere ligne de


(2.18), on obtient:

b ( 2qs + q)X(s) + s2 X(s) b
X(s) = X(s) = X(s) .
s2 + 2qs + q

Vm (s) = X(s)
et Xm (s) = 1/s X(s). En reportant cela dans la seconde ligne
de (2.18), on obtient:

b
X(s) + (s2 + 2qs)X(s) b
X(s) = X(s) = X(s) .
s2 + 2qs + q
Le filtre nentranent donc aucune degradation de la qualite de la mesure. On appelle
un tel filtre un filtre compl ementaire.
2

2.4 Le filtre de Kalman discret


2.4.1 Le mod`
ele de Kalman discret
Par analogie directe avec le cas continu le mod`ele de Kalman discret secrit :

x(k + 1) = Ad x(k) + Bd u(k) + Md wd (k) equation detat, x Rn , u Rm , wd Rq


y(k) = Cd x(k) + Du(k) + vd (k) equation de mesure, y Rp , vd Rp
(2.19)
Hypoth` eses : nous supposerons que :
H1: La paire (Ad , Cd ) est detectable,
H2: les signaux wd (k) et vd (k) sont des bruits pseudo-blancs gaussiens centr
es
de matrices de covariance Wd et Vd respectivement, cest-`a-dire :
E[wd (k) wd (k + l)T ] = Wd (l),
E[vd (k) vd (k + l)T ] = Vd (l)
E[wd (k) vd (k + l)T ] = 0 (avec (l) = 1 si l = 0; 0 sinon).
H3: Vd est inversible.
Remarque 2.1 : Alors que dans le cas continu, les bruits blancs du mod`ele de
Kalman sont definis par des matrices de densite spectrale de puissance (DSP) W
et V (les variances sont infinies), les bruits du mod`ele de Kalman discret sont
definis par leurs matrices de covariances Wd et Vd (les variances sont finies). Les
densites spectrales de puissance de ces bruits sont constantes (et egales `a Wd et Vd )
mais sur une plage limitee de la pulsation reduite [ ] (voir annexe B.1);
do`u le qualificatif de bruit pseudo-blanc.

Introduction au filtre de Kalman Page 44/74


2.4 Le filtre de Kalman discret 45

w(t)
v(t)
dt dt
u(k) u(t) y(t) y(k)
Bo(s) PLANT

Figure 2.10: Syst`eme continu avec commande echantillonnee-bloquee et observation


discr`ete.

u(k) u(t)

u(k) dt Bloqueur u(t)


dordre 0
t
2 k
O 1 3 4 5 6 0 dt

Figure 2.11: Le bloqueur dordre 0: Bo (s).

Remarque 2.2 : comme dans le cas continu, si le bruit wd est colore de spectre
complexe ww (z) la decomposition ww (z) = G(z 1 )GT (z) (voir section B.3.2) per-
met de trouver une representation markovienne de wd que lon pourra prendre en
compte dans un mod`ele de Kalman augmente.

2.4.2 Cas particulier dun syst`


eme continu
echantillonn
e
Comme nous lavons dej`a mentionne, limplantation pratique des filtres de Kalman,
meme pour les syst`emes continus, ce fait en r`egle generale sur un calculateur numerique.
Nous allons donc considerer que la sortie du mod`ele continu (1.1) est echantillonnee
`a la cadence dt (observation discr`ete) et nous supposerons que des bloqueurs dordre
0 sont places sur les signaux deterministes u (voir figures 2.10 et 2.11) et nous allons
chercher une representation detat discr`ete de ce mod`ele.
On note x(k dt) = x(k). Dapr`es la solution generale (1.3), lintegration de
lequation detat entre linstant t0 = k dt et t = (k + 1) dt secrit :
Z ! Z
(k+1)dt (k+1)dt
x(k+1) = eAdt x(k)+ eA((k+1)dt ) Bd u(k)+ eA((k+1)dt ) M w( )d .
k dt k dt

Le changement de variable : (k + 1)dt = v conduit au resultat :


Z dt Z dt
Adt Av
x(k + 1) = e x(k) + e Bdv u(k) + eAv M w((k + 1)dt v)dv .
0 0

Lequation de sortie aux instants dechantillonnage secrit :

y(k) = Cx(k) + Du(k) + v(k)

Introduction au filtre de Kalman Page 45/74


46 2. Le filtre de Kalman

()
vv

/dt 0 /dt

Figure 2.12: Limitation en frequence du bruit de mesure continu.

Lequation detat discr`ete est donc bien de la forme (2.19) avec :


R dt
Ad = eAdt , Bd = 0
eAv Bdv, Md = In , Cd = C, (2.20)

Les bruits detats et de mesure discrets secrivent :


Z dt
wd (k) = eAv M w((k + 1)dt v)dv, vd (k) = v(kdt) ,
0

il faut les caracteriser par leur matrices de covariances respectives.


Du fait de lechantillonnage, la matrice de covariance du bruit de mesure discret
devient :
Vd = V /dt . (2.21)
Justification: lequation de mesure continue y(t) = Cx(t) + Du(t) + v(t) fait
intervenir un bruit blanc v(t) de variance infinie et de DSP finie V . Lechantillonnage
de la mesure `a ma cadence dt fournira donc une suite numerique y(k) de variance
infinie et rendra singulier le calcul du filtre de Kalman. On doit limiter entre /dt
et /dt la reponse frequentielle ou la DSP du bruit v(t) pour pouvoir echantillonner
la mesure y(t) correctement. On retrouve, de facon analogue `a la condition de
Shannon pour les signaux deterministes, que lechantillonnage ne peut pas restituer
les composantes du signal de pulsation superieure `a /dt. La DSP du bruit de mesure
continu limite en frequence est represente sur la figure 2.4.2. La variance de ce signal
est maintenant finie et vaut (voir remarque 1.3) :
Z + Z
1 V dt V
v2 = vv ()d = d = .
2 2
dt dt

Lechantillonnage dun signal ne change pas sa variance donc lechantillonnage de la


V
mesure secrit : y(k) = Cx(k) + Du(k) + vd (k) avec E[vd (k) vd (k + l)T ] = dt (l).

Introduction au filtre de Kalman Page 46/74


2.4 Le filtre de Kalman discret 47

Calculons maintenant la matrice de covariance Wd du bruit detat wd (k) :


Z dt Z dt
T Av T T AT
Wd = E[wd (k)wd (k)] = E e M w((k + 1)dt v)dv w ((k + 1)dt )M e d
0 0
Z Z dt
T
= eAv M E[w((k + 1)dt v)wT ((k + 1)dt )]M T eA dvd
0
Z Z dt
T
= eAv M W ( v)M T eA dvd
0

R dt T
Wd = 0
eAv M W M T eA v dv . (2.22)

Remarque 2.3 : on indique en annexe B (voir remarque B.2, equation (B.13))


comment calculer Wd mais on peut aussi utiliser lapproximation Wd dtM W M T
si dt est petit par rapport au temps de reponse du syst`eme. Enfin on retiendra les
macro-functions Matlab lqed ou kalmd qui englobent tous ces calculs et qui permet-
tent dobtenir le filtre de Kalman discret en regime permanent directement `a partir
des donnees continues (A, B, C, D, M , W et V ) et dune cadence dechantillonnage
dt (voir illustration Matlab en annexe C.3). Cette approche ne supporte pas des
bruits detat w et de mesure v correles.

2.4.3 Les
equations r
ecurrentes du filtre de Kalman
Le principe du filtre de Kalman discret est le meme quen continu. Il utilise une
prediction qui sappuie sur le mod`ele deterministe et un recalage qui sappuie sur
linnovation (difference entre la mesure et la sortie predite) mais en discret on dis-
tinguera :

l
etat pr
edit `a linstant k + 1 connaissant toutes les mesures jusqu`a linstant
k que lon note xb(k + 1|k) et auquel on associe la matrice de covariance de
lerreur de pr ediction notee :
h T i
P (k + 1|k) = E x(k + 1) x
b(k + 1|k) x(k + 1) x
b(k + 1|k) .

l
etat estim e connaissant la mesure `a linstant k + 1 (apr`es le recalage) que
lon note x
b(k+1|k+1) auquel on associe la matrice de covariance de lerreur
destimation notee :
h T i
P (k + 1|k + 1) = E x(k + 1) xb(k + 1|k + 1) x(k + 1) x b(k + 1|k + 1) .

Introduction au filtre de Kalman Page 47/74


48 2. Le filtre de Kalman

Pr ediction: `a linstant k, on connat x


b(k|k), on predit letat `a linstant k + 1
en utilisant le mod`ele deterministe:

x
b(k + 1|k) = Ad x
b(k|k) + Bd u(k) . (2.23)

A linstant k, lerreur destimation etait caracterise par P (k|k). Le mod`ele de


prediction etant faux, lerreur ne peut que crotre et lerreur de prediction `a linstant
k + 1 sera caracterisee par (voir annexe theor`eme B.1) :

P (k + 1|k) = Ad P (k|k)ATd + Md Wd MdT (2.24)

Recalage: `a linstant k + 1, on recale la prediction avec linnovation via le gain


du filtre:

x
b(k + 1|k + 1) = x
b(k + 1|k) + Kf (k + 1) y(k + 1) Cd x b(k + 1|k) Du(k + 1) .
(2.25)
En utilisant lequation de mesure du mod`ele (2.19), on peut ecrire :

x(k+1)b x(k+1|k+1) = In Kf (k+1)Cd (x(k+1)b x(k+1|k))Kf (k+1)vd (k+1) et :

T
P (k + 1|k + 1) = In Kf (k + 1)Cd P (k + 1|k) In Kf (k + 1)Cd + Kf (k + 1)Vd KfT (k + 1)
= P (k + 1|k) Kf (k + 1)Cd P (k + 1|k) P (k + 1|k)CdT KfT (k + 1)

+ Kf (k + 1) Cd P (k + 1|k)Cd + Vd KfT (k + 1) .
T
(2.26)

Comme dans le cas continu, on cherche Kf (k+1) qui minimise trace(P (k+1|k+1)) :
trace(P (k + 1|k + 1))
T T
= 2P (k + 1|k)Cd + 2Kf (k + 1) Cd P (k + 1|k)Cd + Vd .
Kf (k + 1)
On en deduit :
1
Kf (k + 1) = P (k + 1|k)CdT Cd P (k + 1|k)CdT + Vd . (2.27)

En reportant cette expression dans 2.26, on obtient :



P (k + 1|k + 1) = In Kf (k + 1)Cd P (k + 1|k) . (2.28)

Les equations (2.23), (2.24), (2.25), (2.27) et (2.28) constituent les equations du
filtre de Kalman discret. On initialise (2.23) et (2.25) avec x b(0|0), lestime initial
et on initialise (2.24), (2.27) et (2.28) avec P (0|0), la confiance que lon a dans
linitialisation.

Introduction au filtre de Kalman Page 48/74


2.4 Le filtre de Kalman discret 49

Si le mod`ele et les bruits sont stationnaires, on peut integrer (2.24), (2.27) et


(2.28) hors ligne. En reportant (2.27) et(2.28) dans (2.24), on trouve une equation
recurrente de Riccati en la covariance de lerreur de prediction :
1
P (k+1|k) = Ad P (k|k1)ATd Ad P (k|k1)CdT Cd P (k|k1)CdT +Vd Cd P (k|k1)ATd +Md Wd MdT .
(2.29)
Enfin, en regime permanent, Kf (k + 1) = Kf (k) = Kf , mais on distingue :

Pp = P (k + 1|k) = P (k|k 1) = : la matrice de covariance de lerreur de


prediction en regime permanent qui verifie lequation algebrique discr`ete de
Riccati :

Pp = Ad Pp ATd Ad Pp CdT (Cd Pp CdT + Vd )1 Cd Pp ATd + Md Wd MdT . (2.30)

Pe = P (k + 1|k + 1) = P (k|k) = : la matrice de covariance de lerreur


destimation en regime permanent qui verifie :

Pe = (I Kf Cd )Pp .

La representation detat du filtre de Kalman stationnaire en regime permanent


secrit alors (il suffit de reporter (2.25) dans (2.23)) :


y(k)
x
b(k + 1|k) = Ad (I Kf Cd )b
x(k|k 1) +[Ad Kf Bd Ad Kf D]
u(k)

y(k)
x
b(k|k) = (I Kf Cd )b x(k|k 1) +[Kf Kf D]
u(k)
(2.31)
Letat de cette representation correspond `a letat predit, la sortie correspond `a letat
estime.

Remarque 2.4 :

On a toujours 0 < Pe < Pp . En effet en reportant (2.27) dans (2.28), on


obtient :
Pe = Pp Pp CdT (Cd Pp CdT + Vd )1 Cd Pp .
Le second terme du membre de droite est toujours positif donc : Pe < Pp ,
cest-`a-dire que la variance de lerreur destimation et toujours inferieur `a la
variance de lerreur de prediction (ou la variance du bruit detat propage dans
lequation detat).

Introduction au filtre de Kalman Page 49/74


50 2. Le filtre de Kalman

Enfin on peut estimer la sortie yp (k) = Cd x(k)+Du(k) par ybp (k) = Cd x


b(k|k)+
Du(k). La covariance de lerreur destimation de cette sortie (non-bruitee)
est :
Cd Pe CdT = Cd Pp CdT Cd Pp CdT (Cd Pp CdT +Vd )1 Cd Pp CdT = Cd Pp CdT (Cd Pp CdT +Vd )1 Vd .
Do`
u:

Cd Pe CdT Vd = Cd Pp CdT (Cd Pp CdT +Vd )1 I Vd = Vd (Cd Pp CdT +Vd )1 Vd < 0 .
On a donc toujours Cd Pe CdT < Vd cest-`
a-dire que ybp (k) est un meilleur estime
de yp que la mesure directe.
Nous ne detaillerons pas les techniques de resolution de lequation de Riccati
discrete (DARE: Discrete Algebraic Riccati Equation). Des macro-functions
(lqe sous Scilab ou dlqe, dare, kalman sous Matlab) permettent de resoudre
de telles equations, de calculer le gain Kf et de fournir la representation detat
(2.31) du filtre en regime permanent. Lutilisation de ces fonctions est illustree
dans la session Matlab presentee en annexe C.3.
Exercice 2.1 Demontrer que dans le cas dun syst`eme continu echantillonne `a la
cadence dt, le filtre de Kalman continu synthetise `a partir des donnees continues
(A, B, M , C, W , V ) puis discretise `a la cadence dt par la methode d Euler et
le filtre de Kalman discret synthetise `a partir des donnees des equations (2.20),
(2.21) et (2.22) tendent vers la meme solution lorsque dt tend vers 0 (calcul au
premier ordre en dt).
Solution : Le filtre de Kalman continu est defini par les equations (2.7), (2.13)
et (2.14). La methode d Euler consiste `a remplacer x(t) et x(t) par x(k+1)x(k) et
dt
x(k) respectivement. En reportant (2.13) dans (2.7), ce premier filtre discret est
enti`erement defini par :

P (k + 1) = P (k) + dt AP (k) + P (k)AT P (k)C T V 1 C(k)P + M W M T

x b(k + 1) = x x(k) + Bu(k) + P (k)C T V 1 y(k) Cb
b(k) + dt Ab x(k) Du(k)
(2.32)
La covariance de lerreur de prediction du filtre de Kalman discret est definie par
lequation (2.29), en notant P (k|k 1) = P (k), en utilisant les relations (2.20),
(2.21) et (2.22) et en remarquant quau premier ordre Wd dtM W M T , on obtient :
T
1 T
P (k+1) eAdt P (k)eA dt eAdt P (k)C T CP (k)C T +V /dt CP (k)eA dt +dtM W M T .
Soit en developpant au premier ordre :
P (k + 1) (I + Adt)P (k)(I + AT dt) + dtM W M T

dt(I + Adt)P (k)C T I dtV 1 CP (k)C T V 1 CP (k)(I + AT dt)

P (k) + dt AP (k) + P (k)AT P (k)C T V 1 CP (k) + M W M T + dt2 ( ) .

Introduction au filtre de Kalman Page 50/74


2.4 Le filtre de Kalman discret 51

On voit donc quau premier ordre on retrouve la premi`ere equation de (2.32). Le


gain Kf devient :
1
T T 1
Kf (k) = P (k)C CP (k)C V dt + I V 1 dt P (k)C T V 1 dt,

et lequation detat du filtre (equation (2.31)) devient (on note x b(k|k 1) = x


b(k) et
on remarque que Bd dtB au premier ordre) :

b(k + 1) = eAdt I dtP (k)C T V 1 C x
x b(k) + dteAdt P (k)C T V 1 y(k)

Adt T 1
+ Bd dt e P (k)C V D u(k)

(I Adt) I dtP (k)C T V 1 C x b(k) + dt(I Adt)P (k)C T V 1 y(k)

+ Bd dt(I Adt)P (k)C T V 1 D u(k)

x b(k) + dt Ab x(k) + Bu(k) + P (k)C T V 1 y(k) Cb x(k) Du(k) + dt2 ( ) .

Au premier ordre, on retrouve la seconde equation de (2.32). Les 2 filtres discrets


sont donc equivalents lorsque dt tend vers 0.

2.4.4 Exemple
On reprend lexercice 2.3.2 sur lestimation dun biais. On souhaite implanter le
filtre sur un calculateur numerique, les deux mesures vm et xm etant echantillonnees
`a la cadence dt.

Donner les equations detat du mod`ele de Kalman discret avec [x(k), b(k)]T
comme vecteur detat.

Calculer sous Matlab le gain Kf et la covariance de lerreur destimation en


regime permanent. Application numerique: dt = 0.01 s, V = 1, q = 1.

Correction : Le calcul du mod`ele detat discret consiste `a appliquer les formules de


discretisation (2.20), (2.21) et (2.22) au mod`ele continu defini par lequation (2.17).
On suppose la mesure de vitesse vm (k) constante sur une periode dechantillonnage;
ce qui correspond bien `a lintroduction dun bloqueur dordre 0. On a donc :

0 dt

1 0 0 dt 0 0 1 dt
Ad = e 0 0 = + + + = ,
0 1 0 0 0 0 0 1
Z dt
1 v 1 dt
Bd = dv = ,
0 0 1 0 0

Introduction au filtre de Kalman Page 51/74


52 2. Le filtre de Kalman

1
Cd = [1 0] , Vd = ,
dt
Z dt Z dt 2 2
1 v 0 0 1 0 q v q 2 v
Wd = dv = dv
0 0 1 0 q2 v 1 0 q 2 v q2
1 2 3
q dt 12 q 2 dt2 0 0
Wd = 3 .
12 q 2 dt2 q 2 dt 0 q 2 dt
Le mod`ele de Kalman discret secrit donc :


x(k + 1) 1 dt x(k) dt
= + vm (k) + wd (k)
b(k + 1) 0 1 b(k) 0
(2.33)

x
xm (k) = [ 1 0 ] + vd (k)
b

On trouvera en annexe C.3 le fichier Matlab demoKalmand permettant de calculer


ces differents param`etres du mod`ele et de determiner le gain Kf et la covariance de
lerreur destimation en regime permanent `a partir de la fonction dlqe. On montre
egalement comment utiliser la fonction lqed directement `a partir des donnees du
mod`ele continu.
2

2.5 Exercices
2.5.1 Syst`
eme du second ordre:
Une masse m se deplace le long dun axe Ox sous leffet dune commande en force
u(t). Une force perturbatrice w(t) agit egalement sur cette masse. w(t) est modelise
comme un bruit blanc gaussien centre de densite spectrale W . On mesure la position
x(t) de cette masse. On note xm (t) cette mesure. La mesure xm (t) est entachee dun
bruit blanc gaussien centre v(t) de densite spectrale V .
A.N.: m = 1 (Kg); W = 1 (N 2 /Hz); V = 2 (m2 /Hz) .
A partir de la mesure xm et de la commande u, on desire construire un filtre
de Kalman permettant destimer la position x(t) et la vitesse x(t) de cette masse.
On note x b
b(t) et x(t) ces estimes.
1) Donnez les equations detat du mod`ele de Kalman.
2) Calculez le gain de Kalman en regime permanent (en fonction de ).
3) Calculez la matrice de transfert F (s) du filtre :
" #
b
X(s) Xm (s)
b = F (s)
X(s) U (s)

Introduction au filtre de Kalman Page 52/74


2.5 Exercices 53

4) Commentez ce transfert (reponses frequentielles des differentes composantes,


evolution en fonction de ).

5) On souhaite implanter le filtre sur un calculateur numerique `a la cadence


dechantillonnage dt. Donner les equations detat du mod`ele discret et les
equations recurrentes du filtre de Kalman discret. On note x b 0 lestimation
b0 et x
initiale et P0 la covariance de lerreur destimation initiale.

Introduction au filtre de Kalman Page 53/74


PAGE SANS TEXTE
55

Chapter 3

A propos des unit


es physiques

Il est important de donner des unites physiques aux differentes caracteristiques des
signaux aleatoires que lon a `a utiliser ou `a simuler. Le but de ce chapitre est de
clarifier ce point.
On rappelle avant tout que si on designe par u lunite physique dune variable
aleatoire X , alors sa fonction de repartition F (x) est sans unite et sa densite de
probabilite f (x) a pour dimension u1 .
Si on designe par u lunite physique dun signal aleatoire continu w(t) alors
les unites physiques des differentes caracteristiques stochastiques sont rappelees
dans le tableau 3.1 (on rappelle egalement les equations qui permettent de verifier
lhomogeneite des dimensions).

Variable Notation Unite physique Equations


signal w(t) u
esperance E[w(t)] u (1.8) et (1.5)
2
auto-correlation (variance) ww (t, ) u (1.9) et (1.6)
2 2
spectre complexe (et DSP) ww (s) u s ou (u /Hz) (1.10)

Table 3.1: Unites physiques des caracteristiques dun signal aleatoire continu.

Dans le cas dun signal aleatoire discret, on se reportera au tableau 3.2 (voir
annexe B.1).
On constate donc un facteur temps entre le spectre complexe dun signal con-
tinu et celui dun signal discret ou echantillonne. Lequation (2.21), utilisee lors
de la discretisation de lequation de mesure dun syst`eme continu, respecte cette
homogeneite. Pour caracteriser un bruit continu sur une grandeur u, on specifie
parfois egalement la racine carree de la DSP qui sexprime donc en u/ Hz (et que
lon apparente abusivement `a un ecart type) .
Si lon consid`ere maintenant le mod`ele de Kalman continu (2.1) et si lon note

Introduction au filtre de Kalman Page 55/74


56 s physiques
3. A propos des unite

Variable Notation Unite physique


signal w(n) u
esperance E[w(n)] u
auto-correlation (variance) ww (n, k) u2
spectre complexe (et DSP) ww (z) u2

Table 3.2: Unites physiques des caracteristiques dun signal aleatoire discret.

u lunite physique de la variable detat x(t), alors lunite physique du bruit detat
wx (t) = M w(t) est en u/s et sa DSP Wx = M W M T sexprime en u2 /s.
Dans le cas du mod`ele de Kalman discret (2.19), si lon note u lunite physique
de la variable detat x(k) (et donc de x(k + 1)) alors Md wd (k) sexprime egalement
en u et la DSP du bruit detat Md Wd MdT sexprime en u2 . Lequation (2.22) utilisee
pour discretiser un bruit detat continu ou son approximation Wd = W dt respecte
egalement cette homogeneite.

Introduction au filtre de Kalman Page 56/74


57

R
ef
erences

1 Robustesse et Commande Optimale: D. Alazard, C. Cumer, P. Apkarian, M.



Gauvrit et G. Ferr`eres - Cepadu`es Editions,

2 Commande numerique des syst`emes: application aux engins mobiles et aux



robots: Ouvrage collectif publie sous la direction de C. Fargeon, Editions
Masson.

3 Linear optimal control systems: H. Kwakernaak and R. Sivan, Wiley inter-


science, John Wiley and Sons, 1972.

4 Le filtrage et ses applications: M. Labarr`ere, J. P. Krief et B. Gimonet, Cepadu`es


Editions.

5 Les processus stochastiques: J. L. Pac, polycopie SUPAERO.

6 Formulaire de mathematiques speciales: G Flory, Ed. Vuibert

Introduction au filtre de Kalman Page 57/74


PAGE SANS TEXTE
59

Appendix A

Int
egration de l
equation l
etat

A.1 Cas continu


Considerons le mod`ele detat continu :

x(t)
= Ax(t) + Bu(t)
(A.1)
y(t) = Cx(t) + Du(t)
La reponse de ce mod`ele `a des entrees deterministes u(t) sur un horizon t [t0 , t]
et `a des conditions initiales x(t0 ) secrit :
Z t
A(tt0 )
x(t) = e x(t0 ) + eA(t ) Bu( ) d (A.2)
t0
y(t) = Cx(t) + Du(t) (A.3)

Demonstration: la solution generale de lequation detat dite sans second mem-


bre x(t)
Ax(t) = 0 secrit:
x(t) = eAt K .
La recherche dune solution particuli`ere de lequation detat par la methode de la
variation de la constante (K K(t)) entrane :

AeAt K(t) + eAt K(t) = AeAt K(t) + Bu(t) (A.4)

K(t) = eAt Bu(t) (A.5)
Z t
K(t) = eA Bu( ) d + K0 (A.6)
t0
Z t
At
x(t) = e K0 + eA(t ) Bu( ) d . (A.7)
t0

La prise en compte de la condition initiale `a t = t0 entrane K0 = eAt0 x(t0 ) et


permet de trouver la solution particuli`ere (A.2). Enfin, on a la relation statique :
y(t) = Cx(t) + Du(t).

Introduction au filtre de Kalman Page 59/74


60 gration de le
A. Inte quation le
tat

Remarque A.1 En appliquant (A.2) avec t0 =0, x0 = 0 et u(t) = (t) (le Dirac),
la reponse impulsionnelle generale du syst`eme defini par le quadruplet (A, B, C, D)
secrit donc:

f (t) = CeAt B + D(t) t 0 (f (t) = 0 si t < 0) .


R +
La transformee de Laplace: F (s) = 0 f ( )e s d permet de retrouver le resultat :
Z +
F (s) = (CeA B+D( ))e s d = C(sIA)1 B+D (s domaine de convergence).
0
(A.8)
Y (s) 1
Exemple A.1 On consid`ere le syst`eme du second ordre: U (s)
= (s+1)2
.

a) calculer la reponse impulsionnelle du syst`eme,

b) calculer la reponse du syst`eme `a des conditions initiales y(0) = y0 et y(0)


=
y0 (on suppose t0 = 0).

Correction: si lutilisation des tables de transformees de Laplace permet de


repondre directement `a la question a): y(t) = tet , il est recommande dutiliser
une representation detat et lequation (A.2) pour repondre `a la question b). Con-
siderons une representation sous forme de Jordan du syst`eme :

1 1 0
x = x+ u
0 1 1 . (A.9)

y= [ 1 0 ]x

La matrice dynamique A netant pas diagonalisable (une valeur propre double), le


calcul de lexponentielle de matrice eAt peut etre effectue par son developpement
limite :
A2 t2 A3 t3 A4 t4
eAt = I + At + + + + .
2! 3! 4!
On obtient alors :


t t
t2 t3 3 4
1t+ + t t2 + t2! t3! + et tet
e 0 t = 2! 3!
2 3 = .
0 1 t + t2! t3! + 0 et

Reponse impulsionnelle: avec t0 = 0, x(t0 ) = 0 et u(t) = (t) (impulsion de Dirac),


lequation (A.2) devient :
Z t t
(t )e t te
x(t) = t ( )d = t et y(t) = [1 0]x(t) = tet .
0 e e

Introduction au filtre de Kalman Page 60/74


A.2 Cas discret 61

Reponse `a des conditions initiales (u(t) = 0): il faut maintenant etablir la relation
entre le vecteur detat x = [x1 , x2 ]T de la representation (A.9) et le vecteur constitue
de la sortie y et de sa derivee y sur lesquelles sont specifiees les conditions initiales.
Lequation de mesure et sa derivation nous permet decrire :

y 1 0 1 0 y0
= x x(t0 ) = .
y 1 1 1 1 y0
On en deduit que :

At et tet 1 0 y0
y(t) = Ce x(t0 ) = [1 0] = et (1 + t)y0 + tet y0 .
0 et 1 1 y0
Remarque: nous aurions pu egalement considerer une representation sous forme
compagne horizontale qui fait directement apparatre dans le vecteur detat la sortie
et sa derivee :
y 0 1 y 0
= + u. (A.10)
y 1 2 y 1
Le calcul de lexponentielle de matrice donne alors :


0 t
t 2t et (1 + t) tet
e = .
tet et (1 t)
2

A.2 Cas discret


Considerons le mod`ele detat discret :

x(k + 1) = Ad x(k) + Bd u(k)
(A.11)
y(k) = Cd x(k) + Du(k)
La reponse de ce mod`ele `a des entrees deterministes u(.) sur un horizon [k0 , k] et `a
des conditions initiales x(k0 ) = x0 secrit :
k1
X
x(k) = Akk
d
0
x0 + Aik
d
0
Bd u(k 1 i + k0 ) (A.12)
i=k0
y(k) = Cd x(k) + Du(k) (A.13)
la demonstration est immediate en resolvant la recurrence sur lequation detat :
x(k) = Ad x(k 1) + Bd u(k 1)
= A2d x(k 2) + Ad Bd u(k 2) + Bd u(k 1)
=

Introduction au filtre de Kalman Page 61/74


62 gration de le
A. Inte quation le
tat

Remarque A.2 En appliquant (A.12) avec n0 =0, x0 = 0 et u(i) = (i) (le Dirac
en discret: (0) = 1; (i) = 0 si i 6= 0), la reponse impulsionnelle generale du
syst`eme defini par le quadruplet (Ad , Bd , Cd , D) secrit donc:

f (0) = D, f (i) = Cd Ai1


d Bd i 1 (f (i) = 0 si i < 0) .
P
La transformee en Z: F (z) = i=0 f (i)z i permet de retrouver le resultat :

X
F (z) = Cd Ai1 i 1
d Bd z +D = Cd (zIAd ) Bd +D (z domaine de convergence).
i=1
(A.14)

Introduction au filtre de Kalman Page 62/74


63

Appendix B

Passage dun bruit dans un


syst`
eme lin
eaire

Les demonstrations qui suivent sont extraites de la reference [4] et adaptees aux
notations de ce document.

B.1 Compl ement: caract


erisation des signaux al
eatoires
discrets
On etend ici au cas discret les notions introduites au chapitre 1.
Soit w(n) une suite de variables aleatoires.

Esperance mathematique (moyenne) : m(n) = E[w(n)].

Fonction dautocorrelation : ww (n, k) = E[w(n)wT (n + k)].

Stationnarite `a lordre 2 : m(n) = m; ww (n, k) = ww (k) n .

Variance : w2 = ww (k)|k=0 .

Spectre complexe :

X
ww (z) = ww (k)z k , et inversement :
k=
Z Z
1 1
ww (k) = ww (z)z k1 dz = ww (ej )ejk d .
2j cercle unite 2

Densite spectrale de puissance : cette fonction de la pulsation suppose que


lon introduise une echelle de temps. On introduit donc la periode dechantillonnage

Introduction au filtre de Kalman Page 63/74


64 `me line
B. Passage dun bruit dans un syste aire

1
dt entre les evenements w(n).
ww () = ww (z)|z=ejdt
On a alors :
Z /dt Z /dt
dt j dt k dt
ww (k) = ww ()e d et w2 = ww ()d .
2 /dt 2 /dt

La variance est `a dt/2/ pres, lintegrale de la densite spectrale de puissance


entre /dt et /dt.

B.2 Approche temporelle


B.2.1 Cas continu
Th
eor`
eme 1.1 (rappel de la page 21). Soit le syst`eme lineaire continu:
= Ax(t) + M w(t) .
x(t) (B.1)
w(t) est un bruit blanc gaussien centre de densite spectrale de puissance W . On note
m(t0 ) et P (t0 ) la moyenne et la covariance de letat initial x(t0 ) (lui aussi aleatoire
gaussien mais independant de w(t)). On montre que x(t) est un signal aleatoire
gaussien :
de moyenne:
m(t) = E[x(t)] = eA(tt0 ) m(t0 )
de covariance P (t) = E[(x(t)m(t))(x(t)m(t))T ] verifiant lequation differentielle
de Lyapunov :
= AP (t) + P (t)AT + M W M T .
P (t) (B.2)
Si le syst`eme est stable (toutes les valeurs propres de A sont `a partie reelle
negative) on tend vers un regime permanent: P = 0 et P (t) = P verifie alors
lequation de Lyapunov continue :
AP + P AT + M W M T = 0 . (B.3)

D emonstration: lintegration de lequation (B.1) entre linstant initial t0 et le


linstant courant t secrit :
Z t
A(tt0 )
x(t) = e x(t0 ) + eA(t ) M w( )d
t0

x(t) est donc une combinaison lineaire de signaux aleatoires gaussiens (x(t0 ) et
w( )), x(t) est donc egalement un signal aleatoire gaussien. Calculons sa moyenne
m(t) = E(x(t)] et sa matrice de covariance P (t) = E[(x(t) m(t))(x(t) m(t))T ].
1
On note = dt la pulsation reduite.

Introduction au filtre de Kalman Page 64/74


B.2 Approche temporelle 65

Moyenne m(t):

Z t
A(tt0 )
m(t) = e E[x(t0 )] + eA(t ) M E[w( )]d ,
t0

or E[w( )] = 0 (bruit centre) et E[x(t0 )] = m(t0 ) donc:

m(t) = eA(tt0 ) m(t0 ) .

Covariance P (t):

Z t
A(tt0 )
x(t) m(t) = e x(t0 ) m(t0 ) + eA(t ) M w( )d
t
Z t0
= eA(tt0 ) x(t0 ) m(t0 ) + eA(t0 ) M w( )d . (B.4)
t0

T T
A(tt0 )
x(t) m(t) x(t) m(t) = e x(t0 ) m(t0 ) x(t0 ) m(t0 ) +
Z t T
+ eA(t0 ) M w( ) x(t0 ) m(t0 ) d +
t
Z 0t T
+ x(t0 ) m(t0 ) wT ( )M T eA (t0 ) d +
t
Z Z0 t
A(t0 ) T T AT (t0 u) T
+ e M w( )w (u)M e d du eA (tt0 ) . (B.5)
t0

Z t
T
A(tt0 ) A(t0 )
P (t) = e P (t0 ) + e M E w( ) x(t0 ) m(t0 ) d +
t0
Z t
T
+ E x(t0 ) m(t0 ) w ( ) M T eA (t0 ) d +
T
t
Z Z0 t
A(t0 ) T T AT (t0 u) T
+ e M E w( )w (u) M e d du eA (tt0 ) . (B.6)
t0

Du fait des hypoth`eses (x(t0 ) et w( ) sont independants > t0 et w(t) est un


bruit blanc centre), on peut affirmer:
T
E w( ) x(t0 ) m(t0 ) =0

T
E w( )w (u) = W ( u).

Introduction au filtre de Kalman Page 65/74


66 `me line
B. Passage dun bruit dans un syste aire

On a donc:
Z t
A(tt0 ) A(t0 ) T AT (t0 ) T
P (t) = e P (t0 ) + e MWM e d eA (tt0 ) . (B.7)
t0

et

dP (t) A(tt0 ) AT (tt0 ) A(tt0 ) T
P (t) = = Ae P (t0 ) + e +e P (t0 ) + eA (tt0 ) AT
dt

A(tt0 ) A(t0 t) T AT (t0 t) T
+e e MWM e eA (tt0 ) . (B.8)

Soit:
= AP (t) + P (t)AT + M W M T .
P (t) (B.9)

Remarque B.1 En regime permanent, la solution generale de lequation


AP + P AT + M W M T = 0 secrit :
Z
T
P = eAt M W M T eA t dt .
0

En effet:
Z
T Tt T
AP + P A = AeAt M W M T eA + eAt M W M T eA t AT dt
0
Z T
d[eAt M W M T eA t ]
= dt
0 dt
T
= [e M W M T eA t ]
At
0 = 0 MW M
T
(ssi A est stable) .

Si lon note h(t) = eAt B, t 0 la reponse impulsionnelle des etats x du syst`eme,


on peut alors ecrire :
Z Z
T 1
P = h(t)W h (t)dt = H(j)W H T (j)d (egalite de Parseval)
0 2
1
= [LII xx (s)]s=0 avec: xx (s) = H(s)W H T (s) .

Ces derni`eres egalites permettent de faire le lien avec lapproche frequentielle qui
suit (theor`eme 1.2) et de montrer que la variance est egale (`a 2 pr`es) `a lintegrale
du carre de la reponse frequentielle du bruit.

B.2.2 Cas discret


Th
eor`
eme B.1 Soit le syst`eme lineaire discret:

x(k + 1) = Ad x(k) + Md wd (k) . (B.10)

Introduction au filtre de Kalman Page 66/74


B.2 Approche temporelle 67

wd (k) est un bruit pseudo-blanc gaussien centre de densite spectrale Wd (cest-`a-dire


T
E[wd (k)wd (k + j) ] = Wd (j)) . On note m(0) et P (0) la moyenne et la covari-
ance de letat initial x(k0 ) = x(0) (lui aussi aleatoire gaussien mais independant de
wd (k)). On montre que x(k) est un signal aleatoire gaussien :

de moyenne:
m(k) = E[x(k)] = Akk
d
0
m(0)

de covariance P (k) = E[(x(k) m(k))(x(k) m(k))T ] verifiant lequation


recurrente de Lyapunov :

P (k + 1) = Ad P (k)ATd + Md Wd MdT . (B.11)

Si le syst`eme est stable (toutes les valeurs propres de Ad sont de module


inferieur `a 1) on tend vers un regime permanent: P (k + 1) = P (k) = P
verifie alors lequation de Lyapunov discr`ete:

P = Ad P ATd + Md Wd MdT . (B.12)

Demonstration: (elle est en fait beaucoup plus simple que dans le cas continu).
Lequation (A.12), qui fait apparatre x(k) comme une combinaison lineaire de vari-
ables aleatoires gaussiennes, permet de conclure que x(k) est effectivement une vari-
able aleatoire gaussienne. wd (k) etant centre (k), on peut conclure que E[x(k)] =
Akk
d
0
m(0).
Enfin, on peut remarquer que x(k +1)m(k +1) = Ad (x(k)m(k))+Md wd (k).
Lindependance, `a tout instant k, des variables centr ees x(k) m(k) et wd (k)
permet de conclure que P (k + 1) = Ad P (k)Ad + Md Wd MdT .
T

Remarque B.2 A partir de lequation B.7 on retrouve lequation de Lyapunov


discr`ete dans le cas dun syst`eme continu echantillonne `a la cadence dt. Il suffit de
prendre t0 = n dt et t = (n + 1) dt o` u dt designe la periode dechantillonnage. On
note alors P (t) = P (n + 1) et P (t0 ) = P (n), on obtient:
Z dt
A dt AT dt T
P (n + 1) = e P (n)e + eAu M W M T eA u du
0

On note :

eAdt = Ad : la matrice dynamique discr`ete,


R dt T
0 eAu M W M T eA u du = Wd la matrice de covariance du bruit integre sur une
periode dechantillonnage,

Introduction au filtre de Kalman Page 67/74


68 `me line
B. Passage dun bruit dans un syste aire

pour obtenir:
Pn+1 = Ad Pn ATd + Wd
(dont le regime permanent secrit: Pn = Ad Pn ATd +Wd ). On retrouve bien lequation
(B.11) avec Md = I.
On peut verifier que :

si A est inversible, Wd verifie lequation de Lyapunov:


T dt
AWd + Wd AT + M W M T eAdt M W M T eA = 0, (B.13)

Wd dtM W M T si dt est petit par rapport au temps de reponse du syst`eme.

Exemple B.1 (Illustration sous Matlab) On reprend lexercice 1.6 que lon compl`ete
sous Matlab par une analyse de la variance du bruit w en temps discret :

% D
efinition du filtre:
G=tf([-1 100],[1 50 10000])
% Calcul dune r
ealisation:
[A,B,C,D]=ssdata(G);
% Calcul de la variance par l
equation de Lyapunov continue:
P=lyap(A,B*B); var_w=C*P*C % ==> var_w=1/50.

% Analyse en discret:
dt=0.001; A_d=expm(A*dt);
Wd=lyap(A,B*B-A_d*B*B*A_d); %Dans cet exemple: W=I; M=B.
Pd=dlyap(A_d,Wd);var_wd=C*Pd*C
% ==> on retrouve exactement la variance de w(t): var_w=1/50.

% Calcul aproximatif: Wd=dt*B*B


Pdp=dlyap(A_d,dt*B*B);var_wdp=C*Pdp*C
% ==> cela ne marche pas trop mal.

B.3 Approche fr
equentielle
B.3.1 Cas continu
Theor`eme 1.2 (rappel). La sortie y dun syst`eme lineaire, continu et stable defini
par la matrice de transfert G(s)pq et attaque par un signal aleatoire stationnaire

Introduction au filtre de Kalman Page 68/74


quentielle
B.3 Approche fre 69

w de spectre complexe ww (s)qq est un signal aleatoire stationnaire de spectre


complexe
yy (s)pp = G(s)ww (s)GT (s) .
Demonstration: sans perte de generalite la demonstration est faite dans le cas
dun syst`eme strictement propre (pas de transmission directe). On note (A, M , C)
la realisation du transfert G(s), cest-`a-dire : G(s) = C(sI A)1 M .
Par definition :
Z Z
s

yy (s) = yy ( )e d = E y(t)y T (t + ) e s d (B.14)

Pour calculer y(t) nous allons utiliser la formule (A.2) dans la quelle nous choisirons
x(t0 ) = 0 et t0 = car on ne sinteresse quau regime permanent (regime station-
naire) :
Z t Z
A(tu)
y(t) = Ce M w(u)du = CeAv M w(tv)dv (changement de variable: t u = v) .
0

Z + Z Z
Av T AT u
yy (s) = E Ce M w(t v)dv w (t + u)M e C du e s d
T T
0 0
Z + Z Z
T AT u T
= Ce M E w(t v)w (t + u) M e C du dv e s d
Av T
0
Z + Z Z
Av vs ( +vu)s T AT u T us
= Ce M e ww ( + v u)e M e C e du dv d
0
Z Z + Z
Av vs ( +vu)s T
= Ce M e dv ww ( + v u)e d M T eA u C T eus du
0 0
T
= G(s)ww (s)G (s) dapr`es (A.8) et (B.14) .

B.3.2 Cas discret


Th eor`
eme B.2 (Passage dun bruit dans un syst` eme lineaire discret) La sor-
tie y dun syst`eme lineaire, discret et stable defini par la matrice de transfert
G(z)pq et attaque par un signal aleatoire w stationnaire de spectre ww (z)qq est
un signal aleatoire stationnaire de spectre

yy (z)pp = G(z 1 )ww (z)GT (z) .

Demonstration: sans perte de generalite la demonstration est faite dans le cas


dun syst`eme strictement propre (pas de transmission directe). On note (Ad , Md ,
Cd ) la realisation du transfert G(z), cest-`a-dire : G(s) = Cd (zI Ad )1 Md .

Introduction au filtre de Kalman Page 69/74


70 `me line
B. Passage dun bruit dans un syste aire

Par definition :
+
X +
X
yy (z) = yy (i)z i = E y(k)y T (k + i) z i (B.15)
i= i=

Pour calculer y(k) nous allons utiliser la formule (A.12) dans la quelle nous choisirons
x0 = 0 et k0 = car on ne sinteresse quau regime permanent (regime station-
naire) :
k1
X +
X
y(k) = Cd Ajk
d
0
Md w(k 1 j + k0 ) = Cd Ajd Md w(k 1 j) (j j k0 ) .
j= j=0

+
" + +
#
X X X
Tl
yy (z) = E Cd Ajd Md w(k 1 j) wT (k + i 1 l)MdT Ad CdT z i
i= j=0 l=0
+
( + + )
X XX l
= Cd Ajd Md E w(k 1 j)wT (k + i 1 l) MdT ATd CdT z i
i= j=0 l=0
+ X
X + X
+
l
= Cd Ajd Md z j+1 ww (i l + j)z (il+j) MdT ATd CdT z l1
i= j=0 l=0
+
X +
X +
X l1
= Cd Aj1
d Md z
j
ww (k)z k
MdT ATd CdT z l (k = i l + j)
j=1 k= l=1

= G(z 1 )ww (z)G (z) dapr`es (A.14) et (B.15) .


T

Introduction au filtre de Kalman Page 70/74


71

Appendix C

Code source Matlab des fichiers de


d
emonstration

C.1 Fonction Kf t.m


function y=Kf_t(u)
% y=Kf_t(u)
% input:
% * u(1): time (t),
% * u(2:length(u)): innovation (y(t)-yhat(t))
% output:
% * y = Kf(t)*(y(t)-yhat(t))
global a c W P0

% Compute P(t):
Pinf=a+sqrt(a^2+W);
k=2*sqrt(a^2+W);
P=Pinf+k*(P0-Pinf)./(exp(k*u(1))*(P0-Pinf+k)+Pinf-P0);

% Compute Kf(t):
Kf=P*c;

% Output
y=Kf*u(2:length(u));

C.2 Fichier demoKalman.m


% Global Variable declaration

Introduction au filtre de Kalman Page 71/74


72 monstration
C. Code source Matlab des fichiers de de

global a c W P0
% Kalman model data:
a=-1; % state space date
b=1;
c=1;
W=1; % Process noise spectral density
V=1;
P0=1; % Initial estimation error variance
X0=20; % Initial condition for the process output
% Simulation data
dt=0.01; % Integration sampling period
T=0; % Time delay in the validation model

% Start simulation:
sim(simuKalman);

% Output plots:
figure plot(output.time,output.signals.values(:,1),g-) hold on
plot(output.time,output.signals.values(:,2),k-,LineWidth,2)
plot(output.time,output.signals.values(:,3),k-)
plot(output.time,output.signals.values(:,4),r-,LineWidth,2)
% Compute state estimation error variance as a function of time:
t=output.time;
Pinf=a+sqrt(a^2+W);
k=2*sqrt(a^2+W);
Pdet=Pinf+k*(P0-Pinf)./(exp(k*t)*(P0-Pinf+k)+Pinf-P0);
% plot estimation+2*sigma:
plot(output.time,output.signals.values(:,4)+2*sqrt(Pdet),r-)
% plot estimation-2*sigma:
plot(output.time,output.signals.values(:,4)-2*sqrt(Pdet),r-)
legend(y(t),x(t),u(t),xhat(t),...
xhat(t)+2\sigma,xhat(t)-2 \sigma)

return

% Solution with a 2nd order Pade approximation of a 1 second delay


% taken into account in the Kalman filter:
T=1; sys=ss(a,b,c,0);
[num,den]=pade(T,2);
ret=tf(num,den);
sysret=sys*ret;

Introduction au filtre de Kalman Page 72/74


C.3 Fichier demoKalmand.m 73

[a,b,c,d]=ssdata(sysret);
W=1;
[Kf,P]=lqe(a,b,c,W,1);
% Output estimation error variance:
var=c*P*c;

% Start simulation only in steady state behavior:


X0=0;
sim(simuKalman_p); % same as simuKalman.mdl but
% the matlab Function Kf_t is
% replaced by a static Gain

% Output plots:
figure plot(output.time,output.signals.values(:,1),g-) hold on
plot(output.time,output.signals.values(:,2),k-,LineWidth,2)
plot(output.time,output.signals.values(:,3),k-)
plot(output.time,output.signals.values(:,4),r-,LineWidth,2)
% plot estimation+2*sigma:
plot(output.time,output.signals.values(:,4)+2*sqrt(var),r-)
% plot estimation-2*sigma:
plot(output.time,output.signals.values(:,4)-2*sqrt(var),r-)
legend(y(t),x(t),u(t),xhat(t),...
xhat(t)+2\sigma,xhat(t)-2 \sigma)

C.3 Fichier demoKalmand.m


% Continuous-time model data:
A=[0 -1;0 0];
B=[1;0];
M=[0;1];
C=[1 0];
D=0;
sysc=ss(A,B,C,D);
V=1;
q=1; W=q^2;
% Continuous-time Kalman filter:
[Kf,P]=lqe(A,M,C,W,V)

dt=0.01;
% Compute Discrete-time model:

Introduction au filtre de Kalman Page 73/74


74 monstration
C. Code source Matlab des fichiers de de

sysd=c2d(sysc,dt,zoh);
[A_d,B_d,C_d,D]=ssdata(sysd)
Vd=V/dt
Wd=[1/3*q^2*dt^3 -1/2*q^2*dt^2;-1/2*q^2*dt^2 q^2*dt] % Wd can not
% be computed by a Lyapunov equation (equation B.13) since A
% is not invertible !! (see how Wd can be computed in LQED)
% Discrete-time Kalman filter using dlqe:
[Kfd1,Pd1]=dlqe(A_d,eye(2),C_d,Wd,Vd)
% Discrete-time Kalman filter using lqed (from continuous-time data):
[Kfd2,Pd2]=lqed(A,M,C,W,V,dt) %==> same solution !

Introduction au filtre de Kalman Page 74/74

Vous aimerez peut-être aussi