Documente Academic
Documente Profesional
Documente Cultură
13 Kalman Filters
Introduction
In 1960, Rudolf Kalman developed a way to solve some of the practical difficulties that arise when trying to apply Weiner filters. There are D-T and C-T versions of the Kalman Filter we will only consider the D-T version. KF initially arose in the The Kalman filter is widely used in: Control Systems Navigation Systems Tracking Systems
field of control systems in order to make a system do what you want, you must know what it is doing now
Aside: There are many ways to mathematically model dynamical systems Differential/Difference Equations Convolution Integral/Summation Transfer Function via Laplace/Z transforms State-Space Model
3
For the constant velocity model we would constrain vx(t) & vy(t) to be constants Vx & Vy.
If we know s(to) and there is no input we know how the A/C behaves for all future times: rx(to + ) = Vx + rx(to) rx(to + ) = rx(to) + Vx ry(to + ) = ry(to) + Vy
4
If every increment of n corresponds to a duration of sec and there is no driving force then we can write a D-T State Model as:
s [n ] = As [n 1]
0 1 0 0 1 0 A= 0 0 1 0 0 0 0 1 State Transition Matrix
rx[n] = rx[n-1] + vx[n-1] ry [n] = ry[n-1] + vy[n-1] vx[n] = vx[n-1] vy[n] = vy[n-1] We can include the effect of a vector input:
s [n ] = As [n 1] + Bu[n ]
Input could be deterministic and/or random. Matrix B combines inputs & distributes them to states.
5
n0
state vector is a vector Gauss-Markov process state transition matrix; assumed |i| < 1 for stability input matrix eigenvalues driving noise is vector WGN w/ zero mean initial state ~ N(s,Cs) and independent of u[n]
u[n] ~ N(0,Q) E{u[n] uT[m]} = 0, n m
6
Theorem: s[n] for n 0 is Gaussian with the following characteristics diverges if e-values Mean of state vector is E{s[n ]} = A n +1 s Covariance between state vectors at m and n is
have |i| 1
Cs A
n +1 T
k =m n
A k BQBT ( A n-m+ k )T
For the scalar case the model is: s[n] = a s[n-1] + b u[n]
s[0] = as[ 1] + bu[0]
s[1] = as[0] + bu[1] = a 2 s[ 1] + abu[0] + bu[1]
s[2] = as[1] + bu[2] = a 3 s[ 1] + a 2 bu[0] + abu[1] + bu[2]
n0
Now we can just iterate this model and surmise its general form:
!
Now easy to find the mean:
E {s[n ]} = a
n +1
s[n ] = a
=0
n +1
s[ 1] +
k =0
b %"n k ]} E {u[$" #
z.i. response exponential
k =0
a k bu[n k ]
z.s. response convolution
= a n +1 s
as claimed!
{ = E{(a
}
)
Must use different dummy variables!!
[ s[m] s ] + a k bu[m k ]
k =0 n
m m
For m n:
2 C s [m, n ] = a m +1a n +1 s
k =mn
2 a k b u ba n m + k
E{s[n ]} = aE{s[n 1]} + b E{u[n ]} %""" $"""" " # %$# " "
propagates as in theorem =0
{ } = E { ( as[n 1] + bu[n ] aE{s[n 1]}) } = a E { ( s[n 1] E{s[n 1]}) }a + b E { u [n ]}b %"""" $""""" " # % $" " #
2 2 2 = var{s[ n 1]}
2 = u
0 0 0 2 u
11
12000
10000
Y position (m)
8000
6000
4000
u = 5 m/s
rx [ 1] = ry [ 1] = 0 m v x [ 1] = v y [ 1] = 100 m/s
2000
2000
4000
6000
18000
12
Observation Model
So we have a random state-variable model for the dynamics of the signal ( the signal is often some true A/C trajectory) We need to have some observations (i.e., measurements) of the signal
In Navigation Systems inertial sensors make noisy measurements at intervals of time In Tracking Systems sensing systems make noisy measurements (e.g., range and angles) at intervals of time
13
14