捷联惯导系统学习6.9(非线性滤波方法 )

对于非线性系统,先进行泰勒级数展开,略去高阶项近似为线性系统,再做线性kalman估计。

向量的泰勒级数展开

某一个含n个自变量,m维向量函数 f ( x ) f(x) f(x)如下:
Y = f ( x ) , X = [ x 1 x 2 . . . x n ] T , Y = [ y 1 y 2 . . . y n ] T Y=f(x),X=\left[\begin{matrix}x_1&x_2&...&x_n \end{matrix}\right]^T,Y=\left[\begin{matrix}y_1&y_2&...&y_n \end{matrix}\right]^T Y=f(x),X=[x1x2...xn]T,Y=[y1y2...yn]T
如果函数 Y = f ( x ) Y=f(x) Y=f(x)在某个邻域内存在连续偏导数,则其泰勒展开为:
Y = f ( X 0 ) + ∑ i = 1 ∞ 1 i ! ( ▽ T ∗ δ X ) i f ( X 0 ) δ X = X − X 0 ▽ T = [ ∂ ∂ x 1 ∂ ∂ x 2 . . . ∂ ∂ x n ] T Y=f(X_0)+\sum_{i=1}^{\infty} \frac{1}{i!}(\triangledown^T *\delta X)^if(X_0) \\ \delta X=X-X_0 \\ \triangledown^T=\left[\begin{matrix} \frac{\partial}{\partial x_1}& \frac{\partial}{\partial x_2}&...& \frac{\partial}{\partial x_n}\end{matrix}\right]^T Y=f(X0)+i=1i!1(TδX)if(X0)δX=XX0T=[x1x2...xn]T
向量的一阶微分项展开(又称雅克比矩阵)
J ( f ( X ) ) = ∂ f ( X ) ∂ X T = [ ∂ f 1 ( x ) ∂ x 1 ∂ f 1 ( x ) ∂ x n . . . ∂ f n ( x ) ∂ x 1 ∂ f 1 ( x ) ∂ x 2 ∂ f 2 ( x ) ∂ x 2 . . . ∂ f 2 ( x ) ∂ x n . . . . . . . . . . . . ∂ f m ( x ) ∂ x 1 ∂ f m ( x ) ∂ x 2 . . . ∂ f m ( x ) ∂ x n ] J(f(X))=\frac{\partial f(X)}{\partial X^T}= \left[\begin{matrix} \frac{\partial f_1(x)}{\partial x_1}&\frac{\partial f_1(x)}{\partial x_n} &...&\frac{\partial f_n(x)}{\partial x_1}\\ \frac{\partial f_1(x)}{\partial x_2}&\frac{\partial f_2(x)}{\partial x_2} &...&\frac{\partial f_2(x)}{\partial x_n}\\ ...&...&...&...\\ \frac{\partial f_m(x)}{\partial x_1}&\frac{\partial f_m(x)}{\partial x_2}&...&\frac{\partial f_m(x)}{\partial x_n}\\ \end{matrix}\right] J(f(X))=XTf(X)=x1f1(x)x2f1(x)...x1fm(x)xnf1(x)x2f2(x)...x2fm(x)............x1fn(x)xnf2(x)...xnfm(x)

