滤波估计理论(三)——扩展卡尔曼滤波器(Extended Kalman Filter)

在经典Kalman滤波的推导中,我们假设系统的动态模型和量测模型皆是线性的,因而可以基于Gaussian分布的线性化性质,直接推导出线性变换后的分布。但在实际生活中,线性模型是一个强假设,大多数的系统并不是线性的,其动态模型和量测模型通常通过一个非线性函数进行映射:
x k = f ( x k − 1 , u k − 1 ) + q k − 1 z k = h ( x k ) + r k \begin{aligned} \bm{x}_k&=f\left(\bm{x}_{k-1},\bm{u}_{k-1}\right)+\bm{q}_{k-1}\\ \bm{z}_k&=h\left(\bm{x}_k\right)+\bm{r}_{k} \end{aligned} xkzk=f(xk1,uk1)+qk1=h(xk)+rk

由于Gaussian分布并没有任何的分线性映射性质,如何求解上述模型成为了一个难题。自然而然地,如果我们能有某些线性映射的组合去近似表示该非线性映射,那么这一难题就可以得到解决。

矢量函数的泰勒级数

我们知道任何一元函数都可以表示为无限连加的形式,即泰勒级数(Taylor Series),而对于矢量函数同样如此,这里直接给出矢量函数泰勒级数展开定义:

定理1:对于多元函数 y = g ( x ) , x ∈ R n , y ∈ R m \bm{y}=\bm{g}(\bm{x}),x\in\mathbb{R}^n,y\in\mathbb{R}^m y=g(x),xRn,yRm,令 x = μ + δ x \bm{x}=\bm{\mu}+\delta\bm{x} x=μ+δx,则 g ( x ) \bm{g}(\bm{x}) g(x)其在 μ \bm{\mu} μ点处的泰勒级数为:
g ( x ) = g ( μ + δ x ) ≈ g ( μ ) + J ( μ ) δ x + 1 2 ∑ i = 1 m [ δ x T H i ( μ ) δ x ] u i + ⋯ (1) \bm{g}(\bm{x})=\bm{g}(\bm{\mu}+\delta\bm{x})\approx\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x}+\frac{1}{2}\sum\limits_{i=1}^m[\delta\bm{x}^T\bm{H}_i(\bm{\mu})\delta\bm{x}]\bm{u}_i+\cdots \tag{1} g(x)=g(μ+δx)g(μ)+J(μ)δx+21i=1m[δxTHi(μ)δx]ui+(1)

式中 u i = [ 0 , ⋯   , 1 , ⋯   , 0 ] T \bm{u}_i=[0,\cdots,1,\cdots,0]^T ui=[0,,1,,0]T为第 i i i行为 1 1 1的单位矢量; J ( μ ) \bm{J}(\bm{\mu}) J(μ)表示 g ( x ) \bm{g}(\bm{x}) g(x)对变量 x \bm{x} xJacobian矩阵,对应位置处元素为:
[ J ( μ ) ] j , j ′ = ∂ g j ( x ) ∂ x j ′ ∣ x = μ [\bm{J}(\bm{\mu})]_{j,j'}=\left.\frac{\partial g_j(\bm{x})}{\partial x_{j'}}\right|_{\bm{x}=\bm{\mu}} [J(μ)]j,j=xjgj(x)x=μ

式中 g j ( x ) g_j(\bm{x}) gj(x)为矢量函数 g ( x ) = [ g 1 ( x ) , ⋯   , g m ( x ) ] T \bm{g}(x)=[g_1(\bm{x}),\cdots,g_m(\bm{x})]^T g(x)=[g1(x),,gm(x)]T中第 j j j行所表示的实值函数; x j ′ x_{j'} xj为变量 x = [ x 1 , ⋯   , x n ] T \bm{x}=[x_1,\cdots,x_n]^T x=[x1,,xn]T中第 j ′ j' j行对应的元素。

H i ( μ ) \bm{H}_i(\bm{\mu}) Hi(μ)表示对变量 x \bm{x} xHessian矩阵,对应位置处元素为:
[ H i ( μ ) ] j , j ′ = ∂ 2 g i ( x ) ∂ x j ∂ x j ′ ∣ x = μ [\bm{H}_i(\bm{\mu})]_{j,j'}=\left.\frac{\partial^2g_i(\bm{x})}{\partial x_j\partial x_{j'}}\right|_{\bm{x}=\bm{\mu}} [Hi(μ)]j,j=xjxj2gi(x)x=μ

