文章目录

  • 卡尔曼滤波与SINS/GNSS组合导航
    • 典型的SINS/GNSS组合滤波
    • POS处理

卡尔曼滤波与SINS/GNSS组合导航

用于Kalman滤波的函数有:
psinstypedef(nnm)KF状态维数nn/量测维数m定义(一般可直接用于SINS/GNSS组合),或用户自定义字符串,在kfinit/kffk/kfhk/kfplot等函数中作为类型区分标识;
kfinit:滤波器主要参数初始化,再用kfinit0更多的参数初始化;

function kf = kfinit(ins, varargin)
% Kalman filter initializes for structure array 'kf', this precedure
% usually includs the setting of structure fields: Qt, Rk, Pxk, Hk.
%
% Prototype: kf = kfinit(ins, varargin)
% Inputs: ins - SINS structure array, if not struct then nts=ins;
%         varargin - if any other parameters
% Output: kf - Kalman filter structure array
%
% See also  kfinit0, kfsetting, kffk, kfkk, kfupdate, kffeedback, psinstypedef.% Copyright(c) 2009-2014, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 09/10/2013
global glv psinsdef
[Re,deg,dph,ug,mg] = ... % just for shortsetvals(glv.Re,glv.deg,glv.dph,glv.ug,glv.mg);
o33 = zeros(3); I33 = eye(3);
kf = [];
if isstruct(ins),    nts = ins.nts;
else                 nts = ins;
end
switch(psinsdef.kfinit)case psinsdef.kfinit153,psinsdef.kffk = 15;  psinsdef.kfhk = 153;  psinsdef.kfplot = 15;[davp, imuerr, rk] = setvals(varargin);kf.Qt = diag([imuerr.web; imuerr.wdb; zeros(9,1)])^2;kf.Rk = diag(rk)^2;kf.Pxk = diag([davp; imuerr.eb; imuerr.db]*1.0)^2;kf.Hk = kfhk(0);case psinsdef.kfinit156,psinsdef.kffk = 15;  psinsdef.kfhk = 156;  psinsdef.kfplot = 15;[davp, imuerr, rk] = setvals(varargin);kf.Qt = diag([imuerr.web; imuerr.wdb; zeros(9,1)])^2;kf.Rk = diag(rk)^2;kf.Pxk = diag([davp; imuerr.eb; imuerr.db]*1.0)^2;kf.Hk = kfhk(0);case psinsdef.kfinit183,psinsdef.kffk = 18;  psinsdef.kfhk = 183;  psinsdef.kfplot = 18;[davp, imuerr, lever, r0] = setvals(varargin);kf.Qt = diag([imuerr.web; imuerr.wdb; zeros(9+3,1)])^2;kf.Rk = diag(r0)^2;kf.Pxk = diag([davp; imuerr.eb; imuerr.db; lever]*1.0)^2;kf.Hk = zeros(3,18);case psinsdef.kfinit186,psinsdef.kffk = 18;  psinsdef.kfhk = 186;  psinsdef.kfplot = 18;[davp, imuerr, lever, r0] = setvals(varargin);kf.Qt = diag([imuerr.web; imuerr.wdb; zeros(3,1); imuerr.sqg; imuerr.sqa; zeros(3,1)])^2;kf.Rk = diag(r0)^2;kf.Pxk = diag([davp; imuerr.eb; imuerr.db; lever]*1.0)^2;kf.Hk = zeros(6,18);case psinsdef.kfinit193psinsdef.kffk = 19;  psinsdef.kfhk = 193;  psinsdef.kfplot = 19;[davp, imuerr, lever, dT, r0] = setvals(varargin);kf.Qt = diag([imuerr.web; imuerr.wdb; [1/Re;1/Re;1]*glv.mpsh; ...[1;1;1]*0*glv.dphpsh; [1;1;1]*0*glv.ugpsh; [1;1;1]*0.*glv.mpsh; 0])^2;kf.Rk = diag(r0)^2;kf.Pxk = diag([davp; imuerr.eb; imuerr.db; lever; dT]*1.0)^2;kf.Hk = zeros(3,19);case psinsdef.kfinit196psinsdef.kffk = 19;  psinsdef.kfhk = 196;  psinsdef.kfplot = 19;[davp, imuerr, lever, dT, r0] = setvals(varargin);kf.Qt = diag([imuerr.web; imuerr.wdb; [1/Re;1/Re;1]*0*glv.mpsh; ...[1;1;1]*0*glv.dphpsh; [1;1;1]*0*glv.ugpsh; [1;1;1]*0*glv.mpsh; 0])^2;kf.Rk = diag(r0)^2;kf.Pxk = diag([davp; imuerr.eb; imuerr.db; lever; dT]*1.0)^2;kf.Hk = zeros(6,19);case psinsdef.kfinit331,psinsdef.kffk = 33;  psinsdef.kfhk = 331;  psinsdef.kfplot = 33;[davp, imuerr, r0] = setvals(varargin);kf.Qt = diag([imuerr.web; imuerr.wdb; zeros(9+15+3,1)])^2;kf.Rk = diag(r0)^2;kf.Pxk = diag([davp; imuerr.eb; imuerr.db; imuerr.dKga; imuerr.KA2])^2;kf.Hk = kfhk(ins);kf.xtau(1:psinsdef.kffk,1) = 0;case psinsdef.kfinit346,psinsdef.kffk = 34;  psinsdef.kfhk = 346;  psinsdef.kfplot = 34;[davp, imuerr, lever, dT, r0] = setvals(varargin);kf.Qt = diag([imuerr.web; imuerr.wdb; zeros(9+3+1+15,1)])^2;kf.Rk = diag(r0)^2;kf.Pxk = diag([davp; imuerr.eb; imuerr.db; lever; dT; imuerr.dKga])^2;kf.Hk = kfhk(ins);kf.xtau(1:psinsdef.kffk,1) = 0;case psinsdef.kfinit376,psinsdef.kffk = 37;  psinsdef.kfhk = 376;  psinsdef.kfplot = 37;[davp, imuerr, lever, dT, r0] = setvals(varargin);kf.Qt = diag([imuerr.web; imuerr.wdb; zeros(9+3+1+15+3,1)])^2;kf.Rk = diag(r0)^2;kf.Pxk = diag([davp; imuerr.eb; imuerr.db; lever; dT; imuerr.dKga; davp(4:6)]*10)^2;kf.Hk = kfhk(ins);kf.xtau(1:psinsdef.kffk,1) = 0;otherwise,kf = feval(psinsdef.typestr, psinsdef.kfinittag, [{ins},varargin]);
end
kf = kfinit0(kf, nts);

