You are on page 1of 21

X

5.897333
4.310991
2.106282
4.048242
5.446724
9.283402
8.149417
10.87725
13.63837
10.8981
13.36806
13.78361
14.15545
10.0132
8.309809
7.81493
9.562557
11.2349
9.371594
9.545335
11.79363
6.993525
6.691494
5.445536
8.571398
11.35681
9.527138
11.53454
9.115466
8.340272
11.13113
9.033183
2.660878
4.346591
3.23952
-0.697643
-0.948082
-0.567725
3.127827
3.720725
3.15764
2.041089
0.864462
3.586099
6.877034
4.504267
6.155589
1.203135
1.002468
4.701479

This sheet simulates an Ornstein-Uhlenbeck (O-U)


process, a process that fluctuates randomly around
0. The vertical and horizontal scales are quantified
by s and tau. The third green input is the time
between observations. Resample by pressing F9.
Adjust the inputs to see the effect on the process.

std deviation, s
time const, tau
time btwn meas,
c = exp(-/tau) =
q =s^2(1-c^2) =

5
1
0.1
0.904837
4.531731

20
15
10
5
X

Time
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
4
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9

0
0

10

-5
-10
-15
Time

15

20

5
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
6
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
7
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
8
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
9
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
10

2.59375
1.84454
2.337097
2.104023
0.973127
0.73716
2.435087
3.811672
3.641627
0.403386
-1.858288
-0.284991
-0.552998
-2.3543
-2.591899
-0.565704
0.311593
-0.592538
0.635592
-2.982052
-1.322313
-2.356663
-7.421768
-9.926452
-4.099448
-4.742697
-2.847597
-1.647311
1.510599
3.094378
4.439931
6.232155
4.858747
1.342259
2.158865
3.480275
3.971858
2.891133
0.978685
6.477844
5.792485
3.963313
3.382471
4.81049
5.097867
1.204451
1.320805
3.900094
1.2718
1.101098
3.878609

10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
10.9
11
11.1
11.2
11.3
11.4
11.5
11.6
11.7
11.8
11.9
12
12.1
12.2
12.3
12.4
12.5
12.6
12.7
12.8
12.9
13
13.1
13.2
13.3
13.4
13.5
13.6
13.7
13.8
13.9
14
14.1
14.2
14.3
14.4
14.5
14.6
14.7
14.8
14.9
15
15.1

5.282251
8.263175
7.155811
6.475555
6.753521
7.386999
5.875821
6.901078
3.330329
2.248147
0.878248
0.944791
2.160333
-0.827418
-1.550761
-0.918462
-2.197106
0.32121
-0.307659
1.265784
2.101142
-2.250654
2.639833
5.003233
6.35965
3.188456
4.191729
4.458967
5.499459
3.385894
8.412065
5.827071
7.681594
3.582946
2.638342
-0.54282
-3.230405
-4.983189
-5.816257
-7.649935
-2.004443
0.075588
2.299186
5.663674
4.54249
6.320286
2.242108
2.317671
2.820941
2.871808
3.303298

15.2
15.3
15.4
15.5
15.6
15.7
15.8
15.9
16
16.1
16.2
16.3
16.4
16.5
16.6
16.7
16.8
16.9
17
17.1
17.2
17.3
17.4
17.5
17.6
17.7
17.8
17.9
18
18.1
18.2
18.3
18.4
18.5
18.6
18.7
18.8
18.9
19
19.1
19.2
19.3
19.4
19.5
19.6
19.7
19.8
19.9
20
20.1
20.2

2.721565
3.904914
3.653016
2.979591
3.930266
5.995519
6.318859
6.946352
7.638839
5.759948
7.673456
1.709458
-0.174433
1.449129
2.520303
4.581296
2.617932
1.172954
0.922135
4.060049
2.707764
1.1804
0.144477
0.074723
-1.582611
-2.247029
-0.672594
-0.870379
0.419075
-3.696855
-4.54227
-5.780327
-8.0962
-8.522056
-10.12052
-7.388467
-2.252333
0.496141
2.302424
1.473186
1.127698
4.087372
0.982403
-0.423292
0.918547
1.977742
3.408917
4.740973
3.454771
7.197836
6.235434

20.3
20.4
20.5
20.6
20.7
20.8
20.9
21
21.1
21.2
21.3
21.4
21.5
21.6
21.7
21.8
21.9
22
22.1
22.2
22.3
22.4
22.5
22.6
22.7
22.8
22.9
23
23.1
23.2
23.3
23.4
23.5
23.6
23.7
23.8
23.9
24

7.87747
7.341693
5.210524
2.446324
-0.925857
-2.03423
-3.972446
-0.409855
-0.605506
-1.484539
-1.65346
0.894227
1.917761
-0.462729
-0.52935
1.866025
1.257019
2.398565
4.81785
5.884989
4.192916
3.872978
-0.132993
1.748349
3.129034
3.58667
5.47363
0.896487
2.157575
1.471611
-3.699318
-0.539797
-1.641091
-2.503317
0.142675
1.549666
2.348112
-2.539716

