1.系统模型
1.1 陀螺模型
ω∗=ω+b+ηωb˙=ηb(1)\begin{aligned} \boldsymbol{\omega^{*}} &=\boldsymbol{\omega}+\boldsymbol{b}+\boldsymbol{\eta_{\omega}}\\ \boldsymbol{\dot{b}}&=\boldsymbol{\eta_{b}} \end{aligned}\tag{1}ω∗b˙=ω+b+ηω=ηb(1)
其中,ω\omegaω是真实的角速度,bbb是偏置,ω∗\omega^{*}ω∗是角速度的测量值。ηω\eta_{\omega}ηω和ηb\eta_{b}ηb是零均值白噪声。
1.2 运动学模型
待估计状态为x=[q,b]T\boldsymbol{x}=[\boldsymbol{q}, \boldsymbol{b}]^{T}x=[q,b]T,噪声为η=[ηω,ηb]T\eta=\left[\boldsymbol{\eta}_{\omega}, \boldsymbol{\eta}_{b}\right]^{T}η=[ηω,ηb]T。
四元数的微分运动学方程为
q˙=12[ω0]⊗q(2)\dot{{\mathbf{q}}}=\frac{1}{2}\left[\begin{array}{l}
{\boldsymbol{\omega}} \\
\mathbf{0}
\end{array}\right] \otimes {\mathbf{q}}\tag{2}q˙=21[ω0]⊗q(2)
根据式(),可得待估计状态的动力学方程
x˙=f(x)+g(x,η)(3)\dot\boldsymbol{x}=\boldsymbol{f}(\boldsymbol{x})+\boldsymbol{g}(\boldsymbol{x}, \boldsymbol{\eta})\tag{3}x˙=f(x)+g(x,η)(3)
其中,
f(x)=[12[ω∗−b0]⊗q0]g(x,η)=[12[−ηω0]⊗qηb](4)\begin{aligned}
\boldsymbol{f}(\boldsymbol{x}) &=\left[\begin{array}{c}
\frac{1}{2}\left[\begin{array}{l}
{\boldsymbol{\omega}^*-\boldsymbol{b}} \\
\mathbf{0}
\end{array}\right] \otimes {\mathbf{q}}\\
\mathbf{0}
\end{array}\right] \\
\boldsymbol{g}(\boldsymbol{x}, \boldsymbol{\eta}) &=\left[\begin{array}{c}
\frac{1}{2}\left[\begin{array}{l}
-\boldsymbol{\eta}_{\omega} \\
\mathbf{0}
\end{array}\right] \otimes {\mathbf{q}}\\
\boldsymbol{\eta}_{b}
\end{array}\right]
\end{aligned}\tag{4}f(x)g(x,η)=⎣⎡21[ω∗−b0]⊗q0⎦⎤=⎣⎡21[−ηω0]⊗qηb⎦⎤(4)
状态估计xˉ\bar{\boldsymbol{x}}xˉ的传播利用无噪声的非线性运动方程:
xˉ˙=f(xˉ)(5)\dot{\bar{\boldsymbol{x}}}=f(\bar{\boldsymbol{x}})\tag{5}xˉ˙=f(xˉ)(5)
EKF中,状态的协方差矩阵[P][P][P]表明了状态的一阶不确定度。利用δx=[δθ,δb]\delta \boldsymbol{x}=[\delta\boldsymbol{\theta},\delta\boldsymbol{b}]δx=[δθ,δb],对式在当前估计xˉ\bar{\boldsymbol{x}}xˉ处进行线性化,得到
δx˙=[F]δx+[G]η(6)\delta \dot{\boldsymbol{x}}=[F] \delta \boldsymbol{x}+[G] \boldsymbol{\eta}\tag{6}δx˙=[F]δx+[G]η(6)
其中
[F]=∂f∂x∣x=x‾=[−ω‾×−I3×303×303×3](7)[F] =\left.\frac{\partial \boldsymbol{f}}{\partial \boldsymbol{x}}\right|_{\boldsymbol{x}=\overline{\boldsymbol{x}}}=\left[\begin{array}{cc}
-\overline{\boldsymbol{\omega}}^{\times} & -\boldsymbol{I}_{3\times3} \\
\mathbf{0}_{3\times3} & \mathbf{0}_{3\times3}
\end{array}\right]\tag{7}[F]=∂x∂f∣∣∣∣x=x=[−ω×03×3−I3×303×3](7)
[G]=∂g∂η∣x=x‾,η=0=[−I3×303×303×3I3×3](8)[G]=\left.\frac{\partial \boldsymbol{g}}{\partial \boldsymbol{\eta}}\right|_{\boldsymbol{x}=\overline{\boldsymbol{x}}, \boldsymbol{\eta}=\mathbf{0}}=\left[\begin{array}{cc} -\boldsymbol{I}_{3\times3} & \mathbf{0}_{3\times3}\\ \mathbf{0}_{3\times3} & \boldsymbol{I}_{3\times3} \end{array}\right]\tag{8}[G]=∂η∂g∣∣∣∣x=x,η=0=[−I3×303×303×3I3×3](8)
[Q]=[σω2I3×303×303×3σb2I3×3](8)[Q]=\left[\begin{array}{cc} \sigma_\omega^2\boldsymbol{I}_{3\times3} & \mathbf{0}_{3\times3}\\ \mathbf{0}_{3\times3} & \sigma_b^2\boldsymbol{I}_{3\times3} \end{array}\right]\tag{8}[Q]=[σω2I3×303×303×3σb2I3×3](8)
式中,ωˉ=ω∗−bˉ\boldsymbol{\bar{\omega}}=\boldsymbol{\omega^*}-\boldsymbol{\bar{b}}ωˉ=ω∗−bˉ。则状态协方差按照如下的里卡提微分方程传播
[P˙]=[F][P]+[P][F]T+[G][Q][G]T(9)[\dot{P}]=[F][P]+[P][F]^{T}+[G][Q][G]^{T}\tag{9}[P˙]=[F][P]+[P][F]T+[G][Q][G]T(9)
测量残差为测量与估计的姿态之差
yk=δθ∗\boldsymbol{y_{k}}=\delta\boldsymbol{\theta}^{*}yk=δθ∗
其中,[Hk]=[I3×3,0]\left[H_{k}\right]=\left[I_{3 \times 3} ,0\right][Hk]=[I3×3,0]。
滤波增益为
[Kk]=[Pk][Hk]T([Hk][Pk][Hk]T+[Λσ])−1\left[K_{k}\right]=\left[P_{k}\right]\left[H_{k}\right]^{T}\left(\left[H_{k}\right]\left[P_{k}\right]\left[H_{k}\right]^{T}+\left[\Lambda_{\sigma}\right]\right)^{-1}[Kk]=[Pk][Hk]T([Hk][Pk][Hk]T+[Λσ])−1
状态和协方差按照以下公式进行更新
δxk=[δθ,δb]=[Kk]yk[Pk]=([I6×6]−[Kk][Hk])[Pk]([I3×3]−[Kk][Hk])−1+[Hk][Pk][Hk]T\begin{aligned}
&\delta \boldsymbol{x}_k=[\delta\boldsymbol{\theta},\delta\boldsymbol{b}]=\left[K_{k}\right] \boldsymbol{y_{k}}\\
&\left[P_{k}\right]=\left(\left[I_{6 \times 6}\right]-\left[K_{k}\right]\left[H_{k}\right]\right)\left[P_{k}\right]\left(\left[I_{3 \times 3}\right]-\left[K_{k}\right]\left[H_{k}\right]\right)^{-1}+\left[H_{k}\right]\left[P_{k}\right]\left[H_{k}\right]^{T}
\end{aligned}δxk=[δθ,δb]=[Kk]yk[Pk]=([I6×6]−[Kk][Hk])[Pk]([I3×3]−[Kk][Hk])−1+[Hk][Pk][Hk]T
则b^+=bˉ+δbq^+=[12δθ1−14δθTδθ]⊗qˉ
\hat\boldsymbol{b}^{+} = \bar\boldsymbol{b}+\delta\boldsymbol{b}\\
\hat\boldsymbol{q}^{+}=\left[\begin{array}{l}
\frac{1}{2}\delta\boldsymbol{\theta} \\
\sqrt{1-\frac{1}{4}\delta\boldsymbol{\theta}^{T}\delta\boldsymbol{\theta}}
\end{array}\right] \otimes \bar\boldsymbol{q}
b^+=bˉ+δbq^+=[21δθ1−41δθTδθ]⊗qˉ
2仿真结果
心得,评注
- 编程一定要认真,尤其是在现有程序上进行改动的时候,一定要考虑周全。
这个xplus(5:7)在mrp的导航里是xplus(4:6),在修改成quaternion后一直没改过来,导致程序有问题
参考文献:
optimal estimation of dynamics system
Fundamentals of spacecraft attitude determine and control