Tools for Nonlinear Estimation

… we may have knowledge of the past and cannot control it;
we may control the future but have no knowledge of it.
--- Claude Elwood Shannon

User: Login

Nonlinear Estimation Framework

Description

NEF is newly designed framework for nonlinear state estimation of discrete dynamical systems. The aim of this framework is to facilitate implementation, testing and use of various nonlinear state estimation methods. The main strength of the framework is its versatility due to the possibility of either structural or probabilistic description of the problem. As the toolbox is designed on the object oriented basis, further adding of user-specified nonlinear estimation algorithms is extremely easy.

This new toolbox should overcome following deficiencies of the framework which constitues base of the NFTools:

  • It should made it possible to describe system not only by difference equations. The description by probability density functions is also supported.
  • It should support the specification of time-varying systems.

The key element of the new design is the unified description of random variables. It also uses the new MATLAB® class system.

The toolbox currently implements following estimators:

Implemeted local estimation techniques
Estimator Toolbox object Num. stable version
(extended) Kalman filter nefKalman nefUDKalman, nefSKalman
Unscented Kalman filter nefUKF nefSUKF
Divided difference filter 1st order nefDD1 nefSDD1
Central difference filter nefDD1 nefSDD1
Divided difference filter 2nd order nefDD2 nefSDD2
Iteration filter nefItFilter depends on used local filter
Stochastic Integration Filter nefSIF
Implemeted global estimation techniques
EstimatorToolbox objectNote
Ensemble Kalman filter nefEnKF
Gaussian sum filter nefGSM can utilize all of the local filters
Particle filter nefPF sampling densities: prior, optimal, EKF, auxiliary (point and functional)
Implemeted identification techniques
Indetificator Toolbox object Note
autocovariance least-squares method nefALS for identification of noise covariance matrices
measurement difference autocovariance method mefMDA for identification of noise covariance matrices

Requirements

This toolbox is designed for use with MATLAB® environment. Due to the use of new class systems and some other MATLAB features it requires at least version 2009b.

Publication related to the NEF

A brief introduction to the NEF framework can be found in the following articles

  • O. Straka, et al. (2009). 'A software framework and tool for nonlinear state estimation' In Proceedings of the 15th IFAC Symposium on System Identification, SYSID 2009, Saint-Malo, France (poster)
  • O. Straka, et al. (2010). 'Nonlinear estimation framework in target tracking' In Proceedings of the 13th International Conference on Information Fusion, Edinburgh,UK, ISBN 978-0-9824438-1-1
  • M. Flídr, et. al. (2013). 'Nonlinear Estimation Framework: a Versatile Tool for State Estimation' In Proceedings of the 18th International Conference on Methods and Models in Automation and Robotics, Międzyzdroje, Poland, (conference presentation)
  • M. Flídr, et al. (2014). ' Nonlinear Estimation Software Framework in Optimal and Adaptive Control Problems'. In Proceedings of the 19th IFAC World Congress, 2014. pp. 5485-5490. ISBN: 978-3-902823-62-5 , ISSN: 1474-6670, (conference presentation)

 

Example of experiment design

In this example, a slight modification of the tracking problem presented in

N. Gordon, D. Salmond, and A.F.M. Smith. Novel approach to nonlinear/non-Gaussian Bayesian state estimation. IEE proceedings-F, 140:107–113, 1993.

is considered. A ship is moving in x-y plane with the stationary observer at the origin of the plane, The ship is assumed to accelerate and decelerate randomly over time.
probability density function describing system dynamics

The following picture shows all the classes necessary to describe the describe the system in the estimation experiment:
components describing the estimation experiment

For specification of the system, the nefPDFSystem class will be used. First, the transition pdf is set using its mean and covariance matrix as F = [1 1 0 0;0 1 0 0 ;0 0 1 1 ;0 0 0 1];
xMean = nefLinFunction(F,[],[]);
xVariance = 0.0001*eye(4);
px = nefGaussianRV(xMean,xVariance);
Then, the measurement pdf is also given by its mean and variance as mFun = @(x,u,v,t) atan(x(3)/x(1));
zMean = nefHandleFunction(mFun,[4 0 0 0]);
zVariance = 0.0001;
pz = nefGaussianRV(zMean,zVariance);
Now, the initial condition is specified as px0 = nefGaussianRV([-0.05 0.001 2 -0.055]',0.01*eye(4)); Consequently, the system is created using probabilistic description as model = nefPDFSystem(px,pz,px0); and simulated using commands nSteps=20;
[z,x] = simulate(model,nSteps,[]);
where the measurement values is stored in z and values of the state x. Finally, to estimate the state using the measurement, the auxiliary particle filter will be used. It will be built by a single command specifying system description, lag 0 and type of the sampling density: pfEstimator = nefPF(model,'samplingDensity','pointAuxiliary'); Note that no other design parameters concerning the particle filter were specified and thus the default values were used, such as default sample size is 100 samples, systematic resampling executed at each time instant.

The actual estimation is run as [estimates] = estimate(pfEstimator,z,[]); As a result, the filtering pdf estimates given by empirical pdf nefEmpiricalRV are stored in estimates.

published at: Oct 15, 2013 8:00 AM  |  status: In active development

Licence

  • The NEF is copyrighted freeware provided by the Identification and Decision Making Research Group at the Departement of Cybernetics, University of West Bohemia.
  • ANY TYPE OF REDISTRIBUTION AND/OR MODIFICATION OF THE TOOLBOX IS NOT PERMITTED!
  • It is not permitted to use this software or any of its part for commercial purposes or include it or its part in commercial products without prior written consent of copyright holders represented by current maintainer of the NEF.
  • In case of publication of results obtained using the software you are bound to either name the NEF with the web page of the toolbox and our institution (i.e.Departement of Cybernetics, University of West Bohemia) or cite at least one reference to recent publication on the NEF (to be found at http://nft.kky.zcu.cz/)
  • THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • MATLAB is trademark of The MathWorks, Inc.

Download

To download this tool, go to download page.