WEEK2{\Large WEEK \qquad 2}WEEK2
Kalman滤波在最后\color{#F00}{Kalman滤波在最后}Kalman滤波在最后
2.1 系统和测量建模
\qquad离散线性动态运动系统:
xt+1=Axt+Butzt=Cxt(1)
x_{t+1}=Ax_{t}+Bu_{t}\qquad z_{t}=Cx_{t}\qquad(1)
xt+1=Axt+Butzt=Cxt(1)其中A是状态转移矩阵,utu_{t}ut表示不依赖状态xtx_{t}xt的外部输入,C表示连接测量变量和状态的测量矩阵。
\qquad基于基于状态动态模型的状态估计值条件概率:
p(xt+1∣xt)(忽略ut)(2)
p(x_{t+1}|x_{t})\qquad(忽略u_{t})(2)
p(xt+1∣xt)(忽略ut)(2)\qquad带噪声的测量值的条件概率:
p(zt∣xt)(3)
p(z_{t}|x_{t})\qquad(3)
p(zt∣xt)(3)\qquad应用线性动态模型:
p(xt+1∣xt)=Ap(xt)(4)p(zt∣xt)=Cp(xt)(5)
p(x_{t+1}|x_{t})=Ap(x_{t})\qquad(4)\\
p(z_{t}|x_{t})=Cp(x_{t})\qquad(5)
p(xt+1∣xt)=Ap(xt)(4)p(zt∣xt)=Cp(xt)(5)\qquad给运动和观测加入噪声
p(xt+1∣xt)=Ap(xt)+vm(6)p(zt∣xt)=Cp(xt)+vo(7)
p(x_{t+1}|x_{t})=Ap(x_{t})+v_{m}\qquad(6)\\
p(z_{t}|x_{t})=Cp(x_{t})+v_{o}\qquad(7)
p(xt+1∣xt)=Ap(xt)+vm(6)p(zt∣xt)=Cp(xt)+vo(7)\qquad引入状态xtx_{t}xt的高斯模型
p(xt+1∣xt)=AN(xt,Pt)+N(0,∑m)(8)p(zt∣xt)=CN(xt,Pt)+N(0,∑o)(9)
p(x_{t+1}|x_{t})=A\mathcal{N}(x_{t},P_{t})+\mathcal{N}(0,\begin{matrix}\sum_{m}\end{matrix})\qquad(8)\\
p(z_{t}|x_{t})=C\mathcal{N}(x_{t},P_{t})+\mathcal{N}(0,\begin{matrix}\sum_{o}\end{matrix})\qquad(9)
p(xt+1∣xt)=AN(xt,Pt)+N(0,∑m)(8)p(zt∣xt)=CN(xt,Pt)+N(0,∑o)(9)\qquad应用高斯分布的线性变换
p(xt+1∣xt)=N(Axt,APtAT)+N(0,∑m)(10)p(zt∣xt)=N(Cxt,CPtCT)+N(0,∑o)(11)
p(x_{t+1}|x_{t})=\mathcal{N}(Ax_{t},AP_{t}A^{T})+\mathcal{N}(0,\begin{matrix}\sum_{m}\end{matrix})\qquad(10)\\
p(z_{t}|x_{t})=\mathcal{N}(Cx_{t},CP_{t}C^{T})+\mathcal{N}(0,\begin{matrix}\sum_{o}\end{matrix})\qquad(11)
p(xt+1∣xt)=N(Axt,APtAT)+N(0,∑m)(10)p(zt∣xt)=N(Cxt,CPtCT)+N(0,∑o)(11)\qquad应用高斯分布求和公式
p(xt+1∣xt)=N(Axt,APtAT+∑m)(12)p(zt∣xt)=N(Cxt,CPtCT+∑o)(13)
p(x_{t+1}|x_{t})=\mathcal{N}(Ax_{t},AP_{t}A^{T}+\begin{matrix}\sum_{m}\end{matrix})\qquad(12)\\
p(z_{t}|x_{t})=\mathcal{N}(Cx_{t},CP_{t}C^{T}+\begin{matrix}\sum_{o}\end{matrix})\qquad(13)
p(xt+1∣xt)=N(Axt,APtAT+∑m)(12)p(zt∣xt)=N(Cxt,CPtCT+∑o)(13)
以下摘自《概率机器人》
2.2 贝叶斯滤波
2.2.1 关于Z=z的贝叶斯准则
p(x∣y,z)=p(y∣x,z)p(x∣z)p(y∣z)(14)
p(x|y,z)=\frac{p(y|x,z)p(x|z)}{p(y|z)}\qquad(14)
p(x∣y,z)=p(y∣z)p(y∣x,z)p(x∣z)(14)\qquad以其他变量z为条件的相互独立的随机变量条件联合概率定律:
p(x,y∣z)=p(x∣z)p(y∣z)(15)
p(x,y|z)=p(x|z)p(y|z)\qquad(15)
p(x,y∣z)=p(x∣z)p(y∣z)(15)这种关系被称为条件独立,等价于:
p(x∣z)=p(x∣z,y)(16)p(y∣z)=p(y∣z,x)(17)
p(x|z)=p(x|z,y)\qquad(16)\\
p(y|z)=p(y|z,x)\qquad(17)
p(x∣z)=p(x∣z,y)(16)p(y∣z)=p(y∣z,x)(17)
2.2.2 状态的完整性
\qquad假设一个状态xtx_{t}xt 可以最好地预测未来,则称其为完整的(complete) 。换句话说, 完整性包括过去状态测量及控制的信息,但不包含其他可以更加精确地预测未来的其他附加信息 。很重要的是,要注意对完整性的定义并不是要求未来是一个关于状态的确定(deterministic) 函数。未来可以是随机的,但是没有先于xtx_{t}xt的状态变化可以影响未来状态的随机变化,除非这种依赖通过状态xtx_{t}xt起作用。满足这些条件的暂态过程通常称为马尔可夫链(Markov chain) 。
\qquad状态完整性的概念主要是理论上的重要性。实际上,对任何一个实际的机器人系统不可能指定一个完整的状态。一个完整的状态不仅包括对未来有影响的环境的所有方面,而且也包括机器人本身、计算机内存的内容以及周围人造成的信息垃圾等。其中有些是很难获得的。现实的实现是挑选所有状态变量的小子集。这样的状态叫作不完整状态(incomplete state) 。
2.2.3 概率生成法则
\qquad状态和测量的演变由概率法则支配。表征状态演变的概率法则可以由p(xt∣x0:t−1,z1:t−1,u1:t)p(x_{t}|x_{0:t-1},z_{1:t-1},u_{1:t})p(xt∣x0:t−1,z1:t−1,u1:t)概率分布给出(假定机器人先执行一个控制动作u1u_{1}u1,然后得到一个测量z1z_{1}z1,x0:t−1x_{0:t-1}x0:t−1表示从时间0到t-1所获得状态的集合)。
\qquad如果状态xtx_{t}xt是完整的,那么它是之前时刻发生的所有状态的充分总结。状态xt−1x_{t-1}xt−1是直到t-1时刻的控制和测量的一个充分统计量,即u1:t−1u_{1:t-1}u1:t−1和z1:t−1z_{1:t-1}z1:t−1。上述变量中,只有控制utu_{t}ut关心是否知道状态xt−1x_{t-1}xt−1(From all the variables in the expression above, only the control utu_{t}ut matters if we know the state xt−1x_{t-1}xt−1.)即只有变量utu_{t}ut作用在xt−1x_{t-1}xt−1之后。由此:p(xt∣x0:t−1,z1:t−1,u1:t)=p(xt∣xt−1,ut)(18)
p(x_{t}|x_{0:t-1},z_{1:t-1},u_{1:t})=p(x_{t}|x_{t-1},u_{t})\qquad(18)
p(xt∣x0:t−1,z1:t−1,u1:t)=p(xt∣xt−1,ut)(18)\qquad上式为状态转移概率,由这个等式表达的特性就是条件独立(表明如果知道第三组变量(条件变量)的值,该变量就是独立于其他变量的)。
\qquad如果状态xtx_{t}xt是完整的,有如下条件独立:
p(zt∣x0:t,z1:t−1,u1:t)=p(zt∣xt)(19)
p(z_{t}|x_{0:t},z_{1:t-1},u_{1:t})=p(z_{t}|x_{t})\qquad(19)
p(zt∣x0:t,z1:t−1,u1:t)=p(zt∣xt)(19)\qquad上式为测量概率,用状态xtx_{t}xt足以预测(有潜在的噪声的)测量ztz_{t}zt。如果xtx_{t}xt是完整的,则任何其他变量的信息,如过去的测量、控制、或过去的状态都是与之无关的。
图1表征控制、状态和测量演变的动态贝叶斯网络
图1\quad表征控制、状态和测量演变的动态贝叶斯网络
图1表征控制、状态和测量演变的动态贝叶斯网络
2.2.4 置信分布
\qquad置信度反映了机器人有关环境状态的内部信息。状态(位姿)不能直接测量,机器人必须从数据中推测出其状态。概率机器人中通过条件概率分布表达置信度。对于真实的状态,置信度分布为每一个可能的假设分配一个概率(或者概率密度值)。置信度分布是以可获得数据为条件的关于状态变量的后验概率。使用bel(xt)bel(x_{t})bel(xt)表示状态变量xtx_{t}xt的置信度,后验概率为:
bel(xt)=p(xt∣z1:t,u1:t)(20)
bel(x_{t})=p(x_{t}|z_{1:t},u_{1:t})\qquad(20)
bel(xt)=p(xt∣z1:t,u1:t)(20)\qquad该后验分布是时刻t下状态xtx_{t}xt的概率分布,以所有过去测量z1:tz_{1:t}z1:t和所有过去控制u1:tu_{1:t}u1:t为条件。刚执行完控制utu_{t}ut之后,综合ztz_{t}zt之前计算后验为:
bel‾(xt)=p(xt∣z1:t−1,u1:t)(21)
\overline{bel}(x_{t})=p(x_{t}|z_{1:t-1},u_{1:t})\qquad(21)
bel(xt)=p(xt∣z1:t−1,u1:t)(21)\qquad在概率滤波框架下,式(21)概率常被称为预测,基于以前状态的后验,在综合时刻t的测量之前,预测时刻t的状态。由bel‾(xt)\overline{bel}(x_{t})bel(xt)计算bel(xt)bel(x_{t})bel(xt)称为修正或测量更新。
2.2.5 贝叶斯算法
\qquad该算法依据测量和控制数据计算置信度分布bel(),伪代码如下所示:
1:\qquad Algorithm Bayes_filter (bel(x_{t-1}),u_{t},z_{t})
2:\qquad \quad for all xt\ x_{t} xt do
3:\qquad \quad \quad bel‾\overline{bel}bel(x_{t})=∫\int∫p(x_{t}|u_{t},x_{t-1}) bel(x_{t-1}) dx_{t-1}
4:\qquad \quad \quad bel(x_{t})=η\etaη p(z_{t}|x_{t}) bel‾\overline{bel}bel(x_{t})
5:\qquad \quad endfor
6:\qquad \quad return bel(x_{t})
\qquad第3行中,通过utu_{t}ut和置信度bel(xt−1){bel}(x_{t-1})bel(xt−1)预测状态xtx_{t}xt得置信度bel‾(xt)\overline{bel}(x_{t})bel(xt)。
\qquad第4行中,通过观测的测量值ztz_{t}zt的概率乘以置信度bel‾(xt)\overline{bel}(x_{t})bel(xt)和归一化常数η\etaη (由全概率公式之和为1算出) 计算bel(xt)bel(x_{t})bel(xt)。
以下总结自《最优状态估计》【美】Dan Simon 著
2.3 Kalman滤波
图2Kalman滤波状态随时间变化过程
图2\quad Kalman滤波状态随时间变化过程
图2Kalman滤波状态随时间变化过程\qquad每一步Kalman滤波过程(由k-1时刻到k时刻)可以分为两个步骤:
\qquad\quad 1. 依据状态时间系统方程,实现由k-1时刻状态估计值的后验(x^k−1+\hat{x}_{k-1}^{+}x^k−1+)到k时刻状态估计值的先验(x^k−\hat{x}_{k}^{-}x^k−)的估计。
\qquad\quad 2. 利用在k时刻获得对状态带有噪声的测量值(yky_{k}yk),依据线性递推方程求解当估计误差的方差和最小的Kalman增益(KkK_{k}Kk),再带入到递推方程得到k时刻状态后验(x^k+\hat{x}_{k}^{+}x^k+)。
2.3.1 离散时间系统
\qquad给出离散时间系统方程:
xk=Fk−1xk−1+Gk−1uk−1+wk−1(22)
x_{k}=F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}\qquad (22)
xk=Fk−1xk−1+Gk−1uk−1+wk−1(22)\qquad其中uku_{k}uk是已知的输入,wkw_{k}wk是零均值的高斯白噪声,协方差为QkQ_{k}Qk,xkx_{k}xk为在k时刻的状态,Fk−1F_{k-1}Fk−1为由k-1时刻的状态到k时刻的状态转移矩阵,Gk−1G_{k-1}Gk−1为k-1时刻输入到状态的转移矩阵。
\qquad状态xtx_{t}xt的均值随时间的变化方程:
x‾k=E(xk)=Fk−1x‾k−1+Gk−1uk−1(23)
\overline{x}_{k}=E(x_{k})=F_{k-1}\overline{x}_{k-1}+G_{k-1}u_{k-1}\qquad(23)
xk=E(xk)=Fk−1xk−1+Gk−1uk−1(23)\qquad状态xtx_{t}xt的方差随时间的变化方程:
(xk−x‾k)(xk−x‾k)T(x_{k}-\overline{x}_{k})(x_{k}-\overline{x}_{k})^{T}(xk−xk)(xk−xk)T
=(Fk−1xk−1+Gk−1uk−1+wk−1−x‾k)(Fk−1xk−1+Gk−1uk−1+wk−1−x‾k)T=(F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}-\overline{x}_{k})(F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}-\overline{x}_{k})^{T}=(Fk−1xk−1+Gk−1uk−1+wk−1−xk)(Fk−1xk−1+Gk−1uk−1+wk−1−xk)T
=[Fk−1(xk−1−x‾k−1)+wk−1][Fk−1(xk−1−x‾k−1)+wk−1]T=[F_{k-1}(x_{k-1}-\overline{x}_{k-1})+w_{k-1}][F_{k-1}(x_{k-1}-\overline{x}_{k-1})+w_{k-1}]^{T}=[Fk−1(xk−1−xk−1)+wk−1][Fk−1(xk−1−xk−1)+wk−1]T
=Fk−1(xk−1−x‾k−1)(xk−1−x‾k−1)TFk−1T+wk−1wk−1T+Fk−1(xk−1−x‾k−1)wk−1T+wk−1(xk−1−x‾k−1)TFk−1T(24)=F_{k-1}(x_{k-1}-\overline{x}_{k-1})(x_{k-1}-\overline{x}_{k-1})^{T}F_{k-1}^{T}+w_{k-1}w_{k-1}^{T}+F_{k-1}(x_{k-1}-\overline{x}_{k-1})w_{k-1}^{T}+w_{k-1}(x_{k-1}-\overline{x}_{k-1})^{T}F_{k-1}^{T}\qquad(24)=Fk−1(xk−1−xk−1)(xk−1−xk−1)TFk−1T+wk−1wk−1T+Fk−1(xk−1−xk−1)wk−1T+wk−1(xk−1−xk−1)TFk−1T(24)
\qquad取上式方程期望即为xkx_{k}xk的协方差,由(xk−x‾k)(x_{k}-\overline{x}_{k})(xk−xk)与wk−1w_{k-1}wk−1互不相关且E(wk−1)=0E(w_{k-1})=0E(wk−1)=0则上式化简为:
Pk=E[(xk−x‾k)(xk−x‾k)T]=Fk−1Pk−1Fk−1T+Qk−1(25)
P_{k}=E[(x_{k}-\overline{x}_{k})(x_{k}-\overline{x}_{k})^{T}]=F_{k-1}P_{k-1}F_{k-1}^{T}+Q_{k-1}\qquad(25)
Pk=E[(xk−xk)(xk−xk)T]=Fk−1Pk−1Fk−1T+Qk−1(25)\qquad上式称为离散时间Lyapunov方程或Stein方程。由上式可得Kalman滤波先验估计:
x^k−=Fk−1x^k−1++Gk−1uk−1(状态先验估计)(26)\hat{x}_{k}^{-}=F_{k-1}\hat{x}_{k-1}^{+}+G_{k-1}u_{k-1}\quad(状态先验估计)\qquad(26)x^k−=Fk−1x^k−1++Gk−1uk−1(状态先验估计)(26)Pk−=Fk−1Pk−1+Fk−1T+Qk−1(协方差先验估计)(27)P_{k}^{-}=F_{k-1}P_{k-1}^{+}F_{k-1}^{T}+Q_{k-1}\quad(协方差先验估计)\qquad(27)Pk−=Fk−1Pk−1+Fk−1T+Qk−1(协方差先验估计)(27)
2.3.2 递推最小二乘估计
\qquad利用最小二乘估计计算递推式中最优Kalman增益KkK_{k}Kk。线性的递推估计值为:yk=Hkxk+vk(28)
y_{k}=H_{k}x_{k}+v_{k}\qquad(28)yk=Hkxk+vk(28)x^k=x^k−1+Kk(yk−Hkx^k−1)(29)\hat{x}_{k}=\hat{x}_{k-1}+K_{k}(y_{k}-H_{k}\hat{x}_{k-1})\qquad(29)x^k=x^k−1+Kk(yk−Hkx^k−1)(29)式中HkH_{k}Hk为测量矩阵,vkv_{k}vk为均值为0,方差为RkR_{k}Rk的测量噪声(高斯白噪声)。KkK_{k}Kk为增益矩阵,(yk−Hkx^k−1)(y_{k}-H_{k}\hat{x}_{k-1})(yk−Hkx^k−1)为修正项。KkK_{k}Kk选择的最优标准使k时刻的估计误差的方差和最小,其方差和JkJ_{k}Jk如下所示:
Jk=E[(x1,k−x^1,k)2]+…+E[(xn,k−x^n,k)2]J_{k}=E[(x_{1,k}-\hat{x}_{1,k})^{2}]+\ldots+E[(x_{n,k}-\hat{x}_{n,k})^{2}]Jk=E[(x1,k−x^1,k)2]+…+E[(xn,k−x^n,k)2]
=E(εx1,k2+…+εxn,k2)=E(εx,kTεx,k)=E(\varepsilon_{x1,k}^{2}+\ldots+\varepsilon_{xn,k}^{2})=E(\varepsilon_{x,k}^{T}\varepsilon_{x,k})=E(εx1,k2+…+εxn,k2)=E(εx,kTεx,k)
=E[Tr(εx,kεx,kT)]=E[Tr(\varepsilon_{x,k}^{}\varepsilon_{x,k}^{T})]=E[Tr(εx,kεx,kT)]
=TrPk(30)=TrP_{k}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(30)=TrPk(30)
由:
E(εx,k)=E(x−x^k)=E[x−x^k−1−Kk(yk−Hkx^k−1)]E(\varepsilon_{x,k})=E(x_{}-\hat{x}_{k})=E[x_{}-\hat{x}_{k-1}-K_{k}(y_{k}-H_{k}\hat{x}_{k-1})]E(εx,k)=E(x−x^k)=E[x−x^k−1−Kk(yk−Hkx^k−1)]
=E[x−x^k−1−Kk(Hkx+vk−Hkx^k−1)]=E[x_{}-\hat{x}_{k-1}-K_{k}(H_{k}x_{}+v_{k}-H_{k}\hat{x}_{k-1})]=E[x−x^k−1−Kk(Hkx+vk−Hkx^k−1)]
=E[εx,k−1−KkHkεx,k−1−Kkvk]=E[\varepsilon_{x,k-1}-K_{k}H_{k}\varepsilon_{x,k-1}-K_{k}v_{k}]\qquad=E[εx,k−1−KkHkεx,k−1−Kkvk]
=(I−KkHk)E(εx,k−1)−KkE(vk)(31)=(I-K_{k}H_{k})E(\varepsilon_{x,k-1})-K_{k}E(v_{k})\qquad\qquad(31)=(I−KkHk)E(εx,k−1)−KkE(vk)(31)
式中PkP_{k}Pk是估计误差的协方差矩阵
εx,k=[εx1,k,εx2,k⋯εxn,k]T(32)
\varepsilon_{x,k}=[\varepsilon_{x1,k},\varepsilon_{x2,k}\cdots\varepsilon_{xn,k}]^{T}\qquad(32)
εx,k=[εx1,k,εx2,k⋯εxn,k]T(32)Pk=[E(εx1,k2)E(εx1,kεx2,k)⋯E(εx1,kεxn,k)⋮⋱⋮E(εxn,k)E(εx1,k)E(εxn,kεx2,k)⋯E(εxn,k2)](33)
P_{k}=\begin{bmatrix}
E(\varepsilon_{x1,k}^{2}) &E(\varepsilon_{x1,k}\varepsilon_{x2,k}) & \cdots & E(\varepsilon_{x1,k}\varepsilon_{xn,k}) \\
\vdots & \ddots & \vdots \\
E(\varepsilon_{xn,k}) E(\varepsilon_{x1,k}) &E(\varepsilon_{xn,k}\varepsilon_{x2,k})& \cdots & E(\varepsilon_{xn,k}^{2})
\end{bmatrix}\qquad(33)
Pk=⎣⎢⎡E(εx1,k2)⋮E(εxn,k)E(εx1,k)E(εx1,kεx2,k)⋱E(εxn,kεx2,k)⋯⋮⋯E(εx1,kεxn,k)E(εxn,k2)⎦⎥⎤(33)化简PkP_{k}Pk可得:
Pk=E(εx,kεx,kT)P_{k}=E(\varepsilon_{x,k}\varepsilon_{x,k}^{T})Pk=E(εx,kεx,kT)
=E{[(I−KkHk)εx,k−1−Kkvk][(I−KkHk)εx,k−1−Kkvk]T}=E\{[(I-K_{k}H_{k})\varepsilon_{x,k-1}-K_{k}v_{k}][(I-K_{k}H_{k})\varepsilon_{x,k-1}-K_{k}v_{k}]^{T}\}=E{[(I−KkHk)εx,k−1−Kkvk][(I−KkHk)εx,k−1−Kkvk]T}
=(I−KkHk)E(εx,k−1εx,k−1T)(I−KkHk)T−KkE(vkεx,k−1T)(I−KkHk)T−(I−KkHk)E(vkTεx,k−1)KkT+KkE(vkvkT)KkT(34)=(I-K_{k}H_{k})E(\varepsilon_{x,k-1}\varepsilon_{x,k-1}^{T})(I-K_{k}H_{k})^{T}-K_{k}E(v_{k}\varepsilon_{x,k-1}^{T})(I-K_{k}H_{k})^{T}-(I-K_{k}H_{k})^{}E(v_{k}^{T}\varepsilon_{x,k-1}^{})K_{k}^{T}+K_{k}E(v_{k}v_{k}^{T})K_{k}^{T}\qquad(34)=(I−KkHk)E(εx,k−1εx,k−1T)(I−KkHk)T−KkE(vkεx,k−1T)(I−KkHk)T−(I−KkHk)E(vkTεx,k−1)KkT+KkE(vkvkT)KkT(34)
\qquad由εx,k−1\varepsilon_{x,k-1}εx,k−1(k-1时刻的估计误差)与vkv_{k}vk(k时刻的测量噪声)相互独立又E(vk)E(v_{k})E(vk)=0,因此:
E(vkTεx,k−1)=E(vk)E(εx,k−1)=0(35)
E(v_{k}^{T}\varepsilon_{x,k-1}^{})=E(v_{k})E(\varepsilon_{x,k-1})=0\qquad(35)E(vkTεx,k−1)=E(vk)E(εx,k−1)=0(35)Pk=(I−KkHk)Pk−1(I−KkHk)T+KkRkKkT=(I−KkHk)Pk−1(36)\qquad\qquad P_{k}=(I-K_{k}H_{k})P_{k-1}(I-K_{k}H_{k})^{T}+K_{k}R_{k}K_{k}^{T}=(I-K_{k}H_{k})P_{k-1}\qquad(36)
Pk=(I−KkHk)Pk−1(I−KkHk)T+KkRkKkT=(I−KkHk)Pk−1(36) \qquad对JkJ_{k}Jk求导得:∂Jk∂Kk=(I−KkHk)Pk−1(−HkT)+KkRk=0(37)
\frac{\partial J_{k}}{\partial K_{k}}=(I-K_{k}H_{k})P_{k-1}(-H_{k}^{T})+K_{k}R_{k}=0\qquad(37)
∂Kk∂Jk=(I−KkHk)Pk−1(−HkT)+KkRk=0(37) \qquad求的:Kk=Pk−1HkT(HkPk−1HkT+Rk)−1(38)
K_{k}=P_{k-1}H_{k}^{T}(H_{k}P_{k-1}H_{k}^{T}+R_{k})^{-1}\qquad(38)
Kk=Pk−1HkT(HkPk−1HkT+Rk)−1(38)由以上可得Kalman滤波测量更新:Kk=Pk−HkT(HkPk−HkT+Rk)−1(39)K_{k}=P_{k}^{-}H_{k}^{T}(H_{k}P_{k}^{-}H_{k}^{T}+R_{k})^{-1}\qquad(39)Kk=Pk−HkT(HkPk−HkT+Rk)−1(39)x^k+=x^k−+Kk(yk−Hkx^k−)(后验分布)(40)\hat{x}_{k}^{+}=\hat{x}_{k}^{-}+K_{k}(y_{k}-H_{k}\hat{x}_{k}^{-})\quad(后验分布)\qquad(40) x^k+=x^k−+Kk(yk−Hkx^k−)(后验分布)(40)Pk+=(I−KkHk)Pk−(41)P_{k}^{+}=(I-K_{k}H_{k})P_{k}^{-}\qquad(41)Pk+=(I−KkHk)Pk−(41)\qquad递推方程中递推的时间间隔是由k时刻到k-1时刻表示,而应用在更新方程中是在同一个时刻,只是先验和后验的差距(是否获得在k时刻的测量值)。
\qquad先验是指以k-1时刻和之前的测量值估计xkx_{k}xk的状态值,计算方法为以k-1时刻和之前的测量值为条件计算xkx_{k}xk的期望值。后验则是在先验的基础上增加k时刻的测量值yky_{k}yk。
\qquad有以上两步,得Kalman系统方程:
x^k−=Fk−1x^k−1++Gk−1uk−1(状态先验估计)(42)\hat{x}_{k}^{-}=F_{k-1}\hat{x}_{k-1}^{+}+G_{k-1}u_{k-1}\quad(状态先验估计)\qquad(42)x^k−=Fk−1x^k−1++Gk−1uk−1(状态先验估计)(42)Pk−=Fk−1Pk−1+Fk−1T+Qk−1(协方差先验估计)(43)P_{k}^{-}=F_{k-1}P_{k-1}^{+}F_{k-1}^{T}+Q_{k-1}\quad(协方差先验估计)\qquad(43)Pk−=Fk−1Pk−1+Fk−1T+Qk−1(协方差先验估计)(43)Kk=Pk−HkT(HkPk−HkT+Rk)−1(44)K_{k}=P_{k}^{-}H_{k}^{T}(H_{k}P_{k}^{-}H_{k}^{T}+R_{k})^{-1}\qquad(44)Kk=Pk−HkT(HkPk−HkT+Rk)−1(44)x^k+=x^k−+Kk(yk−Hkx^k−)(后验分布)(45)\hat{x}_{k}^{+}=\hat{x}_{k}^{-}+K_{k}(y_{k}-H_{k}\hat{x}_{k}^{-})\quad(后验分布)\qquad(45) x^k+=x^k−+Kk(yk−Hkx^k−)(后验分布)(45)Pk+=(I−KkHk)Pk−(46)P_{k}^{+}=(I-K_{k}H_{k})P_{k}^{-}\qquad(46)Pk+=(I−KkHk)Pk−(46)\qquadKalman滤波器初始化如下:
x^0+=E(x0)=x‾0(47)\hat{x}_{0}^{+}=E(x_{0})=\overline{x}_{0}\qquad(47)x^0+=E(x0)=x0(47) P0+=E[(x0−x^0+)(x0−x^0+)T](48)P^{+}_{0}=E[(x_{0}-\hat{x}^{+}_{0})(x_{0}-\hat{x}^{+}_{0})^{T}]\qquad(48)P0+=E[(x0−x^0+)(x0−x^0+)T](48)\qquad由式(47)可以实现推导过程中运算多项式中状态期望和状态估计值的联系。