kfinit0函数

function kf = kfinit0(kf, nts)
% Always called by kfinit and initialize the remaining fields of kf.
%
% See also kfinit, kfupdate, kffeedback, psinstypedef.kf.nts = nts;[kf.m, kf.n] = size(kf.Hk);kf.I = eye(kf.n);kf.Kk = zeros(kf.n, kf.m);if ~isfield(kf, 'xk'),  kf.xk = zeros(kf.n, 1);  endif ~isfield(kf, 'Qk'),  kf.Qk = kf.Qt*kf.nts;  endif ~isfield(kf, 'Gammak'),  kf.Gammak = 1; kf.l = kf.n;  endif ~isfield(kf, 'fading'),  kf.fading = 1;  endif ~isfield(kf, 'adaptive'),  kf.adaptive = 0;  end
%     if kf.adaptive==1if ~isfield(kf, 'b'),  kf.b = 0.5;  endif ~isfield(kf, 'beta'),  kf.beta = 1;  endif ~isfield(kf, 'Rmin'),  kf.Rmin = 0.01*kf.Rk;  endif ~isfield(kf, 'Rmax'),  kf.Rmax = 100*kf.Rk;  endif ~isfield(kf, 'Qmin'),  kf.Qmin = 0.01*kf.Qk;  endif ~isfield(kf, 'Qmax'),  kf.Qmax = 100*kf.Qk;  end
%     endif ~isfield(kf, 'xtau'),  kf.xtau = ones(size(kf.xk))*eps;   endif ~isfield(kf, 'T_fb'),  kf.T_fb = 1;   endif ~isfield(kf, 'fbstr'),  kf.fbstr = 'avped';  endif ~isfield(kf, 'xconstrain'),  kf.xconstrain = 0;  endif ~isfield(kf, 'pconstrain'),  kf.pconstrain = 0;  endkf.Pmax = (diag(kf.Pxk)+1)*1.0e10;kf.Pmin = kf.Pmax*0;kf.xfb = zeros(kf.n, 1);
%     kf.coef_fb = (1.0-exp(-kf.T_fb./kf.xtau));
%     kf.coef_fb = ar1coefs(kf.T_fb, kf.xtau);xtau = kf.xtau;xtau(kf.xtau<kf.T_fb) = kf.T_fb;  kf.coef_fb = kf.T_fb./xtau;  %2015-2-22

