Re: [Bayes++] Bayes++ w/EKF and a non-linear equation: How to model?
Brought to you by:
mistevens
From: Michael S. <ma...@mi...> - 2006-12-12 21:00:30
|
On Monday, 11. December 2006 17:24, Michael Simon wrote: > Hello, everyone. > > I am attempting to use the Covariance_filter as an EKF for a non-linear > model. However, I do not understand which type of model class to use, > and how to specify the data for the models, even after looking at the > Bayesian Filtering overview. I'm pretty sure I need to use a > linrz_predict_model (or something like that) but beyond that... 'Linrz_predict_model' is definately what you want. > The main problem is that the elements of the f function I want to use > for the model are exponential. It's non-linear, with noise, but no > control (it's essentially 'the object I'm trying to predict is walking > around randomly, but within the laws of physics') How do you specify > that? No-control is fine. Control inputs just make the implementation more complex! I don't understand how you model can be 'exponential' when the physics are of something moving around at random. Or do you mean that you have exponentially correlated noise in you model? > I've been looking at the Welch and Bishop introduction and trying > to compare back to Bayes++, but with no avail. I'm fairly sure I could > use the libraries if my model was linear, but I don't quite see how to > put the non-linearity in there. I not sure of where you are stubling. Would it be possible to post the equations that model your system? The Covariance_filter implements the EKF in a fairly standard form. It should be usable for any non-linear problem that can be solved by an EKF. You need to turn the maths of you model into 3 things: f(x) : This should be easy once you have discrete time state equation of the system! Fx : Is the Jacobian of f(x) GqG' : This is often written as the symmetric matrix Q and is the covariance of the addative noise in you discrete state equations. Generally it is possible (an physically more meaningful) to write this a coupling matrix G and an noise variance q. If this is not possible then you can numerically obtain G and q from Q with the following: // Equivalent de-correlated form as GqG' Float rcond = Bayesian_filter_matrix::UdUfactor (Qtemp, Q); rclimit.check_PSD(rcond, "decorrelating Q not PSD"); Bayesian_filter_matrix::UdUseperate (G, q, Qtemp); Hope this helps you in the right direction, Michael -- ___________________________________ Michael Stevens Systems Engineering 34128 Kassel, Germany Phone/Fax: +49 561 5218038 Navigation Systems, Estimation and Bayesian Filtering http://bayesclasses.sf.net ___________________________________ |