向量的二阶微分项展开(又称Hessian)
1 2 ( ▽ T ∗ δ X ) 2 f ( X 0 ) = 1 2 ( ∂ ∂ x 1 δ x 1 + ∂ ∂ x 2 δ x 2 + . . . + ∂ ∂ x n δ x n ) 2 f ( X ) ∣ X = X 0 H ( f j ( X ) ) = ▽ ▽ T f j ( X ) = [ ∂ 2 f j ( X ) ∂ x 1 2 ∂ 2 f j ( X ) ∂ x 1 ∂ x 2 . . . ∂ 2 f j ( X ) ∂ x 1 ∂ x n ∂ 2 f j ( X ) ∂ x 2 ∂ x 1 ∂ 2 f j ( X ) ∂ x 1 ∂ x 2 . . . ∂ 2 f j ( X ) ∂ x 2 ∂ x n . . . . . . . . . . . . ∂ 2 f j ( X ) ∂ x n ∂ x 1 ∂ 2 f j ( X ) ∂ x n ∂ x 2 . . . ∂ 2 f j ( X ) ∂ x n 2 ] \frac{1}{2}(\triangledown^T*\delta X)^2f(X_0)=\frac{1}{2}(\frac{\partial}{\partial x_1}\delta x_1+\frac{\partial}{\partial x_2}\delta x_2+...+\frac{\partial}{\partial x_n}\delta x_n)^2f(X)|_{X=X_0} \\ H(f_j(X))=\triangledown \triangledown^Tf_j(X)\\ =\left[\begin{matrix} \frac{\partial^2 f_j(X)}{\partial x_1^2}&\frac{\partial^2 f_j(X)}{\partial x_1\partial x_2}&...&\frac{\partial^2 f_j(X)}{\partial x_1\partial x_n}\\ \frac{\partial^2 f_j(X)}{\partial x_2\partial x_1}&\frac{\partial^2 f_j(X)}{\partial x_1\partial x_2}&...&\frac{\partial^2 f_j(X)}{\partial x_2\partial x_n}\\ ...&...&...&...\\ \frac{\partial^2 f_j(X)}{\partial x_n\partial x_1}&\frac{\partial^2 f_j(X)}{\partial x_n\partial x_2}&...&\frac{\partial^2 f_j(X)}{\partial x^2_n}\\ \end{matrix}\right] 21(TδX)2f(X0)=21(x1δx1+x2δx2+...+xnδxn)2f(X)X=X0H(fj(X))=Tfj(X)=x122fj(X)x2x12fj(X)...xnx12fj(X)x1x22fj(X)x1x22fj(X)...xnx22fj(X)............x1xn2fj(X)x2xn2fj(X)...xn22fj(X)

一阶EKF

