PSINS中19维组合导航模块sinsgps详解(时间同步部分)
PSINS中19维组合导航模块sinsgps详解
- 时间同步部分
- 时间不同步误差原理
- 时间不同步误差代码
- 时间不同步初始化
时间同步部分
时间不同步误差原理
参见图7.3.2,在惯性/卫星组合导航系统中,组合导航计算机获得两类传感器导航信息的时刻©往往不是传感器实际信息的采集时刻(A和B),从传感器信息采集到组合导航计算之间存在一定的时间滞后﹐比如卫星接收机采集到无线电信号后﹐需要先进行一系列的解算,再经过通信端口发送给组合导航计算机。惯性和卫星两类传感器的时间滞后一般并不相同,两者之间的相对滞后记为时间不同步误差delta t。在组合导航信息比对时,必须对时间不同步误差进行估计或补偿。

在分析时间不同步误差时,假设惯导与卫导之间的杆臂误差已经得到校正。如图7.3.2所示,惯导速度和卫星速度之间的关系应为

时间不同步误差代码
function [kgps, dt] = imugpssyn(k0, k1, ForB)
% SIMU & GPS time synchronization. A schematic diagram for time
% relationship between SIMU & GPS looks like
% k0 k1
% imu_t: -----|------*---|-----|--------
% <---dt---> (Forward)
% <--dt--> (Backward)
% gps_t: ------------|------------------
% kgps
% where k0,k1 for SIMU data log index and kgps for GPS data log index.
%
% Prototype: [kgps, dt] = imugpssyn(k0, k1, ForB)
% Usages:
% For initialization: imugpssyn(imut, gpst)
% where imut is SIMU time array, gpst is GPS time array
% For synchrony checking: [kgps, dt] = imugpssyn(k0, k1, ForB)
% It checks if there is any GPS sample between SIMU time interval
% imut(k0) and imut(k1), if exists, return the GPS index 'kgps'
% and time gap 'dt'.
% ForB='F' for forward checking,
% ForB='B' for backward checking,
% ForB='f' for re-setting from the first one,
% ForB='b' for re-setting from the last one.
%
% See also insupdate, kfupdate, POSProcessing, combinedata, combinet, igsplot.% Copyright(c) 2009-2014, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 03/02/2014
global igalnif nargin==2 % initialization: imugpsaln(imut, gpst)igaln.imut = k0; igaln.gpst = k1;igaln.glen = length(igaln.gpst);igaln.kgps = 1;return;endk0 = k0-1;if k0==0, k0 = 1; endt0 = igaln.imut(k0); t1 = igaln.imut(k1);kgps = 0; dt = 0;if ForB=='F' % Forward searchwhile igaln.gpst(igaln.kgps)<t0 igaln.kgps = igaln.kgps + 1;if igaln.kgps>igaln.glenigaln.kgps = igaln.glen;break;endendtg = igaln.gpst(igaln.kgps);if t0<tg && tg<=t1kgps = igaln.kgps; dt = t1 - tg;endelseif ForB=='B' % Backward searchwhile igaln.gpst(igaln.kgps)>t1 igaln.kgps = igaln.kgps - 1;if igaln.kgps==0igaln.kgps = 1;break;endendtg = igaln.gpst(igaln.kgps);if t0<=tg && tg<t1kgps = igaln.kgps; dt = tg - t0;endelseif ForB=='f' % Forward re-intialization, set to the first oneigaln.kgps = 1;elseif ForB=='b' % Backward re-intialization, set to the last oneigaln.kgps = igaln.glen;end
时间不同步初始化
1.imugpssyn(imu(:,end), gps(:,end));为时间不同步的参数初始化模块,即将imu和gps的时间赋值给全局变量
2. [kgps, dt] = imugpssyn(k, k1, 'F');后续代码中的这个代码块,就是找gps的时间在imu的两个时刻中间的情况:
imu时间分别为t0,t1;gps时间为tg;若t0dT=t1-tg;
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