kfsetting:直接设置几种特定类型IMU的滤波器参数;
kffk/kfhk:计算状态转移矩阵/量测矩阵,etm惯导误差传播函数;

function [Fk, Ft] = kffk(ins, varargin)
% Create Kalman filter system transition matrix.
%
% Prototype: [Fk, Ft] = kffk(ins, varargin)
% Inputs: ins - SINS structure array, if not struct then nts=ins;
%         varargin - if any other parameters
% Outputs: Fk - discrete-time transition matrix, = Phikk_1
%          Ft - continuous-time transition matirx
%
% See also  kfhk, kfinit, kfupdate, kfc2d, insupdate, etm, psinstypedef, ekffk.% Copyright(c) 2009-2014, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 06/08/2012, 01/02/2014, 02/08/2016
global psinsdef%% get Ftif isstruct(ins),    nts = ins.nts;else                 nts = ins;endswitch(psinsdef.kffk)case 15,Ft = etm(ins);case {18,19} % psinsdef.kffkxx, xx=18,19Ft = etm(ins);Ft(psinsdef.kffk, psinsdef.kffk) = 0;case {33}Ft = etm(ins);Ft(psinsdef.kffk,psinsdef.kffk) = 0;% 15+dKg(9)+dKa(6)+KA2(3)Ft(1:3,16:24) = [-ins.wib(1)*ins.Cnb, -ins.wib(2)*ins.Cnb, -ins.wib(3)*ins.Cnb];Ft(4:6,25:33) = [ins.fb(1)*ins.Cnb, ins.fb(2)*ins.Cnb(:,2:3), ins.fb(3)*ins.Cnb(:,3), ins.Cnb*diag(ins.fb.^2)];case {34, 37}Ft = etm(ins);Ft(psinsdef.kffk,psinsdef.kffk) = 0;Ft(1:3,20:28) = [-ins.wib(1)*ins.Cnb, -ins.wib(2)*ins.Cnb, -ins.wib(3)*ins.Cnb];Ft(4:6,29:34) = [ins.fb(1)*ins.Cnb, ins.fb(2)*ins.Cnb(:,2:3), ins.fb(3)*ins.Cnb(:,3)];otherwise,
%             Ft = feval(psinsdef.typestr, psinsdef.kffktag, {ins, varargin});Ft = feval(psinsdef.typestr, psinsdef.kffktag, [{ins},varargin]);end%% discretizationFk = Ft*nts;if nts>0.1  % for large time interval, this may be more accurate.Fk = expm(Fk);else   % Fk = I + Ft*nts + 1/2*(Ft*nts)^2  , 2nd order expensionFk = eye(size(Ft)) + Fk;% + Fk*Fk*0.5; end

kfhk函数

