我建立了(几个)离散扩展卡尔曼滤波器(EKF)。我正在构建的系统模型具有9个状态和10个观察值。我看到除一个州外,大多数州都在融合。除了1-2的EKF状态估计之外,所有其他函数似乎都在漂移。由于EKF依赖于所有收敛的状态,因此在偏离之后,其余状态是非常错误的。
如何检查EKF的可观察性?我是否只是简单地检查测量雅可比行列的等级,看看它是否小于测量雅可比行列的最大等级?
在我的模拟中添加更多的测量值之后,我可以使事情收敛。但是,关于可观察性的问题仍然存在!
问题:
地面真实性和EKF估计图可在此处找到或参见下文。
笔记:
- 该模型在时间步长400-600之间是非常非线性的,因此某些状态存在一定差异
- 图/状态6似乎有所不同
- 请忽略图8/9的“传感器读数”图
我尝试过的事情:
- 我知道对于线性状态空间系统,您可以使用Cayley Hamilton定理来检查可观察性。
- 我试图检查创新/测量残差
e
,所有创新都收敛为0 - 我也测试了不同的输入,它们似乎并没有影响发散状态的收敛。
- 我对EKF进行了调优,但没有任何收敛迹象
- 另一个输入信号的图形:或参见下文
- 与同事交谈后,他建议我调查另一个问题,该问题可能是线性依赖于两个状态的观测值,例如
y = x1 + x2
。可以满足相同条件的值有无数y
,但是可观察性难道也不能解决这个问题吗?
请让我知道我还有什么可以提供的。
地面真实情况和EKF估计图:
单击图像可查看大图
附加输入信号:
单击图像可查看大图
@ChrisMuller是的,我想将图像嵌入到问题中,但是我认为它不适用于多个图像(相册)。感谢标签更新。我检查了上面的链接,但不知道是否应该线性化它。
—
krisdestruction
我很确定没有。您可以通过制作gif来做到这一点,但这可能会让人头疼,具体取决于您最初生成绘图的方式。
—
克里斯·穆勒
@ChrisMueller全部来自Matlab,我只是在OS X中拍摄了图表的屏幕截图
—
。– krisdestruction
rank(O) = [H; HA...] = n
。唯一的问题是sin( x(3) )
状态3的正弦或正弦。我是否x(3)
将其线性化并视为A矩阵的一部分?我会在早上对此进行尝试并向您汇报。cwrucutter.wordpress.com/2012/11/12/...