卡尔曼最优预测以及最优滤波方程的相关推导--最优滤波篇

        上一篇帮大家回忆了相关数学基础,介绍了相关问题背景以及最优预测方程的推导,本篇将开启卡尔曼最优滤波方程的推导。同时,在本篇的最后会给出两个详细的实际应用的例子帮助大家理解应用卡尔曼最优滤波。

一、问题的提法

        对于线性离散系统,其状态空间描述为:

                                                  \left\{ \begin{array}{ll} X(k+1) = \Phi(k+1,k)X(k)+G(k+1,k)U(k) + \Gamma(k+1,k)W(k) \\ Z(k)=H(k)X(k)+V(k) \end{array} \right.

在最优滤波篇中,我们的基本假设跟前面的最优预测的部分相同。因此我们可以把问题描述为:在给出观测序列Z(0),Z(1),...,Z(k+1)的条件下,要求找出X(k+1)的线性最优估计\hat{X(k+1|k+1)},使得估计值\hat{X(k+1|k+1)}X(k+1)之间的误差:X(k+1|k+1)=X(k+1)-\hat{X(k+1|k+1)}的方差最小,同时要求估计值\hat{X(k+1|k+1)}是观测序列Z(0),Z(1),...,Z(k+1)的线性函数,且估计是无偏的,即E[\hat{X(k+1|k+1)}]=E[X(k+1)]

二、线性离散系统的卡尔曼最优滤波方程

        通常在推导卡尔曼最优滤波方程时,我们同样先忽略控制输入信号的作用,即认为输入为0,这样我们可以得到系统的状态空间描述为:

                                                 \left\{ \begin{array}{ll} X(k+1) = \Phi(k+1,k)X(k) + \Gamma(k+1,k)W(k) \\ Z(k)=H(k)X(k)+V(k) \end{array} \right.

在获取到观测序列Z(0),Z(1),...,Z(k)后,假定我们已经找到状态X(k)的最优滤波估计\hat{X(k|k)},同样在k+1时刻,在还未获取到观测值Z(k+1)的情况下,我们可以先得到一步最优估计\hat{X(k+1|k)},由于W(k)为零均值的白噪声序列,其最优估计为0,因此:

                                                                         \hat{X(k+1|k)} = \Phi(k+1,k)\hat{X(k|k)} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2.1)

同样V(k)也是零均值的白噪声序列,我们可以得到观测值Z(k+1)的预测值:

                                                                         \hat{Z(k+1|k)}=H(k+1)\hat{X(k+1|k)}

在我们获取到观测值Z(k+1)之后,跟在最优预测里面一样,我们来讨论一下观测值Z(k+1)以及其预测值\hat{Z(k+1|k)}之间的误差,以期用于修正对X(k+1)的预测值\hat{X(k+1|k)}从而得到\hat{X(k+1|k+1)}

                                                                  Z(k+1|k)=Z(k+1)-\hat{Z(k+1|k)}

                                                                                      =H(k+1)X(k+1)+V(k+1)-H(k+1)\hat{X(k+1|k)}

                                                                                      =H(k+1)X(k+1|k)+V(k+1)

式中的X(k+1|k)=X(k+1)-\hat{X(k+1|k)}是状态X(k+1)的预测估计误差。不难看出,误差主要由X(k+1|k)以及Z(k+1)的观测误差项V(k+1)构成。一般来讲Z(k+1|k)的维数与X(k+1)的维数不同,因而也不能直接使用Z(k+1|k)来修正\hat{X(k+1|k)}。同样,由于采用的是线性最小方差估计,因此跟最优预测一样,我们使用加权的方法来修正,同样引入一个待定的最优滤波增益矩阵K(k+1),此时我们可以获得X(k+1)的线性最小方差估计\hat{X(k+1|k+1)}

                                                           \hat{X(k+1|k+1)} = \hat{X(k+1|k)} + K(k+1)Z(k+1|k)

也就是:

                                            \hat{X(k+1|k+1)} = \hat{X(k+1|k)} + K(k+1)[Z(k+1)-H(k+1)\hat{X(k+1|k)}] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2.2)

