什么是 平方根卡尔曼滤波(Square-Root Kalman Filter)?
平方根卡尔曼滤波(Square-Root Kalman Filter)是一类直接传播状态不确定性矩阵因子、而非反复更新完整协方差矩阵的卡尔曼滤波实现。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
传播因子而不是完整协方差
协方差平方根滤波的预测步骤需要构造一个因子,使其乘积等于 F P F^T + Q。工程实现通常把 F S 与过程噪声因子组合,再执行 QR、Cholesky Update 或其他正交变换。只对 S 左乘 F 后直接加 Q,并不是有效的平方根预测。
Choe 与 Tapley 的三角平方根方法说明了离散观测下如何传播状态误差协方差根。因子方向属于算法契约:上三角因子的公式不能在不处理转置与符号的情况下套到下三角因子上。
避免近似相等矩阵相减
常规协方差更新若包含相减操作,舍入误差可能破坏对称性或半正定性。平方根量测更新通常对先验因子与量测噪声因子组成的矩阵做正交变换,再保留后验不确定性的三角因子或谱因子。
因子仍必须表达相同的状态模型、过程噪声、量测噪声与交叉协方差。平方根运算无法修复错误的 Q、R、状态转移、时间戳或观测 Jacobian,也不会把非线性近似变成精确推断。
验证统计等价性与数值行为
Kulikova 与 Kulikov 的 SVD 因子化研究展示了 Cholesky 与 SVD 平方根在保留因子化不确定性时具有不同实现性质。生产实现应记录因子定义、正交变换、秩处理策略,以及协方差接近奇异时的行为。
先在良态问题上与可信协方差形式比较,再用病态和长时序案例检查协方差重构误差、最小特征值、创新统计与因子对角线。只比较状态均值不够;若不确定性报告不一致,均值相同也不能证明实现正确。
主要特点
- 传播协方差或信息矩阵因子,而不是直接更新完整协方差
- 根据具体形式使用 QR、Cholesky、SVD 或 U-D 运算
- 降低舍入误差与协方差相减消去带来的敏感性
- 保留对应卡尔曼滤波的统计模型与精确算术结果
- 要求明确因子方向、符号、秩与噪声平方根约定
- 实现更复杂,且不能纠正模型失配
常见用途
- 不确定性尺度跨度很大的长时间导航滤波
- 浮点精度受限的嵌入式状态估计
- 轨道确定与航天状态估计
- 需要反复分解协方差的非线性高斯滤波
- 病态模型下的协方差有效性回归测试
示例
Loading code...常见问题
平方根卡尔曼滤波会估计不同的后验吗?
在精确算术下,正确实现的平方根滤波与对应协方差形式表示同一个线性高斯后验。它改变的是维护不确定性的数值路径,不会引入新的概率模型,也不保证状态精度必然提高。
平方根因子具体表示什么?
协方差平方根形式保存满足 `P = S S^T` 的因子 `S`;平方根信息滤波则因子化精度矩阵或相关最小二乘数组。两类因子不能互换,文档必须明确采用的定义。
为什么使用 QR,而不是每步重建协方差?
正交变换可以组合状态传播与噪声因子,避免显式形成协方差和相减。每步重建 `P`、常规更新再分解会失去部分数值优势,但可作为参考实现检查统计等价性。
平方根卡尔曼滤波一定更准确吗?
不一定。它通常在有限精度或病态问题上更可靠,但良态问题可能得到几乎相同结果,却付出更高实现成本。模型误差、非线性近似和错误噪声假设仍可能占主导。
如何验证 SRKF 实现?
应与可信协方差滤波比较状态和重构协方差,核对三角方向与符号约定,并压力测试近奇异和不同尺度案例,同时监控分解失败、创新一致性、协方差特征值及不同数值精度下的复现性。