067-地固系下基于等效旋转矢量的惯导更新

一、姿态更新算法

对于地固系下的方向余弦阵有:

Cb(m)e(m)=Ce(m1)e(m)Cb(m1)e(m1)Cb(m)b(m1) C_{b(m)}^{e(m)} = C_{e(m-1)}^{e(m)}C_{b(m-1)}^{e(m-1)} C_{b(m)}^{b(m-1)}

Cb(m1)e(m)Cb(m)e(m)C_{b(m-1)}^{e(m)}, C_{b(m)}^{e(m)}分别是tm1,tmt_{m-1},t_m时刻的姿态矩阵。那么姿态更新问题就是求解Ce(m1)e(m)C_{e(m-1)}^{e(m)}Cb(m)b(m1)C_{b(m)}^{b(m-1)}的问题。设在时间段T=tmtm1T=t_m-t_{m-1}内b系产生的等效旋转矢量为ϕib(m)b\phi_{ib(m)}^b,其模为ϕ\phi,反对称矩阵为Φ\Phi,地球自转的等效旋转矢量的反对称阵为Φe\Phi_e,角速度为ωe\omega_e,那么:

Ce(m1)e(m)IΦe=I[0ωe0ωe00000]T C_{e(m-1)}^{e(m)} \approx I-\Phi_e= I - \begin{bmatrix} 0 & -\omega_e & 0 \\ \omega_e & 0 & 0\\ 0 & 0 & 0 \end{bmatrix}T

Cb(m)b(m1)=I+sinϕϕΦ+1cosϕϕ2Φ2 C_{b(m)}^{b(m-1)} = I + \frac{sin\phi}{\phi}\Phi + \frac{1-cos\phi}{\phi^2} \Phi^2

可能有人会说:Ce(m1)e(m)=IC_{e(m-1)}^{e(m)}=I,其实这是不对的。无论是机体所在的b系转动所产生的等效旋转矢量,还是地球自转的等效旋转矢量,都是以地球惯性系为参考基准的,所以不能认为Ce(m1)e(m)=IC_{e(m-1)}^{e(m)}=I,同样在速度更新中也会遇见同样的问题。
下面利用等效旋转矢量法求解ϕib(m)b\phi_{ib(m)}^b

1、圆锥误差补偿算法

由于该部分的算法不因选取的惯导更新坐标系的不同而不同,在此不进行逐步推导,具体算法如下所示:

067-地固系下基于等效旋转矢量的惯导更新

假设陀螺在[tm1,tm][t_{m-1},t_m]内进行了两次等间隔采样(二子样算法),角增量分别为Δθm1,Δθm2\Delta \theta_{m1},\Delta \theta_{m2},采用二子样圆锥误差补偿算法,有:

ϕib(m)b=(Δθm1+Δθm2)+23Δθm1×Δθm2 \phi_{ib(m)}^b=(\Delta \theta_{m1}+\Delta \theta_{m2})+\frac{2}{3}\Delta \theta_{m1}×\Delta \theta_{m2}

二、速度更新算法

比力方程:

v˙e(t)=Cbe(t)fsfb(t)2Ωiee(t)ve(t)+ge(t) \dot v^e(t) = C_b^e(t) f_{sf}^b(t) - 2\Omega_{ie}^e(t) v^e(t) + g^e(t)

时间段[tm1,tm][t_{m-1},t_m]内积分:

tm1tmv˙e(t)dt=tm1tmCbe(t)fsfb(t)2Ωiee(t)ve(t)+ge(t)dt \int_{t_{m-1}}^{t_m} \dot v^e(t) dt = \int_{t_{m-1}}^{t_m} C_b^e(t) f_{sf}^b(t) - 2\Omega_{ie}^e(t) v^e(t) + g^e(t) dt

即:

vmevm1e=tm1tmCbe(t)fsfb(t)dt+tm1tm2Ωiee(t)ve(t)+ge(t)dt=Δvsf(m)e+Δvcor/g(m)e \begin{aligned} v_m^e - v_{m-1}^e &= \int_{t_{m-1}}^{t_m} C_b^e(t) f_{sf}^b(t)dt + \int_{t_{m-1}}^{t_m} -2\Omega_{ie}^e(t) v^e(t) + g^e(t) dt \\ &= \Delta v_{sf(m)}^e + \Delta v_{cor/g(m)}^e \end{aligned}

