Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
KALMAN FILTER
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
1
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Dealing with input-output models, we studied the ARMAX models:
y (t ) =
B( z )
C ( z)
u (t − 1) +
e(t ), e(t ) ≈ WN (0, λ2 )
A( z )
A( z )
The prediction theory for this kind of linear-system representation is
known as “Kolmogorov–Wiener”.
Kalman theory, on the contrary, concerns systems described by state
representations:
disturbance
y(t)
u(t)
x(t)
x(t + 1) = F ⋅ x(t ) + Γ ⋅ u (t ) + v1 (t )
v1 ≈ WN (0, V1 )
y (t ) = H ⋅ x(t ) + v 2 (t )
v 2 ≈ WN (0, V2 )
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
2
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
First, we briefly discuss about the passage from one representation to
another.
y (t ) =
B( z )
C ( z)
u (t − 1) +
e(t ), e(t ) ≈ WN ( µ , λ2 )
A( z )
A( z )
⇑⇓
x(t + 1) = F ⋅ x(t ) + Γ ⋅ u (t ) + v1 (t )
v1 ≈ WN (0, V1 )
y (t ) = H ⋅ x(t ) + v 2 (t )
v 2 ≈ WN (0, V2 )
(assuming a SISO system)
Let’s see an example
Example
Given a system with state representation:
1
1
x(t ) + u (t ) + v1 (t )
2
4
y (t ) = x(t ) + v 2 (t )
x(t + 1) =
with v1 ≅ WN (0,1), v 2 ≅ WN (0,1), v1 ⊥ v 2 ,
write the system in its ARMAX-equivalent representation.
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
3
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
1
1
( z − ) x(t ) = u (t ) + v1 (t )
2
4
⇓
1
1
x(t ) = 4 u (t ) +
v (t )
1
1 1
z−
z−
2
2
⇓
1
1
y (t ) = 4 u (t ) +
v1 (t ) + v 2 (t )
1
1
z−
z−
2
2
Passing to negative powers:
1
z −1
4
y (t ) =
u (t − 1) +
v (t ) + v2 (t )
1 −1
1 −1 1
1− z
1− z
2
2
B( z )
u (t − 1)
A( z )
C ( z)
e(t ) ??
A( z )
Notice: the state representation is seemingly richer.
In practice, however, we can find a spectral-equivalent
representation
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
4
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Recall that the noise-spectrum is:
⎛
⎞
1
⎜⎜
+
1
⎟⎟
−1
(
1
−
0
.
5
)(
1
−
0
.
5
)
z
z
⎝
⎠ z = e jω
⇓
⎛ 9 1 −1
⎞
⎜ − (z + z ) ⎟
⎜4 2
⎟
⎜ 5 − 1 (z −1 + z ) ⎟
⎜
⎟
⎝4 2
⎠ z =e jω
This spectrum therefore is equivalent to a spectrum in a process as:
α + βz −1
1
1 − z −1
2
e(t ), e ≈ WN (0,1)
Where (e.g.):
⎧α = −0.34
⎨
⎩β = 1.46
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
5
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Then:
1
1
x(t ) + u (t ) + v1 (t )
2
4
y (t ) = x(t ) + v 2 (t )
x(t + 1) =
with v1 ≅ WN (0,1), v 2 ≅ WN (0,1), v1 ⊥ v 2 ,
⇓⇑
1
1.46 − 0.34 z −1
4
e(t )
y (t ) =
u (t − 1) +
1 −1
1 −1
1− z
1− z
2
2
e ≈ WN (0,1)
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
6
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Which problem classes shall we deal with Kalman theory?
Given a data set until time N {y (1), y (2),..., y ( N )} (in case even
{u (1), u (2),..., u ( N )}) find the output predictor
yˆ ( N + 1 | N ) (in general
yˆ ( N + k | N ) )
(problem already faced by Kolmogorov – Wiener theory)
Given a data set until time N {y (1), y (2),..., y ( N )} (in case even
{u (1), u (2),..., u ( N )}) find the state predictor xˆ ( N + 1 | N ) (in general
xˆ ( N + k | N ) )
Given a data set until time N, find xˆ ( N | N ) , i.e. carry out a state
filtering.
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
7
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Remark
Generic dynamic system MIMO:
u1
u2
…
um
y1
x1
x2
…
xN
S
y2
…
yp
Problem:
• Usually p<<n, ( much fewer sensors than the state variables
number)
• Very often to face control problems or fault-detection problems
on S we need to measure one or more state variables.
• The sensor is often very expensive or cannot be used (i.e. no
suitable sensor is available or the measurement is not accessible).
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
8
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Kalman filter: “SW sensor”
x1
x2
x3
…
S
xˆ ( N | N )
⇒ Example: estimated vehicle speed
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
9
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
STATEMENT OF THE BASIC PROBLEM OF KALMAN
FILTERING
(one-step prediction of state and output, with no exogenous input)
⎧ x(t + 1) = Fx(t ) + v1 (t )
S =⎨
⎩ y (t ) = Hx(t ) + v 2 (t )
F is the state matrix: dimension n x n
H is the output matrix: dimension p x n
MIMO system (m x p)
state vector:
⎡ x1 (t ) ⎤
⎢ x (t ) ⎥
x(t ) = ⎢ 2 ⎥
⎢... ⎥
⎢
⎥
⎣ x n (t ) ⎦
⎡ y1 (t ) ⎤
⎢ y (t ) ⎥
2
⎥
output vector: y (t ) = ⎢
⎢... ⎥
⎥
⎢
y
t
(
)
p
⎦
⎣
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
10
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
v (t ) is the “process” noise (noise “polluting” the state equations).
1
It must be a noise-vector with n components:
⎡v11 (t ) ⎤
⎢v (t ) ⎥
v1 (t ) = ⎢ 12 ⎥ ,
⎢... ⎥
⎥
⎢
⎣v1n (t )⎦
v1 ≅ WN (0, V1 )
We suppose a white vector noise, with null mean.
(we can always get a null mean by signal depolarization)
1) E[v1 (t )] = 0
2) E[v1 (t ) ⋅ v1 (t ) T ] = V1 ≥ 0
3) E[v1 (t ) ⋅ v1 (t − τ ) T ] = 0, ∀t ,τ ≠ 0
NB: V1 is symmetric and semi-defined positive (Covariance matrix)
NB: V is diagonal if and only if single noise components are not
1
correlated
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
11
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
v (t ) is the “measurement” noise (it pollutes the output equation).
2
⎡v 21 (t ) ⎤
⎢v (t ) ⎥
22
⎥,
v 2 (t ) = ⎢
⎢...
⎥
⎢
⎥
(
)
v
t
2
p
⎣
⎦
v 2 ≅ WN (0, V2 )
We suppose a white vector noise, with null mean.
1) E[v 2 (t )] = 0
2) E[v 2 (t ) ⋅ v 2 (t ) T ] = V2 > 0
3) E[v 2 (t ) ⋅ v 2 (t − τ ) T ] = 0, ∀t ,τ ≠ 0
NB: On V : (restrictive) assumption that it is defined positive ( V >0).
2
2
Correlation assumptions between v and v :
1
⎧0
E[v1 (t ) ⋅ v 2 (t − τ ) T ] = ⎨
⎩V12
2
se τ ≠ 0
se τ = 0
i.e. suppose v and v can be correlated only at the same instant.
1
2
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
12
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Assumptions about initial conditions:
E[ x(1)] = x 0
VAR[ x(1)] = P0 , i.e E[( x(1) − x 0 ) ⋅ ( x (1) − x 0 ) T ] = P0
Notice: if P0 = 0 we know exactly the initial condition value (without
any uncertainty)
We assume that:
x(1) ⊥ v1 (t )
x(1) ⊥ v 2 (t )
The problem we want to solve is:
given {y (1), y (2),..., y ( N )},
estimate the optimal xˆ ( N + 1 | N ) (and yˆ ( N + 1 | N ) )
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
13
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Remark
No more the restrictive assumption of a steady-state system (as in KW theory)
Remark
In practice the noise disturbing state and output is rarely white.
However, it’s easy to go back to the standard formulation, if we know
the characteristics of spectral noises.
Let’s see by a simple example.
x (t + 1) = ax (t ) + η (t ) , with η (t ) =
1
1
y (t ) = bx (t ) + v (t ) ,
1
2
1
e(t ) ,
1 − cz
−1
with v (t ) ≅ WN (0,1) ,
2
e(t ) ≅ WN (0,1)
v 2 (t ) ⊥ e(t )
Re-write the noise equation:
η (t ) = cη (t − 1) + e(t )
define
v(t ) = e(t + 1) , v ≅ WN (0,1) e v ⊥ v 2
η (t ) = cη (t − 1) + v(t − 1)
η (t + 1) = cη (t ) + v(t )
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
14
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Define now a second state variable and extend the system:
x (t ) = η (t )
2
The systems changes into:
⎧ x (t + 1) = ax (t ) + x (t )
⎪
⎨ x (t + 1) = cx (t ) + v(t )
⎪ y (t ) = bx (t ) + v (t )
⎩
1
1
2
2
1
2
2
Namely:
⎧ x(t + 1) = Fx(t ) + v (t )
S =⎨
⎩ y (t ) = Hx(t ) + v (t )
1
2
⎡ 0 ⎤
, v ≅ WN (0,1) v1 ⊥ v 2
v (t ) ≅ WN (0,1) v = ⎢
⎥
⎣v(t )⎦
2
⎡ a 1⎤
F =⎢
⎥
⎣0 c⎦
1
H = [b 0]
We went back to a standard formulation of the system: we had to
enlarge the state space (from a order 1 system to an order 2 system).
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
15
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
PREMISE TO A SOLUTION OF THE KALMAN FILTERING
PROBLEM: BAYESIAN ESTIMATE
The proof of the solution of the Kalman filtering problem is based on
the theory of the Bayesian estimate.
Short recall.
Assume a vector of stochastic variables
⎡d 1 ⎤
⎢d ⎥
d =⎢ 2 ⎥
⎢... ⎥
⎢ ⎥
⎣d N ⎦
and suppose we want to estimate –starting from a measure of d – a
stochastic variable ϑ .
Assume also (model assumption) that the estimated value of ϑ
depends linearly on d :
⎡a ⎤
⎢a ⎥
A=⎢ ⎥
⎢... ⎥
⎢ ⎥
⎣a ⎦
1
ϑˆ = AT d = a1 d 1 + a 2 d 2 + ... + a N d N
2
N
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
16
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
The Bayesian estimate ϑ , given d, is:
ϑˆ = E[ϑ | d ] = [Λ ϑd ⋅ Λ dd −1 ] ⋅ d
Λ ϑd = E[ϑd ]
Λ dd = E[dd T ]
(this result is valid only in case of casual variables all with expected
null value)
Exercise (Bayesian estimate)
Suppose we measure a stochastic variable y obtained as follows:
y = x + w1
• x ≅ N (0,2) ,
• w ≅ N (0,1) ,
1
• x⊥w.
1
Problem: estimate x̂ starting from a measurement of y. Compute the
corresponding error variance.
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
17
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
NB:
• x and w are stochastic variables normally distributed (they are
1
not “white noises”). They are simply stochastic variables, not
successions of casual variables (not stochastic processes).
• y is the measured variable, x is the variable to be estimated, and
w is the measurement disturbance.
1
−1
xˆ = E[ x | y ] = [Λ xy ⋅ Λ yy ] ⋅ y
Λ xy = E[ xy ] = E[ x( x + w1 )] = E[ x 2 ] + E[ xw1 ] = 2 + 0 = 2
2
Λ yy = E[ y 2 ] = E[( x + w1 ) 2 ] = E[ x 2 ] + E[ w1 ] + 2 E[ xw1 ] = 2 + 1 + 0 = 3
xˆ = (2 ⋅ 3 −1 ) y =
2
y
3
Error variance:
2 2
2
2
y ) ] = E[( x − x − w1 ) 2 ] =
3
3
3
1
2
1
4
6 2
= E[( x − w1 ) 2 ] = ⋅ 2 + ⋅ 1 = =
3
3
9
9
9 3
E[( x − xˆ ) 2 ] = E[( x −
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
18
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Suppose now a second measurement:
y = x+w
1
⎡y ⎤
y=⎢ ⎥
⎣y ⎦
1
1
y = x+w
2
2
2
with x ≅ N (0,2) , w ≅ N (0,1) , w ≅ N (0,1) , x ⊥ w ⊥ w
1
2
1
2
This is a vector problem:
xˆ = E[ x | y ] = (Λ ⋅ Λ
xy
1x1
1x2
−1
yy
2x2
Λ xy = E[ xy T ] = E[ x[ y1
)⋅ y
2x1
y 2 ]] = E[[x( x + w1 ) x( x + w2 )] = [2 2]
⎡y ⎤
Λ yy = E[ yy T ] = E[ ⎢ 1 ⎥[ y1
⎣ y2 ⎦
y 2 ]] =
⎡ ( x + w1 ) 2
( x + w1 )( x + w2 )⎤ ⎡3 2⎤
= E[ ⎢
⎥ = ⎢ 2 3⎥
2
( x + w2 )
⎦
⎣( x + w1 )( x + w2 )
⎦ ⎣
1 ⎡ 3 − 2⎤
−1
Λ yy = ⎢
5 ⎣− 2 3 ⎥⎦
⎛
1 ⎡ 3 − 2⎤ ⎞ ⎡ y1 ⎤ ⎡ 2
⎟⎟ ⋅ ⎢ ⎥ = ⎢
xˆ = ⎜⎜ [2 2] ⋅ ⎢
⎥
5 ⎣− 2 3 ⎦ ⎠ ⎣ y 2 ⎦ ⎣ 5
⎝
2 ⎤ ⎡ y1 ⎤ 2
2
y
y2
⋅
=
+
1
⎢
⎥
⎥
5 ⎦ ⎣ y2 ⎦ 5
5
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
19
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
2
2
2
2
2
2
y1 − y 2 ) 2 ] = E[( x − x − w1 − x − w2 ) 2 ] =
5
5
5
5
5
5
1
2
2
1
4
4
10 2
= E[( x − w1 − w2 ) 2 ] =
⋅ 2 + ⋅1 + ⋅1 =
=
5
5
5
25
25
25
25 5
E[( x − xˆ ) 2 ] = E[ x −
NB:
2 2
<
5 3
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
20
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
SOLUTION OF THE BASIC PROBLEM OF KALMAN
FILTERING (ONE-STEP PREDICTION, NO EXOGENOUS
INPUT)
System (see all previously-defined assumptions):
⎧ x(t + 1) = Fx(t ) + v (t )
S :⎨
⎩ y (t ) = Hx(t ) + v (t )
1
2
KALMAN filtering
⎧ xˆ (t + 1 | t ) = Fxˆ (t | t − 1) + K (t ) ⋅ e(t )
⎨
⎩ yˆ (t | t − 1) = Hxˆ (t | t − 1)
e(t ) : prediction error on output,
e(t ) = y (t ) − yˆ (t | t − 1)
K (t ) : filter gain
K (t ) = (FP(t ) H + V
T
12
)(HP(t ) H
T
+V
2
)
−1
P(t ) : solution of the Difference Riccati Equation (DRE)
P(t +1) = FP(t )F T + V1 − (FP(t )H T + V12 )(HP(t )H T + V2 ) −1 (FP(t )H T + V12 ) T
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
21
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Remark
The P(t ) matrix, which solves the DRE, is a matrix n × n with this
meaning:
P (t ) =
E[( x(t ) − xˆ (t | t − 1)( x(t ) − xˆ (t | t − 1)) T ] =
VAR[ x(t ) − xˆ (t | t − 1)]
P(t ) : variance of one-step prediction error of the state .
For every t, P(t ) is a symmetric, semi-definite and positive ( ≥ 0 )
matrix.
Remark
The state equation and the DRE are two difference equations
Therefore it’s necessary to initialize them:
xˆ (1 | 0) = E[ x(1)] = x 0
P (1) = VAR[ x(1)] = P0
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
22
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Remark
Graphic representation of Kalman filter
v (t )
v (t )
2
1
+
x(t + 1)
z
−1
x(t )
+
H
y (t )
+
+
F
+
e(t )
K (t )
−
+
z
−1
xˆ (t / t − 1)
H
+
yˆ (t / t − 1)
F
⇒ It makes a replica (without noises) of the system
⇒ It makes a correction proportional to e(t ) = y (t ) − yˆ (t )
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
23
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
This idea was already known ⇒ Luemberg Observer
The theory of Kalman Filter made a (great) progress: it computes
K (t ) optimal value.
K (t ) optimal value is crucial:
• K (t ) too low value ⇒ too feeble correction
• K (t ) too high value ⇒ exaggerated correction
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
24
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
EXTENSIONS TO BASIC CASE (I): MULTI-STEP
PREDICTION
Starting from xˆ (t + 1 | t ) and yˆ (t + 1 | t ) :
xˆ (t + 2 | t ) = Fxˆ (t + 1 | t )
xˆ (t + 3 | t ) = F 2 xˆ (t + 1 | t )
...
...
xˆ (t + k | t ) = F k −1 xˆ (t + 1 | t )
⇓
yˆ (t + k | t ) = Hxˆ (t + k | t )
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
25
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
EXTENSIONS TO BASIC CASE (II): FILTERING
Starting from xˆ (t + 1 | t ) (NB: filtering on y is nonsense):
xˆ (t + 1 | t ) = Fxˆ (t | t )
⇓⇑
xˆ (t | t ) = F xˆ (t + 1 | t ) ,
−1
We can obtain xˆ (t | t ) from xˆ (t + 1 | t ) by this method only if F is
invertible.
If F is NOT invertible, we can compute xˆ (t | t ) all the same.
The formula in case V12 = 0 (we just consider this case) is:
⎧ xˆ (t | t ) = Fxˆ (t − 1 | t − 1) + K 0 (t )e(t )
⎪ yˆ (t | t − 1) = Hxˆ (t | t − 1)
⎪
⎨
⎪e(t ) = y (t ) − yˆ (t | t − 1)
⎪⎩ K 0 (t ) = ( P (t ) H T )( HP (t ) H T + V2 ) −1
P(t ) is the DRE solution.
NB: the filter gain is different ( F is missing)
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
26
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
EXTENSIONS TO BASIC CASE (III): TIME-VARIANT
SYSTEMS
⎧ x(t + 1) = F (t ) x(t ) + v (t )
S =⎨
⎩ y (t ) = H (t ) x(t ) + v (t )
1
2
All the filter equations:
- State equation
- Output equation
- Error equation
- Gain equation
- DRE equation
Are exactly the same, provided that we replace F and H by F (t ) and
H (t ) .
NB: remarkable difference in comparison with Kolmogorov – Wiener
theory (everything steady-state; time-invariant systems)
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
27
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
EXTENSIONS TO BASIC CASE (IV): SYSTEMS WITH
EXOGENOUS INPUT
It can be explained clearly by this graphical representation:
v (t )
v (t )
1
u (t )
Γ
2
+ x(t + 1)
z
x(t )
−1
+
H
+
y (t )
+
F
+
K (t )
−
u (t )
+
Γ
z
−1
xˆ (t / t − 1)
yˆ (t / t
H
+
F
⇒ K (t ) is the same as in the case without exogenous input
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
28
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
STEADY-STATE SOLUTION
Problem: in case the system is time-invariant, we should ask whether a
steady-state solution exists (and how it is built up), i.e.:
• Does P(1), P(2),..., P(t ) sequence converge to a steady-state
value P ?
• In case P(t ) converges to P , does the corresponding gain
K = (FP H T + V12 )(HP H T + V2 ) make Kalman filter
−1
asymptotically stable?
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
29
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Remark (filter stability)
Consider the steady-state solution ( K )
Analyze the filter stability (filter state equation):
xˆ (t + 1 / t ) = Fxˆ (t | t − 1) + K e(t )
xˆ (t + 1 / t ) = Fxˆ (t | t − 1) + K ( y (t ) − yˆ (t | t − 1))
xˆ (t + 1 / t ) = Fxˆ (t | t − 1) + K ( y (t ) − Hxˆ (t | t − 1))
xˆ (t + 1 / t ) = ( F − K H ) xˆ (t | t − 1) + K y (t )
⇓
F − K H : dynamic filter K matrix
⇓
Kalman filter is asymptotically stable if and only if all F − K H
eingevalues are strictly inside the unit circle.
NB: Kalman filter can be asimptotically stable even if the system is
not ( F − K H ≠ F )
⇓
Kalman filter theory can be applied even to unstable systems (unlike
Kolmogorov – Wiener theory)
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
30
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Remark (DRE convergence)
To understand if P (t ) → P we have to analyse DRE.
Notice that DRE is a matrix non-linear difference equation ⇒ very
difficult analysis.
Notice that if a steady-state P solution exists, at steady-state the
following must hold:
P (t + 1) = P (t ) = P
⇓
P must satisfy this equation:
P = FP F T + V1 − ( FP H T + V12 )( HP H T + V2 ) −1 ( FP H T + V12 ) T
Algebraic equation known as ARE (Algebraic Riccati Equation).
Therefore if a steady-state P exists (in such a way that P (t ) → P ), it
should necessarily be a solution to ARE.
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
31
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
The problems to solve are:
• Has ARE a semi-definite-positive (s.d.p.) solution?
• If ARE has a s.d.p. solution, will DRE converge to such solution?
• If ARE has a s.d.p. solution and if DRE converges to such
solution, is the corresponding Kalman filter is asymptotically
stable? ( are F − K H eigenvalues strictly inside the unit circle?)
⇒ Two theoretic results exsist, known as first and second theorem
of asymptotic convergence (“asymptotic theorems”) – they
provide sufficient convergence conditions.
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
32
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
FIRST THEOREM OF ASYMPTOTIC CONVERGENCE
If the following conditions hold:
• V =0
12
• the system S is asymptotically stable (i.e. all F eigenvalues are
strictly inside the unitary circle ray)
⇓
• ARE has just one solution P ≥ 0 (s.d.p.)
• DRE converges asymptotically in P ∀ P
0
• Gain K corresponding to P grants the asymptotical stability of
Kalman filter (i.e. all the matrix eigenvalues F − K H are strictly
inside the unit circle).
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
33
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
As a premise to the Second theorem of asymptotic convergence, we
recall the notions of Oservability and Reachability (and the conditions
to check them)
Observability
⎧ x(t + 1) = Fx(t )
S :⎨
⎩ y (t ) = Hx(t )
System S is called Observable (the ( F , H ) pair is observable) if two
different initial states do not exist, such that their corresponding
outputs are exactly the same, for each t≥0.
Condition to check Observability
S is observable if and only if the observability matrix O is full rank,
i.e. it has rank n, where n is the system order.
⎡ H ⎤
⎢ HF ⎥
⎢
⎥
O = ⎢ HF 2 ⎥
⎢ ... ⎥
⎢ HF n −1 ⎥
⎣
⎦
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
34
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
(Noise) reachabilty
⎧ x(t + 1) = Fx(t ) + v (t )
S :⎨
⎩
1
v ≅ WN (0,V ) .
1
1
⇒ it’s always possible to factorize V as follows: V = GG
1
T
1
This is not the only possible factorization, but Reachability doesn’t
depend on the G we choose.
Then we can re-write the system as:
x(t + 1) = Fx(t ) + Gw(t ) con w(t ) ≅ WN (0, I )
Notice:
VAR[Gw(t )] = E[Gw(t ) w(t ) T G T ] = GE[ w(t ) w(t ) T ]G T =
= GIG = GG = V = VAR[v ]
T
T
1
1
System S is Reachable (from v1 (t ) ) ( ( F , G ) pair is Reachable) if,
starting from a null initial state, we can always find an input signal
w(t ) which leads the systems the to any a-priori selected final state in
finite time.
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
35
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Condition to check Reachability
S is Reachable (from v1 (t ) ) if and only if the Reachability matrix R is
full rank, i.e. its rank is n.
R = [G
FG
F 2 G ... F n −1G ]
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
36
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
SECOND THEOREM OF ASYMPTOTIC CONVERGENCE
If the following conditions hold:
• V =0
12
• ( F , G ) is Reachable (V = GG )
T
1
• ( F , H ) is Observable
⇓
• ARE has one single solution P > 0 (d.p.)
• DRE converges asymptotically to P ∀ P
0
• gain K corresponding to P grants asymptotical stability of
Kalman filter (i.e. all eigenvalues of F − K H matrix are strictly
inside the unit circle).
Remark
The theorems of asymptotic convergence are just sufficient
conditions. Therefore if their assumptions are not met, we cannot get
any conclusion ⇒ we have to make a direct analysis of DRE.
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
37
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
EXTENDED KALMAN FILTER
⎧ x(t + 1) = f ( x(t )) + v1 (t )
S :⎨
⎩ y (t ) = h( x(t )) + v 2 (t )
f (⋅) e h(⋅) generic, static and non-linear functions (supposed class C 1
at least) ⇒ the system is NON-linear.
Ex.
1
⎧
2
⎪ x(t + 1) = x(t ) + v1 (t )
S :⎨
2
⎪⎩ y (t ) = e x ( t ) + v (t )
2
⇒ How can we solve Kalman filter problem in this case?
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
38
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Kalman NON-linear filtering:
v (t )
v (t )
1
2
+ x(t + 1)
z
−1
x(t )
+
h(⋅)
+
y (t )
+
f (⋅)
+
?
−
+
z
−1
xˆ (t / t − 1)
h(⋅)
yˆ (t | t − 1)
+
f (⋅)
How can we compute the filter gain in this case?
• Non-linear function? [ K (e(t ))]
• Linear but time-variant? [ K (t )e(t )]
The second way (linear but time variant gain) is the easiest and most
natural.
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
39
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
To find K (t ) at each instant:
P (t + 1) = F (t ) P(t ) F (t ) T + V1 − ( F (t ) P (t ) H (t ) T + V12 ) ⋅
⋅ ( H (t ) P (t ) H (t ) T + V2 ) −1 ⋅ ( F (t ) P(t ) H (t ) T + V12 ) T
⇓
K (t ) = ( F (t ) P(t ) H (t ) T + V12 )( H (t ) P(t ) H (t ) T + V2 ) −1
⇒ Problem: what are F (t ) and H (t ) ?
F (t ) =
∂f ( x(t ))
∂x(t ) x(t ) = xˆ (t | t − 1)
H (t ) =
∂h( x(t ))
∂x(t ) x(t ) = xˆ (t | t − 1)
I.e.: we obtain F (t ) and H (t ) as linear approximation of f (⋅) and
h(⋅) around x(t ) = xˆ (t / t − 1)
NB: xˆ (t / t − 1) is known from the previous step
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
40
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
To implement an extended Kalman filter, each step it’s necessary to
do the following, at each time step:
• take xˆ (t | t − 1) , i.e. the prediction made previously
• compute matrices F (t ) and H (t ) using xˆ (t | t − 1)
• compute P (t ) from Riccati equation (which uses F (t ) and H (t ) )
• compute K (t ) using P (t )
• using K (t ) for the filter (which adopts F (t ) and H (t ) ), we can
compute a new prediction xˆ (t + 1 | t )
Kalman filter for non-linear systems is called Extended Kalman Filter
(EKF)
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
41
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
EKF FOR GREY-BOX IDENTIFICATION
EKF is used for the identification known as “grey-box”.
⎧ x(t + 1) = f ( x(t ),ϑ ) + v (t )
S :⎨
⎩ y (t ) = h( x(t ),ϑ ) + v (t )
1
2
The problem is to estimate the state and a few unknown parameters of
the model (ϑ ).
Define a new state equation:
ϑ (t + 1) = ϑ (t ) + v (t )
ϑ
⇓
⎧ x(t + 1) = f ( x(t ),ϑ (t )) + v (t )
⎪
⎨ϑ (t + 1) = ϑ (t ) + vϑ (t )
⎪ y (t ) = h( x(t ),ϑ (t )) + v (t )
⎩
1
Equazioni
di stato
2
⎡ x(t ) ⎤
Define the “extended state vector”: X E (t ) = ⎢
⎥
⎣ϑ (t ) ⎦
(add as many state variables as the unknown parameters are and we
obtain a standard problem of extended Kalman filtering)
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
42
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Problem: choice of vϑ (t ) (this noise doesn’t exist).
This is a fictitious noise that we have to consider to obtain a good
estimate of the parameters.
Normally we choose vϑ (t ) in such a way that:
• it’s uncorrelated with v (t ) e v (t )
1
2
• it has a diagonal covariance matrix (i.e. the fictitious noises per
single parameter are uncorrelated)
⎤
⎡λ1
⎥
⎢
0
λ2
⎥
Vϑ = ⎢
...
⎥
⎢
⎥
⎢ 0
λ
nθ ⎦
⎣
Choice of values λ1 , λ 2 ,..., λ nθ empirically made:
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
43
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Example (mass-spring-friction):
K
M
x
C
(Physical) model:
&x&M = − Kx − Cx&
⇓
x = x1
x& = x 2
⎧ x&1 = x 2
⎪⎪
K
C
S : ⎨ x& 2 = − x1 −
x2
M
M
⎪
⎪⎩ y = x1
Linear 2nd-order model written in standard form (in continuous-time:
to be discretized!)
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
44
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Discretization example:
x& 2 (t ) ≈
x 2 (t + 1) − x 2 (t )
,
∆t
x&1 (t ) ≈
x1 (t + 1) − x1 (t )
∆t
∆t : sampling interval.
⇓
⎧ x (t + 1) − x (t )
⋅ M = − Kx (t ) − Cx (t )
⎪⎪
∆t
⎨
⎪ x (t + 1) − x (t ) = x (t )
⎪⎩
∆t
2
2
1
1
2
1
2
⇓
⎧ x1 (t + 1) = x1 (t ) + x2 (t )∆t
⎪⎪
C∆t
∆t ⋅ K
) x2 (t )
x1 (t ) + (1 −
⎨ x2 (t + 1) = −
M
M
⎪
⎪⎩ y (t ) = x1 (t )
Linear 2nd-order model written in standard form with discrete-time
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
45
Materiale ad uso esclusivo degli studenti del corso. Vietata ogni forma di copia o distribuzione. Per la preparazione all’esame
questo materiale va integrato con le spiegazioni del docente durante le lezioni, e con i libri di testo del corso.
Assume that parameters M and K are known ( easy to measure), while
C is unknown (we want an estimate)
Set the problem as follows:
x3 (t ) = C (t )
x3 (t + 1) = x3 (t ) + v13 (t )
⇓
⎧ x1 (t + 1) = x1 (t ) + x2 (t )∆t + v11 (t )
⎪
∆t ⋅ K
∆t
⎪⎪ x2 (t + 1) = −
x1 (t ) + (1 − x3 (t ) ) x2 (t ) + v12 (t )
M
M
⎨
⎪ x3 (t + 1) = x3 (t ) + v13 (t )
⎪
⎪⎩ y (t ) = x1 (t ) + v2 (t )
NB: we obtained a NON-linear system (then EKF must be used)
We have to choose (empirically) the noise variance values.
Identificazione dei Modelli ed Analisi dei Dati - KALMAN FILTER
46