< Back
文章 - 投影定理与卡尔曼滤波
投影定理与卡尔曼滤波
因为教材有多处纰漏,所以我自己整理了一个正确的完整推导过程

背景

在分析随机控制系统时,系统中含有随机变量,而我们往往不能直接获知系统的状态。为此,我们需要通过一些系统的观测量来估计系统的状态。

对于随机控制系统,我们通常用下面的状态方程及观测方程描述:

Xk=ϕk,k1Xk1+Bk1Uk1+Γk1Wk1Zk=HkXk++Yk+Vk\begin{aligned} & \boldsymbol{X}_k = \boldsymbol{\phi}_{k,k-1} \boldsymbol{X}_{k-1} + \boldsymbol{B}_{k-1} \boldsymbol{U}_{k-1} + \boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} \\ & \boldsymbol{Z}_k = \boldsymbol{H}_k \boldsymbol{X}_k + +\boldsymbol{Y}_k + \boldsymbol{V}_k \end{aligned}

其中 XkRn\boldsymbol{X}_k \in R^n 为 k 时刻的状态向量,ϕk,k1Rn×n\boldsymbol{\phi}_{k,k-1} \in R^{n \times n} 为将 k-1 时刻的状态转移到 k 时刻的一步转移矩阵,同样地,B 为控制矩阵,U 为控制向量,H 为观测矩阵,Z 为观测向量,Γ\Gamma 为噪声输入矩阵,W 为状态噪声,V 为观测噪声,Y 已知,可以由观测系统的误差产生。

我们的任务是利用观测值来取得系统状态估计值,即求解 X^=E(XZ)\hat{\boldsymbol{X}} = E(\boldsymbol{X}|\boldsymbol{Z})

随机变量的希尔伯特空间

为了将投影定理引入随机变量的讨论中,我们需要构建一个希尔伯特空间。我们不妨定义内积计算:

X,Y=EXYT\langle \boldsymbol{X}, \boldsymbol{Y} \rangle = E\boldsymbol{XY}^T

由于在接下来的讨论中,随机变量的取值都是实数集,因此不难知道此内积空间是完备的。实际上,对于此内积的定义,若两个随机变量的期望都为0,则内积等价于协方差。

投影

首先,我们先给出投影的定义。

若与 X\boldsymbol{X} 同维度的 X^\hat{\boldsymbol{X}} 满足:

X^=a+BZE(XX^)=0E(XX^)ZT=0\begin{aligned} & \hat{\boldsymbol{X}} = \boldsymbol{a} + \boldsymbol{BZ} \\ & E(\boldsymbol{X} - \hat{\boldsymbol{X}}) = \boldsymbol{0} \\ & E(\boldsymbol{X} - \hat{\boldsymbol{X}})\boldsymbol{Z}^T = 0 \end{aligned}

则称 X^\hat{\boldsymbol{X}}X\boldsymbol{X} 在向量 Z\boldsymbol{Z} 上的投影。而这三个式子分别对应线性、无偏性及正交性。

其中无偏性很好理解,即状态估计值的期望应该与状态的期望相等。

关于线性和正交性可以这样理解:在这里,X 和 Z 并不一定是同维度的。一般地,Z 的维度都会比 X 要低。而 X 的估计值需要取决于 Z,故其应该是 Z 的线性组合,X 的估计值也应该属于 Z 张成的空间(当然这里加了个偏置项 a,X 估计值不严格为线性组合及属于 Z 张成的空间,但不影响正交性)。此时,我们就可以将 X 正交分解为 X^\hat{\boldsymbol{X}}(XX^)(\boldsymbol{X} - \hat{\boldsymbol{X}}) ,其中 (XX^)(\boldsymbol{X} - \hat{\boldsymbol{X}}) 应与 Z\boldsymbol{Z} 正交。这样,剩下的 X^\hat{\boldsymbol{X}} 就成为了基于 Z\boldsymbol{Z} 的最优估计。