其中:

(2-1)Δvsf(m)e=tm1tmCbe(t)fsfb(t)dt \tag{2-1} \Delta v_{sf(m)}^e = \int_{t_{m-1}}^{t_m} C_b^e(t) f_{sf}^b(t)dt

(2-2)Δvcor/g(m)e=tm1tm2Ωiee(t)ve(t)+ge(t)dt \tag{2-2} \Delta v_{cor/g(m)}^e = \int_{t_{m-1}}^{t_m} -2\Omega_{ie}^e(t) v^e(t) + g^e(t) dt

上述两项分别为相应时间段T=tmtm1T=t_m-t_{m-1}内地固系内比力速度增量、有害加速度增量

则有:

vme=vm1e+Δvsf(m)e+Δvcor/g(m)e v_m^e = v_{m-1}^e + \Delta v_{sf(m)}^e + \Delta v_{cor/g(m)}^e

1、有害速度增量

一般认为有害加速度Δvcor/g(m)e\Delta v_{cor/g(m)}^e的被积函数是时间的缓慢量,可采用tm1/2=(tm1+tm)/2t_{m-1/2}=(t_{m-1}+t_m)/2时刻的值进行近似代替,则公式(2-2)近似为:

Δvcor/g(m)e[2Ωie(m1/2)evm1/2e+gm1/2e]T \Delta v_{cor/g(m)}^e \approx [-2\Omega_{ie(m-1/2)}^e v^e_{m-1/2} + g^e_{m-1/2}] T

上式中tm1/2t_{m-1/2}时刻各量需使用外推法:

xm1/2=xm1+xm1xm22=3xm1xm22 x_{m-1/2} = x_{m-1} + \frac{x_{m-1}-x_{m-2}}{2} = \frac{3x_{m-1}-x_{m-2}}{2}

其中,x=Ωiee,ve,gex = \Omega_{ie}^e, v^e, g^e

2、比力速度增量

将公式(2-1)进行如下分解:

Δvsf(m)e=tm1tmCe(m1)e(t)Cb(m1)e(m1)Cb(t)b(m1)fsfb(t)dt \Delta v_{sf(m)}^e = \int_{t_{m-1}}^{t_m} C_{e(m-1)}^{e(t)} C_{b(m-1)}^{e(m-1)} C_{b(t)}^{b(m-1)} f_{sf}^b(t)dt

注意,这里Ce(m1)e(t)=IC_{e(m-1)}^{e(t)}=I也是不成立的!!

假设与Ce(m1)e(t)C_{e(m-1)}^{e(t)}对应的等效旋转矢量为ϕiee(t,tm1)\phi_{ie}^e(t,t_{m-1}),角增量为θiee(t,tm1)\theta_{ie}^e(t,t_{m-1})(近似为地球自转角速度*时间),与Cb(t)b(m1)C_{b(t)}^{b(m-1)}对应的等效旋转矢量为ϕibb(t,tm1)\phi_{ib}^b(t,t_{m-1}),角增量为θibb(t,tm1)\theta_{ib}^b(t,t_{m-1}),根据变换矩阵与等效旋转矢量之间的关系,当等效旋转矢量为小量时,可取如下一阶近似:

Ce(m1)e(t)Iϕiee(t,tm1)×Iθiee(t,tm1)×Cb(t)b(m1)I+ϕibb(t,tm1)×I+θibb(t,tm1)× \begin{aligned} C_{e(m-1)}^{e(t)} &\approx I - \phi_{ie}^e(t,t_{m-1})× \approx I - \theta_{ie}^e(t,t_{m-1})× \\ C_{b(t)}^{b(m-1)} &\approx I + \phi_{ib}^b(t,t_{m-1})× \approx I + \theta_{ib}^b(t,t_{m-1})× \\ \end{aligned}

那么便有:

Δvsf(m)e=tm1tmCe(m1)e(t)Cb(m1)e(m1)Cb(t)b(m1)fsfb(t)dttm1tm[Iθiee(t,tm1)×]Cb(m1)e(m1)[I+θibb(t,tm1)×]fsfb(t)dttm1tmCb(m1)e(m1)fsfb(t)+Cb(m1)e(m1)[θibb(t,tm1)×]fsfb(t)[θiee(t,tm1)×]Cb(m1)e(m1)fsfb(t)dt=Cb(m1)e(m1)tm1tmfsfb(t)dt+Cb(m1)e(m1)tm1tm[θibb(t,tm1)×]fsfb(t)dt[θiee(t,tm1)×]Cb(m1)e(m1)tm1tmfsfb(t)dt=(I[θiee(t,tm1)×])Cb(m1)e(m1)tm1tmfsfb(t)dt+Cb(m1)e(m1)tm1tm[θibb(t,tm1)×]fsfb(t)dt \begin{aligned} \Delta v_{sf(m)}^e &= \int_{t_{m-1}}^{t_m} C_{e(m-1)}^{e(t)} C_{b(m-1)}^{e(m-1)} C_{b(t)}^{b(m-1)} f_{sf}^b(t)dt \\ & \approx \int_{t_{m-1}}^{t_m} [I - \theta_{ie}^e(t,t_{m-1})×] C_{b(m-1)}^{e(m-1)} [I + \theta_{ib}^b(t,t_{m-1})×] f_{sf}^b(t)dt \\ & \approx \int_{t_{m-1}}^{t_m} C_{b(m-1)}^{e(m-1)} f_{sf}^b(t) + C_{b(m-1)}^{e(m-1)} [\theta_{ib}^b(t,t_{m-1})×] f_{sf}^b(t) -[\theta_{ie}^e(t,t_{m-1})×]C_{b(m-1)}^{e(m-1)} f_{sf}^b(t)dt \\ &= C_{b(m-1)}^{e(m-1)} \int_{t_{m-1}}^{t_m} f_{sf}^b(t)dt + C_{b(m-1)}^{e(m-1)} \int_{t_{m-1}}^{t_m} [\theta_{ib}^b(t,t_{m-1})×] f_{sf}^b(t)dt - [\theta_{ie}^e(t,t_{m-1})×]C_{b(m-1)}^{e(m-1)} \int_{t_{m-1}}^{t_m} f_{sf}^b(t)dt \\ &= (I-[\theta_{ie}^e(t,t_{m-1})×])C_{b(m-1)}^{e(m-1)} \int_{t_{m-1}}^{t_m} f_{sf}^b(t)dt + C_{b(m-1)}^{e(m-1)} \int_{t_{m-1}}^{t_m} [\theta_{ib}^b(t,t_{m-1})×] f_{sf}^b(t)dt \\ \end{aligned}

(1) 旋转和划桨误差

对于上式的第二项中tm1tm[θibb(t,tm1)×]fsfb(t)dt\int_{t_{m-1}}^{t_m} [\theta_{ib}^b(t,t_{m-1})×] f_{sf}^b(t)dt,我们称为旋转与划船误差。下面对其进行分析,由于

d[θibb(t,tm1)×vsfb(t,tm1)]dt=ωibb(t)×vsfb(t,tm1)+θibb(t,tm1)×fsfb(t)=vsfb(t,tm1)×ωibb(t)θibb(t,tm1)×fsfb(t)+2θibb(t,tm1)×fsfb(t) \begin{aligned} \frac{d[\theta_{ib}^b(t,t_{m-1}) × v_{sf}^b(t,t_{m-1})]}{dt} &= \omega_{ib}^b(t) × v_{sf}^b(t,t_{m-1}) + \theta_{ib}^b(t,t_{m-1}) × f_{sf}^b(t) \\ &= -v_{sf}^b(t,t_{m-1}) × \omega_{ib}^b(t) - \theta_{ib}^b(t,t_{m-1}) × f_{sf}^b(t) + 2\theta_{ib}^b(t,t_{m-1}) × f_{sf}^b(t) \end{aligned}

移项整理可得:

θibb(t,tm1)×fsfb(t)=12d[θibb(t,tm1)×vsfb(t,tm1)]dt+12[θibb(t,tm1)×fsfb(t)+vsfb(t,tm1)×ωibb(t)] \theta_{ib}^b(t,t_{m-1}) × f_{sf}^b(t) \\= \frac{1}{2} \frac{d[\theta_{ib}^b(t,t_{m-1}) × v_{sf}^b(t,t_{m-1})]}{dt} + \frac{1}{2} [\theta_{ib}^b(t,t_{m-1}) × f_{sf}^b(t) + v_{sf}^b(t,t_{m-1}) × \omega_{ib}^b(t)]

时间段[tm1,tm][t_{m-1},t_m]内积分:

tm1tmθibb(t,tm1)×fsfb(t)dt=12θibb(tm,tm1)×vsfb(tm,tm1)+12tm1tmθibb(t,tm1)×fsfb(t)+vsfb(t,tm1)×ωibb(t)dt=Δvrot(m)b(m1)+Δvscul(m)b(m1) \int_{t_{m-1}}^{t_m} \theta_{ib}^b(t,t_{m-1}) × f_{sf}^b(t) dt \\= \frac{1}{2} \theta_{ib}^b(t_m,t_{m-1}) × v_{sf}^b(t_m,t_{m-1}) + \frac{1}{2} \int_{t_{m-1}}^{t_m} \theta_{ib}^b(t,t_{m-1}) × f_{sf}^b(t) + v_{sf}^b(t,t_{m-1}) × \omega_{ib}^b(t) dt \\ = \Delta v_{rot(m)}^{b(m-1)} + \Delta v_{scul(m)}^{b(m-1)}

其中:

Δvrot(m)b(m1)=12Δθm×Δvm \Delta v_{rot(m)}^{b(m-1)} = \frac{1}{2}\Delta \theta_m × \Delta v_m

Δvscul(m)b(m1)=12tm1tmθibb(t,tm1)×fsfb(t)+vsfb(t,tm1)×ωibb(t)dt \Delta v_{scul(m)}^{b(m-1)} = \frac{1}{2} \int_{t_{m-1}}^{t_m} \theta_{ib}^b(t,t_{m-1}) × f_{sf}^b(t) + v_{sf}^b(t,t_{m-1}) × \omega_{ib}^b(t) dt

