当前位置:网站首页>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
边栏推荐
- 哈希表及完整注释
- Summary of basic debugging steps of S120 driver
- Cloud Mail . NET Edition
- 普通测试年薪15w,测试开发年薪30w+,二者差距在哪?
- Draco - gltf model compression tool
- Metaforce force meta universe fossage 2.0 smart contract system development (source code deployment)
- 3 -- Xintang nuc980 kernel supports JFFS2, JFFS2 file system production, kernel mount JFFS2, uboot network port settings, and uboot supports TFTP
- Apifox, is your API interface document rolled up like this?
- Leetcode:minimum_ depth_ of_ binary_ Tree solutions
- Apifox,你的API接口文档卷成这样了吗?
猜你喜欢

What are the applications and benefits of MES management system
![leetcode:5. Longest palindrome substring [DP + holding the tail of timeout]](/img/62/d4d5428f69fc221063a4f607750995.png)
leetcode:5. Longest palindrome substring [DP + holding the tail of timeout]

S120驱动器基本调试步骤总结

dotConnect for DB2数据提供者

wireshark安装

Pioneer of Web3: virtual human

Summary of basic debugging steps of S120 driver

服装企业部署MES管理系统的五个原因
MySQL is an optimization artifact to improve the efficiency of massive data query

Ali yunyili: how does yunyuansheng solve the problem of reducing costs and improving efficiency?
随机推荐
Cloud Mail .NET Edition
wzoi 1~200
MySQL is an optimization artifact to improve the efficiency of massive data query
Fundamentals of process management
[node learning notes] the chokidar module realizes file monitoring
The annual salary of general test is 15W, and the annual salary of test and development is 30w+. What is the difference between the two?
[Mori city] random talk on GIS data (II)
Use of fiddler
【Node学习笔记】chokidar模块实现文件监听
[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
QPushButton-》函数精解
MySQL - common functions - string functions
Qpushbutton- "function refinement"
The third season of ape table school is about to launch, opening a new vision for developers under the wave of going to sea
Oracle中日期的使用方法实例
Redis入门完整教程:问题定位与优化
软件测试——Jmeter接口测试之常用断言
CDB PDB user rights management
Pgadmin4 of PostgreSQL graphical interface tool
Application analysis of face recognition