什么是 容积卡尔曼滤波(Cubature Kalman Filter)?
容积卡尔曼滤波(Cubature Kalman Filter)是一种使用球面径向容积准则的等权确定性点,近似非线性变换矩的高斯状态估计器。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
构造球面径向容积点
先把协方差分解为 P = S S^T,再构造标准化点 +sqrt(n)e_i 与 -sqrt(n)e_i。通过 m + S xi_i 映射到状态空间后,得到 2n 个权重均为 1/(2n) 的状态点。其对称性可以精确重现输入均值与协方差,并对规定次数内的高斯加权多项式积分保持精确。
Arasaratnam 与 Haykin 的 CKF 论文从三阶球面径向容积准则推导该方法。这里的次数描述积分准则对某类多项式的精确性,不代表任意非线性后验在所有指标上都有三阶误差保证。
在模型两阶段传播统计矩
预测步骤让容积点通过状态转移函数,计算点集均值与中心协方差,再加入过程噪声。量测更新从预测高斯重新生成点,通过传感器模型后计算量测协方差与状态-量测交叉协方差,最后使用 Kalman-Style Gain 修正状态。
遇到非加性噪声、约束状态、角度或流形时,点集构造和残差运算必须符合模型几何。Cholesky 失败、舍入导致的负方差或无效状态点,应通过平方根或几何感知设计处理,而不是静默截断。
在相同契约下比较 CKF 与 UKF
PyTCL 高级滤波文档展示了 2n 等权准则,并将其与可配置的 Unscented Transform 点集对比。CKF 不需要 alpha、beta 与 kappa,但参数更少不等于在所有任务上更优。
应在相同动力学、观测、随机种子与噪声假设下比较状态误差、创新校准、分解失败、Runtime 与函数调用次数。维度增加时,容积点会离均值更远;强曲率、多峰、不连续或硬约束仍可能让高斯矩近似产生误导。
主要特点
- 标准形式使用三阶球面径向容积准则
- 每个状态维度使用两个等权确定性点
- 不需要解析状态转移与量测 Jacobian
- 重建高斯均值、协方差与交叉协方差
- 不包含 Scaled UKF 的 alpha、beta 与 kappa 参数
- 仍依赖协方差分解、模型几何与高斯近似有效性
常见用途
- 使用可微或黑盒模型的非线性目标跟踪
- 不维护 Jacobian 代码的导航与传感器融合
- 中等维度和平滑非线性动力学的状态估计
- 比较 EKF、UKF、CKF 与粒子滤波近似
- 使用平方根形式提高协方差可靠性的非线性滤波
示例
Loading code...常见问题
标准 CKF 使用多少个点?
常见三阶球面径向 CKF 对 `n` 维状态使用 `2n` 个点。它们位于正负缩放坐标方向,权重相等。更高阶容积准则会使用不同的点集与权重。
CKF 与 UKF 有什么区别?
两者都会传播确定性点。标准 CKF 从球面径向容积准则得到 `2n` 个等权点;Scaled UKF 通常使用 `2n+1` 个点,并通过 `alpha`、`beta` 与 `kappa` 配置位置和权重。
CKF 一定比 EKF 或 UKF 更准确吗?
不一定。精度取决于非线性、维度、状态几何、初值、噪声假设与数值实现。CKF 避免 Jacobian 和部分 UKF 缩放选择,但单个模型上的基准结果不能证明普遍优势。
CKF 能处理非高斯或多峰后验吗?
标准 CKF 不能完整表示这类后验。它传播点来近似统计矩,随后仍保留一个高斯摘要。当分离模态、偏度、截断或重尾会影响决策时,应考虑粒子滤波或混合模型。
CKF 实现需要监控什么?
应监控协方差分解、最小特征值、创新白噪声性与 NIS、真值数据上的状态误差、约束下的点有效性、函数调用成本,以及对初值和噪声协方差的敏感性。