也可以写为:

                                         \hat{X(k+1|k+1)} = \hat{X(k+1|k)} + K(k+1)[H(k+1)X(k+1|k) + V(k+1)]

下面我们来求最优增益滤波矩阵K(k+1)。由正交定理,X(k+1)的滤波估计误差:

                                X(k+1|k+1) = X(k+1)-\hat{X(k+1|k+1)}

                                                           =X(k+1)-\hat{X(k+1|k)} - K(k+1)[H(k+1)X(k+1|k) + V(k+1)]

                                                           =X(k+1|k)-K(k+1)H(k+1)X(k+1|k)-K(k+1)V(k+1)

应与观测值Z(k+1)正交,也就是:

                                                                               E[X(k+1|k+1)Z(k+1)^T]=0

即:

                        E\left \{ [X(k+1|k)-K(k+1)H(k+1)X(k+1|k)-K(k+1)V(k+1)][H(k)X(k+1)+V(k+1)]^T \right \}

                   

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
卡尔曼滤波是一种用于估计系统状态的递归滤波器,它适用于线性动态系统和高斯噪声模型。其基本思想是通过组合系统的预测和测量信息来获得更准确的状态估计卡尔曼滤波方程推导如下: 1. 系统模型: 假设我们有一个线性动态系统,可以用以下方程表示: x(k) = A * x(k-1) + B * u(k-1) + w(k-1) 其中,x(k)是系统在时间步k的状态向量,A是状态转移矩阵,B是输入矩阵,u(k-1)是系统在时间步(k-1)的输入向量,w(k-1)是过程噪声。 2. 测量模型: 系统的测量方程可以表示为: z(k) = H * x(k) + v(k) 其中,z(k)是系统在时间步k的观测向量,H是观测矩阵,v(k)是观测噪声。 3. 预测步骤: 根据系统模型,我们可以进行状态预测: x^(k|k-1) = A * x^(k-1|k-1) + B * u(k-1) P(k|k-1) = A * P(k-1|k-1) * A^T + Q 其中,x^(k|k-1)是对系统状态的先验估计,P(k|k-1)是状态估计的协方差矩阵,Q是过程噪声的协方差矩阵。 4. 更新步骤: 根据测量模型,我们可以进行状态更新: K(k) = P(k|k-1) * H^T * (H * P(k|k-1) * H^T + R)^-1 x^(k|k) = x^(k|k-1) + K(k) * (z(k) - H * x^(k|k-1)) P(k|k) = (I - K(k) * H) * P(k|k-1) 其中,K(k)是卡尔曼增益,x^(k|k)是对系统状态的后验估计,P(k|k)是状态估计的协方差矩阵,R是观测噪声的协方差矩阵,I是单位矩阵。 扩展卡尔曼滤波(EKF)是卡尔曼滤波的非线性扩展,主要针对非线性系统模型。它通过线性化非线性模型来近似地应用卡尔曼滤波算法。 扩展卡尔曼滤波方程推导同样分为预测步骤和更新步骤,只不过在预测步骤中需要对非线性系统模型进行线性化。 预测步骤: 1. 根据非线性系统模型,进行状态预测: x^(k|k-1) = f(x^(k-1|k-1), u(k-1)) F(k) = ∂f/∂x(k-1)|x^(k-1|k-1), u(k-1) P(k|k-1) = F(k) * P(k-1|k-1) * F(k)^T + Q 其中,f表示非线性状态转移函数,F(k)是状态转移函数f的雅可比矩阵。 更新步骤: 1. 根据非线性观测模型,进行状态更新: z^(k) = h(x^(k|k-1)) H(k) = ∂h/∂x(k)|x^(k|k-1) K(k) = P(k|k-1) * H(k)^T * (H(k) * P(k|k-1) * H(k)^T + R)^-1 x^(k|k) = x^(k|k-1) + K(k) * (z(k) - z^(k)) P(k|k) = (I - K(k) * H(k)) * P(k|k-1) 其中,h表示非线性观测函数,H(k)是观测函数h的雅可比矩阵。 以上就是卡尔曼滤波方程和扩展卡尔曼滤波方程推导过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值