Top Banner
EE363 Winter 2008-09 Lecture 8 The Kalman filter Linear system driven by stochastic process Statistical steady-state Linear Gauss-Markov model Kalman filter Steady-state Kalman filter 8–1
28

kalman filter general introdution

Oct 25, 2015

Download

Documents

Kira Chiến ND

afsfsafsafasfdasfasf
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: kalman filter general introdution

EE363 Winter 2008-09

Lecture 8

The Kalman filter

• Linear system driven by stochastic process

• Statistical steady-state

• Linear Gauss-Markov model

• Kalman filter

• Steady-state Kalman filter

8–1

Page 2: kalman filter general introdution

Linear system driven by stochastic process

we consider linear dynamical system xt+1 = Axt + But, with x0 andu0, u1, . . . random variables

we’ll use notation

xt = Ext, Σx(t) = E(xt − xt)(xt − xt)T

and similarly for ut, Σu(t)

taking expectation of xt+1 = Axt + But we have

xt+1 = Axt + But

i.e., the means propagate by the same linear dynamical system

The Kalman filter 8–2

Page 3: kalman filter general introdution

now let’s consider the covariance

xt+1 − xt+1 = A(xt − xt) + B(ut − ut)

and so

Σx(t + 1) = E (A(xt − xt) + B(ut − ut)) (A(xt − xt) + B(ut − ut))T

= AΣx(t)AT + BΣu(t)BT + AΣxu(t)BT + BΣux(t)AT

whereΣxu(t) = Σux(t)T = E(xt − xt)(ut − ut)

T

thus, the covariance Σx(t) satisfies another, Lyapunov-like linear dynamicalsystem, driven by Σxu and Σu

The Kalman filter 8–3

Page 4: kalman filter general introdution

consider special case Σxu(t) = 0, i.e., x and u are uncorrelated, so wehave Lyapunov iteration

Σx(t + 1) = AΣx(t)AT + BΣu(t)BT ,

which is stable if and only if A is stable

if A is stable and Σu(t) is constant, Σx(t) converges to Σx, called thesteady-state covariance, which satisfies Lyapunov equation

Σx = AΣxAT + BΣuBT

thus, we can calculate the steady-state covariance of x exactly, by solvinga Lyapunov equation

(useful for starting simulations in statistical steady-state)

The Kalman filter 8–4

Page 5: kalman filter general introdution

Example

we consider xt+1 = Axt + wt, with

A =

[

0.6 −0.80.7 0.6

]

,

where wt are IID N (0, I)

eigenvalues of A are 0.6 ± 0.75j, with magnitude 0.96, so A is stable

we solve Lyapunov equation to find steady-state covariance

Σx =

[

13.35 −0.03−0.03 11.75

]

covariance of xt converges to Σx no matter its initial value

The Kalman filter 8–5

Page 6: kalman filter general introdution

two initial state distributions: Σx(0) = 0, Σx(0) = 102I

plot shows Σ11(t) for the two cases

0 10 20 30 40 50 60 70 80 90 1000

20

40

60

80

100

120

t

Σ11(t

)

The Kalman filter 8–6

Page 7: kalman filter general introdution

(xt)1 for one realization from each case:

0 10 20 30 40 50 60 70 80 90 100−15

−10

−5

0

5

10

15

0 10 20 30 40 50 60 70 80 90 100−15

−10

−5

0

5

10

15

t

(xt) 1

(xt) 1

The Kalman filter 8–7

Page 8: kalman filter general introdution

Linear Gauss-Markov model

we consider linear dynamical system

xt+1 = Axt + wt, yt = Cxt + vt

• xt ∈ Rn is the state; yt ∈ Rp is the observed output

• wt ∈ Rn is called process noise or state noise

• vt ∈ Rp is called measurement noise

w x yv

z−1

A

C

The Kalman filter 8–8

Page 9: kalman filter general introdution

Statistical assumptions

• x0, w0, w1, . . ., v0, v1, . . . are jointly Gaussian and independent

• wt are IID with Ewt = 0, EwtwTt = W

• vt are IID with E vt = 0, E vtvTt = V

• Ex0 = x0, E(x0 − x0)(x0 − x0)T = Σ0

(it’s not hard to extend to case where wt, vt are not zero mean)

we’ll denote Xt = (x0, . . . , xt), etc.

since Xt and Yt are linear functions of x0, Wt, and Vt, we conclude theyare all jointly Gaussian (i.e., the process x, w, v, y is Gaussian)

The Kalman filter 8–9

Page 10: kalman filter general introdution

Statistical properties

• sensor noise v independent of x

• wt is independent of x0, . . . , xt and y0, . . . , yt

• Markov property: the process x is Markov, i.e.,

xt|x0, . . . , xt−1 = xt|xt−1

