Académique Documents
Professionnel Documents
Culture Documents
Alazard 2248 PDF
Alazard 2248 PDF
Notes de cours
Exercices corrig
es
Sessions Matlab
D.Alazard
Contents
Introduction 5
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
R
ef
erences 57
A Int
egration de lequation l etat 59
A.1 Cas continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
A.2 Cas discret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Introduction
Chapter 1
Signaux al
eatoires et syst`
emes
lin
eaires
o`
u:
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),
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
K f u
g
m
Z
k
z
ground 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.
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 :
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:
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 .
F(x) p(x)
1 1/(ba)
a 0 b x a 0 b x
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
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
Densit
e de probabilit
e
q F (x1 , , xq )
p(x1 , , xq ) = .
x1 xq
Moments
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
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
Ind
ependance
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
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
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 .
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.
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
ements de solution:
El
dt 0 dt
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 .
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
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
.
bb()
2
dt
bb() |dB
20 log10(2 dt)
0 2/dt
4/dt
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 )
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) .
G(s)
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
Solution :
s2 +104
a) Par definition: ww (s) = s4 +1.75 104 s2 +108
.
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)
%=============================================================
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)
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.
% 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).
%=============================================================
To Workspace1
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).
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.
Chapter 2
Le filtre de Kalman
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
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)
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.
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)
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.
= 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)
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],
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)
Af = A Kf C, Bf = B K f D (2.5)
b = (Ab
x x + Bu) + Kf (y Cb
x Du) . (2.7)
u y +
Plant
Kf
^
B
+ Z
+
+
x
C
A
Kalman filter
^
x
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)
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
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 ):
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 .
AP + P AT P C T V 1 CP + M W M T = 0 (2.15)
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 :
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).
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
w v
u + 1 x + y
+ sa +
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) ?
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
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
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.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.
2
Merci denvoyer un mail `a alazard@supaero.fr avec Introduction Kalman pour sujet si
vous desirez une copie de ces fichiers.
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
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
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
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
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
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).
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)
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
+ +
soit :
2p12 + p21 = 0
p + p1 p12 = 0 .
2
p212 = q 2
" #
b
x 2q 1 x
b 2q 1 xm
soit : = bb + q 0 .
bb q 0 vm
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:
w(t)
v(t)
dt dt
u(k) u(t) y(t) y(k)
Bo(s) PLANT
u(k) u(t)
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.
()
vv
/dt 0 /dt
R dt T
Wd = 0
eAv M W M T eA v dv . (2.22)
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) .
x
b(k + 1|k) = Ad x
b(k|k) + Bd u(k) . (2.23)
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)
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.
Pe = (I Kf Cd )Pp .
Remarque 2.4 :
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.
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
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)
Chapter 3
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).
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
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.
R
ef
erences
Appendix A
Int
egration de l
equation l
etat
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:
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
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:
Appendix B
Les demonstrations qui suivent sont extraites de la reference [4] et adaptees aux
notations de ce document.
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
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
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.
Moyenne m(t):
Z t
A(tt0 )
m(t) = e E[x(t0 )] + eA(t ) M E[w( )]d ,
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
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)
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) .
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.
de moyenne:
m(k) = E[x(k)] = Akk
d
0
m(0)
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
On note :
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 :
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.
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
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) .
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
Appendix C
% 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));
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
[a,b,c,d]=ssdata(sysret);
W=1;
[Kf,P]=lqe(a,b,c,W,1);
% Output estimation error variance:
var=c*P*c;
% 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)
dt=0.01;
% Compute Discrete-time model:
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 !