美文网首页
卡尔曼滤波器在车辆跟踪预测的应用(上)

卡尔曼滤波器在车辆跟踪预测的应用(上)

作者: miahuang | 来源:发表于2018-11-19 16:53 被阅读0次

    状态预测

    卡尔曼滤波首先考虑的问题是目标状态,这也叫系统状态。以小车在高速公路上行驶为例,小车的状态可以用位置和速度来表示。用数学符号表示即x_{t} =\left[ \begin{matrix}   p_{t}\\   v_{t}\\     \end{matrix}  \right] ,其中p_{t}表示位置,v_{t}表示速度。

    小车在行驶,既可以做匀速直线运动,也可以做加速运动。假定u表示小车的加速度,那么小车进行匀速运动时,u=0t时刻,小车的位移和速度可以分别表示为:

    p_{t}= p_{t-1}+v_{t-1}\times \Delta t+\frac{\Delta t^2}{2 } \times u_{t}

    v_{t}= v_{t-1}+\Delta t\times u_{t}

    因为当前时刻的位置和速度分别是上一时刻的线性组合,因此可以用矩阵的形式来描述上述两个公式, 即:\left[ \begin{matrix} p_{t}\\ v_{t}\\ \end{matrix} \right] =\left[ \begin{matrix} 1&\Delta t\\ 0&1\\ \end{matrix} \right] \left[ \begin{matrix} p_{t-1}\\ v_{t-1}\\ \end{matrix} \right] +\left[ \begin{matrix} \frac{\Delta t^2 }{2} \\ \Delta t\\ \end{matrix} \right] u_{t}

    F_{t} =\left[ \begin{matrix} 1&\Delta t\\ 0&1\\ \end{matrix} \right] ,B_{t} =\left[ \begin{matrix} \frac{\Delta t^2 }{2} \\ \Delta t\\ \end{matrix} \right],那么上面公式就转换为:

    \hat x_{t}^-= F_{t}\hat x_{t}^-+B_{t}u_{t}

    划重点,此公式也就是卡尔曼滤波器的第一个公式,叫状态预测公式。F_{t} 就是系统状态转移矩阵,表示上一个时刻状态怎么变换到下一个时刻的状态,B_{t}是控制矩阵,表示控制量u是怎么作用于当前状态。\hat x_{t}^- 就是我们的预测值。细心的可以发现,这里的x带有帽子,没有写错,这说明了这里的x是系统状态的估计值,这个值是通过上一个时刻的状态(卡尔曼滤波修正后的状态值)计算估计出来的。既然x是估计值,那么就存在噪声,我们用协方差矩阵表示当前估计值和真实值相比,带来多大的不确定性,那么就有卡尔曼滤波的第二个公式,也就是不确定性在各个时刻的传递公式:

    P_{t}^- =FP_{t-1}F^{T} +Q

    P表示协方差矩阵,F是状态转移矩阵,考虑在估计下一时刻的状态x,本身存在的噪声,这个噪声用Q来表示。这样下一时刻的协方差矩阵P的估计值,就得到了。综上,卡尔曼滤波器的状态预测两个公式就说明清楚了。

    观测矩阵

      小车在行驶,那么这个观察矩阵是什么东西。这个跟实际的需求有关,可以是位置,可以是速度,也可以是速度和位置等。在这个例子中以小车的位置为观察量,用数学符号z_{t}表示。因为预测值x_{t}和观测值z_{t}之间是线性关系(卡尔曼滤波器处理线性问题),那么转换关系就可以用矩阵H表示,H叫观测矩阵。需要考虑的是估计值x_{t} 和观测值z_{t}的维度不总是相同,那么观测矩阵H是根据实际情况构造的。

      小车行驶例子,估计值x_{t}.shape = (2,1)z_{t}.shape=(1,1),那么H.shape =(1,2),H=\left[ \begin{matrix}  1&0 \end{matrix}  \right] ,据此,得到卡尔曼滤波的第三公式:

    z_{t}=Hx_{t}+v

    v表示测量噪声,因为测量值不是100%准确,即实际的测量值跟你测出来的测量值还是存在误差,那么用R表示这个误差,专业术语就是观测噪声的协方差矩阵。小车例子观测值z_{t}是一个标量,那么R就只代表方差了。

    状态更新

      有了小车状态的估计值和测量值,就可以用卡尔曼滤波器来修正测量值了。

           \hat x_{t}=\hat x_{t}^-+K_{t}(z_t-H\hat x_{t}^-)

         K_t =P_t^{-}H^T{(HP_t^{-}H^{T}+R)}^{-1}

         其中(z_t-H\hat x_{t}^-)是测量值和估计值之间的残差,K_{t}是卡尔曼系数,用来衡量预测状态协方差P和观测状态协方差R的大小进而相信预测模型多一点还是观察模型多一点。相信预测模型多一点,则残差的权重小一点,反之,残差的权重大一点。

    噪声协方差矩阵更新:

     卡尔曼滤波器的最后一个公式就是对最佳估计值的噪声分布的更新了:

     P_{t}= (1-K_{t}H)P_{t}^-

    以上,卡尔曼滤波器的所有的公式和参数就解释完啦,下集将会给出自己的实战例子。

    相关文章

      网友评论

          本文标题:卡尔曼滤波器在车辆跟踪预测的应用(上)

          本文链接:https://www.haomeiwen.com/subject/uhmjfqtx.html