EKF/UKF/IMM

来源:互联网 发布:推广必备软件 编辑:程序博客网 时间:2024/04/16 16:10

http://becs.aalto.fi/en/research/bayes/ekfukf/

EKF/UKF Toolbox for Matlab V1.3

Maintainers: Simo Särkkä, Jouni Hartikainen, Arno Solin

News

  • 2011-08-16 Published new version of the document.
  • 2011-08-11 Published new version (1.3) with Gauss-Hermite and third order cubature rule based filters and smoothers. The documentation is also updated, and few bug fixes included in the code.
  • 2007-09-04 Published new version (1.2) with few bug fixes and IMM filters and smoothers.
  • 2007-09-04 Published new version (1.1) with fixes in m-file documentation
  • 2007-08-07 First version of toolbox and documentation have been published!

Introduction

EKF/UKF is an optimal filtering toolbox for Matlab. Optimal filtering is a frequently used term for a process, in which the state of a dynamic system is estimated through noisy and indirect measurements. This toolbox mainly consists of Kalman filters and smoothers, which are the most common methods used in stochastic state-space estimation. The purpose of the toolbox is not to provide highly optimized software package, but instead to provide a simple framework for building proof-of-concept implementations of optimal filters and smoothers to be used in practical applications.

Most of the code has been written by Simo Särkkä in the Laboratory of Computational Engineering. Later Jouni Hartikainen and Arno Solin documented and extended it with new filters and smoothers as well as simulated examples.

License

This software is distributed under the GNU General Public License (version 2 or later); please refer to the file License.txt, included with the software, for details.

Download and Installation guide

Documentation

The documentation demonstrates the use of software as well as state-space estimation with Kalman filters in general. The purpose is not to give a complete guide to the subject, but to discuss the implementation and properties of Kalman filters.

  • documentation.pdf

The methods that are discussed in the current documentation are:

  • Kalman filters and smoothers.
  • Extended Kalman filters and smoothers
  • Unscented Kalman filters and smoothers
  • Gauss-Hermite Kalman filters and smoothers
  • Cubature Kalman filters and smoothers
  • Interacting Multiple Model (IMM) filters and smoothers

Useful background information on the methods can also be found in these lecture notes (slides and exercises are also available).

Demos

There are four demonstration programs for the provided filters and smoothers. The code of demonstrations and short introduction to them are given below. All of the demonstration programs are discussed completely in the documentation.

Demonstration programs for linear state-space models: 
2D CWPA-model, 'kf_cpwa_demo' 

Demonstration programs for non-linear state-space models: 
Tracking a random sine signal, 'ekf_sine_demo' 
UNGM-model, 'ungm_demo'
Bearings Only Tracking, 'bot_demo' 
Reentry Vehicle Tracking, 'reentry_demo' 

Demonstration programs for multiple model systems: 
Tracking a Target with Simple Manouvers, 'imm_demo' 
Coordinated Turn Model, 'ct_demo'
Bearings Only Tracking of a Manouvering Target, 'botm_demo' 

Contents

