1 历史与发展

1.1 早期估计理论基础

卡尔曼滤波的思想来源于更早期的最优估计与随机过程研究。在线性代数、概率论和控制理论逐步成熟后,研究者开始尝试用数学方法处理带噪数据的状态估计问题。最小二乘法、平滑理论以及随机信号处理中的相关成果,为后来的递推估计框架奠定了基础。

1.2 卡尔曼滤波的提出

20世纪60年代,鲁道夫·卡尔曼提出了一种适用于线性离散系统的递推估计方法。该方法将系统的动力学模型与观测数据结合起来,在每一步只依赖当前估计和新到达测量值进行更新,避免了对全部历史数据的重复计算。由于其形式简洁、计算高效,这一方法很快受到工程界重视。

1.3 发展与应用扩展

随着计算机性能提升和工程系统复杂化,卡尔曼滤波逐渐从理论方法发展为通用工具,并在多个领域形成成熟应用。其核心思想也不断被改造,以适应非线性、多源信息融合和大规模系统估计等需求。

1.3.1 航天与导航应用

在航天器轨道估计、姿态确定和惯性导航中,卡尔曼滤波常用于融合传感器数据并修正累积误差。它能够在测量间隔不连续或信号存在漂移时保持较好的估计性能,因此成为导航系统中的重要组成部分。

1.3.2 机器人与自动控制应用

在机器人定位、机械臂控制和工业过程调节中,卡尔曼滤波常用于估计速度、位置、角度等难以直接准确测得的状态量。它帮助控制系统在扰动和噪声存在时保持较稳定的反馈性能。

1.3.3 信号处理中的推广

在信号恢复、目标跟踪和时间序列分析中,卡尔曼滤波可用于抑制噪声、提取趋势并预测后续变化。由于其递推特性,它特别适合在线处理场景,例如实时监测与动态跟踪。

1.4 主要变体的出现

为适应非线性系统分布式计算和高维状态估计等问题,研究者陆续提出了多种改进版本。这些变体在保留递推框架的同时,对状态传播方式或信息表达形式进行了调整

1.4.1 扩展卡尔曼滤波

扩展卡尔曼滤波通过对非线性方程进行局部线性化来延续经典卡尔曼滤波的结构。它是最早也是最常见的非线性推广形式之一,常用于模型非线性程度不太强的场景。

1.4.2 无迹卡尔曼滤波

无迹卡尔曼滤波不依赖显式线性化,而是通过选取一组代表性采样点传播非线性变换后的统计量。该方法通常在精度数值稳定性方面表现较好,尤其适合中等规模的非线性系统。

1.4.3 集合卡尔曼滤波

集合卡尔曼滤波使用一组随机样本近似状态分布,常见于气象、海洋和其他高维系统中。它在保持较低计算负担的同时,能够处理规模较大的状态向量,因此受到大系统模拟领域的关注。

2 基本原理

2.1 状态空间模型

卡尔曼滤波通常建立在状态空间表示之上,即用内部状态描述系统演化,用观测方程描述测量过程。这种表示方式能够统一刻画“系统如何变化”与“我们如何看到系统”两个层面。

2.1.1 状态方程

状态方程用于描述系统在时间推进中的变化规律,通常写成当前状态由上一时刻状态、控制输入和随机扰动共同决定。它体现了系统的动力学信息,是预测步骤的依据。

2.1.2 观测方程

观测方程用于表示可测量量与真实状态之间的关系。由于传感器精度有限,实际观测往往只是状态的间接反映,并叠加了测量误差

2.2 预测与更新机制

卡尔曼滤波的核心是“先预测,再修正”的两步循环。系统先根据模型给出当前状态的预估,再利用新观测对该预估进行校正,从而逐步逼近真实状态。

2.2.1 先验估计

先验估计是指在尚未引入当前测量值之前,对状态作出的预测结果。它主要来自上一时刻的后验估计和系统模型,反映的是“尚未校正”的判断

2.2.2 后验估计

后验估计是在结合当前观测后得到的最终状态估计。相比先验估计,它通常更接近真实值,也会作为下一时刻预测的基础。

2.3 最优性与误差最小化

经典卡尔曼滤波在特定假设下可证明具有最优性,即在所有线性无偏估计中使误差最小。其设计目标并非简单追踪测量值,而是以统计意义上的最小误差为准则。

2.3.1 均方误差准则

均方误差是衡量估计质量的常用指标,关注估计值与真实值偏差的平方平均。卡尔曼滤波通过最小化这一指标来确定增益权重,使预测与观测之间达到较优平衡。