式中 g i ( x ) g_i(\bm{x}) gi(x) x j x_j xj x j ′ x_{j'} xj的含义参照Jacobian矩阵。

注:这里需要注意的是与Jacobian矩阵不同,Hessian要求被求导的函数必须是一个实值函数,因此这里我们说 H i ( μ ) \bm{H}_i(\bm{\mu}) Hi(μ)而非 H ( μ ) \bm{H}(\bm{\mu}) H(μ)是Hessian矩阵。而Jacobian矩阵的被求导函数既可以为矢量函数也可以为实值函数,当Jacobian矩阵的求导函数为实值函数时,Jacobian矩阵将退化为梯度矩阵

高斯分布非线性变换的线性近似

假设现在有一个高斯随机变量 x ∼ N ( μ , P ) \bm{x}\sim N(\bm{\mu},\bm{P}) xN(μ,P)和对应的非线性变换 y = g ( x ) \bm{y}=\bm{g}(\bm{x}) y=g(x),利用式(1)对 g ( x ) \bm{g}(\bm{x}) g(x)进行泰勒展开并取其前可获得其对应的线性近似如下:
g ( x ) ≈ g ( μ ) + J ( μ ) δ x \bm{g}(\bm{x})\approx\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x} g(x)g(μ)+J(μ)δx

进而可以获得线性近似后的分布如下:
E [ g ( x ) ] ≈ E [ g ( μ ) + J ( μ ) δ x ] = g ( μ ) + J ( μ ) E [ δ x ] = g ( μ ) C o v [ g ( x ) ] ≈ E [ ( g ( x ) − E [ g ( x ) ] ) ( g ( x ) − E [ g ( x ) ] ) T ] ≈ E [ ( g ( x ) − g ( μ ) ) ( g ( x ) − g ( μ ) ) T ] = E [ ( g ( μ ) + J ( μ ) δ x − g ( μ ) ) ( g ( μ ) + J ( μ ) δ x − g ( μ ) ) T ] = E [ ( J ( μ ) δ x ) ( J ( μ ) δ x ) T ] = J ( μ ) E [ δ x δ x T ] J T ( μ ) = J ( μ ) P J T ( μ ) (2) \begin{aligned} E[\bm{g}(\bm{x})]&\approx E[\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x}]\\ &=\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})E[\delta\bm{x}]\\ &=\bm{g}(\bm{\mu})\\ Cov[\bm{g}(\bm{x})]&\approx E[(\bm{g}(\bm{x})-E[\bm{g}(\bm{x})])(\bm{g}(\bm{x})-E[\bm{g}(\bm{x})])^T]\\ &\approx E[(\bm{g}(\bm{x})-\bm{g}(\bm{\mu}))(\bm{g}(\bm{x})-\bm{g}(\bm{\mu}))^T]\\ &=E[(\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x}-\bm{g}(\bm{\mu}))(\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x}-\bm{g}(\bm{\mu}))^T]\\ &=E[(\bm{J}(\bm{\mu})\delta\bm{x})(\bm{J}(\bm{\mu})\delta\bm{x})^T]\\ &=\bm{J}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T]\bm{J}^T(\bm{\mu})\\ &=\bm{J}(\bm{\mu})\bm{P}\bm{J}^T(\bm{\mu})\\ \end{aligned} \tag{2} E[g(x)]Cov[g(x)]E[g(μ)+J(μ)δx]=g(μ)+J(μ)E[δx]=g(μ)E[(g(x)E[g(x)])(g(x)E[g(x)])T]E[(g(x)g(μ))(g(x)g(μ))T]=E[(g(μ)+J(μ)δxg(μ))(g(μ)+J(μ)δxg(μ))T]=E[(J(μ)δx)(J(μ)δx)T]=J(μ)E[δxδxT]JT(μ)=J(μ)PJT(μ)(2)

g ~ ( x ) = [ x g ( x ) ] T \tilde{\bm{g}}(\bm{x})=[\begin{array}{c}\bm{x} &\bm{g}(\bm{x})\end{array}]^T g~(x)=[xg(x)]T,进而我们可以得到 x \bm{x} x g ( x ) \bm{g}(\bm{x}) g(x)的联合分布为:
E [ g ~ ( μ ) ] ≈ [ μ g ( μ ) ] C o v [ g ~ ( μ ) ] ≈ J ~ ( μ ) P J T ~ ( μ ) = [ I J ( μ ) ] P [ I J ( μ ) ] T = [ P P J T ( μ ) J ( μ ) P J ( μ ) P J T ( μ ) ] (3) \begin{aligned} E[\tilde{\bm{g}}(\bm{\mu})]&\approx\left[\begin{array}{c}\bm{\mu}\\\bm{g}(\bm{\mu})\end{array}\right]\\ Cov[\tilde{\bm{g}}(\bm{\mu})]&\approx\tilde{\bm{J}}(\bm{\mu})\bm{P}\tilde{\bm{J}^T}(\bm{\mu})\\ &=\left[\begin{array}{c}\bm{I}\\\bm{J}(\bm{\mu})\end{array}\right]\bm{P}\left[\begin{array}{c}\bm{I}\\\bm{J}(\bm{\mu})\end{array}\right]^T\\ &=\left[\begin{matrix} \bm{P} & \bm{P}\bm{J}^T(\bm{\mu})\\ \bm{J}(\bm{\mu})\bm{P} & \bm{J}(\bm{\mu})\bm{P}\bm{J}^T(\bm{\mu}) \end{matrix}\right] \end{aligned} \tag{3} E[g~(μ)]Cov[g~(μ)][μg(μ)]J~(μ)PJT~(μ)=[IJ(μ)]P[IJ(μ)]T=[PJ(μ)PPJT(μ)J(μ)PJT(μ)](3)
由于 g ( x ) \bm{g}(\bm{x}) g(x)是由 x \bm{x} x变换而来,其分布相当于条件分布 p ( g ( x ) ∣ x ) p(\bm{g}(\bm{x})|\bm{x}) p(g(x)x),式(3)实际上和我们在Kalman滤波推导中提到过的由条件分布求解联合分布的公式是完全一致的。

