• 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69

    时间不同步初始化

    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

  • 相关阅读:
    MySQL常用函数大全
    Git 忽略.gitignore文件自身/git仅本地忽略某些文件
    【Windows】win10系统重装后桌面及软件安装清单(自己用)
    基于JavaWeb+SSM+Vue微信小程序校园兼职任务平台系统的设计和实现
    安装Mysql
    【记录】Java两个集合取交集出现UnsupportedOperationException
    SpringBoot2.6.15 SpringSecurity配置
    力扣84 双周赛 t4 6144 和力扣305周赛t4 6138
    Set接口的实现类---HashSet
    剑指offer 76 删除链表中重复的点
  • 原文地址:https://blog.csdn.net/absll/article/details/125598871