2.3.2 递推最优估计

递推最优估计意味着每次更新都在前一步最优结果基础上继续优化,而不必重新处理全部历史数据。这一特性使算法适合连续运行和在线计算。

2.4 噪声与不确定性建模

卡尔曼滤波并不假设观测是完全准确的,而是将不确定性显式写入模型。通过描述噪声的统计性质,可以更合理地分配模型预测与测量信息的权重。

2.4.1 过程噪声

过程噪声反映系统演化中未建模的扰动、外部干扰或参数波动。它通常进入状态方程,影响预测结果的可信度

2.4.2 观测噪声

观测噪声来自传感器精度限制、环境干扰或采样误差。它进入观测方程,决定测量值对最终估计的修正力度。

3 数学模型

3.1 线性系统假设

经典卡尔曼滤波建立在线性系统框架中,系统状态和观测都可表示为线性关系。这一假设简化了推导,也使算法能够得到封闭形式解。

3.1.1 系统可观性

可观性描述的是:仅通过输出观测能否推断出系统内部状态。若系统不可观,则某些状态无法被准确恢复,滤波效果会受到明显限制。

3.1.2 系统可控性

可控性关注系统状态能否通过输入在有限时间内到达目标区域。虽然卡尔曼滤波主要处理估计问题,但可控性与系统建模质量密切相关,也会影响状态演化的可辨识程度。

3.2 高斯分布假设

在经典理论中,初始状态与噪声常被假设服从高斯分布。该假设使得均值和协方差足以描述不确定性,也便于推导最优递推公式。

3.2.1 初始状态分布

初始状态分布表示滤波开始时对系统状态的先验认知。若初始设定过于偏离实际,前期估计可能出现较大误差,但通常会随着迭代逐步收敛。

3.2.2 噪声统计特性

噪声统计特性主要包括均值、方差和协方差结构。通常假定噪声均值为零、相互独立且具有已知方差,这样可以更清晰地分析其对估计结果的影响。

3.3 协方差矩阵

协方差矩阵用于描述估计误差在各状态分量之间的分布与相关性。它不仅反映不确定性的大小,也揭示不同状态之间误差是否相互关联。

3.3.1 误差传播

误差传播是指系统状态在模型推进下,估计不确定性如何随时间扩散或收缩。若过程噪声较强,误差通常会增大;若测量信息充分,则误差可被压缩。

3.3.2 协方差更新

协方差更新描述的是在引入新观测后,估计不确定性如何被重新计算。新的测量越可靠,更新后的协方差通常越小,表示估计更有把握。

4 算法流程

4.1 初始化

滤波开始前,需要给出初始状态和初始不确定性的设定。初始化质量会影响前若干步的估计精度,但并不一定决定长期表现。

4.1.1 初始状态估计

初始状态估计是对系统起点的首次判断,通常来自经验值、历史数据或粗略测量。它不必完全精确,但应尽量接近实际。

4.1.2 初始协方差设定

初始协方差用于表示对初始估计的置信程度。若设得过小,算法可能过分相信初值;若设得过大,则前期更新会更依赖观测。

4.2 预测步骤

预测步骤依据系统模型向前推算当前状态和误差范围。它是卡尔曼滤波中“模型驱动”的部分。

4.2.1 状态外推

状态外推是利用上一时刻的估计和系统方程推导当前时刻的先验状态。该过程不依赖新的测量信息,体现系统自身的动态趋势。

4.2.2 协方差外推

协方差外推用于预测下一时刻的不确定性变化。它综合考虑系统动力学和过程噪声,对后续更新的权重分配起关键作用。

4.3 校正步骤

校正步骤将新观测纳入估计过程,对先验结果进行修订。它是卡尔曼滤波中“数据驱动”的部分。

4.3.1 卡尔曼增益计算

卡尔曼增益决定应在多大程度上相信观测值而非预测值。增益越大,修正越依赖测量;增益越小,则更偏向模型预测。

4.3.2 状态修正

状态修正是用观测残差对先验状态进行调整,使最终估计更贴近实际系统。残差越明显,修正幅度通常越大。

4.3.3 协方差修正

协方差修正反映了引入新信息后不确定性的减少程度。经过校正,估计误差一般会比预测阶段更小。

4.4 递推循环

卡尔曼滤波的实质是一个连续的循环过程:预测、观测、修正、再预测。随着时间推进,估计值在循环中不断更新。

4.4.1 多时刻迭代