EKF/UKF toolbox for Matlab 7.xVersion 1.3, August 12, 2011Copyright (C) 2002-2011 Simo Särkkä, 2007-2011 Jouni Hartikainen 2010-2011 Arno Solin History:12.08.2011 AS/JH Updated for version 1.304.09.2007 JH/SS Updated for version 1.106.08.2007 JH Updated for version 1.0This software is distributed under the GNU General PublicLicence (version 2 or later); please refer to the fileLicence.txt, included with the software, for details.Kalman filteringKF_PREDICT    Perform Kalman Filter prediction stepKF_UPDATE     Kalman Filter update stepKF_LHOOD      Kalman Filter measurement likelihoodRTS_SMOOTH    Rauch-Tung-Striebel SmootherTF_SMOOTH     Smoother based on combination of two Kalman filtersExtended Kalman filteringEKF_PREDICT1  1st order Extended Kalman Filter prediction stepEKF_UPDATE1   1st order Extended Kalman Filter update stepEKF_PREDICT2  2nd order Extended Kalman Filter prediction stepEKF_UPDATE2   2nd order Extended Kalman Filter update stepERTS_SMOOTH1  1st order Extended RTS SmootherETF_SMOOTH1   Smoother based on two 1st order extended Kalman filtersNonlinear transform based filteringUT_WEIGHTS    Generate weights for sigma points using the summation formUT_MWEIGHTS   Generate weights for sigma points using the matrix formUT_SIGMAS     Generate Sigma Points for Unscented TransformationUT_TRANSFORM  Makes the Unscented Transformation of x and yUKF_PREDICT1  Nonaugmented UKF prediction stepUKF_UPDATE1   Nonaugmented UKF update stepUKF_PREDICT2  Augmented (state and process noise) UKF prediction stepUKF_UPDATE2   Augmented (state and measurement noise) UKF update stepUKF_PREDICT3  Augmented (state, process and measurement noise) UKF prediction stepUKF_UPDATE3   Augmented (state, process and measurement noise) UKF update stepURTS_SMOOTH1  Nonaugmented unscented RTS-smootherURTS_SMOOTH2  Augmented unscented RTS-smootherUTF_SMOOTH1   Smoother based on combination of two unscented Kalman filtersGH_TRANSFORM  Gauss-Hermite transform of random variablesGHKF_PREDICT  Gauss-Hermite Kalman filter prediction stepGHKF_UPDATE   Gauss-Hermite Kalman filter update stepGHRTS_SMOOTH  Additive form Gauss-Hermite Rauch-Tung-Striebel smootherCKF_TRANSFORM Cubature Kalman filter transform of random variablesCKF_PREDICT   Cubature Kalman filter prediction stepCKF_UPDATE    Cubature Kalman filter update stepCRTS_SMOOTH   Additive form cubature Rauch-Tung-Striebel smootherMultiple Model FilteringIMM_PREDICT   IMM filter prediction stepIMM_UPDATE    IMM filter update stepIMM_SMOOTH    IMM smoothingEIMM_PREDICT  IMM-EKF filter prediction stepEIMM_UPDATE   IMM-EKF filter update stepEIMM_SMOOTH   IMM-EKF smoothingUIMM_PREDICT  IMM-UKF filter prediction stepUIMM_UPDATE   IMM-UKF filter update stepUIMM_SMOOTH   IMM-UKF smoothingMisc.GAUSS_PDF     Multivariate Gaussian PDFGAUSS_RND     Multivariate Gaussian random variablesLTI_INT       Integrate LTI ODE with Gaussian NoiseLTI_DISC      Discretize LTI ODE with Gaussian NoiseRK4           Runge-Kutta integrationDER_CHECK     Check derivatives using finite differencesSCHOL         Positive semidefinite matrix Cholesky factorization/DEMOS//KF_CWPA_DEMO/KF_CWPA_DEMO       CWPA model demonstration with Kalman filter/EKF_SINE_DEMO/EKF_SINE_F         Dynamic model function (needed by the augmented UKF)EKF_SINE_H         Measurement model functionEKF_SINE_DH_DX     Jacobian of the measurement modelEKF_SINE_D2H_DX2   Hessian of the measurement modelEKF_SINE_DEMO      Random Sine Signal demonstration/UNGM_DEMO/UNGM_F             Dynamic model functionUNGM_DF_DX         Jacobian of the dynamic modelUNGM_D2F_DX2       Hessian of the dynamic model (not used)UNGM_H             Measurement model functionUNGM_DH_DX         Jacobian of the measurement modelUNGM_D2H_DX2       Hessian of the measurement model (not used)UNGM_DEMO          UNGM model demonstration/BOT_DEMO/BOT_H               Measurement model functionBOT_DH_DX           1st order derivative of the measurement modelBOT_D2H_DX2         2nd order derivative of the measurement modelBOT_DEMO_ALL        BOT demo with EKF and UKFEKFS_BOT_DEMO       BOT demo with EKFUKFS_BOT_DEMO       BOT demo with UKFGHKFS_BOT_DEMO      BOT demo with GHKFCKFS_BOT_DEMO       BOT demo with CKF/REENTRY_DEMO/REENTRY_F          Dynamic model functionREENTRY_DF_DX      Jacobian of the dynamic modelREENTRY_H          Measurement model functionREENTRY_DH_DX      Jacobian of the measurement modelREENTRY_IF         Inverse prediction of the dynamic modelREENTRY_COND       Generates condition numbers for simulation dataMAKE_REENTRY_DATA  Generates the simulation data for reentry dynamicsREENTRY_DEMO       Reentry Vehicle Tracking demonstration/IMM_DEMO/IMM_DEMO           Tracking a Target with Simple Manouvers demonstration/EIMM_DEMO/F_TURN             Dynamic model function for the coordinated turn modelF_TURN_DX          Jacobian of the coordinated turn model's dynamic modelF_TURN_INV         Inverse dynamics of the coordinated turn modelCT_DEMO            Coordinated Turn Model demonstrationBOT_H              Measurement model functionBOT_DH_DX          1st order derivative of the measurement modelBOT_D2H_DX2        2nd order derivative of the measurement modelBOTM_DEMO          Bearings Only Tracking of a Manouvering Target DemonstrationDemos currently included in the toolbox, but not documented:/KF_SINE_DEMO/KF_SINE_DEMO       Sine signal demonstration with Kalman filter

See also

  • RBMCDA Toolbox for Matlab
  • MCMC Methods for MLP and GP and Stuff for Matlab
  • MCMC Diagnostics for Matlab
  • FBM tools for Matlab