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 igaln
    if nargin==2  % initialization: imugpsaln(imut, gpst)
        igaln.imut = k0; igaln.gpst = k1;
        igaln.glen = length(igaln.gpst);
        igaln.kgps = 1;
        return;
    end
    k0 = k0-1;
    if k0==0, k0 = 1; end
    t0 = igaln.imut(k0); t1 = igaln.imut(k1);
    kgps = 0; dt = 0;
    if ForB=='F'  % Forward search
        while igaln.gpst(igaln.kgps)<t0 
            igaln.kgps = igaln.kgps + 1;
            if igaln.kgps>igaln.glen
                igaln.kgps = igaln.glen;
                break;
            end
        end
        tg = igaln.gpst(igaln.kgps);
        if t0<tg && tg<=t1
            kgps = igaln.kgps; dt = t1 - tg;
        end
    elseif ForB=='B' % Backward search
        while igaln.gpst(igaln.kgps)>t1 
            igaln.kgps = igaln.kgps - 1;
            if igaln.kgps==0
                igaln.kgps = 1;
                break;
            end
        end
        tg = igaln.gpst(igaln.kgps);
        if t0<=tg && tg<t1
            kgps = igaln.kgps; dt = tg - t0;
        end
    elseif ForB=='f'  % Forward re-intialization, set to the first one
        igaln.kgps = 1;
    elseif ForB=='b'  % Backward re-intialization, set to the last one
        igaln.kgps = igaln.glen;
    end

时间不同步初始化

1.imugpssyn(imu(:,end), gps(:,end));为时间不同步的参数初始化模块,即将imu和gps的时间赋值给全局变量
2. [kgps, dt] = imugpssyn(k, k1, 'F');后续代码中的这个代码块,就是找gps的时间在imu的两个时刻中间的情况:
imu时间分别为t0,t1gps时间为tg;若t0<tg<t1,则dT=t1-tg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十八与她

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值