在几何意义上,可以想象 Z\boldsymbol{Z} 张成的空间是一个平面,而 X\boldsymbol{X} 是一个空间向量,而 X^\hat{\boldsymbol{X}} 就是 X\boldsymbol{X}Z\boldsymbol{Z} 平面上的投影向量。

在接下来的讨论中,如果一个向量满足以上性质,被证明是状态的投影,那么它就是状态的最优估计。接下来,我们不妨将最优估计记作 E^(XZ)\hat{E}(\boldsymbol{X}|\boldsymbol{Z})

投影定理

根据投影的定义,我们可以推出两个重要定理。这两个定理都是通过已知的一个投影,通过变换推出另一个投影。

定理一

X\boldsymbol{X}Z\boldsymbol{Z} 为两个随机向量,维数分别为 nnmm ,则

E^(AXZ)=AE^(XZ)\hat{E}(\boldsymbol{AX} | \boldsymbol{Z}) = \boldsymbol{A} \hat{E}(\boldsymbol{X} | \boldsymbol{Z})

其中 A\boldsymbol{A}l×nl \times n 矩阵。

分别证明 AE^(XZ)\boldsymbol{A} \hat{E}(\boldsymbol{X} | \boldsymbol{Z}) 满足投影的三个性质即可。其中线性不难证明,只是在线性性质的右式左乘了一个 A。

要证明无偏性,只需证明 E(AE^(XZ))=EAXE(\boldsymbol{A} \hat{E}(\boldsymbol{X} | \boldsymbol{Z})) = E\boldsymbol{A}\boldsymbol{X}。由投影的性质我们有 E^(XZ)=EX\hat{E}(\boldsymbol{X} | \boldsymbol{Z}) = E\boldsymbol{X},因此:

E[AE^(XZ)]=AE[E^(XZ)]=AEX=EAXE[\boldsymbol{A} \hat{E}(\boldsymbol{X} | \boldsymbol{Z})] = \boldsymbol{A} E[\hat{E}(\boldsymbol{X} | \boldsymbol{Z})] = \boldsymbol{A} E \boldsymbol{X} = E\boldsymbol{AX}

无偏性得证。

要证明正交性,需要证明 E[AXAE^(XZ)]ZT=0E[\boldsymbol{AX} - \boldsymbol{A} \hat{E}(\boldsymbol{X} | \boldsymbol{Z})] \boldsymbol{Z}^T = 0。由投影的性质我们有 E(XE^(XZ))ZT=0E(\boldsymbol{X} - \hat{E}(\boldsymbol{X} | \boldsymbol{Z}))\boldsymbol{Z}^T = 0,因此:

E[AXAE^(XZ)]ZT=AE[XE^(XZ)]ZT=0E[\boldsymbol{AX} - \boldsymbol{A} \hat{E}(\boldsymbol{X} | \boldsymbol{Z})] \boldsymbol{Z}^T = \boldsymbol{A} E[\boldsymbol{X} - \hat{E}(\boldsymbol{X} | \boldsymbol{Z})] \boldsymbol{Z}^T = 0

正交性得证。

这个定理揭示了被估计量进行线性变换后,对应的估计只需进行一次相同的线性变换即可。

定理二

X\boldsymbol{X}Z1\boldsymbol{Z}_1Z2\boldsymbol{Z}_2 为三个随机向量,维数分别为 nnm1m_1m2m_2。令 Z=[Z1Z2]\boldsymbol{Z} = \begin{bmatrix} \boldsymbol{Z}_1 \\ \boldsymbol{Z}_2 \end{bmatrix} ,则

E^(XZ)=E^(XZ1)+(EX~Z~2T)(EZ~2Z~2T)1Z~2\hat{E}(\boldsymbol{X} | \boldsymbol{Z}) = \hat{E}(\boldsymbol{X} | \boldsymbol{Z}_1) + (E\tilde{\boldsymbol{X}}\tilde{\boldsymbol{Z}}_2^T) (E\tilde{\boldsymbol{Z}}_2\tilde{\boldsymbol{Z}}_2^T)^{-1} \tilde{\boldsymbol{Z}}_2