roughly speaking: if you know xt−1, then knowledge of xt−2, . . . , x0

doesn’t give any more information about xt

The Kalman filter 8–10

Page 11: kalman filter general introdution

Mean and covariance of Gauss-Markov process

mean satisfies xt+1 = Axt, Ex0 = x0, so xt = Atx0

covariance satisfies

Σx(t + 1) = AΣx(t)AT + W

if A is stable, Σx(t) converges to steady-state covariance Σx, whichsatisfies Lyapunov equation

Σx = AΣxAT + W

The Kalman filter 8–11

Page 12: kalman filter general introdution

Conditioning on observed output

we use the notation

xt|s = E(xt|y0, . . . ys),

Σt|s = E(xt − xt|s)(xt − xt|s)T

• the random variable xt|y0, . . . , ys is Gaussian, with mean xt|s andcovariance Σt|s

• xt|s is the minimum mean-square error estimate of xt, based ony0, . . . , ys

• Σt|s is the covariance of the error of the estimate xt|s

The Kalman filter 8–12

Page 13: kalman filter general introdution

State estimation

we focus on two state estimation problems:

• finding xt|t, i.e., estimating the current state, based on the current andpast observed outputs

• finding xt+1|t, i.e., predicting the next state, based on the current andpast observed outputs

since xt, Yt are jointly Gaussian, we can use the standard formula to findxt|t (and similarly for xt+1|t)

xt|t = xt + ΣxtYtΣ−1

Yt(Yt − Yt)

the inverse in the formula, Σ−1Yt

, is size pt × pt, which grows with t

the Kalman filter is a clever method for computing xt|t and xt+1|t

recursively

The Kalman filter 8–13

Page 14: kalman filter general introdution

Measurement update

let’s find xt|t and Σt|t in terms of xt|t−1 and Σt|t−1

start with yt = Cxt + vt, and condition on Yt−1:

yt|Yt−1 = Cxt|Yt−1 + vt|Yt−1 = Cxt|Yt−1 + vt

since vt and Yt−1 are independent

so xt|Yt−1 and yt|Yt−1 are jointly Gaussian with mean and covariance

[

xt|t−1

Cxt|t−1

]

,

[

Σt|t−1 Σt|t−1CT

CΣt|t−1 CΣt|t−1CT + V

]

The Kalman filter 8–14

Page 15: kalman filter general introdution

now use standard formula to get mean and covariance of

(xt|Yt−1)|(yt|Yt−1),

which is exactly the same as xt|Yt:

xt|t = xt|t−1 + Σt|t−1CT

(

CΣt|t−1CT + V

)−1(yt − Cxt|t−1)

Σt|t = Σt|t−1 − Σt|t−1CT

(

CΣt|t−1CT + V

)−1CΣt|t−1

this gives us xt|t and Σt|t in terms of xt|t−1 and Σt|t−1

this is called the measurement update since it gives our updated estimateof xt based on the measurement yt becoming available

The Kalman filter 8–15

Page 16: kalman filter general introdution

Time update

now let’s increment time, using xt+1 = Axt + wt

condition on Yt to get

xt+1|Yt = Axt|Yt + wt|Yt

= Axt|Yt + wt

since wt is independent of Yt

therefore we have xt+1|t = Axt|t and

Σt+1|t = E(xt+1|t − xt+1)(xt+1|t − xt+1)T

= E(Axt|t − Axt − wt)(Axt|t − Axt − wt)T

= AΣt|tAT + W

The Kalman filter 8–16

Page 17: kalman filter general introdution

Kalman filter

measurement and time updates together give a recursive solution

start with prior mean and covariance, x0|−1 = x0, Σ0|−1 = Σ0

apply the measurement update

xt|t = xt|t−1 + Σt|t−1CT

(

CΣt|t−1CT + V

)−1(yt − Cxt|t−1)

Σt|t = Σt|t−1 − Σt|t−1CT

(

CΣt|t−1CT + V

)−1CΣt|t−1

to get x0|0 and Σ0|0; then apply time update

xt+1|t = Axt|t, Σt+1|t = AΣt|tAT + W

to get x1|0 and Σ1|0

now, repeat measurement and time updates . . .

The Kalman filter 8–17

Page 18: kalman filter general introdution

Riccati recursion

we can express measurement and time updates for Σ as

Σt+1|t = AΣt|t−1AT + W − AΣt|t−1C

T (CΣt|t−1CT + V )−1CΣt|t−1A

T

which is a Riccati recursion, with initial condition Σ0|−1 = Σ0

• Σt|t−1 can be computed before any observations are made

• thus, we can calculate the estimation error covariance before we get anyobserved data

The Kalman filter 8–18

Page 19: kalman filter general introdution

Comparison with LQR

in LQR,

