扩展卡尔曼滤波器 - 为什么不使用二阶泰勒展开?

信息处理 过滤器
2022-02-22 05:54:29

我正在实现我的第一个 EKF 并使用泰勒展开来线性化模型。我对此有些陌生。根据我读过的一篇论文,我正在尝试使用泰勒展开来线性化状态转换矩阵。

AFAIU,给定一个状态向量X和状态转移矩阵F,我们可以用以下方式写一个线性化状态转移矩阵Φ(可能不是名字):

F=X˙X
Φ=I+FΔt+F2Δt22!+H.O.T

这样状态和协方差估计为:

X^k=ΦX^k1

P^k=ΦP^k1ΦT+Q

使用二阶展开而不是一阶展开,我发现我得到了更准确的解决方案。它还允许我使用更大的时间步长(分钟而不是秒)。我担心这样做,我实际上并没有线性化,因为二阶 TSE 对应于二次近似。

假设以上步骤都正确,那么取二阶TSE有什么问题吗?

1个回答

采用比一阶更高阶的近似值并没有错。

这样做的一个问题是你不再有高斯统计,所以一些标准的卡尔曼滤波器方程(使用高斯派生)不再严格成立。

在标准 EKF 中处理(否则忽略)高阶项的常用方法是增加模型告诉您的过程噪声或测量噪声方差。这就像在说,

我知道噪声功率是多少,但我会说泰勒级数展开中的二阶和高阶项添加到它,所以我将增加我在滤波器中使用的噪声方差来满足它。