function Hk = kfhk(ins, varargin)
% Create Kalman filter measurement matrix.
%
% Prototype: Hk = kfhk(ins, varargin)
% Inputs: ins - SINS structure array from function 'insinit'
%         varargin - if any other parameters
% Output: Hk - measurement matrix
%
% See also  kffk, kfinit, kfupdate, kfc2d, insupdate.% Copyright(c) 2009-2014, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 27/03/2014, 02/02/2015
global psinsdefswitch(psinsdef.kfhk)case 153,Hk = [zeros(3,6), eye(3), zeros(3,6)];case 156Hk = [zeros(6,3), eye(6), zeros(6,6)];case 183 % glv.psinsdef.kfhkxx3Hk = [zeros(3,6), eye(3), zeros(3,6), -ins.MpvCnb];case 186Hk = [zeros(6,3), eye(6), zeros(6,6), [-ins.CW;-ins.MpvCnb]];case 193 % glv.psinsdef.kfhkxx3Hk = [zeros(3,6), eye(3), zeros(3,6), -ins.MpvCnb, -ins.Mpvvn];case 196Hk = [zeros(6,3), eye(6), zeros(6,6), [-ins.CW,-ins.an;-ins.MpvCnb,-ins.Mpvvn]];case 331Hk = zeros(1,33);case 343 % glv.psinsdef.kfhkxx3Hk = [zeros(3,6), eye(3), zeros(3,6), -ins.MpvCnb, -ins.Mpvvn, zeros(3,15)];case 373Hk = [zeros(3,6), eye(3), zeros(3,6), -ins.MpvCnb, -ins.Mpvvn, zeros(3,18)];case 346Hk = [zeros(6,3), eye(6), zeros(6,6), [-ins.CW,-ins.an;-ins.MpvCnb,-ins.Mpvvn], zeros(6,15)];case 376Hk = [zeros(6,3), eye(6), zeros(6,6), [-ins.CW,-ins.an;-ins.MpvCnb,-ins.Mpvvn], zeros(6,15), [-eye(3);zeros(3)]];
%         case {186, 196, 346} % glv.psinsdef.kfhkxx6
%             Hk = [zeros(6,3), eye(6), zeros(6,fix(psinsdef.kfhk/10)-9)];
%             Hk(1:3,16:19) = [-ins.CW, -ins.an];
%             Hk(4:6,16:19) = [-ins.MpvCnb, -ins.Mpvvn];
%         case 376
%             Hk = [zeros(6,3), eye(6), zeros(6,fix(psinsdef.kfhk/10)-9)];
%             Hk(1:3,[16:19,35:37]) = [-ins.CW, -ins.an, -eye(3)];
%             Hk(4:6,16:19) = [-ins.MpvCnb, -ins.Mpvvn];otherwise,Hk = feval(psinsdef.typestr, psinsdef.kfhktag, [{ins},varargin]);end

kfupdate:KF时间/量测更新,采用序贯量测自适应/方差限制方法;