其中,

X~=XE^(XZ1)Z~2=Z2E^(Z2Z1)\begin{aligned} & \tilde{\boldsymbol{X}} = \boldsymbol{X} - \hat{E}(\boldsymbol{X}|\boldsymbol{Z}_1) \\ & \tilde{\boldsymbol{Z}}_2 = \boldsymbol{Z}_2 - \hat{E}(\boldsymbol{Z}_2|\boldsymbol{Z}_1) \end{aligned}

观察一下这个式子,可以发现 (EX~Z~2T)(EZ~2Z~2T)1Z~2(E\tilde{\boldsymbol{X}}\tilde{\boldsymbol{Z}}_2^T) (E\tilde{\boldsymbol{Z}}_2\tilde{\boldsymbol{Z}}_2^T)^{-1} \tilde{\boldsymbol{Z}}_2 就是 X~,Z~2Z~2,Z~2Z~2\frac{\langle \tilde{\boldsymbol{X}}, \tilde{\boldsymbol{Z}}_2 \rangle}{\langle \tilde{\boldsymbol{Z}}_2, \tilde{\boldsymbol{Z}}_2 \rangle} \tilde{\boldsymbol{Z}}_2,即 X~\tilde{\boldsymbol{X}}Z~2\tilde{\boldsymbol{Z}}_2 上的投影向量。

在几何意义上,我们可以把 Z1\boldsymbol{Z}_1Z2\boldsymbol{Z}_2 想象成空间坐标系的两条直线,把 X\boldsymbol{X} 想象成空间向量。则 E^(XZ1)\hat{E}(\boldsymbol{X}|\boldsymbol{Z}_1) 就是 X\boldsymbol{X}Z1\boldsymbol{Z}_1 上的投影,E^(XZ)\hat{E}(\boldsymbol{X} | \boldsymbol{Z}) 就是 X\boldsymbol{X} 在与 Z1\boldsymbol{Z}_1Z2\boldsymbol{Z}_2 平行的平面上的投影。在已知 Z1\boldsymbol{Z}_1 上的投影时,将 X\boldsymbol{X}Z2\boldsymbol{Z}_2 正交分解得到与 Z1\boldsymbol{Z}_1 正交的 X~\tilde{\boldsymbol{X}}Z~2\tilde{\boldsymbol{Z}}_2,剔除掉 Z1\boldsymbol{Z}_1 相关的成分。此时再进行一次 X~\tilde{\boldsymbol{X}}Z~2\tilde{\boldsymbol{Z}}_2 的投影,就可以很直观地得到两个投影间的修正项。

证明过程教材上给的不详细,这里就先略过了。

这个定理揭示了在已有估计值的基础上,如何利用新的观测结果产生更加准确的估计值。

无控制项的线性动态系统的卡尔曼滤波

卡尔曼滤波是一个可以通过少量观测数据,估计出任意时刻的系统状态的方法,有非常广泛的应用。它的理论核心正是上面介绍的投影定理。

背景

我们先定义一个无控制项的离散动态系统:

Xk=ϕk,k1Xk1+Γk1Wk1Zk=HkXk+Vk\begin{aligned} & \boldsymbol{X}_k = \boldsymbol{\phi}_{k,k-1} \boldsymbol{X}_{k-1} + \boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} \\ & \boldsymbol{Z}_k = \boldsymbol{H}_k \boldsymbol{X}_k + \boldsymbol{V}_k \end{aligned}

为了叙述方便,我们引入以下记号:

Zk\boldsymbol{Z}^k 表示第 k 步及其之前的所有观测值,即:

Zk=[Z1Z2Zk]\boldsymbol{Z}^k = \begin{bmatrix} Z_1 \\ Z_2 \\ \vdots \\ Z_k \end{bmatrix}