一阶近似线性近似EKF

加性噪声模型

在状态空间模型中,很多时候我们会假设控制变量 u k \bm{u}_k uk为零,而只考虑系统本身的状态变量 x k \bm{x}_k xk和噪声 q k \bm{q}_k qk;又或者如量测方程一般,本身就并不包含控制变量。此时无论是预测方程还是量测方程都为 y = g ( x ) + q \bm{y}=\bm{g}(\bm{x})+\bm{q} y=g(x)+q形式,由于噪声变量 q \bm{q} q是附加在原状态变量上的,这一类模型统称为加性噪声模型

在加性噪声模型下我们有:
y = g ( x ) + q x ∼ N ( μ , P ) q ∼ M ( 0 , Q ) \begin{aligned} \bm{y}&=\bm{g}(\bm{x})+\bm{q}\\ \bm{x}&\sim N(\bm{\mu},\bm{P})\\ \bm{q}&\sim M(\bm{0},\bm{Q}) \end{aligned} yxq=g(x)+qN(μ,P)M(0,Q)

对联合分布 g ~ ( x ) = [ x g ( x ) ] T \tilde{\bm{g}}(\bm{x})=[\begin{array}{c}\bm{x} &\bm{g}(\bm{x})\end{array}]^T g~(x)=[xg(x)]T取一阶泰勒近似有:
g ~ ( x ) ≈ [ μ + I δ x g ( μ ) + q + J ( μ ) δ x ] \tilde{\bm{g}}(\bm{x})\approx\left[\begin{array}{c}\bm{\mu}+\bm{I}\delta\bm{x}\\\bm{g}(\bm{\mu})+\bm{q}+\bm{J}(\bm{\mu})\delta\bm{x}\end{array}\right] g~(x)[μ+Iδxg(μ)+q+J(μ)δx]

对其求取均值,其中已知 q \bm{q} q和所有 δ x \delta\bm{x} δx项均值均为 0 \bm{0} 0,有:
E [ g ~ ( x ) ] ≈ [ μ + E [ I δ x ] g ( μ ) + E [ q ] + E [ J ( μ ) δ x ] ] = [ μ g ( μ ) ] \begin{aligned} E[\tilde{\bm{g}}(\bm{x})]&\approx\left[\begin{array}{c}\bm{\mu}+E[\bm{I}\delta\bm{x}]\\\bm{g}(\bm{\mu})+E[\bm{q}]+E[\bm{J}(\bm{\mu})\delta\bm{x}]\end{array}\right]\\ &=\left[\begin{array}{c}\bm{\mu}\\\bm{g}(\bm{\mu})\end{array}\right] \end{aligned} E[g~(x)][μ+E[Iδx]g(μ)+E[q]+E[J(μ)δx]]=[μg(μ)]