在多时刻迭代中,当前结果会作为下一时刻输入,形成闭环式计算。这样既节省存储,又便于处理长时间序列。

4.4.2 实时实现

由于每一步计算量相对可控,卡尔曼滤波非常适合实时系统。它可以在传感器数据到达后立即更新状态,不必等待批量处理完成。

5 主要变体

5.1 扩展卡尔曼滤波

扩展卡尔曼滤波是处理非线性系统最经典的改进形式之一。它通过局部近似保留了卡尔曼滤波的递推结构。

5.1.1 非线性系统线性化

该方法通常在当前估计点附近对非线性函数进行泰勒展开,并使用雅可比矩阵近似系统行为。线性化误差会影响精度,尤其在强非线性情况下更为明显。

5.1.2 应用场景

扩展卡尔曼滤波常见于姿态估计、定位跟踪和带非线性传感器模型的系统中。只要非线性程度适中,它仍是一种实用方案。

5.2 无迹卡尔曼滤波

无迹卡尔曼滤波通过传播有限个采样点来近似状态分布经过非线性变换后的结果。它避免了直接线性化带来的部分误差。

5.2.1 Sigma点传播

Sigma点传播方法先构造一组能代表均值和协方差的样本点,再将这些点通过非线性函数映射,最后重建统计量。该策略通常比简单线性化更能保留高阶信息。

5.2.2 精度与稳定性

在许多非线性问题中,无迹卡尔曼滤波往往比扩展卡尔曼滤波更稳定,且调参直观。不过,其性能仍取决于模型质量和噪声设定。

5.3 信息滤波

信息滤波是卡尔曼滤波的等价变形之一,将协方差的逆作为主要表示形式。它在某些网络化和分布式场景中更便于处理。

5.3.1 信息矩阵表示

信息矩阵通常是协方差矩阵的逆,信息向量则对应状态估计的另一种表达。采用这种形式后,多个观测的合并往往更自然。

5.3.2 分布式估计

在多节点系统中,各节点可分别维护局部信息并进行融合。信息滤波因此常用于传感器网络和协同定位等任务。

5.4 集合卡尔曼滤波

集合卡尔曼滤波以样本集合近似状态分布,适合难以直接保存完整协方差的大规模问题。它兼顾了统计表达能力与计算可行性。

5.4.1 大规模系统应用

在天气预报、地球系统模拟和高维动力学模型中,集合方法能够降低矩阵运算压力。对于状态维数很高的任务,它具有较强实用性。

5.4.2 采样近似方法

该方法依靠有限样本估计均值和协方差,因此会受到样本数量和随机抽样质量的影响。样本过少时,近似精度和稳定性都可能下降。

6 应用领域

6.1 自动控制

在自动控制中,卡尔曼滤波常用于获取系统内部状态,为反馈控制提供可靠依据。它使控制器能够基于更完整的信息做出决策。

6.1.1 过程控制

在化工、制造和能源系统中,滤波器可用于估计难以直接测量的温度、压力或流量状态。这样有助于提高过程调节的平稳性。

6.1.2 状态观测器设计

卡尔曼滤波也常被视为一种优良的状态观测器设计方法。它在理论上给出统计最优的估计框架,因此广泛用于控制系统建模。

6.2 导航与定位

导航与定位系统通常面临传感器噪声、漂移和间歇观测等问题,卡尔曼滤波能够有效融合多源信息。它在位置、速度和姿态估计中应用广泛。

6.2.1 惯性导航系统

惯性导航依赖加速度计和陀螺仪,但这类器件容易产生累积误差。卡尔曼滤波常用于周期性修正这些漂移。

6.2.2 多传感器融合

多传感器融合将不同来源的数据综合起来,如惯性、视觉、里程计和卫星观测。卡尔曼滤波提供了统一的融合框架,便于提高定位精度。

6.3 机器人学

机器人系统需要实时估计自身状态和环境变化,卡尔曼滤波在此类任务中非常常见。它既可用于运动控制,也可用于环境建模。

6.3.1 运动估计

在移动机器人中,滤波器可估计速度、航向和位置变化,帮助机器人实现稳定运动。对于轮式平台和空中平台,这一功能都很关键。

6.3.2 SLAM相关应用

在同步定位与地图构建中,卡尔曼滤波曾长期是重要工具之一。它可用于维护位姿与地图特征的联合估计,不过在复杂环境中常与其他方法配合使用。

6.4 信号处理

在信号处理领域,卡尔曼滤波常被用于从噪声背景中恢复有用信息。它适合处理具有时间连续性的动态信号。