{Δθm=θibb(tm,tm1)=tm1tmωibb(t)dtΔvm=vsfb(tm,tm1)=tm1tmfsfb(t)dt \begin{cases} \Delta \theta_m = \theta_{ib}^b(t_m,t_{m-1}) = \int_{t_{m-1}}^{t_m} \omega_{ib}^b(t) dt \\ \Delta v_m = v_{sf}^b(t_m,t_{m-1}) = \int_{t_{m-1}}^{t_m} f_{sf}^b(t) dt \\ \end{cases}

Δvrot(m)b(m1)\Delta v_{rot(m)}^{b(m-1)}称为速度的旋转误差补偿量;
Δvscul(m)b(m1)\Delta v_{scul(m)}^{b(m-1)}称为划桨误差补偿量;

(2) 划桨误差补偿算法

假设动坐标系(b)绕其x轴做角振动,同时绕y轴做线振动,两者的频率相同但相位正好差90°,即角速度和比力分别为:

ωibb(t)=[αΩsinΩt00],fsfb(t)=[0βΩcosΩt0] \omega_{ib}^b(t) = \begin{bmatrix} \alpha \Omega sin \Omega t \\ 0 \\ 0 \\ \end{bmatrix}, f_{sf}^b(t) = \begin{bmatrix} 0 \\ \beta \Omega cos \Omega t \\ 0 \\ \end{bmatrix}

其中,α\alpha为角振动的角度幅值,β\beta为线振动的比力增量幅值,Ω\Omega为震动频率。
积分得其角增量和比力增量:

θibb(t,tm1)=tm1tmωibb(τ)dτ=[α(cosΩtcosΩtm1)00] \theta_{ib}^b(t,t_{m-1}) = \int_{t_{m-1}}^{t_m} \omega_{ib}^b(\tau) d\tau = \begin{bmatrix} -\alpha(cos\Omega t - cos\Omega t_{m-1})\\ 0 \\ 0 \\ \end{bmatrix}

vsfb(t,tm1)=tm1tmfsfb(τ)dτ=[0β(sinΩtsinΩtm1)0] v_{sf}^b(t,t_{m-1}) = \int_{t_{m-1}}^{t_m} f_{sf}^b(\tau) d\tau = \begin{bmatrix} 0 \\ \beta(sin\Omega t - sin\Omega t_{m-1})\\ 0 \\ \end{bmatrix}

那么:

Δvscul(m)b(m1)=12tm1tmθibb(t,tm1)×fsfb(t)+vsfb(t,tm1)×ωibb(t)dt=12tm1tm[α(cosΩtcosΩtm1)00]×[0βΩcosΩt0]+[0β(sinΩtsinΩtm1)0]×[αΩsinΩt00]dt=12tm1tm[α(cosΩtcosΩtm1)β(sinΩtsinΩtm1)0]×[αΩsinΩtβΩcosΩt0]dt=12tm1tm[θibb(t,tm1)+vsfb(t,tm1)]×[fsfb(t)+ωibb(t)]dt \begin{aligned} \Delta v_{scul(m)}^{b(m-1)} &= \frac{1}{2} \int_{t_{m-1}}^{t_m} \theta_{ib}^b(t,t_{m-1}) × f_{sf}^b(t) + v_{sf}^b(t,t_{m-1}) × \omega_{ib}^b(t) dt\\ &= \frac{1}{2} \int_{t_{m-1}}^{t_m} \begin{bmatrix} -\alpha(cos\Omega t - cos\Omega t_{m-1}) \\ 0 \\ 0 \\ \end{bmatrix} × \begin{bmatrix} 0 \\ \beta \Omega cos \Omega t \\ 0 \\ \end{bmatrix} \\ &+ \begin{bmatrix} 0 \\ \beta(sin\Omega t - sin\Omega t_{m-1})\\ 0 \\ \end{bmatrix} × \begin{bmatrix} \alpha \Omega sin \Omega t \\ 0 \\ 0 \\ \end{bmatrix} dt\\ &= \frac{1}{2} \int_{t_{m-1}}^{t_m} \begin{bmatrix} -\alpha(cos\Omega t - cos\Omega t_{m-1}) \\ \beta(sin\Omega t - sin\Omega t_{m-1}) \\ 0 \\ \end{bmatrix} × \begin{bmatrix} \alpha \Omega sin \Omega t \\ \beta \Omega cos \Omega t \\ 0 \\ \end{bmatrix} dt \\ &= \frac{1}{2} \int_{t_{m-1}}^{t_m} [\theta_{ib}^b(t,t_{m-1}) + v_{sf}^b(t,t_{m-1})] × [f_{sf}^b(t) + \omega_{ib}^b(t)] dt \end{aligned}

若设Umi=Δθmi+ΔvmiU_{mi}=\Delta \theta_{mi}+\Delta v_{mi},其中Δθmi=tm1+(i1)htm1+ihωibb(t)dt,Δvmi=tm1+(i1)htm1+ihfsfb(t)dt\Delta \theta_{mi}=\int_{t_{m-1}+(i-1)h}^{t_{m-1}+ih} \omega_{ib}^b(t)dt, \Delta v_{mi}=\int_{t_{m-1}+(i-1)h}^{t_{m-1}+ih} f_{sf}^b(t)dt, 类似于圆锥误差补偿公式,有划桨误差补偿算法(估计公式):

Δv^scul(m)b(m1)=i=1N1kNiUmi×UmN=i=1N1kNi(Δθmi+Δvmi)×(ΔθmN+ΔvmN) \begin{aligned} \Delta \hat v_{scul(m)}^{b(m-1)} &= \sum_{i=1}^{N-1} k_{N-i} U_{mi} × U_{mN} \\ &= \sum_{i=1}^{N-1} k_{N-i} (\Delta \theta_{mi}+\Delta v_{mi})× (\Delta \theta_{mN}+\Delta v_{mN}) \end{aligned}

在划桨运动***意到Δθmi×ΔθmN=Δvmi×ΔvmN=0\Delta \theta_{mi} × \Delta \theta_{mN} = \Delta v_{mi} × \Delta v_{mN} = 0,故:

Δv^scul(m)b(m1)=i=1N1kNiΔθmi×ΔvmN+i=1N1kNiΔvmi×ΔθmN \Delta \hat v_{scul(m)}^{b(m-1)} = \sum_{i=1}^{N-1} k_{N-i} \Delta \theta_{mi} × \Delta v_{mN} + \sum_{i=1}^{N-1} k_{N-i} \Delta v_{mi} × \Delta \theta_{mN}

其中系数kNik_{N-i}同圆锥误差补偿系数。
整理比力速度增量:

Δvsf(m)e(I[θiee(t,tm1)×])Cb(m1)e(m1)tm1tmfsfb(t)dt+Cb(m1)e(m1)tm1tm[θibb(t,tm1)×]fsfb(t)dt(I[θiee(t,tm1)×])Cb(m1)e(m1)Δvm+Cb(m1)e(m1)(Δvrot(m)b(m1)+Δv^scul(m)b(m1)) \begin{aligned} \Delta v_{sf(m)}^e & \approx (I-[\theta_{ie}^e(t,t_{m-1})×]) C_{b(m-1)}^{e(m-1)} \int_{t_{m-1}}^{t_m} f_{sf}^b(t)dt + C_{b(m-1)}^{e(m-1)} \int_{t_{m-1}}^{t_m} [\theta_{ib}^b(t,t_{m-1})×] f_{sf}^b(t)dt \\ & \approx (I-[\theta_{ie}^e(t,t_{m-1})×]) C_{b(m-1)}^{e(m-1)} \Delta v_m + C_{b(m-1)}^{e(m-1)} (\Delta v_{rot(m)}^{b(m-1)} + \Delta \hat v_{scul(m)}^{b(m-1)}) \\ \end{aligned}

其中,tm1tmfsfb(t)dtfsfb(t)TΔvm\int_{t_{m-1}}^{t_m} f_{sf}^b(t)dt \approx f_{sf}^b(t) * T \approx \Delta v_m

3、公式汇总

重写速度更新如下:

vme=vm1e+Δvsf(m)e+Δvcor/g(m)eΔvsf(m)e(I[θiee(t,tm1)×])Cb(m1)e(m1)Δvm+Cb(m1)e(m1)(Δvrot(m)b(m1)+Δv^scul(m)b(m1))Δvrot(m)b(m1)=12Δθm×ΔvmΔv^scul(m)b(m1)=i=1N1kNiΔθmi×ΔvmN+i=1N1kNiΔvmi×ΔθmNΔvcor/g(m)e[2Ωie(m1/2)evm1/2e+gm1/2e]T \begin{aligned} v_m^e &= v_{m-1}^e + \Delta v_{sf(m)}^e + \Delta v_{cor/g(m)}^e \\ \Delta v_{sf(m)}^e & \approx (I-[\theta_{ie}^e(t,t_{m-1})×]) C_{b(m-1)}^{e(m-1)} \Delta v_m + C_{b(m-1)}^{e(m-1)} (\Delta v_{rot(m)}^{b(m-1)} + \Delta \hat v_{scul(m)}^{b(m-1)}) \\ \Delta v_{rot(m)}^{b(m-1)} &= \frac{1}{2}\Delta \theta_m × \Delta v_m \\ \Delta \hat v_{scul(m)}^{b(m-1)} &= \sum_{i=1}^{N-1} k_{N-i} \Delta \theta_{mi} × \Delta v_{mN} + \sum_{i=1}^{N-1} k_{N-i} \Delta v_{mi} × \Delta \theta_{mN} \\ \Delta v_{cor/g(m)}^e & \approx [-2\Omega_{ie(m-1/2)}^e v^e_{m-1/2} + g^e_{m-1/2}] T \end{aligned}


参考:
严恭敏.捷联惯导算法与组合导航原理讲义