【问题标题】:EKF - How to detect if filter is converged?EKF - 如何检测过滤器是否收敛?
【发布时间】:2013-10-21 15:28:59
【问题描述】:

我实现了一个 EKF。该算法运行良好,但我需要一个标准来检测初始化后滤波器何时收敛。最好/最常见的方法是什么。我有两个想法:

1.) 当创新达到预定限制时。 2.) 当估计的方差达到预先定义的限制时。

有什么建议吗?

【问题讨论】:

    标签: kalman-filter


    【解决方案1】:

    在处理卡尔曼滤波器(尤其是 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

    【讨论】:

    • 特别是,如果F、H、Q和R是常数,那么P每次都会收敛到相同的值(不管初始P如何,虽然路径会不同)。这是因为 P 完全不依赖于数据。
    【解决方案2】:

    我通常查看估计方差的导数。如果它不再变化,则过滤器已经收敛。 这通常效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2019-09-24
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多