WOLFRAM NOTEBOOK

Tuning an Extended Kalman Filter

sigma ζ
26
sigma ξ
0
iterations
2
seed
42
integrator
Euler
2nd-orderRunge-Kutta
4th-orderRunge-Kutta
log integrator
-3
-2
-1
The Kalman filter is an algorithm that seeks to find the optimal representation for a series of observations by averaging over successive states, a type of Bayesian model. In its simplest form, it exploits the mathematical fact that the product of two Gaussians is another Gaussian.
This Demonstration shows an interactive version of an example from[1] for estimating height and speed of a falling object that experiences aerodynamic drag. You can adjust the observation noise (sigma ζ), process noise (sigma ξ), number of Monte Carlo iterations, the random seed, the internal integrator for the nonlinear differential equations of motion (Euler, second-order Runge–Kutta, fourth-order Runge–Kutta), and the logarithm of the internal integration time step in seconds (
-3
,
-2
,
-1
).
The filter diverges for many settings and converges for some with varying levels of execution speed. Convergence means the dots stay mostly inside the one-sigma rails on the residuals plots. Some of the settings are quite slow, on purpose, and your goal is to find the settings that yield convergence with the fastest execution time. This is an exercise in time-accuracy tradeoff.

Details

The example uses advanced functional programming over lazy streams to integrate in constant memory and to modularize the integrators and other components. The code has many reusable parts and is worthy of study independently of the application to Kalman filtering.

References

[1] P. Zarchan and H. Musoff, Fundamentals of Kalman Filtering: A Practical Approach, 4th ed., Reston, VA: American Institute of Aeronautics and Astronautics, 2015 Chapter 7. doi:10.2514/4.102776.

External Links

Permanent Citation

Wolfram Cloud

You are using a browser not supported by the Wolfram Cloud

Supported browsers include recent versions of Chrome, Edge, Firefox and Safari.


I understand and wish to continue anyway »

You are using a browser not supported by the Wolfram Cloud. Supported browsers include recent versions of Chrome, Edge, Firefox and Safari.