离散系统状态空间非线性模型
X k : n 维 状 态 向 量 X_k:n维状态向量 Xk:n
Z k : m 维 测 量 向 量 Z_k:m维测量向量 Zk:m
f ( X k ) : n 维 非 线 性 函 数 f(X_{k}):n维非线性函数 f(Xk):n线
Γ k / k − 1 : 已 知 的 系 统 结 构 参 数 , 分 别 为 n × l 阶 系 统 分 配 噪 声 \Gamma_{k/k-1}:已知的系统结构参数,分别为n×l阶系统分配噪声 Γk/k1:n×l
H ( X k ) : m 维 非 线 性 函 数 H(X_k):m维非线性函数 H(Xk):m线
V k : m 维 测 量 噪 声 , 高 斯 白 噪 声 , 服 从 正 太 分 布 V_k:m维测量噪声,高斯白噪声,服从正太分布 Vk:m
W k − 1 : m 维 系 统 噪 声 向 量 , 高 斯 白 噪 声 , 服 从 正 太 分 布 W_{k-1}:m维系统噪声向量,高斯白噪声,服从正太分布 Wk1:m
V k 与 W k − 1 互 不 相 关 V_k与W_{k-1}互不相关 VkWk1
{ X k = f ( X k − 1 ) + Γ k / k − 1 W k − 1 Z k = h ( X k ) + V k s t . { E [ W k ] = 0 , E [ W k W j T ] = Q k δ k j Q k ≥ 0 E [ V k ] = 0 , E [ V k V j T ] = R k δ k j , E [ W k V j T ] = 0 R ≥ 0 \begin{cases} X_k=f(X_{k-1})+\Gamma_{k/k-1}W_{k-1}\\ Z_k=h(X_k)+V_k\\ \end{cases} \\ st. \\ \begin{cases} E[W_k]=0,E[W_kW_j^T]=Q_k\delta_{kj} &Q_k \geq 0\\ E[V_k]=0,E[V_kV_j^T]=R_k\delta_{kj},E[W_kV_j^T]=0&R\geq 0\\ \end{cases} {Xk=f(Xk1)+Γk/k1Wk1Zk=h(Xk)+Vkst.{E[Wk]=0,E[WkWjT]=QkδkjE[Vk]=0,E[VkVjT]=Rkδkj,E[WkVjT]=0Qk0R0
已知 k − 1 k-1 k1时刻 X k − 1 X_{k-1} Xk1的一个参考值(理想值)为 X k − 1 n X^n_{k-1} Xk1n

  1. 则参考值与真实值之间偏差为:
    δ X k − 1 = X k − 1 − X k − 1 n \delta X_{k-1}=X_{k-1}-X_{k-1}^n δXk1=Xk1Xk1n

  2. 当系统噪声为零均值时,得到预测为:
    X k / k − 1 n = f ( X k − 1 n ) X_{k/k-1}^n=f(X_{k-1}^n) Xk/k1n=f(Xk1n)
    状态预测的偏差为: δ X k − 1 = X k − 1 − X k / k − 1 n \delta X_{k-1}=X_{k-1}-X_{k/k-1}^n δXk1=Xk1Xk/k1n

  3. 利用 X k / k − 1 n X_{k/k-1}^n Xk/k1n得到预测值:
    Z k / k − 1 n = h ( X k / k − 1 n ) Z^n_{k/k-1}=h(X^n_{k/k-1}) Zk/k1n=h(Xk/k1n)
    量测偏差为: δ Z k = Z k − Z k / k − 1 n \delta Z_k=Z_k-Z^n_{k/k-1} δZk=ZkZk/k1n

  4. f ( ) f() f()在k-1时刻的参考值 X k − 1 n X^n_{k-1} Xk1n邻域内泰勒展开,并取一阶近似可得 X k X_k Xk
    Φ k / k − 1 n = J ( f ( X k − 1 n ) ) \Phi^n_{k/k-1}=J(f(X^n_{k-1})) Φk/k1n=J(f(Xk1n))
    X k ≈ f ( X k − 1 n ) + J ( f ( X k − 1 n ) ) ( X k − 1 − X k − 1 n ) + Γ k − 1 W k − 1 = X k / k − 1 n + Φ k / k − 1 n ( X k − 1 − X k − 1 n ) + Γ k − 1 W k − 1 X_k \approx f(X_{k-1}^n)+J(f(X^n_{k-1}))(X_{k-1}-X_{k-1}^n)+\Gamma_{k-1}W_{k-1} \\ =X^n_{k/k-1}+\Phi^n_{k/k-1}(X_{k-1}-X_{k-1}^n)+\Gamma_{k-1}W_{k-1} Xkf(Xk1n)+J(f(Xk1n))(Xk1Xk1n)+Γk1Wk1=Xk/k1n+Φk/k1n(Xk1Xk1n)+Γk1Wk1
    得到: X k − X k / k − 1 n = Φ k / k − 1 n ( X k − 1 − X k − 1 n ) + Γ k − 1 W k − 1 X_k-X^n_{k/k-1}=\Phi^n_{k/k-1}(X_{k-1}-X^n_{k-1})+\Gamma_{k-1}W_{k-1} XkXk/k1n=Φk/k1n(Xk1Xk1n)+Γk1Wk1

  5. h ( ) h() h()在k-1时刻的参考值 X k − 1 n X^n_{k-1} Xk1n邻域内泰勒展开,并取一阶近似可得 X k X_k Xk
    H k n = J ( h ( X k − X k / k − 1 n ) ) H_k^n=J(h(X_k-X^n_{k/k-1})) Hkn=J(h(XkXk/k1n))
    Z k ≈ h ( X k / k − 1 n ) + J ( h ( X k / k − 1 n ) ) ( X k − X k / k − 1 n ) + V k = Z k / k − 1 n + H k n ( X k − X k / k − 1 n ) + V k Z_k\approx h(X^n_{k/k-1})+J(h(X^n_{k/k-1}))(X_k-X^n_{k/k-1})+V_k \\ =Z^n_{k/k-1}+H^n_k(X_k-X^n_{k/k-1})+V_k Zkh(Xk/k1n)+J(h(Xk/k1n))(XkXk/k1n)+Vk=Zk/k1n+Hkn(XkXk/k1n)+Vk
    得到: Z k − Z k / k − 1 n = H k n ( X k − X k / k − 1 n ) + V k Z_k-Z^n_{k/k-1}=H^n_k(X_k-X^n_{k/k-1})+V_k ZkZk/k1n=Hkn(XkXk/k1n)+Vk

  6. 使用偏差构成一个新的系统
    { δ X k = Φ k / k − 1 n δ X k − 1 + Γ k − 1 W k − 1 δ Z k = H k n δ X k + V k \begin{cases} \delta X_k=\Phi^n_{k/k-1}\delta X_{k-1}+\Gamma_{k-1}W_{k-1}\\ \delta Z_k=H_k^n \delta X_k+V_k\\ \end{cases} {δXk=Φk/k1nδXk1+Γk1Wk1δZk=HknδXk+Vk

  7. 从而得到偏差状态线性系统的kalman滤波方程
    { δ X ^ k / k − 1 = Φ k / k − 1 n δ X ^ k − 1 P k / k − 1 = Φ k / k − 1 n P k − 1 ( Φ k / k − 1 n ) T + Γ k − 1 Q k − 1 Γ k − 1 T K k n = P k / k − 1 ( H k n ) T [ H k P k / k − 1 ( H k n ) T + R k ] − 1 δ X ^ k = δ X ^ k / k − 1 + K k n ( δ Z k − H k n δ X ^ k / k − 1 ) P k = ( I − K k n H k n ) P k / k − 1 \begin{cases} \delta \hat X_{k/k-1}=\Phi_{k/k-1}^n\delta \hat X_{k-1}\\ P_{k/k-1}=\Phi^n_{k/k-1}P_{k-1}(\Phi^n_{k/k-1})^T+\Gamma_{k-1}Q_{k-1}\Gamma^T_{k-1}\\ K^n_k=P_{k/k-1}(H_k^n)^T[H_kP_{k/k-1}(H^n_k)^T+R_k]^{-1}\\ \delta \hat X_k=\delta \hat X_{k/k-1}+K^n_k(\delta Z_k-H^n_k\delta \hat X_{k/k-1})\\ P_k=(I-K_k^nH_k^n)P_{k/k-1}\\ \end{cases} δX^k/k1=Φk/k1nδX^k1Pk/k1=Φk/k1nPk1(Φk/k1n)T+Γk1Qk1Γk1TKkn=Pk/k1(Hkn)T[HkPk/k1(Hkn)T+Rk]1δX^k=δX^k/k1+Kkn(δZkHknδX^k/k1)Pk=(IKknHkn)Pk/k1

  8. 经偏差状态线性系统,推导出EKF
    已知:
    X ^ k = X k / k − 1 n + δ X ^ k = f ( X k − 1 n ) + δ X ^ k \hat X_k=X^n_{k/k-1}+\delta \hat X_k=f(X^n_{k-1})+\delta \hat X_k X^k=Xk/k1n+δX^k=f(Xk1n)+δX^k
    δ X ^ k − 1 = X ^ k − 1 − X k − 1 n \delta \hat X_{k-1}=\hat X_{k-1}-X^n_{k-1} δX^k1=X^k1Xk1n
    δ X ^ k = X ^ k − X k / k − 1 n \delta \hat X_k=\hat X_k-X^n_{k/k-1} δX^k=X^kXk/k1n
    { X ^ k / k − 1 = f ( X ^ k − 1 ) P k / k − 1 = Φ k / k − 1 P k − 1 Φ k / k − 1 T + Γ k − 1 Q k − 1 Γ k − 1 T K k = P k / k − 1 H k T ( H k P k / k − 1 H k T + R k ) − 1 X ^ k = X ^ k / k − 1 + K k [ Z k − h ( X ^ k / k − 1 ) ] P k = ( I − K k H k ) P k / k − 1 Φ k / k − 1 = J ( f ( X ^ k − 1 ) , H k = J ( h ( X ^ k / k − 1 ) ) ) \begin{cases} \hat X_{k/k-1}=f(\hat X_{k-1})\\ P_{k/k-1}=\Phi_{k/k-1}P_{k-1}\Phi^T_{k/k-1}+\Gamma_{k-1}Q_{k-1}\Gamma_{k-1}^T\\ K_k=P_{k/k-1}H_k^T(H_kP_{k/k-1}H^T_k+R_k)^{-1}\\ \hat X_k=\hat X_{k/k-1}+K_k[Z_k-h(\hat X_{k/k-1})]\\ P_k=(I-K_kH_k)P_{k/k-1}\\ \Phi_{k/k-1}=J(f(\hat X_{k-1}),H_k=J(h(\hat X_{k/k-1})))\\ \end{cases} X^k/k1=f(X^k1)Pk/k1=Φk/k1Pk1Φk/k1T+Γk1Qk1Γk1TKk=Pk/k1HkT(HkPk/k1HkT+Rk)1X^k=X^k/k1+Kk[Zkh(X^k/k1)]Pk=(IKkHk)Pk/k1Φk/k1=J(f(X^k1),Hk=J(h(X^k/k1)))

二阶EKF

  1. 将状态方程在参考值 X k − 1 n = X ^ k − 1 X^n_{k-1}=\hat X_{k-1} Xk1n=X^k1处展开可得:
    δ X = X k − 1 − X k − 1 n \delta X=X_{k-1}-X_{k-1}^n δX=Xk1Xk1n
    Φ k / k − 1 n = J ( f ( X k − 1 n ) ) \Phi^n_{k/k-1}=J(f(X^n_{k-1})) Φk/k1n=J(f(Xk1n))
    D f i = H ( f i ( X k − 1 n ) ) D_{fi}=H(f_i(X^n_{k-1})) Dfi=H(fi(Xk1n))
    X k = f ( X k − 1 n ) + Φ k / k − 1 n δ X + 1 2 ∑ i = 1 n e i t r ( D f i ∗ δ X δ X T ) + Γ k − 1 W k − 1 X_k=f(X^n_{k-1})+\Phi^n_{k/k-1}\delta X+\frac{1}{2}\sum_{i=1}^ne_itr(D_{fi}*\delta X \delta X^T)+\Gamma_{k-1}W_{k-1} Xk=f(Xk1n)+Φk/k1nδX+21i=1neitr(DfiδXδXT)+Γk1Wk1

  2. 假设 δ X ∼ N ( 0 , P k − 1 ) \delta X \sim N(0,P_{k-1}) δXN(0,Pk1),求期望可以得到:
    X ^ k / k − 1 = E [ X k ] = E [ f ( X k − 1 n ) + Φ k / k − 1 n δ X + 1 2 ∑ i = 1 n e i t r ( D f i ∗ δ X δ X T ) + Γ k − 1 W k − 1 ] = f ( X k − 1 n ) + Φ k / k − 1 n E [ δ X ] + 1 2 ∑ i = 1 n e i t r ( D f i ∗ E [ δ X δ X T ] ) + Γ k − 1 E [ W k − 1 ] = f ( X k − 1 n ) + 1 2 ∑ i = 1 n e i t r ( D f i P k − 1 ) \hat X_{k/k-1}=E[X_k]=E[f(X^n_{k-1})+\Phi^n_{k/k-1}\delta X+\frac{1}{2}\sum_{i=1}^ne_itr(D_{fi}*\delta X \delta X^T)+\Gamma_{k-1}W_{k-1}] \\ =f(X^n_{k-1})+\Phi^n_{k/k-1}E[\delta X]+\frac{1}{2}\sum_{i=1}^{n}e_itr(D_{fi}*E[\delta X \delta X^T])+\Gamma_{k-1}E[W_{k-1}] \\ =f(X^n_{k-1})+\frac{1}{2}\sum_{i=1}^{n}e_itr(D_{fi}P_{k-1}) X^k/k1=E[Xk]=E[f(Xk1n)+Φk/k1nδX+21i=1neitr(DfiδXδXT)+Γk1Wk1]=f(Xk1n)+Φk/k1nE[δX]+21i=1neitr(DfiE[δXδXT])+Γk1E[Wk1]=f(Xk1n)+21i=1neitr(DfiPk1)

  3. 状态一步误差:
    X ~ k / k − 1 = X k − X ^ k / k − 1 = Φ k / k − 1 n δ X + 1 2 ∑ i = 1 n e i t r ( D j i ∗ δ X δ X T ) + Γ k − 1 W k − 1 − 1 2 ∑ i = 1 n e i t r ( D f i P k − 1 ) = Φ k / k − 1 n δ X + 1 2 ∑ i = 1 n e i t r ( D f i ( δ X δ X T − P k − 1 ) ) + Γ k − 1 W k − 1 \tilde X_{k/k-1}=X_k-\hat X_{k/k-1}\\ =\Phi^n_{k/k-1}\delta X+\frac{1}{2}\sum^n_{i=1}e_itr(D_{ji}*\delta X \delta X^T)+\Gamma_{k-1}W_{k-1}-\frac{1}{2}\sum_{i=1}^{n}e_itr(D_{fi}P_{k-1}) \\ =\Phi^n_{k/k-1}\delta X+\frac{1}{2}\sum_{i=1}^ne_i tr(D_{fi}(\delta X \delta X^T-P_{k-1}))+\Gamma_{k-1}W_{k-1} X~k/k1=XkX^k/k1=Φk/k1nδX+21i=1neitr(DjiδXδXT)+Γk1Wk121i=1neitr(DfiPk1)=Φk/k1nδX+21i=1neitr(Dfi(δXδXTPk1))+Γk1Wk1

  4. 状态一步预测预测 X ^ k / k − 1 \hat X_{k/k-1} X^k/k1的均方误差阵为:
    P k / k − 1 = E [ X ~ k / k − 1 X ~ k / k − 1 T ] = E [ [ Φ k / k − 1 n δ X + 1 2 ∑ i = 1 n e i t r ( D f i ( δ X δ X T − P k − 1 ) ) + Γ k − 1 W k − 1 ] × [ Φ k / k − 1 n δ X + 1 2 ∑ i = 1 n e i t r ( D f i ( δ X δ X T − P k − 1 ) ) + Γ k − 1 W k − 1 ] ] P_{k/k-1}=E[\tilde X_{k/k-1}\tilde X_{k/k-1}^T]\\ =E[[\Phi^n_{k/k-1}\delta X+\frac{1}{2}\sum^n_{i=1}e_itr(D_{fi}(\delta X\delta X^T-P_{k-1}))+\Gamma_{k-1}W_{k-1}]×\\ [\Phi^n_{k/k-1}\delta X+\frac{1}{2}\sum_{i=1}^{n}e_itr(D_{fi}(\delta X \delta X^T-P_{k-1}))+\Gamma_{k-1}W_{k-1}]] Pk/k1=E[X~k/k1X~k/k1T]=E[[Φk/k1nδX+21i=1neitr(Dfi(δXδXTPk1))+Γk1Wk1]×[Φk/k1nδX+21i=1neitr(Dfi(δXδXTPk1))+Γk1Wk1]]
    考虑到 δ X \delta X δX是对称分布的,其奇次阶矩为0,且 δ X \delta X δX W k − 1 W_{k-1} Wk1之间不相关,进一步得到:
    ∑ j = 1 n e i e j t r ( D f i P k − 1 D f j P k − 1 ) : 2 阶 修 正 项 \sum_{j=1}^ne_ie_jtr(D_{fi}P_{k-1}D_{fj}P_{k-1}):2阶修正项 j=1neiejtr(DfiPk1DfjPk1):2
    P k / k − 1 = Φ k / k − 1 n P k − 1 ( Φ k / k − 1 n ) T + 1 2 ∑ i = 1 n ∑ j = 1 n e i e j t r ( D f i P k − 1 D f j P k − 1 ) + Γ k − 1 Q k − 1 Γ k − 1 T P_{k/k-1}=\Phi^n_{k/k-1}P_{k-1}(\Phi^n_{k/k-1})^T+\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^ne_ie_jtr(D_{fi}P_{k-1}D_{fj}P_{k-1})+\Gamma_{k-1}Q_{k-1}\Gamma^T_{k-1}\\ Pk/k1=Φk/k1nPk1(Φk/k1n)T+21i=1nj=1neiejtr(DfiPk1DfjPk1)+Γk1Qk1Γk1T

  5. 在参考值 X k / k − 1 n = X ^ k / k − 1 X^n_{k/k-1}=\hat X_{k/k-1} Xk/k1n=X^k/k1,附近二阶泰勒级数展开的量测方程,有:
    δ X = X k − X k / k − 1 n \delta X=X_k-X^n_{k/k-1} δX=XkXk/k1n
    H k n = J ( h ( X k / k − 1 n ) ) H^n_k=J(h(X^n_{k/k-1})) Hkn=J(h(Xk/k1n))
    D h i = H ( h i ( X k / k − 1 n ) ) D_{hi}=H(h_i(X^n_{k/k-1})) Dhi=H(hi(Xk/k1n))
    δ X ∼ N ( 0 , P k / k − 1 ) \delta X \sim N(0,P_{k/k-1}) δXN(0,Pk/k1)
    Z k / k − 1 = h ( X k / k − 1 n ) + H k n δ X + 1 2 ∑ i = 1 m e i t r ( D h i ∗ δ X δ X T ) + V k Z_{k/k-1}=h(X^n_{k/k-1})+H_k^n\delta X+\frac{1}{2}\sum_{i=1}^{m}e_itr(D_{hi}*\delta X\delta X^T)+V_k Zk/k1=h(Xk/k1n)+HknδX+21i=1meitr(DhiδXδXT)+Vk
    Z ^ k / k − 1 = h ( X k / k − 1 n ) + 1 2 ∑ i = 1 m e i t r ( D h i ∗ P k / k − 1 ) \hat Z_{k/k-1}=h(X^n_{k/k-1})+\frac{1}{2}\sum_{i=1}^me_itr(D_{hi}*P_{k/k-1}) Z^k/k1=h(Xk/k1n)+21i=1meitr(DhiPk/k1)
    P Z Z , k / k − 1 = H k n P k / k − 1 ( H k n ) T + 1 2 ∑ i = 1 m ∑ j = 1 m e i e j T t r ( D h i P k / k − 1 D h i P k / k − 1 ) + R k P X Z , k / k − 1 = P k / k − 1 H k n P_{ZZ,k/k-1}=H^n_kP_{k/k-1}(H^n_k)^T+\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^me_ie_j^Ttr(D_{hi}P_{k/k-1}D_{hi}P_{k/k-1})+R_k \\ P_{XZ,k/k-1}=P_{k/k-1}H^n_k PZZ,k/k1=HknPk/k1(Hkn)T+21i=1mj=1meiejTtr(DhiPk/k1DhiPk/k1)+RkPXZ,k/k1=Pk/k1Hkn

  6. 得到在点 X k − 1 n = X ^ k − 1 , X k / k − 1 n = X ^ k / k − 1 X^n_{k-1}=\hat X_{k-1},X^n_{k/k-1}=\hat X_{k/k-1} Xk1n=X^k1,Xk/k1n=X^k/k1
    { X ^ k / k − 1 = f ( X ^ k − 1 ) + 1 2 ∑ i = 1 n e i t r ( D f i P k − 1 ) P k / k − 1 = Φ k / k − 1 P k − 1 Φ k / k − 1 T + 1 2 ∑ i = 1 n ∑ j = 1 n e i e j T t r ( D f i P k − 1 D f j P k − 1 ) + Γ k − 1 Q k − 1 Γ k − 1 T K k = P k / k − 1 H k T [ H k P k / k − 1 H k T + 1 2 ∑ i = 1 n ∑ j = 1 n e i e j T t r ( D f i P k − 1 D f j P k − 1 ) + R k ] − 1 X ^ k = X ^ k / k − 1 + K k [ Z k − h ( X ^ k / k − 1 ) − 1 2 ∑ i = 1 m e i t r ( D h i P k / k − 1 ) ] P k = ( I − K k H k ) P k / k − 1 \begin{cases} \hat X_{k/k-1}=f(\hat X_{k-1})+\frac{1}{2}\sum^n_{i=1}e_itr(D_{fi}P_{k-1})\\ P_{k/k-1}=\Phi_{k/k-1}P_{k-1}\Phi^T_{k/k-1}+\frac{1}{2}\sum^n_{i=1}\sum^n_{j=1}e_iej^Ttr(D_{fi}P_{k-1}D_{fj}P_{k-1})+\Gamma_{k-1}Q_{k-1}\Gamma^T_{k-1}\\ K_k=P_{k/k-1}H^T_k[H_kP_{k/k-1}H^T_k+\frac{1}{2}\sum^n_{i=1}\sum^n_{j=1}e_iej^Ttr(D_{fi}P_{k-1}D_{fj}P_{k-1})+R_k]^{-1}\\ \hat X_k=\hat X_{k/k-1}+K_k[Z_k-h(\hat X_{k/k-1})-\frac{1}{2}\sum_{i=1}^me_i tr(D_{hi}P_{k/k-1})]\\ P_k=(I-K_kH_k)P_{k/k-1}\\ \end{cases} X^k/k1=f(X^k1)+21i=1neitr(DfiPk1)Pk/k1=Φk/k1Pk1Φk/k1T+21i=1nj=1neiejTtr(DfiPk1DfjPk1)+Γk1Qk1Γk1TKk=Pk/k1HkT[HkPk/k1HkT+21i=1nj=1neiejTtr(DfiPk1DfjPk1)+Rk]1X^k=X^k/k1+Kk[Zkh(X^k/k1)21i=1meitr(DhiPk/k1)]Pk=(IKkHk)Pk/k1

迭代滤波

未获得测量值时: X ^ k − 1 \hat X_{k-1} X^k1是状态 X k − 1 X_{k-1} Xk1的最优估计
在获得量测值时:一步反向平滑值 X ^ k − 1 / k \hat X_{k-1/k} X^k1/k精度高于 X ^ k − 1 \hat X_{k-1} X^k1
因此可以在获得测量值之后,以平滑值 X ^ k − 1 / k \hat X_{k-1/k} X^k1/k取代 X ^ k − 1 \hat X_{k-1} X^k1
使用RTS平滑算法求取平滑值:
X ^ k / k − 1 = X ^ k − 1 + P k − 1 ( Φ ) T ( P k / k − 1 ) − 1 ( X ^ k − X ^ k / k − 1 ) \hat X_{k/k-1}=\hat X_{k-1}+P_{k-1}(\Phi)^T(P_{k/k-1})^{-1}(\hat X_k-\hat X_{k/k-1}) X^k/k1=X^k1+Pk1(Φ)T(Pk/k1)1(X^kX^k/k1)
迭代滤波公式为:
{ X ^ k / k − 1 = f ( X ^ k − 1 / k ) + Φ k / k − 1 ( X ^ k − 1 − X ^ k − 1 / k ) P k / k − 1 = Φ k / k − 1 P k − 1 Φ k / k − 1 T + Γ k − 1 Q k − 1 Γ k − 1 T K k = P k / k − 1 H k T ( H k P k / k − 1 H k T + R k ) − 1 X ^ k = X ^ k / k − 1 + K k [ Z k − h ( X ^ k ∗ ) − H k ( X ^ k / k − 1 − X ^ k ∗ ) ] P k = ( I − K k H k ) P k / k − 1 Φ k / k − 1 = J ( f ( X ^ k − 1 / k ) ) ; H k = J ( h ( X ^ k ∗ ) ) \begin{cases} \hat X_{k/k-1}=f(\hat X_{k-1/k})+\Phi_{k/k-1}(\hat X_{k-1}-\hat X_{k-1/k})\\ P_{k/k-1}=\Phi_{k/k-1}P_{k-1}\Phi^T_{k/k-1}+\Gamma_{k-1}Q_{k-1}\Gamma_{k-1}^T\\ K_k=P_{k/k-1}H^T_k(H_kP_{k/k-1}H_k^T+R_k)^{-1}\\ \hat X_k=\hat X_{k/k-1}+K_k[Z_k-h(\hat X_k^*)-H_k(\hat X_{k/k-1}-\hat X_k^*)]\\ P_k=(I-K_kH_k)P_{k/k-1}\\ \Phi_{k/k-1}=J(f(\hat X_{k-1/k}));H_k=J(h(\hat X_k^*))\\ \end{cases} X^k/k1=f(X^k1/k)+Φk/k1(X^k1X^k1/k)Pk/k1=Φk/k1Pk1Φk/k1T+Γk1Qk1Γk1TKk=Pk/k1HkT(HkPk/k1HkT+Rk)1X^k=X^k/k1+Kk[Zkh(X^k)Hk(X^k/k1X^k)]Pk=(IKkHk)Pk/k1Φk/k1=J(f(X^k1/k));Hk=J(h(X^k))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值