将上述两式同时带入方差的定义中有:
C o v [ g ~ ( x ) ] ≈ E [ ( g ~ ( x ) − E [ g ~ ( x ) ] ) ( g ~ ( x ) − E [ g ~ ( x ) ] ) T ] = E [ [ μ + I δ x − μ g ( μ ) + q + J ( μ ) δ x − g ( μ ) ] [ μ + I δ x − μ g ( μ ) + q + J ( μ ) δ x − g ( μ ) ] T ] = [ E [ δ x δ x T ] E [ δ x δ x T ] J T ( μ ) J ( μ ) E [ δ x δ x T ] J ( μ ) E [ δ x δ x T ] J T ( μ ) + E [ δ q δ q T ] ] = [ P P J T ( μ ) J ( μ ) P J ( μ ) P J T ( μ ) + Q ] \begin{aligned} Cov[\tilde{\bm{g}}(\bm{x})]&\approx E[\left(\tilde{\bm{g}}(\bm{x})-E[\tilde{\bm{g}}(\bm{x})]\right)\left(\tilde{\bm{g}}(\bm{x})-E[\tilde{\bm{g}}(\bm{x})]\right)^T]\\ &=E\left[\left[\begin{array}{c}\bm{\mu}+\bm{I}\delta\bm{x}-\bm{\mu}\\ \bm{g}(\bm{\mu})+\bm{q}+\bm{J}(\bm{\mu})\delta\bm{x}-\bm{g}(\bm{\mu})\end{array}\right]\left[\begin{array}{c}\bm{\mu}+\bm{I}\delta\bm{x}-\bm{\mu}\\ \bm{g}(\bm{\mu})+\bm{q}+\bm{J}(\bm{\mu})\delta\bm{x}-\bm{g}(\bm{\mu})\end{array}\right]^T\right]\\ &=\left[\begin{matrix} E[\delta\bm{x}\delta\bm{x}^T] & E[\delta\bm{x}\delta\bm{x}^T]\bm{J}^T(\bm{\mu})\\ \bm{J}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T] & \bm{J}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T]\bm{J}^T(\bm{\mu})+E[\delta\bm{q}\delta\bm{q}^T] \end{matrix}\right]\\ &=\left[\begin{matrix} \bm{P} & \bm{P}\bm{J}^T(\bm{\mu})\\ \bm{J}(\bm{\mu})\bm{P} & \bm{J}(\bm{\mu})\bm{P}\bm{J}^T(\bm{\mu})+\bm{Q} \end{matrix}\right] \end{aligned} Cov[g~(x)]E[(g~(x)E[g~(x)])(g~(x)E[g~(x)])T]=E[[μ+Iδxμg(μ)+q+J(μ)δxg(μ)][μ+Iδxμg(μ)+q+J(μ)δxg(μ)]T]=[E[δxδxT]J(μ)E[δxδxT]E[δxδxT]JT(μ)J(μ)E[δxδxT]JT(μ)+E[δqδqT]]=[PJ(μ)PPJT(μ)J(μ)PJT(μ)+Q]

现在再回到我们的状态估计问题中来,在加性噪声模型下,待估计系统的状态空间模型为:
{ x k = f ( x k − 1 ) + q k − 1 z k = h ( x k ) + r k \left\{ \begin{aligned} \bm{x}_k&=\bm{f}(\bm{x}_{k-1})+\bm{q}_{k-1}\\ \bm{z}_k&=\bm{h}(\bm{x}_k)+\bm{r}_k \end{aligned}\right. {xkzk=f(xk1)+qk1=h(xk)+rk

类比Kalman滤波的推导过程,假设我们有了 k k k时刻的先验分布 p ( x k − 1 ∣ z 1 : k − 1 ) ∼ N ( μ k − 1 , P k − 1 ) p(\bm{x}_{k-1}|\bm{z}_{1:k-1})\sim N(\bm{\mu}_{k-1},\bm{P}_{k-1}) p(xk1z1:k1)N(μk1,Pk1)和过程噪声 p ( q k − 1 ) ∼ N ( 0 , Q k − 1 ) p(\bm{q}_{k-1})\sim N(\bm{0},\bm{Q}_{k-1}) p(qk1)N(0,Qk1),那么根据状态转移方程我们很容易得到联合分布 p ( x k , x k − 1 ∣ z 1 : k − 1 ) p(\bm{x}_k,\bm{x}_{k-1}|\bm{z}_{1:k-1}) p(xk,xk1z1:k1)为:
p ( x k , x k − 1 ∣ z 1 : k − 1 ) ∼ N ( f ( μ k − 1 ) , F ( μ k − 1 ) P k − 1 F T ( μ k − 1 ) ) + Q k − 1 ) p(\bm{x}_k,\bm{x}_{k-1}|\bm{z}_{1:k-1})\sim N(\bm{f}(\bm{\mu}_{k-1}),\bm{F}(\bm{\mu}_{k-1})\bm{P}_{k-1}\bm{F}^T(\bm{\mu}_{k-1}))+\bm{Q}_{k-1}) p(xk,xk1z1:k1)N(f(μk1)F(μk1)Pk1FT(μk1))+Qk1)