20

mu(+)

sig(+)

0.540302
0.88895
0.800313
0.81972
0.815284
0.816288
0.81606
0.816112
0.8161
0.816103
0.816102

1.53527
1.045539
1.142487
1.119926
1.125014
1.123858
1.124121
1.124061
1.124075
1.124072
1.124072

1
0.47575
0.642979
0.609874
0.617578
0.61584
0.616235
0.616145
0.616166
0.616161
0.616162
0.616162

0.5
0.085245
0.035285
0.042826
0.040987
0.041397
0.041304
0.041325
0.04132
0.041321
0.041321
0.041321

mu(-)
sig(-)
muV
R
Z

1
0.5
0.1
0.03
0.6

The light yellow cells are the output of


the measurement step of an EKF. The
heavy yellow cells are the output of an
extended EKF. The green cells are
inputs., the first two of which are named
mu and sigma.

time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

mu(-)
sig(-)
Err(-)
X (truth) z
d_shock k-gain
mu(+)
1.000 100.000
0.037
2.933 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
1.750 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.018 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.772 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.653 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.596 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.877 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
3.278 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.941 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.601 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.947 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
0.592 #VALUE! #VALUE! #VALUE! #VALUE!
Tracking
accuracy vs time
#VALUE! #VALUE! #VALUE!
0.126 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-0.947 #VALUE! #VALUE! #VALUE! #VALUE!
20.000
#VALUE! #VALUE! #VALUE!
-1.128 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-0.417 #VALUE! #VALUE! #VALUE! #VALUE!
15.000
#VALUE! #VALUE! #VALUE!
-1.921 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-1.436 #VALUE! #VALUE! #VALUE! #VALUE!
mu(-)
#VALUE! #VALUE! #VALUE!
0.126 #VALUE! #VALUE! #VALUE! #VALUE!
10.000
X (truth)
#VALUE! #VALUE! #VALUE!
1.756 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.141 #VALUE! #VALUE! #VALUE! #VALUE!
mu(+)
#VALUE!
#VALUE!
#VALUE!
2.313
#VALUE!
#VALUE!
#VALUE!
#VALUE!
5.000
#VALUE! #VALUE! #VALUE!
2.465 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
1.719 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
2.391 #VALUE! #VALUE! #VALUE! #VALUE!
0.000
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
0
20
40 0.722 #VALUE!
60
80
100
#VALUE! #VALUE! #VALUE!
0.876 #VALUE! #VALUE! #VALUE! #VALUE!
-5.000
#VALUE! #VALUE! #VALUE!
1.172 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
0.814 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
0.054 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-0.349 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-0.644 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-1.753 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-2.066 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-1.592 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-1.084 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-1.044 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-1.235 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
0.513 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
1.738 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
1.769 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-0.478 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-2.180 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-0.810 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-0.512 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
0.168 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-0.615 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
0.330 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-0.020 #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!
-1.657 #VALUE! #VALUE! #VALUE! #VALUE!

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

-0.784
0.291
0.658
0.308
-0.505
0.011
-0.056
2.553
1.361
2.602
3.334
4.061
3.876
3.708
2.849
3.929
5.697
5.958
6.259
6.266
4.984
3.296
5.029
4.806
4.623
5.526
6.020
7.122
8.973
7.728
7.116
8.706
9.825
9.664
9.615
10.533
9.654
9.775
9.815
10.917
12.206
11.579
11.709
13.148
12.838
14.174
14.729
15.358
13.997
15.102

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

sig(+)
Err(+)
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
mu(-) #VALUE! #VALUE!
X (truth)
#VALUE! #VALUE!
mu(+) #VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!
#VALUE! #VALUE!

R (or rr)
Q (or qq)
mu_W

1
1
0.1

1 sqrt(R)
1 sqrt(Q)

Norm alize d errors vs tim e


0.040
0.035
0.030
0.025

d_shock
Err(+)

0.020

Err(-)
0.015
0.010
0.005
0.000
0

20

40

60

80

100

This sheet simulates the operation of a scalar Kalman filter, comparing the true state X
with Kalman's before and after estimates. Three normalized errors are also computed and
graphed. The function m_func(x) and its derivative d_func(x) are expressed in VBA code
in module 1 (alt-F11). If m_func(x) is a nonlinear function, the Kalman filter is extended,
and may lose track

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

true state X
o computed and
d in VBA code
r is extended,

time

mu(-)

sig(-)
10
0

N
X
0### -6.456468
100### -10.61697

K
0.909091
0

Z
-5.326697

mu(+)
-4.842452
0

0
0

-3.842452
0

100.9091
100

100 0 -16.07344
101### -11.88528

0.990187
0.981267

-14.51802

-14.41327
-10.47558

-23.88885
-10.47558

5.826048 3.854594 0 -26.95872


3.854594 3.873327 -1 -12.50686