X^jk\hat{\boldsymbol{X}}_{j|k} 表示利用第 k 时刻及其之前的观察向量(Zk\boldsymbol{Z}^k)对第 j 时刻状态的估计值,即 E^(XjZk)\hat{E} (\boldsymbol{X}_j | \boldsymbol{Z}^k)。当 j = k,该值称为滤波值;当 j > k,该值称为预报(外推)值;当 j < k,该值称为平滑(内插)值。特别地,当 j = k 时,我们直接简写为 X^k=X^kk\hat{\boldsymbol{X}}_k = \hat{\boldsymbol{X}}_{k|k}

此外,我们还对噪声做如下假设:

状态噪声和观测噪声均为白噪声,且互不相关。即:

EWk=0,cov(Wk,Wj)=EWkWjT=QkδkjEVk=0,cov(Vk,Vj)=EVkVjT=Rkδkjcov(Wk,Vj)=EWkVjT=0\begin{aligned} & E\boldsymbol{W}_k = \boldsymbol{0}, \qquad cov(\boldsymbol{W}_k, \boldsymbol{W}_j) = E \boldsymbol{W}_k \boldsymbol{W}_j^T = \boldsymbol{Q}_k \delta_{kj} \\ & E\boldsymbol{V}_k = \boldsymbol{0}, \qquad cov(\boldsymbol{V}_k, \boldsymbol{V}_j) = E \boldsymbol{V}_k \boldsymbol{V}_j^T = \boldsymbol{R}_k \delta_{kj} \\ & cov(\boldsymbol{W}_k, \boldsymbol{V}_j) = E \boldsymbol{W}_k \boldsymbol{V}_j^T = 0 \end{aligned}

其中 δkj\delta_{kj} 为克罗内克函数,当 j=kj=k 时取 1,jkj \neq k 时取 0。

系统的初始状态与噪声序列均不相关。即:

cov(X0,Wk)=0,cov(X0,Vk)=0EX0=μ0,DX0=E(X0μ0)(X0μ0)T\begin{aligned} & cov(\boldsymbol{X}_0,\boldsymbol{W}_k) = 0, \qquad cov(\boldsymbol{X}_0,\boldsymbol{V}_k) = 0 \\ & E\boldsymbol{X}_0 = \boldsymbol{\mu}_0, \qquad D\boldsymbol{X}_0 = E(\boldsymbol{X}_0 - \boldsymbol{\mu}_0)(\boldsymbol{X}_0 - \boldsymbol{\mu}_0)^T \end{aligned}

推导

首先,我们先根据先前的状态来估计下一步状态,即求解 X^k1k1\hat{\boldsymbol{X}}_{k-1|k-1}X^kk1\hat{\boldsymbol{X}}_{k|k-1} 的递推式。这里需要利用上面的投影定理一,以及 W 噪声与 Z 无关,故条件期望依然为 0 的结论。

X^kk1=E^(XkZk1)=E^(ϕk,k1Xk1+Γk1Wk1Zk1)=ϕk,k1E^(Xk1Zk1)+Γk1E^(Wk1Zk1)=ϕk,k1E^(Xk1Zk1)=ϕk,k1X^k1\begin{aligned} \hat{\boldsymbol{X}}_{k|k-1} &= \hat{E}(\boldsymbol{X}_k | \boldsymbol{Z}^{k-1}) \\ &= \hat{E}(\boldsymbol{\phi}_{k,k-1} \boldsymbol{X}_{k-1} + \boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} | \boldsymbol{Z}^{k-1}) \\ &= \boldsymbol{\phi}_{k,k-1} \hat{E}(\boldsymbol{X}_{k-1} | \boldsymbol{Z}^{k-1}) + \boldsymbol{\Gamma}_{k-1} \hat{E}(\boldsymbol{W}_{k-1} | \boldsymbol{Z}^{k-1}) \\ &= \boldsymbol{\phi}_{k,k-1} \hat{E}(\boldsymbol{X}_{k-1} | \boldsymbol{Z}^{k-1}) \\ &= \boldsymbol{\phi}_{k,k-1} \hat{\boldsymbol{X}}_{k-1} \end{aligned}

