【发布时间】:2013-10-21 15:28:59
【问题描述】:
我实现了一个 EKF。该算法运行良好,但我需要一个标准来检测初始化后滤波器何时收敛。最好/最常见的方法是什么。我有两个想法:
1.) 当创新达到预定限制时。 2.) 当估计的方差达到预先定义的限制时。
有什么建议吗?
【问题讨论】:
标签: kalman-filter
我实现了一个 EKF。该算法运行良好,但我需要一个标准来检测初始化后滤波器何时收敛。最好/最常见的方法是什么。我有两个想法:
1.) 当创新达到预定限制时。 2.) 当估计的方差达到预先定义的限制时。
有什么建议吗?
【问题讨论】:
标签: kalman-filter
在处理卡尔曼滤波器(尤其是 EKF)时最常见的错误是认为 P 矩阵的收敛等同于估计的实际收敛。
您需要查看标准化的创新。
创新是预期(预测测量)与实际测量之间的差异:
Innov = y - h(x_predicted)
归一化创新是创新的马氏距离,它与 P 矩阵较小时的收敛性相关:
d^2 = Innov.transpose * Cov(Innov).inverse * Innov
在哪里Cov(Innov) = Cov(y - h(x_predicted)) = R + H * P_predicted * H.Transpose
【讨论】:
我通常查看估计方差的导数。如果它不再变化,则过滤器已经收敛。 这通常效果很好。
【讨论】: