[Bayes++] Re: bayes++
Brought to you by:
mistevens
From: Nicola B. <nic...@gm...> - 2005-09-26 13:23:09
|
Hi Baskar, On Monday 26 Sep 2005 01:20, Baskar Jayaraman wrote: > Hi Nicola, I saw your following question on the bayes++ ML. I am also a > little bit confused about modeling Q on my problem in bayes++ and would > like to see if you can help me. I am using linear_predict model to model > the following problem: > x1(k+1) =3D x1(k) + u1(k)-u2(k)+w1(k) > x2(k+1) =3D x2(k) + u2(k)-u3(k)+w2(k) > y(k) =3D x1(k) + x2(k) + v(k) > w1,w2,v are noises. u1, u2 are control actions. u3 is a disturbance on x= 2. > y is the observation. u1 u2 and u3 have noises which I am modeling as bei= ng > included in w1 and w2. This causes a difficulty because u2 is there in bo= th > x1 and x2 equations and hence would make w1 and w2 correlated and hence t= he > covariance matrix would have off-diagonal elements. The filter is to > estimate x1 and x2. My question is how to specify G and q of bayes++. I > know from the examples that G is a 2x2 matrix and q is a 2x1 vector. But I > am lost because the code calls q as covariance. I would appreciate any > light you can throw on modeling this in bayes++. Actually that comment is incorrect because the covariance is a matrix indee= d. I think the following answer, that I got from Michael a few weeks ago, may= =20 help to understand how to use 'q' and 'G': =2E.. G and q together represent the process (predict) noise. q is the noise=20 variance (a vector) and G is the noise coupling. In this case the process model is=20 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0x(k+1) =3D f(x(k)) + G.q(k) where q(k) in Gaussian white noise with variance q This leads to a Kalman filter covariance update for the linear case =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0X(k+1) =3D F.X(k).F' + G.q.= G' This is equivalent to =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0X(k+1) =3D F.X(k).F' + Q where Q =3D G.q.G' The are a couple of reasons for expressing the process noise in this way. a) For factorised filters (such as the UD_scheme) it is in the perfect form b) The same noise is often additive to more then one element of the state. = In=20 this case the size of q is less then x and G provides a physically easily=20 interpreted of how the elements of q effect x. =2E.. However, instead of including the control noise in w(k), I'd rather extend = the=20 state vector trying to estimate such a noise. For example, a simple system= =20 like this: x(k+1) =3D x(k) + u(k) + n(k) + w(k) y(k+1) =3D x(k) + v(k) where n(k) is the noise of the control u(k), could be extended as follows: x1(k+1) =3D x1(k) + x2(k) + u(k) + w(k) x2(k+1) =3D n(k) y(k+1) =3D x1(k) + v(k) I'm posting this on the bayes++ mailing list, so maybe someone with more=20 experience than me can give you some suggestion. Cheers, Nicola > Thanks for your help. > Baskar > Your question on ML: > ------------------------------- > "I'm using a "Linear_predict_model" (but this is related also to other > models...) for implementing an EKF and there's something I cannot > understand. > In the "bayesFlt.hpp" is reported that the vector "q" is the covariance of > the state noise w(k)... but isn't such a covariance a symmetric matrix > (normally called "Q")? So, if I wanna represent my covariance Q, how shou= ld > I > do?" =2D-=20 =2D----------------------------------------- Nicola Bellotto University of Essex Department of Computer Science Wivenhoe Park Colchester CO4 3SQ United Kingdom Room: 1N1.2.8 Tel. +44 (0)1206 874094 E-Mail: nb...@es... URL: http://privatewww.essex.ac.uk/~nbello =2D----------------------------------------- |