在更新下一步状态时,我们往往还需要结合当前的观测值,即利用上面的投影定理二来修正估计。为此,我们需要先求解观测值的估计值:

Z^k,k1=E^(ZkZk1)=HkE^(XkZk1)+E^(VkZk1)=HkX^kk1=Hkϕk,k1X^k1\begin{aligned} \hat{\boldsymbol{Z}}_{k,k-1} &= \hat{E}(\boldsymbol{Z}_k | \boldsymbol{Z}^{k-1}) \\ &= \boldsymbol{H}_k \hat{E}(\boldsymbol{X}_k | \boldsymbol{Z}^{k-1}) + \hat{E}(\boldsymbol{V}_k | \boldsymbol{Z}^{k-1}) \\ &= \boldsymbol{H}_k \hat{\boldsymbol{X}}_{k|k-1} \\ &= \boldsymbol{H}_k \boldsymbol{\phi}_{k,k-1} \hat{\boldsymbol{X}}_{k-1} \end{aligned}

随后定义估计误差项:

Z~kk1=ZkZ^kk1X~kk1=XkX^kk1\begin{aligned} \tilde{\boldsymbol{Z}}_{k|k-1} &= \boldsymbol{Z}_k - \hat{\boldsymbol{Z}}_{k|k-1} \\ \tilde{\boldsymbol{X}}_{k|k-1} &= \boldsymbol{X}_k - \hat{\boldsymbol{X}}_{k|k-1} \end{aligned}

由投影定理二:

X^k=E^(XkZk1)+(EX~kk1Z~kk1T)(EZ~kk1Z~kk1T)1Z~kk1=E^(XkZk1)+KkZ~kk1=ϕk,k1X^k1+Kk(ZkHkϕk,k1X^k1)\begin{aligned} \hat{\boldsymbol{X}}_k &= \hat{E}(\boldsymbol{X}_k | \boldsymbol{Z}^{k-1}) + (E \tilde{\boldsymbol{X}}_{k|k-1} \tilde{\boldsymbol{Z}}_{k|k-1}^T)(E \tilde{\boldsymbol{Z}}_{k|k-1} \tilde{\boldsymbol{Z}}_{k|k-1}^T)^{-1} \tilde{\boldsymbol{Z}}_{k|k-1} \\ &= \hat{E}(\boldsymbol{X}_k | \boldsymbol{Z}^{k-1}) + \boldsymbol{K}_k \tilde{\boldsymbol{Z}}_{k|k-1} \\ &= \boldsymbol{\phi}_{k,k-1} \hat{\boldsymbol{X}}_{k-1} + \boldsymbol{K}_k (\boldsymbol{Z}_k - \boldsymbol{H}_k \boldsymbol{\phi}_{k,k-1} \hat{\boldsymbol{X}}_{k-1}) \end{aligned}

其中投影标量 Kk=(EX~kk1Z~kk1T)(EZ~kk1Z~kk1T)1\boldsymbol{K}_k = (E \tilde{\boldsymbol{X}}_{k|k-1} \tilde{\boldsymbol{Z}}_{k|k-1}^T)(E \tilde{\boldsymbol{Z}}_{k|k-1} \tilde{\boldsymbol{Z}}_{k|k-1}^T)^{-1}。为了方便,在使用时我们都会直接使用 Kk\boldsymbol{K}_k 这一封装的形式。现在,我们的问题就变为了求取 K 中的两个未知期望。

容易得出:

Z~kk1=ZkZ^kk1=HkXk+VkHkX^kk1=HkX~kk1+Vk\begin{aligned} \tilde{\boldsymbol{Z}}_{k|k-1} &= \boldsymbol{Z}_k - \hat{\boldsymbol{Z}}_{k|k-1} \\ &= \boldsymbol{H}_k \boldsymbol{X}_k + \boldsymbol{V}_k - \boldsymbol{H}_k \hat{\boldsymbol{X}}_{k|k-1} \\ &= \boldsymbol{H}_k \tilde{\boldsymbol{X}}_{k|k-1} + \boldsymbol{V}_k \end{aligned}