• Riccati recursion for Pt (which determines the minimum cost to go froma point at time t) runs backward in time

• we can compute cost-to-go before knowing xt

in Kalman filter,

• Riccati recursion for Σt|t−1 (which is the state prediction errorcovariance at time t) runs forward in time

• we can compute Σt|t−1 before we actually get any observations

The Kalman filter 8–19

Page 20: kalman filter general introdution

Observer form

we can express KF as

xt+1|t = Axt|t−1 + AΣt|t−1CT (CΣt|t−1C

T + V )−1(yt − Cxt|t−1)

= Axt|t−1 + Lt(yt − yt|t−1)

where Lt = AΣt|t−1CT (CΣt|t−1C

T + V )−1 is the observer gain

• yt|t−1 is our output prediction, i.e., our estimate of yt based ony0, . . . , yt−1

• et = yt − yt|t−1 is our output prediction error

• Axt|t−1 is our prediction of xt+1 based on y0, . . . , yt−1

• our estimate of xt+1 is the prediction based on y0, . . . , yt−1, plus alinear function of the output prediction error

The Kalman filter 8–20

Page 21: kalman filter general introdution

Kalman filter block diagram

wt xt yt

vt

z−1

z−1

A

A

C

C

Lt

et

xt|t−1

xt|t−1 yt|t−1

The Kalman filter 8–21

Page 22: kalman filter general introdution

Steady-state Kalman filter

as in LQR, Riccati recursion for Σt|t−1 converges to steady-state value Σ,provided (C, A) is observable and (A, W ) is controllable

Σ gives steady-state error covariance for estimating xt+1 given y0, . . . , yt

note that state prediction error covariance converges, even if system isunstable

Σ satisfies ARE

Σ = AΣAT + W − AΣCT (CΣCT + V )−1CΣAT

(which can be solved directly)

The Kalman filter 8–22

Page 23: kalman filter general introdution

steady-state filter is a time-invariant observer:

xt+1|t = Axt|t−1 + L(yt − yt|t−1), yt|t−1 = Cxt|t−1

where L = AΣCT (CΣCT + V )−1

define state estimation error xt|t−1 = xt − xt|t−1, so

yt − yt|t−1 = Cxt + vt − Cxt|t−1 = Cxt|t−1 + vt

and

xt+1|t = xt+1 − xt+1|t

= Axt + wt − Axt|t−1 − L(Cxt|t−1 + vt)

= (A − LC)xt|t−1 + wt − Lvt

The Kalman filter 8–23

Page 24: kalman filter general introdution

thus, the estimation error propagates according to a linear system, withclosed-loop dynamics A − LC, driven by the process wt − LCvt, which isIID zero mean and covariance W + LV LT

provided A, W is controllable and C, A is observable, A − LC is stable

The Kalman filter 8–24

Page 25: kalman filter general introdution

Example

system isxt+1 = Axt + wt, yt = Cxt + vt

with xt ∈ R6, yt ∈ R

we’ll take Ex0 = 0, Ex0xT0 = Σ0 = 52I; W = (1.5)2I, V = 1

eigenvalues of A:

0.9973 ± 0.0730j, 0.9995 ± 0.0324j, 0.9941 ± 0.1081j

(which have magnitude one)

goal: predict yt+1 based on y0, . . . , yt

The Kalman filter 8–25

Page 26: kalman filter general introdution

first let’s find variance of yt versus t, using Lyapunov recursion

E y2t = CΣx(t)CT + V, Σx(t + 1) = AΣx(t)AT + W, Σx(0) = Σ0

0 20 40 60 80 100 120 140 160 180 2000

2000

4000

6000

8000

10000

12000

14000

16000

18000

t

Ey2 t

The Kalman filter 8–26

Page 27: kalman filter general introdution

now, let’s plot the prediction error variance versus t,

E e2t = E(yt|t−1 − yt)

2 = CΣt|t−1CT + V,

where Σt|t−1 satisfies Riccati recursion, initialized by Σ−1|−2 = Σ0,

Σt+1|t = AΣt|t−1AT + W − AΣt|t−1C

T (CΣt|t−1CT + V )−1CΣt|t−1A

T

0 20 40 60 80 100 120 140 160 180 20017

17.5

18

18.5

19

19.5

20

20.5

t

Ee

2 t

prediction error variance converges to steady-state value 18.7

The Kalman filter 8–27

Page 28: kalman filter general introdution

now let’s try the Kalman filter on a realization yt

top plot shows yt; bottom plot shows et (on different vertical scale)

0 20 40 60 80 100 120 140 160 180 200−300

−200

−100

0

100

200

300

0 20 40 60 80 100 120 140 160 180 200−30

−20

−10

0

10

20

30

t

t

yt

et

The Kalman filter 8–28