进行姿态解算的目标之一就是为 加速度计提供测量基准,即,将加速度计在机体坐标系下的输出 变换到 导航坐标中去。
数学表示: Cnbfb C b n f b
【注】:本编程实现中,速度更新周期 [tm,tm+1] [ t m , t m + 1 ] 与姿态更新周期 [tk,tk+1] [ t k , t k + 1 ] 相同,均为6倍的采样时间间隔。
目标就是求得速度方程(或比力方程)的数值解:
Cb(m−1)b(t) C b ( t ) b ( m − 1 ) 反映 t(m−1) t ( m − 1 ) 时刻至 t(t) t ( t ) 时刻坐标系的变化,而这种变化也可以由等效旋转矢量表示,关系如下(推导见P253):
这样, tm t m 时刻运载体在导航坐标系内的速度:
其中, ΔVg/corm Δ V g / c o r m 是由有害加速度引起的速度补偿量;
ΔVsfm Δ V s f m 是由比力引起的速度补偿量;
ΔVsfm=ΔVm+ΔVrotm+ΔVsculm Δ V s f m = Δ V m + Δ V r o t m + Δ V s c u l m
下面,分析对最后一项,即,划桨效应补偿项的补偿算法。
与姿态解算时同样地,运载体的角速度和加速度随时间变化的曲线复杂且未知,此处,采用直线拟合 ω(t) ω ( t ) 和 f(t) f ( t ) .
推导过程略,给出最后的划桨效应补偿项公式:
但是,实际中运载体的角速度和比力 与 给定的拟合曲线 并不一致。于是下面给出 在划桨运动下,划桨效应补偿项的公式:
双子样,系数相同;
三子样、四子样公式详见P298.
实现功能:根据陀螺和加计的输出,计算运载体的速度。
函数参数输入:(此处采用三子样算法)
增量的输出对应的时间间隔: T T
陀螺的角度增量输出: ΔΘ1,ΔΘ2,ΔΘ3 Δ Θ 1 , Δ Θ 2 , Δ Θ 3
加计的速度增量输出: ΔV1,ΔV2,ΔV3 Δ V 1 , Δ V 2 , Δ V 3
当地的地球物理量信息: ωnie,ωnen,gn ω i e n , ω e n n , g n
tm−1 t m − 1 时刻的运载体速度: Vnm−1 V m − 1 n
函数的输出参数:
tm t m 时刻的运载体速度: Vnm V m n
代码如下:
function Vm1=CalculateVm(T,Cm,delTheta,delV,Vm,Wie,Wen,G)
% This function is to calculate the Vm1
% delTheta : 3-by-3 matrix \delta \Theta
% delV : 3-by-3 matrix \delta V
% By changshen_xu
% Date 2018-07-19
delTheta1 = delTheta(:,1);
delTheta2 = delTheta(:,2);
delTheta3 = delTheta(:,3);
delV1 = delV(:,1);
delV2 = delV(:,2);
delV3 = delV(:,3);
% Vm1 = Vm + Cm \delta Vsfm + \delta Vgcorm
% ====\delta Vgcorm========
harmful_force = G-cross(2*Wie+Wen,Vm);% be treated as a constant
delVg = harmful_force*T;
% \delta Vsfm = \delta Vm + \delta Vrotm + \delta Vsculm
% ====\delta Vm===========
delVm = delV1+delV2+delV3;
% ====\delta Vrotm=======
delThetam = delTheta1+delTheta2+delTheta3;
delVrotm = 1/2*cross(delVm,delThetam);
% ====\delta Vsculm========
delVsculm = 9/20*(cross(delTheta1,delV3) + cross(delV1,delTheta3)) +...
27/40*(cross(delTheta1,delV2)+ cross(delTheta2,delV3) + ...
cross(delV1,delTheta2) + cross(delV2,delTheta3));
delVsfm = delVm+delVrotm+delVsculm;
Vm1 = Vm+Cm*delVsfm+delVg;
end