天天看點

INS/GPS組合導航類型簡介前言内容PSINS中19維組合導航代碼可參考一下

INS/GPS組合導航類型簡介

  • 前言
  • 内容
  • PSINS中19維組合導航代碼可參考一下

前言

導航技術為使用者提供運動物體的位置、速度和姿态資訊。常用導航方法有衛星導航和慣性導航。

衛星導航以其定位精度高、區域覆寫範圍廣、使用者端價格低廉且便于應用等優點,在導航領域備受關注,成為應用最廣泛的導航技術[1]。雖然衛星導航系統有着精度高、全天候、連續實時定位的能力,但其定位性能受環境影響較大,如在城市峽谷、隧道等信号遮擋嚴重或幹擾較大的地方,衛星導航的精度會大幅降低,甚至會出現定位解算失敗的情況。慣性導航技術建立在牛頓經典力學定律的基礎上,通過航迹推算原理求得物體的實時位置[2]。慣性導航具有獨立工作能力強、不易受外界幹擾等優點,但由于航位推算過程存在誤差累積,是以慣性導航的精度是随時間發散的,不能獨立地進行長期定位工作。

衛星導航和慣性導航存在天然的優勢互補,随着導航技術的發展,捷聯式慣性導航(Strap-down Inertial Navigation System , SINS)和全球定位系統(Global Positioning System ,GPS)構成的SINS/GPS組合導航系統成為領域研究熱點,可以實作兩個子系統的互補更新,有效解決GPS在丢失信号的情況下無法确定位置以及INS存在長期積累誤差的問題[3]。

組合導航系統核心技術在于狀态方程建構、量測方程建構和系統融合算法的設計。

内容

根據INS和GPS耦合程度的不同,INS/GPS的組合形式可以劃分為松組合(Loosely Coupled ,LC)、緊組合(Tightly Coupled ,TC)以及深組合或超緊組合(Ultra-tightly Coupled)[3]。

松組合基于GNSS解算的位置和速度,結構簡單、技術成熟、易實作,且精度也較高;緊組合基于GNSS觀測量,如僞距和僞距率,建構較松組合複雜但效果更好;

深組合,基于GNSS信号,主要是通過調整接收機結構、提高接收機性能來實作,目前的技術不成熟、實作難度較高。

黃鳳钊等人以僞距(僞距變化率)殘差作為觀測資訊, 實作了SINS/GPS僞距組合導航系統的軟硬體設計,靜态和動态實驗均取得了較好的精度[9]。陳家斌等人設計了一種權重平均跟蹤誤差估計器,能對僞距觀測量中的碼環跟蹤誤差進行有效的修正,系統的導航精度有明顯的提高[10]。

PSINS中19維組合導航代碼可參考一下

function [avp, xkpk, zkrk, sk, ins, kf] = sinsgps(imu, gps, ins, davp, imuerr, lever, dT, rk, Pmin, Rmin, fbstr, isfig)
% 19-state SINS/GNSS integrated navigation Kalman filter.
% The 19-state includes:
%       [phi(3); dvn(3); dpos(3); eb(3); db(3); lever(3); dT(1)]
% The 3- or 6- measurements are:
%       [dvn(3)] or [dvn(3); dpos(3)]
%
% Prototype: [avp, xkpk, zkrk, sk, ins, kf] = sinsgps(imu, gps, ins, davp, imuerr, lever, dT, rk, Pmin, Rmin, fbstr, isfig)
% Inputs: imu - IMU array [wm, vm, t]
%         gps - GNSS array [vn, pos, t] or [pos, t];
%         ins - ins array, set by function 'insinit'
%         davp - AVP array for P0 setting
%         imuerr - set by function 'imuerrset', for P0 and Qk setting
%         lever - lever arm from IMU to GNSS, if lever(4)=0 then Pk(lever)=0 for no lever estimation
%         dT - time delay from IMU to GNSS, if dT(2)=0 then Pk(dT)=0 for no time delay estimation
%         rk - measurement noise std(dpos) or std([dvn;dpos])
%         Pmin - Pmin setting, Pmin<=0 for no Pmin constrain
%         Rmin - Rmin setting, Rmin<=0 for no adaptive KF, Rmin=0~1 scale for adaptive KF and Rmin = Rk*Rmin
%         fbstr - KF feedback string from 'avpedLT'
%         isfig - figure flag
%
% Example 1:
%   [avp1, xkpk, zkrk, sk, ins1, kf1] = sinsgps(imu, gps, 300);
%
% Example 2:
% ins = insinit([yaw;pos], ts);
% avperr = avperrset([60;300], 1, 100);
% imuerr = imuerrset(0.03, 100, 0.001, 1);
% Pmin = [avperrset([0.1,1],0.001,0.01); gabias(0.1, [10,30]); [0.01;0.01;0.01]; 0.0001].^2;
% Rmin = vperrset(0.001, 0.01).^2;
% [avp1, xkpk, zkrk, sk, ins1, kf1] = sinsgps(imu, gps, ins, avperr, imuerr, rep3(1), 0.01, vperrset(0.1,10), Pmin, Rmin, 'avp');
%
% Example 3:
% t0 = 1;  t1 = 916;
% avp0 = getat(avp,t0);
% ins = insinit(avp0, ts);
% avperr = avperrset([60;300], 1, 10);
% imuerr = imuerrset(0.5, 1000, 0.1, 25);
% Pmin = [avperrset([0.2,1.0],0.01,0.2); gabias(0.01, [10,10]); [0.01;0.01;0.01]; 0.001].^2;
% Rmin = vperrset(0.1, 0.3).^2;
% [avp1, xkpk, zkrk, sk, ins1, kf] = sinsgps(imu(t0/ts:t1/ts,:), gps, ins, avperr, imuerr, rep3(1), 0.1, vperrset(0.1,10), Pmin, Rmin, 'avped');
% 
% See also  kfinit, kfupdate, imugpssyn, igsplot, insupdate, posprocessing.

% Copyright(c) 2009-2021, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 09/10/2013, 06/02/2021, 02/11/2021

           

繼續閱讀