0.853502
0.564689

-27.39534

-26.88165
-12.45566

-38.33731
-12.45566

3.679561 2.26137 0 -38.46558


2.26137 2.696681 0 -12.32228

0.786305
0.483244

-36.77946

-37.11237
-11.70284

-47.8152
-11.70284

3.35668 2.087131 1 -49.78786


2.087131 2.603887### -14.46967

0.770467
0.479065

-50.03473

-49.52528
-12.76614

-61.29142
-12.76614

3.332613 2.083081 0 -63.25753


2.083081 2.604017 0 -14.78686

0.769192
0.480791

-62.73142

-62.39906
-13.45848

This is a Monte Carlo simulation of a Kalman Filter with two state variables and a scalar
measurement. Excel's "array entry" mechanism (Ctl-Shft-Enter instead of just Enter) is used
frequently to implement matrix arithmetic, with the formula shown in {}. If you make any change to
such a formula, be sure to array-enter the change. Press F9 to resample, and note that sig(-), K, and
sig(+) are the same for every sample. Column G has standard normal samples for updating X in
column H, but otherwise the column headings are standard KF usage. The matrices sqrt(Q) and
sqrt(R) are inputs used with random numbers in updating X and V. Kalman's calculations do not use
them, but rather Q and R. Robustness can be tested by making them inconsistent.

sig(+)
0.909091
0

1
0

0 Identity
1

0 H

1
0

1 phi
1

0
0

0 sqrt(Q)
1

0
0

0 Q
1

0.786305 0.483244
0.483244 1.603887

sqrt(R)

0.770467 0.479065
0.479065 1.604017

1
0

muW

0
100

0.990187 0.981267
0.981267 2.873327
0.853502 0.564689
0.564689 1.696681

0.769192 0.480791
0.480791 1.60249

bles and a scalar


of just Enter) is used
If you make any change to
ple, and note that sig(-), K, and
samples for updating X in
The matrices sqrt(Q) and
man's calculations do not use
nconsistent.

Shot
1
2
3
4
5
6
7
8
9
10

Gain (K)
0.990099
0.497512
0.332226
0.249377
0.199601
0.166389
0.142653
0.124844
0.110988
0.0999

KalmanAim Dispersion(V)
0 -0.4165208388
-3.760693 -0.0288521946
-3.9722729 -1.9324398844
-3.410847 -0.2737312304
-3.5430771 0.9168400135
-3.8601596 0.7443804456
-4.0430285 1.0764571752
-4.2210954 0.9224733094
-4.3354773 -1.9302344587
-4.1078534 1.4068788403

Miss (Z) KalmanHit?


-3.7983
0
-0.425276
1
1.689892
0
-0.530243
1
-1.588584
0
-1.099042
0
-1.24825
0
-0.916199
1
2.050891
0
-1.513846
0

sig_disp
1
sig_B
10
R
1
TgtLoc(X) -4.21482

0
Two procedures
are
0 shooting
2 at a target4 in one dimension
6
8 constrasted:
10 Kalman
12and 3CAL. The Kalman filter g
-0.5 for
the aimpoint in response to feedback Z, while 3CAL adjusts only once, after the third shot. The figure illustrates th
-1 if the absolute miss distance is smaller than the lethal radius. By pressing F9 repeatedly, you will
hit in either case
cases where-1.5
3CAL hits the target, while Kalman does not, as well as vice versa, and that the aiming procedures see
identical on the
-2 fourth shot.. In what sense, then, is Kalman "optimal"? The answer is that the Kalman kill probab
high as the 3CAL kill probability on every shot. To demonstrate this, let the Gain be the difference in hits on each
-2.5 value of Gain is positive on (say) the tenth shot. Do this by using SimSheetKalmanAim
that the average
to perform the experi
-3 should be true no matter how you adjust the positive inputs in the green cells.
3CALAim
This conclusion
-3.5
Truth(X)
-4
-4.5
-5
Shot number

3CALAim MissDist 3CALHit?


0 -3.7983
0
0 -4.18597
0
0 -2.28238
0
-3.42222 -0.51887
1
-3.42222 -1.70944
0
-3.42222 -1.53698
0
-3.42222 -1.86906
0
-3.42222 -1.71508
0
-3.42222 1.13763
0
-3.42222 -2.19948
0

alman
12and 3CAL. The Kalman filter gradually adjusts
r the third shot. The figure illustrates this. The target is
s. By pressing F9 repeatedly, you will see hat there are
rsa, and that the aiming procedures seem to be nearly
e answer is that the Kalman kill probabilty is at least as
e Gain be the difference in hits on each shot, and show
using SimSheetKalmanAim
to perform the experiment repeatedly.
3CALAim
in the green cells.
Truth(X)

Gain
0
1
0
0
0
0
0
1
0
0

Truth(X)
-4.21482
-4.21482
-4.21482
-4.21482
-4.21482
-4.21482
-4.21482
-4.21482
-4.21482
-4.21482

You might also like