那么有:

EX~kk1Z~kk1T=EX~kk1(HkX~kk1+Vk)T=E(X~kk1X~kk1THkT)+E(X~kk1VkT)=E(X~kk1X~kk1T)HkT=Pkk1HkT\begin{aligned} E \tilde{\boldsymbol{X}}_{k|k-1} \tilde{\boldsymbol{Z}}_{k|k-1}^T &= E\tilde{\boldsymbol{X}}_{k|k-1}(\boldsymbol{H}_k \tilde{\boldsymbol{X}}_{k|k-1} + \boldsymbol{V}_k)^T \\ &= E(\tilde{\boldsymbol{X}}_{k|k-1} \tilde{\boldsymbol{X}}_{k|k-1}^T \boldsymbol{H}_k^T) + E(\tilde{\boldsymbol{X}}_{k|k-1} \boldsymbol{V}_k^T) \\ &= E(\tilde{\boldsymbol{X}}_{k|k-1} \tilde{\boldsymbol{X}}_{k|k-1}^T) \boldsymbol{H}_k^T \\ &= \boldsymbol{P}_{k|k-1} \boldsymbol{H}_k^T \end{aligned}

其中用 Pkk1=E(X~kk1X~kk1T)\boldsymbol{P}_{k|k-1} = E(\tilde{\boldsymbol{X}}_{k|k-1} \tilde{\boldsymbol{X}}_{k|k-1}^T) 表示 X~kk1\tilde{\boldsymbol{X}}_{k|k-1} 与其自身的内积,即方差。

同样地:

EZ~kk1Z~kk1T=E(HkX~kk1+Vk)(HkX~kk1+Vk)T=E(HkX~kk1X~kk1THkT+HkX~kk1VkT+VkX~kk1THkT+VkVkT)=HkE(X~kk1X~kk1T)HkT+EVkVkT=HkPkk1HkT+Rk\begin{aligned} E \tilde{\boldsymbol{Z}}_{k|k-1} \tilde{\boldsymbol{Z}}_{k|k-1}^T &= E (\boldsymbol{H}_k \tilde{\boldsymbol{X}}_{k|k-1} + \boldsymbol{V}_k) (\boldsymbol{H}_k \tilde{\boldsymbol{X}}_{k|k-1} + \boldsymbol{V}_k)^T \\ &= E (\boldsymbol{H}_k \tilde{\boldsymbol{X}}_{k|k-1} \tilde{\boldsymbol{X}}_{k|k-1}^T \boldsymbol{H}_k^T + \boldsymbol{H}_k \tilde{\boldsymbol{X}}_{k|k-1} \boldsymbol{V}_k^T + \boldsymbol{V}_k \tilde{\boldsymbol{X}}_{k|k-1}^T \boldsymbol{H}_k^T + \boldsymbol{V}_k \boldsymbol{V}_k^T) \\ &= \boldsymbol{H}_k E(\tilde{\boldsymbol{X}}_{k|k-1} \tilde{\boldsymbol{X}}_{k|k-1}^T) \boldsymbol{H}_k^T + E \boldsymbol{V}_k \boldsymbol{V}_k^T \\ &= \boldsymbol{H}_k \boldsymbol{P}_{k|k-1} \boldsymbol{H}_k^T + \boldsymbol{R}_k \end{aligned}

接着我们再求解出 Pkk1\boldsymbol{P}_{k|k-1} 的递推式:

Pkk1=E(XkX^kk1)(XkX^kk1)T=E(ϕk,k1Xk1+Γk1Wk1ϕk,k1X^k1)(ϕk,k1Xk1+Γk1Wk1ϕk,k1X^k1)T=E(ϕk,k1X~k1+Γk1Wk1)(ϕk,k1X~k1+Γk1Wk1)T=E(ϕk,k1X~k1X~k1Tϕk,k1T)+2E(Γk1Wk1Wk1TΓk1T)+E(Γk1Wk1Wk1TΓk1T)=ϕk,k1Pk1ϕk,k1T+Γk1Qk1Γk1T\begin{aligned} \boldsymbol{P}_{k|k-1} &= E(\boldsymbol{X}_k - \hat{\boldsymbol{X}}_{k|k-1})(\boldsymbol{X}_k - \hat{\boldsymbol{X}}_{k|k-1})^T \\ &= E(\boldsymbol{\phi}_{k,k-1} \boldsymbol{X}_{k-1} + \boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} - \boldsymbol{\phi}_{k,k-1} \hat{\boldsymbol{X}}_{k-1}) (\boldsymbol{\phi}_{k,k-1} \boldsymbol{X}_{k-1} + \boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} - \boldsymbol{\phi}_{k,k-1} \hat{\boldsymbol{X}}_{k-1})^T \\ &= E(\boldsymbol{\phi}_{k,k-1} \tilde{\boldsymbol{X}}_{k-1} + \boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1}) (\boldsymbol{\phi}_{k,k-1} \tilde{\boldsymbol{X}}_{k-1} + \boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1})^T \\ &= E(\boldsymbol{\phi}_{k,k-1} \tilde{\boldsymbol{X}}_{k-1} \tilde{\boldsymbol{X}}_{k-1}^T \boldsymbol{\phi}_{k,k-1}^T) + 2E(\boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} \boldsymbol{W}_{k-1}^T \boldsymbol{\Gamma}_{k-1}^T) + E(\boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} \boldsymbol{W}_{k-1}^T \boldsymbol{\Gamma}_{k-1}^T) \\ &= \boldsymbol{\phi}_{k,k-1} \boldsymbol{P}_{k-1} \boldsymbol{\phi}_{k,k-1}^T + \boldsymbol{\Gamma}_{k-1} \boldsymbol{Q}_{k-1} \boldsymbol{\Gamma}_{k-1}^T \end{aligned}

继续递推:

Pk=E(XkX^k)(XkX^k)T=E(XkXkk1KkZ~kk1)(XkXkk1KkZ~kk1)T=E(X~kk1KkZk+KkZ^kk1)(X~kk1KkZk+KkZ^kk1)T=E(X~kk1KkHkXkKkVk+KkHkX^kk1)(X~kk1KkHkXkKkVk+KkHkX^kk1)T=E(X~kk1KkHkX~kk1KkVk)(X~kk1KkHkX~kk1KkVk)T=E[(IKkHk)X~kk1KkVk][(IKkHk)X~kk1KkVk]T=(IKkHk)E(X~kk1X~kk1T)(IKkHk)T+KkE(VkVkT)KkT=(IKkHk)Pkk1(IKkHk)T+KkRkKkT\begin{aligned} \boldsymbol{P}_{k} &= E(\boldsymbol{X}_k - \hat{\boldsymbol{X}}_{k})(\boldsymbol{X}_k - \hat{\boldsymbol{X}}_{k})^T \\ &= E(\boldsymbol{X}_k - \boldsymbol{X}_{k|k-1} - \boldsymbol{K}_k \tilde{\boldsymbol{Z}}_{k|k-1})(\boldsymbol{X}_k - \boldsymbol{X}_{k|k-1} - \boldsymbol{K}_k \tilde{\boldsymbol{Z}}_{k|k-1})^T \\ &= E(\tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{Z}_k + \boldsymbol{K}_k \hat{\boldsymbol{Z}}_{k|k-1})(\tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{Z}_k + \boldsymbol{K}_k \hat{\boldsymbol{Z}}_{k|k-1})^T \\ &= E(\tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{H}_k \boldsymbol{X}_k - \boldsymbol{K}_k \boldsymbol{V}_k + \boldsymbol{K}_k \boldsymbol{H}_k \hat{\boldsymbol{X}}_{k|k-1})(\tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{H}_k \boldsymbol{X}_k - \boldsymbol{K}_k \boldsymbol{V}_k + \boldsymbol{K}_k \boldsymbol{H}_k \hat{\boldsymbol{X}}_{k|k-1})^T \\ &= E(\tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{H}_k \tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{V}_k)(\tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{H}_k \tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{V}_k)^T \\ &= E[(\boldsymbol{I} - \boldsymbol{K}_k \boldsymbol{H}_k) \tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{V}_k][(\boldsymbol{I} - \boldsymbol{K}_k \boldsymbol{H}_k) \tilde{\boldsymbol{X}}_{k|k-1} - \boldsymbol{K}_k \boldsymbol{V}_k]^T \\ &= (\boldsymbol{I} - \boldsymbol{K}_k \boldsymbol{H}_k) E(\tilde{\boldsymbol{X}}_{k|k-1} \tilde{\boldsymbol{X}}_{k|k-1}^T) (\boldsymbol{I} - \boldsymbol{K}_k \boldsymbol{H}_k)^T + \boldsymbol{K}_k E(\boldsymbol{V}_k \boldsymbol{V}_k^T) \boldsymbol{K}_k^T \\ &= (\boldsymbol{I} - \boldsymbol{K}_k \boldsymbol{H}_k) \boldsymbol{P}_{k|k-1} (\boldsymbol{I} - \boldsymbol{K}_k \boldsymbol{H}_k)^T + \boldsymbol{K}_k \boldsymbol{R}_k \boldsymbol{K}_k^T \end{aligned}