6.4.1 去噪与跟踪

通过对信号状态进行连续估计,滤波器可以削弱随机扰动并跟踪缓慢变化的目标。它在目标轨迹跟踪和平滑处理中特别常见。

6.4.2 时间序列估计

对于具有趋势和动态规律的时间序列,卡尔曼滤波可以进行在线估计与预测。它常被用于金融、经济和工业监测中的序列分析。

6.5 工程测量与故障诊断

在测量系统和设备维护中,卡尔曼滤波可辅助识别参数变化与异常状态。其价值在于将噪声与真实变化尽量区分开来。

6.5.1 参数辨识

在系统辨识中,滤波器能够帮助估计未知参数及其演化趋势。若模型结构合理,它可提高参数估计的实时性。

6.5.2 异常检测

当观测残差持续偏离正常范围时,可能提示设备出现异常。卡尔曼滤波因此也常作为故障诊断的前置分析工具。

7 性能分析

7.1 收敛性

卡尔曼滤波在合适条件下通常能够逐渐收敛到稳定估计。收敛速度与模型精度、噪声水平和初始设定有关。

7.1.1 稳定条件

稳定性通常依赖系统可观性、可控性以及噪声统计设定是否合理。若模型结构良好,滤波误差往往会随时间减小并趋于平稳。

7.1.2 误差界分析

误差界分析关注估计偏差和协方差是否保持在可接受范围内。它有助于评估滤波器在长期运行中的可靠程度。

7.2 鲁棒性

鲁棒性指滤波器在模型不完全准确或噪声条件变化时仍能保持基本性能的能力。现实系统中,这一指标十分重要。

7.2.1 模型失配影响

若实际系统与建模假设存在偏差,滤波结果可能出现系统性误差。严重失配时,估计偏差会积累并影响后续更新。

7.2.2 噪声偏差影响

当噪声均值、方差或相关结构估计不准时,卡尔曼增益的计算就会偏离理想状态。结果可能表现为过度平滑或过度追踪观测。

7.3 计算复杂度

卡尔曼滤波的计算量主要来自矩阵乘法、求逆和协方差更新。对于低维系统,这一开销通常较小,但在高维场景中会显著增加。

7.3.1 矩阵运算开销

随着状态维数上升,矩阵运算的成本会快速增长,尤其是求逆和分解操作。算法实现时往往需要利用矩阵结构降低负担。

7.3.2 实时计算要求

在飞行控制、机器人导航和在线监测等场景中,估计必须在有限时间内完成。卡尔曼滤波的递推形式正是为了满足这种实时性要求。

8 局限与挑战

8.1 线性与高斯假设限制

经典卡尔曼滤波对线性和高斯条件依赖较强,而现实系统常常偏离这些理想假设。若分布明显非高斯或关系高度非线性,其效果会受到限制。

8.2 非线性问题处理难点

尽管已有多种改进版本,但非线性问题仍然难以完全解决。线性化误差、局部极值和数值不稳定都可能影响估计质量。

8.3 参数选取敏感性

过程噪声与观测噪声协方差的设定会显著影响滤波表现。参数过大或过小都可能导致估计偏差、响应迟缓或振荡。

8.4 高维系统中的实现问题

在高维状态下,存储和计算成本会迅速上升,协方差矩阵维护也更困难。为此,实际应用中常需采用稀疏化、降维或集合近似等策略。

9 相关概念

9.1 贝叶斯估计

贝叶斯估计是一类基于先验信息和观测数据进行推断的方法。卡尔曼滤波可看作其在线递推实现之一。

9.2 最小二乘法

最小二乘法通过最小化误差平方和来求取参数或状态估计。卡尔曼滤波与其在目标函数和统计解释上具有密切联系。

9.3 观测器理论

观测器理论研究如何从可测输出重建系统内部状态。卡尔曼滤波是观测器理论中最具代表性的随机估计方法之一。

9.4 递推滤波方法

递推滤波方法指随着新数据到来逐步更新估计的算法族。卡尔曼滤波是其中最经典的形式,并对后续方法影响深远。

9.4.1 维纳滤波

维纳滤波主要用于平稳随机过程中的最优线性滤波问题。它与卡尔曼滤波在理论上存在关联,但更偏向批处理和频域分析。

9.4.2 粒子滤波

粒子滤波使用大量随机样本近似复杂概率分布,适合强非线性和非高斯问题。与卡尔曼滤波相比,它更灵活,但计算量通常更高。