状态:kalman滤波器预测和跟新的值,一般也是我们需要关注的系统数据。例如,飞机的位置和速度
下面是使用kalmanfilter需要设置的参数(矩阵)。
dim_x(状态向量的长度);dim_z(测量数据向量的长度)。
F(状态外插矩阵)
shape:[dim_x, dim_x]。
kalmanfilter
的一大核心思想是通过此时刻【状态】预测下一时刻的【状态】这个矩阵把当前状态和下一时刻状态关联起来。预测时候这个矩阵会和【状态】做矩阵叉乘运算:
[ x 1 ˙ x 2 ˙ x 3 ˙ ] \begin{bmatrix}\dot{x_1} \\ \dot{x_2} \\ \dot{x_3}\end{bmatrix} x1˙x2˙x3˙ = [ f 11 f 12 f 13 f 21 f 22 f 23 f 31 f 32 f 33 ] \begin{bmatrix} f_{11} & f_{12} & f_{13} \\ f_{21} & f_{22} & f_{23} \\ f_{31} & f_{32} & f_{33} \end{bmatrix} f11f21f31f12f22f32f13f23f33 [ x 1 x 2 x 3 ] \begin{bmatrix} x_{1} \\ x_{2} \\ x_{3} \end{bmatrix} x1x2x3
根据叉乘法则:
x 1 ˙ = f 11 x 1 + f 12 x 2 + f 13 x 3 \dot{x_1}=f_{11}x_1+f_{12}x_2+f_{13}x_3 x1˙=f11x1+f12x2+f13x3
x 2 ˙ = f 21 x 1 + f 22 x 2 + f 23 x 3 \dot{x_2}=f_{21}x_1+f_{22}x_2+f_{23}x_3 x2˙=f21x1+f22x2+f23x3
x 3 ˙ = f 31 x 1 + f 32 x 2 + f 33 x 3 \dot{x_3}=f_{31}x_1+f_{32}x_2+f_{33}x_3 x3˙=f31x1+f32x2+f33x3
看到了吗,上边就是kalmanfilter
的 【状态外插方程】,用矩阵运算代替方程的好处是我们不用修改代码,通过设置矩阵元素就可以修改这个组方程,没有关联的项设置为0就可以了。