此式还可以进一步简化为:

Pk=(IKkHk)Pkk1\boldsymbol{P}_{k} = (\boldsymbol{I} - \boldsymbol{K}_k \boldsymbol{H}_k) \boldsymbol{P}_{k|k-1}

至此,我们已经推出了一套完整的卡尔曼滤波公式:

Pkk1=ϕk,k1Pk1ϕk,k1T+Γk1Qk1Γk1TPk=(IKkHk)Pkk1Kk=(Pkk1HkT)(HkPkk1HkT+Rk)1X^k=ϕk,k1X^k1+Kk(ZkHkϕk,k1X^k1)\begin{aligned} \boldsymbol{P}_{k|k-1} &= \boldsymbol{\phi}_{k,k-1} \boldsymbol{P}_{k-1} \boldsymbol{\phi}_{k,k-1}^T + \boldsymbol{\Gamma}_{k-1} \boldsymbol{Q}_{k-1} \boldsymbol{\Gamma}_{k-1}^T \\ \boldsymbol{P}_{k} &= (\boldsymbol{I} - \boldsymbol{K}_k \boldsymbol{H}_k) \boldsymbol{P}_{k|k-1} \\ \boldsymbol{K}_k &= (\boldsymbol{P}_{k|k-1} \boldsymbol{H}_k^T)(\boldsymbol{H}_k \boldsymbol{P}_{k|k-1} \boldsymbol{H}_k^T + \boldsymbol{R}_k)^{-1} \\ \hat{\boldsymbol{X}}_k &= \boldsymbol{\phi}_{k,k-1} \hat{\boldsymbol{X}}_{k-1} + \boldsymbol{K}_k (\boldsymbol{Z}_k - \boldsymbol{H}_k \boldsymbol{\phi}_{k,k-1} \hat{\boldsymbol{X}}_{k-1}) \end{aligned}

其中,Pkk1\boldsymbol{P}_{k|k-1}Pk\boldsymbol{P}_{k} 构成循环递推关系,而 X^k\hat{\boldsymbol{X}}_k 可通过 Kk\boldsymbol{K}_kPkk1\boldsymbol{P}_{k|k-1} 导出,同时也依赖观测量 Zk\boldsymbol{Z}_k 以及上一步状态估计 X^k1\hat{\boldsymbol{X}}_{k-1}。可见,状态的估计依赖于上一步估计与当前观测量,其中 K 则是作为权重自动权衡根据观测量调整的程度。例如,当观测噪声 R 相当大时,K 就会变得很小,此时观测量几乎不影响滤波结果。同样地,当观测噪声恒为 0 时,K=H1K = H^{-1},此时 X 估计值与上一步估计值无关,滤波值只取决于观测量。