当前位置:网站首页>Detailed explanation of 19 dimensional integrated navigation module sinsgps in psins (initial assignment part)
Detailed explanation of 19 dimensional integrated navigation module sinsgps in psins (initial assignment part)
2022-07-07 02:48:00 【Python Xiaobai (Xiaohei in the next stage)】
19 Dimensional integrated navigation module sinsgps
Initial assignment part
1.[nn, ts, nts] = nnts(2, diff(imu(1:2,end)));
Used for setting up nn
Number of samples 、ts
The sampling interval and the previous two are multiplied nts
2.if size(gps,2)<=5, gpspos_only=1; pos0=gps(1,1:3)'; else, gpspos_only=0; pos0=gps(1,4:6)'; end
Judge the incoming GPS Whether the data has speed results , Only position ,gpspos_only=1
, And speed ,gpspos_only=0
3.
if ~exist('rk', 'var'),
if gpspos_only==1, rk=poserrset([10,30]);
else, rk=vperrset([0.1;0.3],[10,30]); end
end
The above code block is used to assign the initial variance to the measured value , If there are only position observations , Only position error is needed ; If there are velocity observations , The variance of speed position should be set ; Note that there , The value of position error is entered in meters , The unit of value of speed error is meters per second
4.
if ~exist('dT', 'var'), dT = 0.01; end; if length(dT)==1, dT(2,1)=1; end
if ~exist('lever', 'var'), lever = rep3(1); else, lever=rep3(lever); end; if length(lever)==3, lever(4)=1; end
if ~exist('imuerr', 'var'), imuerr = imuerrset(0.05, 500, 0.001, [10;10;100]); end
if ~exist('davp', 'var'), davp = avperrset([10;300], 1, [10;30]); end
if ~exist('ins', 'var'), ins=100; end
if ~isstruct(ins) % sinsgps(imu, gps, T); T=ins align time
[~, res0] = aligni0(imu(1:fix(ins/ts),:), pos0); imu(1:fix(ins/ts),:)=[];
ins = insinit([res0.attk(1,1:3)'; 0;0;0; pos0], ts); ins.nts=nts;
end
The above code block is to assign initial values to variables that are not provided :dT
Default (0.01,1)s; lever
Default [1;1;1]m; Others, such as default settings ;
most important of all ins
The default is 100, It is used to judge whether to carry out ins
Initialization of
5. ins.lever = lever(1:3); ins.tDelay = dT(1);
Set the lever arm and time delay parameters
6. ins = inslever(ins, -ins.lever); ins.vn = ins.vnL; ins.pos = ins.posL;
Compensation of lever arm error for speed and position
7. psinstypedef(196-gpspos_only*3);
Preparing for the integrated navigation dimension type
8.
kf = [];
kf.Qt = diag([imuerr.web; imuerr.wdb; zeros(3,1); imuerr.sqg; imuerr.sqa; zeros(3,1); 0])^2;
The above code block is the construction of system noise variance matrix .imuerr.web Random walk for angle ;imuerr.wdb Random walk for speed ; imuerr.sqg Is the angular rate random walk correlation deviation ;imuerr.sqa Is the correlation deviation of specific random walk .
9.kf.Rk = diag(rk)^2;
To set the measurement noise matrix .
10. kf.Pxk = diag([davp; imuerr.eb; imuerr.db; lever(1:3)*lever(4); dT(1)*dT(2)]*1.0)^2;
To set the state variance matrix
11. kf.Hk = zeros(length(rk),19);
Set the coefficient matrix for
12. kf = kfinit0(kf, nts);
Initialize the Kalman filter
13.
if exist('Pmin', 'var'),
if sum(Pmin)<=0, kf.pconstrain=0;
else kf.Pmin = Pmin; kf.pconstrain = 1; end
end
kf.adaptive = 1;
if exist('Rmin', 'var'),
if sum(Rmin)<=0, kf.adaptive=0; end
if kf.adaptive==1,
if length(Rmin)==1, kf.Rmin = kf.Rk*Rmin;
else kf.Rmin = diag(Rmin); end
end
end
The above code is to set the lower limit of the limit state variance and the lower limit of the measurement noise matrix of the adaptive filter
14.
if exist('fbstr', 'var'), kf.fbstr=fbstr; end
kf.xtau = [ [1;1;1]; [1;1;1]; [1;1;1]; [1;1;1]; [1;1;1]; [1;1;1]; 1]*1;
The above code is to set relevant parameters
Time synchronization initialization part
imugpssyn(imu(:,end), gps(:,end));
Time synchronization will be introduced in detail in the next article
边栏推荐
- Software testing -- common assertions of JMeter interface testing
- dotConnect for DB2数据提供者
- [Mori city] random talk on GIS data (II)
- MySQL --- 常用函数 - 字符串函数
- Have fun | latest progress of "spacecraft program" activities
- Huitong programming introductory course - 2A breakthrough
- widerperson数据集转化为YOLO格式
- Wireshark installation
- Fundamentals of process management
- 软件测试——Jmeter接口测试之常用断言
猜你喜欢
Draco - gltf model compression tool
Have fun | latest progress of "spacecraft program" activities
C language exercises_ one
导数、偏导数、方向导数
C语言练习题_1
Django database (SQLite) basic introductory tutorial
运维管理系统有哪些特色
What management points should be paid attention to when implementing MES management system
测试优惠券要怎么写测试用例?
Google Earth Engine(GEE)——Landsat 全球土地调查 1975年数据集
随机推荐
Redis入门完整教程:问题定位与优化
Use of pgpool II and pgpooladmin
Code debugging core step memory
数论 --- 快速幂、快速幂求逆元
MySQL
Redis入门完整教程:复制配置
基于ensp防火墙双击热备二层网络规划与设计
Have fun | latest progress of "spacecraft program" activities
Redis入门完整教程:复制拓扑
Five reasons for clothing enterprises to deploy MES management system
一本揭秘字节万台节点ClickHouse背后技术实现的白皮书来了!
如何设计好接口测试用例?教你几个小技巧,轻松稿定
AWS学习笔记(一)
[software test] the most complete interview questions and answers. I'm familiar with the full text. If I don't win the offer, I'll lose
Web3's need for law
wzoi 1~200
Draco - gltf model compression tool
C语言练习题_1
NuScenes数据集关于Radar数据的统计
C#/VB.NET 删除Word文档中的水印