function kf = kfupdate(kf, yk, TimeMeasBoth)
% Discrete-time Kalman filter.
%
% Prototype: kf = kfupdate(kf, yk, TimeMeasBoth)
% Inputs: kf - Kalman filter structure array
%         yk - measurement vector
%         TimeMeasBoth - described as follows,
%            TimeMeasBoth='T' (or nargin==1) for time updating only,
%            TimeMeasBoth='M' for measurement updating only,
%            TimeMeasBoth='B' (or nargin==2) for both time and
%                             measurement updating.
% Output: kf - Kalman filter structure array after time/meas updating
% Notes: (1) the Kalman filter stochastic models is
%      xk = Phikk_1*xk_1 + wk_1
%      yk = Hk*xk + vk
%    where E[wk]=0, E[vk]=0, E[wk*wk']=Qk, E[vk*vk']=Rk, E[wk*vk']=0
%    (2) If kf.adaptive=1, then use Sage-Husa adaptive method (but only for
%    measurement noise 'Rk'). The 'Rk' adaptive formula is:
%      Rk = b*Rk_1 + (1-b)*(rk*rk'-Hk*Pxkk_1*Hk')
%    where minimum constrain 'Rmin' and maximum constrain 'Rmax' are
%    considered to avoid divergence.
%    (3) If kf.fading>1, then use fading memory filtering method.
%    (4) Using Pmax&Pmin to constrain Pxk, such that Pmin<=diag(Pxk)<=Pmax.
%
% See also  kfinit, kfupdatesq, kffk, kfhk, kfc2d, kffeedback, kfplot, RLS, ekf, ukf.% Copyright(c) 2009-2015, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 08/12/2012, 29/08/2013, 16/04/2015, 01/06/2017, 11/03/2018if nargin==1;TimeMeasBoth = 'T';elseif nargin==2TimeMeasBoth = 'B';endif TimeMeasBoth=='T'            % Time Updatingkf.xk = kf.Phikk_1*kf.xk;    kf.Pxk = kf.Phikk_1*kf.Pxk*kf.Phikk_1' + kf.Gammak*kf.Qk*kf.Gammak';elseif TimeMeasBoth=='M'        % Meas Updatingkf.xkk_1 = kf.xk;    kf.Pxkk_1 = kf.Pxk; elseif TimeMeasBoth=='B'    % Time & Meas Updatingkf.xkk_1 = kf.Phikk_1*kf.xk;    kf.Pxkk_1 = kf.Phikk_1*kf.Pxk*kf.Phikk_1' + kf.Gammak*kf.Qk*kf.Gammak';elseerror('TimeMeasBoth input error!');end

其中参数含义为:
kf - Kalman filter structure array,表示卡尔曼滤波的结构数组
yk - measurement vector,量测向量
TimeMeasBoth -T表示只进行时间更新、M表示只进行量测更新,B表示两者同时进行
kffeedback:滤波状态反馈,可用部分反馈方法;

function [kf, ins, xfb] = kffeedback(kf, ins, T_fb, fbstr)
% Kalman filter state estimation feedback to SINS.
%
% Prototype: [kf, ins] = kffeedback(kf, ins, T_fb)
% Inputs: kf - Kalman filter structure array
%         ins - SINS structure array
%         T_fb - feedback time interval
%         fbstr - feedback string
% Outputs: kf, ins - Kalman filter & SINS structure array after feedback
%          xfb - feedback state value
%
% See also  kfinit, kffk, kfhk, kfplot, psinstypedef.% Copyright(c) 2009-2014, by Gongmin Yan, All rights reserved.
% Northwestern Polytechnical University, Xi An, P.R.China
% 05/10/2013, 06/02/2021

其中参数含义为:
kf - Kalman filter structure array,卡尔曼滤波结构数组
ins - SINS structure array,SINS结构数组
T_fb - feedback time interval,反馈时间间隔
fbstr - feedback string,反馈字符串,若要返馈位置,则输入p,返馈姿态则输入a,速度则是v,具体可参见源码

kfstat:滤波误差分配与可观测度分析(协方差分析);

滤波误差分配与可观测度分析:

做双位置对准的时候,选择了三个失准角,三个速度误差,三个陀螺漂移,三个加表零偏,对其进行初始对准;最后可以得到状态的 可观测都度

kfplot/xpplot/rvpplot:滤波结果绘图;
sinsgps:典型的193或196维SINS/GNSS松组合函数;
POSProcessing:343或346维SINS/GNSS双向滤波松组合函数,POSFusion对双向滤波结果做加权平均,posplot作图

典型的SINS/GNSS组合滤波

该功能可由sinsgps函数实现,源码中给出了使用该函数的示例:

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.

该函数实现的是19维状态,3维量测的组合导航

POS处理

包括正反向滤波,以及利用POSFusion的正反向融合
可参见仿真例子test_POS_fusion.m

基于PSINS工具箱的卡尔曼滤波与SINS/GNSS组合导航相关推荐

  1. SINS/GNSS组合导航仿真应用详细版(基于PSINS工具箱 )

    文章目录 轨迹仿真 生成轨迹数据 绘制仿真数据 惯导仿真 纯惯导仿真 SINS/GPS组合导航 总结 1 2 3 4 5 轨迹仿真 生成轨迹数据 首先,打开demos\test_trj.m文件,运行仿 ...

  2. SINS/GNSS组合导航:SINS误差模型

    SINS导航精度会受到多种误差所带来的影响,其中主要受到三个方面误差所造成的影响,其一是在系统的组装过程中会受到来自硬件精度,安装误差所带来的影响:其二是捷联解方法造成的算法误差,例如初始值误差,对中 ...

  3. SINS/GNSS组合导航:捷联惯导静基座下初始对准 (一)粗对准(Matlab)

    SINS初始对准要测定系统的姿态变换矩阵,分为粗对准和精对准两个部分,粗短准阶段利用重力和地球自转量粗略计算姿态矩阵:在精对准阶段,不仅依靠前面的姿态矩阵测量值及重力和地球自转量,还要依据惯性器件的输 ...

  4. MTI-G-710/GNSS组合导航代码分析

    这里写自定义目录标题 前言 代码分析 主函数 sinsgps核心函数 IMU参数辨识 结果分析 1.原始数据分析 2.陀螺仪零偏估计 3.加速度计零偏估计 4.自适应卡尔曼滤波 5.组合导航下的方位角 ...

  5. SINS/NHC组合导航(一)

    SINS/NHC组合导航(一) 前言 数据 SINS/NHC基本原理 数据验证与分析 参考论文 前言 一般在车载SINS/GNSS组合导航中,为了提升GNSS失锁性能,可以采用融合车辆运动学约束条件辅 ...

  6. SINS/DR组合导航(一)

    1.1 关于SINS/DR组合导航 SINS/DR组合导航是一种很常见的,也是很传统的一种组合导航方式,这里的DR叫做航位推算,定义是利用姿态.航向和行驶里程信息来推算机器人相对于起始点的相对位置.对 ...

  7. INS/GNSS组合导航(三)松耦合、紧耦合、深度耦合

    0 INS/GNSS组合导航概述 所谓INS/GNSS组合导航,就是利用INS和GNSS两者信息进行融合,从而综合利用两者的优点,实现优势互补,求解实现pose的解算,得到PVA(位置.速度.姿态)的 ...

  8. INS/GNSS组合导航(七)-SINS的微分方程的推导

    (三)中对SINS的机械编排进行了初步可行性的介绍,并未对机械编排进行原理性介绍.那么在详细介绍机械编排之前,需要先对SINS的微分方程进行详细的推导. 无论是机械编排,还是后面误差方程的建立,SIN ...

  9. INS/GNSS组合导航(六)-惯性器件的主要误差

    在SINS的各种误差源中,影响最大的是惯性传感器误差,这其中又包括加速度计和陀螺仪的误差.从误差的性质上可以分为系统误差和随机误差,而从误差源上又可以分为零偏误差.尺度因子误差.安装误差.非线性误差以 ...

最新文章

  1. Keep Walking!
  2. 质数(Prime_Number)
  3. AngularJs ng-route路由详解
  4. Swift傻傻分不清楚系列(一)常量与变量
  5. stdout标准输出、stderr标准错误输出 标准输入、标准输出、标准错误输出分别被定义为0、1、2。
  6. 2010年最具潜力微博网站排行榜(转)
  7. 自回归AR模型、移动平均MA模型、自回归移动平均ARMA模型
  8. IP头,TCP头,UDP头,MAC帧头定义(转)
  9. TIOBE 7月编程语言排行:各大城市程序员的工资状况又又又涨了
  10. php 抽象工厂模式,php设计模式(五)抽象工厂模式
  11. 10K 3435热敏电阻阻值表
  12. ElasticSearch搜索引擎:数据的写入流程
  13. 注册石墨文档无法连接服务器,石墨文档没有访问权限的解决方法
  14. 【ThinkPHP】后台数组,赋值到前台模板HTML文件中的JS的变量,且以JSON对象形式存放
  15. hdu 1598 find the most comfortable road 枚举+最小成生树 kruskal 解题报告
  16. 禁用/开启 Windows系统3D加速
  17. 云原生安全攻防|使用eBPF逃逸容器技术分析与实践
  18. H5移动应用的发布优化(四)图片优化
  19. vue+weui 手机端项目
  20. 【微信篇】PC端微信文件夹里的“微信号“

热门文章

  1. 2020年面试题总结
  2. 电子签名界“特斯拉“发财报了,国内电子签行业何时诞生巨头?
  3. 新年签通用php,《转帖》个人制作 猎人TMW字符串 三系整合通用 新年快乐帖
  4. NAS服务器有哪些优势
  5. tec控制pid程序_PID温度控制程序的一个疑问
  6. 编写一个函数,将两个数的正整数A和B合并成一个整数C。
  7. Symmetrix GK盘介绍
  8. matlab功率谱密度单位,功率谱密度的工程单位和国际制单位
  9. 成功需要“十商”(网络转载)
  10. AI 新技术革命将如何重塑就业和全球化格局?深度解读 UN 报告(中篇)