文章目录
卡尔曼滤波器:递归算法
一、概述
卡尔曼滤波器名称中的滤波并不能很好的说明算法特性,更容易理解的说法是——最优化递归数字处理算法(Optimal Recursive Data Processing Algorithm)。
卡尔曼滤波器应用广泛,因为我们在描述系统时通常存在不确定性,不确定性主要存在三个方面:
1. 不存在完美的数学模型;
2. 系统的扰动不可控,也很能建模;
3. 测量传感器存在误差。
二、公式推导
例:
测量一枚硬币的直径,假设第一次测量结果为 z 1 = 100.1 z_1 = 100.1 z1=100.1mm,第二次测量结果为 z 2 = 100.3 z_2 = 100.3 z2=100.3mm,第三次测量结果为 z 3 = 99.5 z_3 = 99.5 z3=99.5mm。通常来说,我们会取 x ^ = 1 3 ( z 1 + z 2 + z 3 ) = 99.97 \hat{x} = \frac{1}{3}(z_1+z_2+z_3)=99.97 x^=31(z1+z2+z3)=99.97mm作为计算结果。
在上述示例中,我们把所有测量值取平均值作为估计真实数据,当测量次数为 k k k 时,可得:
x ^ k = 1 k ( z 1 + z 2 + z 3 + ⋯ + z k ) = 1 k ( z 1 + z 2 + z 3 + ⋯ + z k − 1 ) + 1 k z k = 1 k k − 1 k − 1 ( z 1 + z 2 + z 3 + ⋯ + z k − 1 ) + 1 k z k (1) \hat{x}_k=\frac{1}{k}(z_1+z_2+z_3+\dots+z_k) \\ \ \\ \qquad \qquad \quad = \frac{1}{k}(z_1+z_2+z_3+\dots+z_{k-1})+\frac{1}{k}z_k \\ \ \\ \qquad \qquad \qquad \quad \ = \frac{1}{k}\frac{k-1}{k-1}(z_1+z_2+z_3+\dots +z_{k-1})+\frac{1}{k}z_k \tag{1} x^k=k1(z1+z2+z3+⋯+zk) =k1(z1+z2+z3+⋯+zk−1)+k1zk =k1k−1k