式中, F ( μ ) \bm{F}(\bm{\mu}) F(μ)为对应的Jacobian矩阵。同样我们简记 p ( x k , x k − 1 ∣ z 1 : k − 1 ) ∼ N ( μ ^ k , P ^ k ) p(\bm{x}_k,\bm{x}_{k-1}|\bm{z}_{1:k-1})\sim N(\hat{\bm{\mu}}_k,\hat{\bm{P}}_k) p(xk,xk1z1:k1)N(μ^k,P^k),根据量测方程我们可以写出条件概率 p ( z k ∣ x k ) ∼ N ( H k x k , R k ) p(\bm{z}_k|\bm{x}_k)\sim N(\bm{H}_k\bm{x}_k,\bm{R}_k) p(zkxk)N(Hkxk,Rk),进而得到联合概率 p ( x k , z k ∣ z 1 : k − 1 ) p(\bm{x}_k,\bm{z}_k|\bm{z}_{1:k-1}) p(xk,zkz1:k1)为:
p ( x k , z k ∣ z 1 : k − 1 ) ∼ N ( [ μ ^ k h ( μ ^ k ) ] , [ P ^ k P ^ k H T ( μ ^ k ) H ( μ ^ k ) P ^ k H ( μ ^ k ) P ^ k H T ( μ ^ k ) + R k ] ) p(\bm{x}_k,\bm{z}_k|\bm{z}_{1:k-1})\sim N(\left[\begin{array}{c}\hat{\bm{\mu}}_k\\ \bm{h}(\hat{\bm{\mu}}_k) \end{array}\right],\begin{bmatrix} \hat{\bm{P}}_k & \hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k)\\ \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k & \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k) +\bm{R}_k \end{bmatrix}) p(xk,zkz1:k1)N([μ^kh(μ^k)],[P^kH(μ^k)P^kP^kHT(μ^k)H(μ^k)P^kHT(μ^k)+Rk])

