一、姿态更新算法
对于地固系下的方向余弦阵有:
Cb(m)e(m)=Ce(m−1)e(m)Cb(m−1)e(m−1)Cb(m)b(m−1)
Cb(m−1)e(m),Cb(m)e(m)分别是tm−1,tm时刻的姿态矩阵。那么姿态更新问题就是求解Ce(m−1)e(m)和Cb(m)b(m−1)的问题。设在时间段T=tm−tm−1内b系产生的等效旋转矢量为ϕib(m)b,其模为ϕ,反对称矩阵为Φ,地球自转的等效旋转矢量的反对称阵为Φe,角速度为ωe,那么:
Ce(m−1)e(m)≈I−Φe=I−⎣⎡0ωe0−ωe00000⎦⎤T
Cb(m)b(m−1)=I+ϕsinϕΦ+ϕ21−cosϕΦ2
可能有人会说:Ce(m−1)e(m)=I,其实这是不对的。无论是机体所在的b系转动所产生的等效旋转矢量,还是地球自转的等效旋转矢量,都是以地球惯性系为参考基准的,所以不能认为Ce(m−1)e(m)=I,同样在速度更新中也会遇见同样的问题。
下面利用等效旋转矢量法求解ϕib(m)b。
1、圆锥误差补偿算法
由于该部分的算法不因选取的惯导更新坐标系的不同而不同,在此不进行逐步推导,具体算法如下所示:
假设陀螺在[tm−1,tm]内进行了两次等间隔采样(二子样算法),角增量分别为Δθm1,Δθm2,采用二子样圆锥误差补偿算法,有:
ϕib(m)b=(Δθm1+Δθm2)+32Δθm1×Δθm2
二、速度更新算法
比力方程:
v˙e(t)=Cbe(t)fsfb(t)−2Ωiee(t)ve(t)+ge(t)
时间段[tm−1,tm]内积分:
∫tm−1tmv˙e(t)dt=∫tm−1tmCbe(t)fsfb(t)−2Ωiee(t)ve(t)+ge(t)dt
即:
vme−vm−1e=∫tm−1tmCbe(t)fsfb(t)dt+∫tm−1tm−2Ωiee(t)ve(t)+ge(t)dt=Δvsf(m)e+Δvcor/g(m)e
其中:
Δvsf(m)e=∫tm−1tmCbe(t)fsfb(t)dt(2-1)
Δvcor/g(m)e=∫tm−1tm−2Ωiee(t)ve(t)+ge(t)dt(2-2)
上述两项分别为相应时间段T=tm−tm−1内地固系内比力速度增量、有害加速度增量。
则有:
vme=vm−1e+Δvsf(m)e+Δvcor/g(m)e
1、有害速度增量
一般认为有害加速度Δvcor/g(m)e的被积函数是时间的缓慢量,可采用tm−1/2=(tm−1+tm)/2时刻的值进行近似代替,则公式(2-2)近似为:
Δvcor/g(m)e≈[−2Ωie(m−1/2)evm−1/2e+gm−1/2e]T
上式中tm−1/2时刻各量需使用外推法:
xm−1/2=xm−1+2xm−1−xm−2=23xm−1−xm−2
其中,x=Ωiee,ve,ge
2、比力速度增量
将公式(2-1)进行如下分解:
Δvsf(m)e=∫tm−1tmCe(m−1)e(t)Cb(m−1)e(m−1)Cb(t)b(m−1)fsfb(t)dt
注意,这里Ce(m−1)e(t)=I也是不成立的!!
假设与Ce(m−1)e(t)对应的等效旋转矢量为ϕiee(t,tm−1),角增量为θiee(t,tm−1)(近似为地球自转角速度*时间),与Cb(t)b(m−1)对应的等效旋转矢量为ϕibb(t,tm−1),角增量为θibb(t,tm−1),根据变换矩阵与等效旋转矢量之间的关系,当等效旋转矢量为小量时,可取如下一阶近似:
Ce(m−1)e(t)Cb(t)b(m−1)≈I−ϕiee(t,tm−1)×≈I−θiee(t,tm−1)×≈I+ϕibb(t,tm−1)×≈I+θibb(t,tm−1)×
那么便有:
Δvsf(m)e=∫tm−1tmCe(m−1)e(t)Cb(m−1)e(m−1)Cb(t)b(m−1)fsfb(t)dt≈∫tm−1tm[I−θiee(t,tm−1)×]Cb(m−1)e(m−1)[I+θibb(t,tm−1)×]fsfb(t)dt≈∫tm−1tmCb(m−1)e(m−1)fsfb(t)+Cb(m−1)e(m−1)[θibb(t,tm−1)×]fsfb(t)−[θiee(t,tm−1)×]Cb(m−1)e(m−1)fsfb(t)dt=Cb(m−1)e(m−1)∫tm−1tmfsfb(t)dt+Cb(m−1)e(m−1)∫tm−1tm[θibb(t,tm−1)×]fsfb(t)dt−[θiee(t,tm−1)×]Cb(m−1)e(m−1)∫tm−1tmfsfb(t)dt=(I−[θiee(t,tm−1)×])Cb(m−1)e(m−1)∫tm−1tmfsfb(t)dt+Cb(m−1)e(m−1)∫tm−1tm[θibb(t,tm−1)×]fsfb(t)dt
(1) 旋转和划桨误差
对于上式的第二项中∫tm−1tm[θibb(t,tm−1)×]fsfb(t)dt,我们称为旋转与划船误差。下面对其进行分析,由于
dtd[θibb(t,tm−1)×vsfb(t,tm−1)]=ωibb(t)×vsfb(t,tm−1)+θibb(t,tm−1)×fsfb(t)=−vsfb(t,tm−1)×ωibb(t)−θibb(t,tm−1)×fsfb(t)+2θibb(t,tm−1)×fsfb(t)
移项整理可得:
θibb(t,tm−1)×fsfb(t)=21dtd[θibb(t,tm−1)×vsfb(t,tm−1)]+21[θibb(t,tm−1)×fsfb(t)+vsfb(t,tm−1)×ωibb(t)]
时间段[tm−1,tm]内积分:
∫tm−1tmθibb(t,tm−1)×fsfb(t)dt=21θibb(tm,tm−1)×vsfb(tm,tm−1)+21∫tm−1tmθibb(t,tm−1)×fsfb(t)+vsfb(t,tm−1)×ωibb(t)dt=Δvrot(m)b(m−1)+Δvscul(m)b(m−1)
其中:
Δvrot(m)b(m−1)=21Δθm×Δvm
Δvscul(m)b(m−1)=21∫tm−1tmθibb(t,tm−1)×fsfb(t)+vsfb(t,tm−1)×ωibb(t)dt
{Δθm=θibb(tm,tm−1)=∫tm−1tmωibb(t)dtΔvm=vsfb(tm,tm−1)=∫tm−1tmfsfb(t)dt
Δvrot(m)b(m−1)称为速度的旋转误差补偿量;
Δvscul(m)b(m−1)称为划桨误差补偿量;
(2) 划桨误差补偿算法
假设动坐标系(b)绕其x轴做角振动,同时绕y轴做线振动,两者的频率相同但相位正好差90°,即角速度和比力分别为:
ωibb(t)=⎣⎡αΩsinΩt00⎦⎤,fsfb(t)=⎣⎡0βΩcosΩt0⎦⎤
其中,α为角振动的角度幅值,β为线振动的比力增量幅值,Ω为震动频率。
积分得其角增量和比力增量:
θibb(t,tm−1)=∫tm−1tmωibb(τ)dτ=⎣⎡−α(cosΩt−cosΩtm−1)00⎦⎤
vsfb(t,tm−1)=∫tm−1tmfsfb(τ)dτ=⎣⎡0β(sinΩt−sinΩtm−1)0⎦⎤
那么:
Δvscul(m)b(m−1)=21∫tm−1tmθibb(t,tm−1)×fsfb(t)+vsfb(t,tm−1)×ωibb(t)dt=21∫tm−1tm⎣⎡−α(cosΩt−cosΩtm−1)00⎦⎤×⎣⎡0βΩcosΩt0⎦⎤+⎣⎡0β(sinΩt−sinΩtm−1)0⎦⎤×⎣⎡αΩsinΩt00⎦⎤dt=21∫tm−1tm⎣⎡−α(cosΩt−cosΩtm−1)β(sinΩt−sinΩtm−1)0⎦⎤×⎣⎡αΩsinΩtβΩcosΩt0⎦⎤dt=21∫tm−1tm[θibb(t,tm−1)+vsfb(t,tm−1)]×[fsfb(t)+ωibb(t)]dt
若设Umi=Δθmi+Δvmi,其中Δθmi=∫tm−1+(i−1)htm−1+ihωibb(t)dt,Δvmi=∫tm−1+(i−1)htm−1+ihfsfb(t)dt, 类似于圆锥误差补偿公式,有划桨误差补偿算法(估计公式):
Δv^scul(m)b(m−1)=i=1∑N−1kN−iUmi×UmN=i=1∑N−1kN−i(Δθmi+Δvmi)×(ΔθmN+ΔvmN)
在划桨运动***意到Δθmi×ΔθmN=Δvmi×ΔvmN=0,故:
Δv^scul(m)b(m−1)=i=1∑N−1kN−iΔθmi×ΔvmN+i=1∑N−1kN−iΔvmi×ΔθmN
其中系数kN−i同圆锥误差补偿系数。
整理比力速度增量:
Δvsf(m)e≈(I−[θiee(t,tm−1)×])Cb(m−1)e(m−1)∫tm−1tmfsfb(t)dt+Cb(m−1)e(m−1)∫tm−1tm[θibb(t,tm−1)×]fsfb(t)dt≈(I−[θiee(t,tm−1)×])Cb(m−1)e(m−1)Δvm+Cb(m−1)e(m−1)(Δvrot(m)b(m−1)+Δv^scul(m)b(m−1))
其中,∫tm−1tmfsfb(t)dt≈fsfb(t)∗T≈Δvm
3、公式汇总
重写速度更新如下:
vmeΔvsf(m)eΔvrot(m)b(m−1)Δv^scul(m)b(m−1)Δvcor/g(m)e=vm−1e+Δvsf(m)e+Δvcor/g(m)e≈(I−[θiee(t,tm−1)×])Cb(m−1)e(m−1)Δvm+Cb(m−1)e(m−1)(Δvrot(m)b(m−1)+Δv^scul(m)b(m−1))=21Δθm×Δvm=i=1∑N−1kN−iΔθmi×ΔvmN+i=1∑N−1kN−iΔvmi×ΔθmN≈[−2Ωie(m−1/2)evm−1/2e+gm−1/2e]T
参考:
严恭敏.捷联惯导算法与组合导航原理讲义