문제

I implemented an EKF. The algorithm works very well but I need a criterion to detected when the filter is converged after initialisation. What is the best / most common way to do this. I have two ideas:

1.) When innovation has reached a pre defined limit. 2.) When estimated variance has reached a pre defined limit.

Any suggestions ?

도움이 되었습니까?

해결책

The most common error when dealing with Kalman filters (and especially EKF) is to think that the convergence of the P matrix is equivalent to real convergence of the estimation.

You need to look at the normalized innovations.

The innovation is the difference between the expected (predicted measurement) to the actual one: Innov = y - h(x_predicted)

The normalized innovation is the Mahalanobis distance of the innovation, which correlates with the convergence once the P matrix is small:

d^2 = Innov.transpose * Cov(Innov).inverse * Innov

Where Cov(Innov) = Cov(y - h(x_predicted)) = R + H * P_predicted * H.Transpose

다른 팁

I usually look at the derivative of the estimated variance. If it is not changing any more, the filter has converged. This usually works quite well.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top