进而我们可以得到条件概率 p ( x k , z k ∣ z 1 : k − 1 ) p(\bm{x}_k,\bm{z}_k|\bm{z}_{1:k-1}) p(xk,zkz1:k1)为:
p ( x k ∣ z k , z 1 : k − 1 ) ∼ N ( μ ~ k , P ~ k ) μ ~ k = μ ^ k + P ^ k H T ( μ ^ k ) [ H ( μ ^ k ) P ^ k H T ( μ ^ k ) + R k ] − 1 ( z k − h ( μ ^ k ) P ~ k = P ^ k − P ^ k H T ( μ ^ k ) [ H ( μ ^ k ) P ^ k H T ( μ ^ k ) + R k ] − 1 H ( μ ^ k ) P ^ k \begin{aligned} &p(\bm{x}_k|\bm{z}_k,\bm{z}_{1:k-1})\sim N(\tilde{\bm{\mu}}_k,\tilde{\bm{P}}_k)\\ &\tilde{\bm{\mu}}_k=\hat{\bm{\mu}}_k+\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k)[ \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k) +\bm{R}_k]^{-1}(\bm{z}_k-\bm{h}(\hat{\bm{\mu}}_k)\\ &\tilde{\bm{P}}_k=\hat{\bm{P}}_k-\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k)[ \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k) +\bm{R}_k]^{-1}\bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k \end{aligned} p(xkzk,z1:k1)N(μ~k,P~k)μ~k=μ^k+P^kHT(μ^k)[H(μ^k)P^kHT(μ^k)+Rk]1(zkh(μ^k)P~k=P^kP^kHT(μ^k)[H(μ^k)P^kHT(μ^k)+Rk]1H(μ^k)P^k

至此我们就得到了加性噪声模型下的一阶近似EKF算法,整理如下:
一 阶 近 似 E K F ( 加 性 ) { 一 步 预 测 { x ^ k = f ( μ k − 1 ) P ^ k = F ( μ k − 1 ) P k − 1 F T ( μ k − 1 ) ) + Q k − 1 量 测 更 新 { K = P ^ k H T ( μ ^ k ) [ H ( μ ^ k ) P ^ k H T ( μ ^ k ) + R k ] − 1 x ~ k = μ ^ k + K ( z k − h ( μ ^ k ) ) P ~ k = P ^ k − K H ( μ ^ k ) P ^ k 一阶近似EKF(加性)\left\{ \begin{aligned} 一步预测&\left\{\begin{aligned} \hat{\bm{x}}_k &= \bm{f}(\bm{\mu}_{k-1}) \\ \hat{\bm{P}}_k &= \bm{F}(\bm{\mu}_{k-1})\bm{P}_{k-1}\bm{F}^T(\bm{\mu}_{k-1}))+\bm{Q}_{k-1} \end{aligned}\right.\\ 量测更新&\left\{\begin{aligned} \bm{K} &= \hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k)[ \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k) +\bm{R}_k]^{-1}\\ \tilde{\bm{x}}_k &= \hat{\bm{\mu}}_k+\bm{K}(\bm{z}_k-\bm{h}(\hat{\bm{\mu}}_k))\\ \tilde{\bm{P}}_k &= \hat{\bm{P}}_k-\bm{K}\bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k \end{aligned}\right. \end{aligned} \right. EKF{x^kP^k=f(μk1)=F(μk1)Pk1FT(μk1))+Qk1Kx~kP~k=P^kHT(μ^k)[H(μ^k)P^kHT(μ^k)+Rk]1=μ^k+K(zkh(μ^k))=P^kKH(μ^k)P^k

非加性噪声模型

而如果在状态空间模型中控制变量 u k \bm{u}_k uk不为零,此时预测方程会变为 y = g ( x , q ) \bm{y}=\bm{g}(\bm{x},\bm{q}) y=g(x,q)形式。此时噪声变量 q \bm{q} q是和状态变量 x \bm{x} x同为 g ( x ) \bm{g}(\bm{x}) g(x)的自变量,两者显然并不具有可加性,因此这一类模型统称为非加性噪声模型

对于非加性噪声模型来说,其泰勒级数在式(1)的基础上需要进行一定改动,这里直接给出结论:
定理2:假设 g ( x , u ) ∈ R n \bm{g}(\bm{x},\bm{u})\in\mathbb{R}^n g(x,u)Rn为关于自变量为 x ∈ R n \bm{x}\in\mathbb{R}^n xRn u ∈ R m \bm{u}\in\mathbb{R}^m uRm的矢量函数,则 g ( x , u ) \bm{g}(\bm{x},\bm{u}) g(x,u)在点 ( x 0 , u 0 ) (\bm{x}_0,\bm{u}_0) (x0,u0)处的泰勒级数为:
g ( x , u ) = g ( x 0 , u 0 ) + J x ( x 0 , u 0 ) δ x + J u ( x 0 , u 0 ) δ u + ⋯ \bm{g}(\bm{x},\bm{u})=\bm{g}(\bm{x}_0,\bm{u}_0)+\bm{J}_\bm{x}(\bm{x}_0,\bm{u}_0)\delta\bm{x}+\bm{J}_\bm{u}(\bm{x}_0,\bm{u}_0)\delta\bm{u}+\cdots g(x,u)=g(x0,u0)+Jx(x0,u0)δx+Ju(x0,u0)δu+

那么,对于非线性变换 y = g ( x , q ) \bm{y}=\bm{g}(\bm{x},\bm{q}) y=g(x,q) x ∼ N ( μ , P ) \bm{x}\sim N(\bm{\mu},\bm{P}) xN(μ,P) q ∼ N ( 0 , Q ) \bm{q}\sim N(\bm{0},\bm{Q}) qN(0,Q),联合分布 g ~ ( x ) = [ x g ( x , q ) ] T \tilde{\bm{g}}(\bm{x})=[\begin{array}{cc}\bm{x}&\bm{g}(\bm{x},\bm{q})\end{array}]^T g~(x)=[xg(x,q)]T,可以求得均值为:
E [ g ~ ( x ) ] = [ E [ x ] E [ g ( μ , 0 ) + J x ( μ , 0 ) δ x + J q ( μ , 0 ) δ q ] ] = [ μ g ( μ ) + J x E [ ( μ ) δ x ] + J q ( μ ) E [ δ q ] ] = [ μ g ( μ ) ] \begin{aligned} E[\tilde{\bm{g}}(\bm{x})]&=\left[\begin{array}{c}E[\bm{x}]\\ E[\bm{g}(\bm{\mu},\bm{0})+\bm{J}_\bm{x}(\bm{\mu},\bm{0})\delta\bm{x}+\bm{J}_\bm{q}(\bm{\mu},\bm{0})\delta\bm{q}]\end{array}\right]\\ &=\left[\begin{array}{c}\bm{\mu}\\ \bm{g}(\bm{\mu})+\bm{J}_\bm{x}E[(\bm{\mu})\delta\bm{x}]+\bm{J}_\bm{q}(\bm{\mu})E[\delta\bm{q}]\end{array}\right]\\ &=\left[\begin{array}{c}\bm{\mu}\\ \bm{g}(\bm{\mu})\end{array}\right]\\ \end{aligned} E[g~(x)]=[E[x]E[g(μ,0)+Jx(μ,0)δx+Jq(μ,0)δq]]=[μg(μ)+JxE[(μ)δx]+Jq(μ)E[δq]]=[μg(μ)]
同样,参考加性噪声模型的方法求解方法有:
C o v [ g ~ ( x ) ] ≈ E [ ( g ~ ( x ) − E [ g ~ ( x ) ] ) ( g ~ ( x ) − E [ g ~ ( x ) ] ) T ] = E [ [ δ x J x ( μ ) δ x + J q ( μ ) δ q ] [ δ x J x ( μ ) δ x + J q ( μ ) δ q ] T ] = [ E [ δ x δ x T ] E [ δ x δ x T ] J x T ( μ ) + E [ δ x δ q T ] J q T ( μ ) J x ( μ ) E [ δ x δ x T ] + J q ( μ ) E [ δ q δ x T ] J x ( μ ) E [ δ x δ x T ] J x ( μ ) + J q ( μ ) E [ δ q δ x T ] J x ( μ ) + J x ( μ ) E [ δ x δ q T ] J q ( μ ) + J q ( μ ) E [ δ q δ q T ] J q ( μ ) ] = [ P P J x T ( μ ) J x ( μ ) P J x ( μ ) P J x ( μ ) + J q ( μ ) Q J q ( μ ) ] \footnotesize \begin{aligned} Cov[\tilde{\bm{g}}(\bm{x})]&\approx E[\left(\tilde{\bm{g}}(\bm{x})-E[\tilde{\bm{g}}(\bm{x})]\right)\left(\tilde{\bm{g}}(\bm{x})-E[\tilde{\bm{g}}(\bm{x})]\right)^T]\\ &=E\left[\left[\begin{array}{c}\delta\bm{x}\\ \bm{J}_\bm{x}(\bm{\mu})\delta\bm{x}+\bm{J}_\bm{q}(\bm{\mu})\delta\bm{q}\end{array}\right]\left[\begin{array}{c}\delta\bm{x}\\ \bm{J}_\bm{x}(\bm{\mu})\delta\bm{x}+\bm{J}_\bm{q}(\bm{\mu})\delta\bm{q}\end{array}\right]^T\right]\\ &=\begin{bmatrix} E[\delta\bm{x}\delta\bm{x}^T] & E[\delta\bm{x}\delta\bm{x}^T]\bm{J}_\bm{x}^T(\bm{\mu})+E[\delta\bm{x}\delta\bm{q}^T]\bm{J}_\bm{q}^T(\bm{\mu})\\ \bm{J}_\bm{x}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T]+\bm{J}_\bm{q}(\bm{\mu})E[\delta\bm{q}\delta\bm{x}^T] & \begin{aligned} &\bm{J}_\bm{x}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T]\bm{J}_\bm{x}(\bm{\mu})+\bm{J}_\bm{q}(\bm{\mu})E[\delta\bm{q}\delta\bm{x}^T]\bm{J}_\bm{x}(\bm{\mu})+\\ &\bm{J}_\bm{x}(\bm{\mu})E[\delta\bm{x}\delta\bm{q}^T]\bm{J}_\bm{q}(\bm{\mu})+\bm{J}_\bm{q}(\bm{\mu})E[\delta\bm{q}\delta\bm{q}^T]\bm{J}_\bm{q}(\bm{\mu}) \end{aligned} \end{bmatrix}\\ &=\begin{bmatrix} \bm{P} & \bm{P}\bm{J}_\bm{x}^T(\bm{\mu})\\ \bm{J}_\bm{x}(\bm{\mu})\bm{P} & \bm{J}_\bm{x}(\bm{\mu})\bm{P}\bm{J}_\bm{x}(\bm{\mu})+\bm{J}_\bm{q}(\bm{\mu})\bm{Q}\bm{J}_\bm{q}(\bm{\mu}) \end{bmatrix} \end{aligned} Cov[g~(x)]E[(g~(x)E[g~(x)])(g~(x)E[g~(x)])T]=E[[δxJx(μ)δx+Jq(μ)δq][δxJx(μ)δx+Jq(μ)δq]T]=E[δxδxT]Jx(μ)E[δxδxT]+Jq(μ)E[δqδxT]E[δxδxT]JxT(μ)+E[δxδqT]JqT(μ)Jx(μ)E[δxδxT]Jx(μ)+Jq(μ)E[δqδxT]Jx(μ)+Jx(μ)E[δxδqT]Jq(μ)+Jq(μ)E[δqδqT]Jq(μ)=[PJx(μ)PPJxT(μ)Jx(μ)PJx(μ)+Jq(μ)QJq(μ)]
上式最后一步化简中利用了 x \bm{x} x q \bm{q} q不相关的,互协方差 E ( δ x δ q T ) = E ( δ q δ x T ) = 0 E(\delta\bm{x}\delta\bm{q}^T)=E(\delta\bm{q}\delta\bm{x}^T)=\bm{0} E(δxδqT)=E(δqδxT)=0的性质。

在有了非加性噪声模型下的Gaussian变换公式后,我们同样可以按照Kalman滤波的推导方法推导如下所示非加性噪声模型下的一阶近似EKF
{ x k = f ( x k − 1 , q k − 1 ) z k = h ( x k , r k ) \left\{ \begin{aligned} \bm{x}_k&=\bm{f}(\bm{x}_{k-1}, \bm{q}_{k-1})\\ \bm{z}_k&=\bm{h}(\bm{x}_k,\bm{r}_k) \end{aligned}\right. {xkzk=f(xk1,qk1)=h(xk,rk)

具体的推导步骤和加性噪声模型完全一致,这里不再赘述,直接给出结论:
一 阶 近 似 E K F ( 非 加 性 ) { 一 步 预 测 { x ^ k = f ( μ k − 1 , 0 ) P ^ k = F x ( μ k − 1 ) P k − 1 F x T ( μ k − 1 ) + F q ( μ k − 1 ) Q k − 1 F q T ( μ k − 1 ) 量 测 更 新 { S = H x ( μ k − 1 ) P k − 1 H x T ( μ k − 1 ) + H r ( μ k − 1 ) Q k − 1 H r T ( μ k − 1 ) K = P ^ k H x T ( μ ^ k ) S − 1 x ~ k = μ ^ k + K ( z k − h ( μ ^ k , 0 ) ) P ~ k = P ^ k − K H x ( μ ^ k ) P ^ k \footnotesize 一阶近似EKF(非加性)\left\{ \begin{aligned} 一步预测&\left\{\begin{aligned} \hat{\bm{x}}_k &= \bm{f}(\bm{\mu}_{k-1},\bm{0}) \\ \hat{\bm{P}}_k &= \bm{F}_\bm{x}(\bm{\mu}_{k-1})\bm{P}_{k-1}\bm{F}_\bm{x}^T(\bm{\mu}_{k-1})+\bm{F}_\bm{q}(\bm{\mu}_{k-1})\bm{Q}_{k-1}\bm{F}_\bm{q}^T(\bm{\mu}_{k-1}) \end{aligned}\right.\\ 量测更新&\left\{\begin{aligned} \bm{S} &= \bm{H}_\bm{x}(\bm{\mu}_{k-1})\bm{P}_{k-1}\bm{H}_\bm{x}^T(\bm{\mu}_{k-1})+\bm{H}_\bm{r}(\bm{\mu}_{k-1})\bm{Q}_{k-1}\bm{H}_\bm{r}^T(\bm{\mu}_{k-1})\\ \bm{K} &= \hat{\bm{P}}_k\bm{H}_{\bm{x}}^T(\hat{\bm{\mu}}_k)\bm{S}^{-1}\\ \tilde{\bm{x}}_k &= \hat{\bm{\mu}}_k+\bm{K}(\bm{z}_k-\bm{h}(\hat{\bm{\mu}}_k,\bm{0 }))\\ \tilde{\bm{P}}_k &= \hat{\bm{P}}_k-\bm{K}\bm{H}_{\bm{x}}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k \end{aligned}\right. \end{aligned} \right. EKF{x^kP^k=f(μk1,0)=Fx(μk1)Pk1FxT(μk1)+Fq(μk1)Qk1FqT(μk1)SKx~kP~k=Hx(μk1)Pk1HxT(μk1)+Hr(μk1)Qk1HrT(μk1)=P^kHxT(μ^k)S1=μ^k+K(zkh(μ^k,0))=P^kKHx(μ^k)P^k

式中, F i ( μ k − 1 , 0 ) , i = x , q \bm{F}_\bm{i}(\bm{\mu}_{k-1},\bm{0}),\bm{i}={\bm{x},\bm{q}} Fi(μk1,0),i=x,q H i ( μ ^ k , 0 ) , i = x , q \bm{H}_\bm{i}(\hat{\bm{\mu}}_k,\bm{0}),\bm{i}={\bm{x},\bm{q}} Hi(μ^k,0),i=x,q分别为状态转移函数 f ( x , q ) \bm{f}(\bm{x},\bm{q}) f(x,q)和量测函数 h ( x , r ) \bm{h}(\bm{x},\bm{r}) h(x,r)在对应点处的Jacobian矩阵。

总结

除了上述两种一阶近似EKF之外,还有一种取泰勒级数二次项的二阶近似EKF,但其公式推导复杂,计算资源消耗较大,一般应用较少。对于大多数工业应用来说,一阶近似EKF的性能已完全能够满足我们的需求,因此这里对于二阶EKF略过不提,感兴趣的可自行推导。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
二维扩展卡尔曼滤波器Extended Kalman Filter,EKF)是对卡尔曼滤波器扩展,用于非线性系统的状态估计卡尔曼滤波器是一种递归滤波算法,通过观测数据和系统模型来估计系统的状态。然而,对于非线性系统,卡尔曼滤波器的线性化假设不再成立,因此需要使用扩展卡尔曼滤波器来处理非线性系统。 在二维扩展卡尔曼滤波器中,系统的状态和观测向量都是二维的。与普通的卡尔曼滤波器类似,扩展卡尔曼滤波器也通过预测和更新两个步骤来进行状态估计。预测步骤使用系统模型(通常是非线性的)来预测当前时刻的状态,并计算预测误差协方差矩阵。更新步骤使用观测数据来校正预测的状态,并更新状态估计和误差协方差矩阵。 在预测和更新步骤中,需要对系统模型进行线性化,即通过在当前状态点处对非线性函数进行一阶泰勒展开来近似非线性函数。这样可以得到线性化的系统模型和观测模型,然后可以使用卡尔曼滤波器的预测和更新公式进行状态估计。 需要注意的是,二维扩展卡尔曼滤波器是一种近似方法,对于高度非线性的系统,可能会存在估计误差较大的情况。此外,对于更复杂的非线性系统,还可以考虑使用其他扩展卡尔曼滤波器的变种,如无迹卡尔曼滤波器(Unscented Kalman Filter,UKF)或粒子滤波器(Particle Filter)等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值