✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
👇 关注我领取海量matlab电子书和数学建模资料
🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信
🔥 内容介绍
作业内容:编程实现惯性导航算法,并利用给定的IMU数据和初始化信息,进行惯性导航解算,导航结果与参考结果进行比分析。
IMU.bin说明:
1.数据按照二进制存储,为双精度double类型;
2.文件中共7列数据依次为:时标(GPS周秒)、X向陀螺输出、Y向陀螺输出、Z向陀螺输出、X向加速度计输出、Y向加速度计输出、Z向加速度计输出;
3.采样频率为200HZ即采样间隔为0.005s(也可以从时标上判断得到);
4.陀螺和加速度计的输出均为采样间隔内的增量;
5.载体坐标系b系定义为前右下;
6.时标单位为s,陀螺输出的单位为rad,加速度计输出的单位为m/s。
初始化信息:
1.初始时间:91620.0 s;
2.初始位置(纬经高):23.1373950708 deg,113.3713651222 deg,2.175 m;
3.初始速度(北东地):0.0 m/s,0.0 m/s,0.0 m/s;
4.初始姿态(横滚俯仰航向):0.0107951084511778 deg,-2.14251290749072 deg, -75.7498049314083 deg。
Reference.bin说明:
1.纯惯性导航机械编排参考结果;
2.数据按照二进制存储,为双精度double类型;
3.文件中10列数据依次为:时标(GPS周秒,s),纬度(deg),经度(deg),高度(m),北向速度(m/s),东向速度(m/s),垂向速度(m/s),横滚姿态角(deg),俯仰姿态角(deg),航向姿态角(deg)。
Image
Image
Image
⛳️ 运行结果
Image
Image
📣 部分代码
avp0 = avp0(:);
[qnb0, vn0, pos0] = setvals(a2qua(avp0(1:3)), avp0(4:6), avp0(7:9));
ins = [];
ins.ts = ts; ins.nts = 2*ts;
[ins.qnb, ins.vn, ins.pos] = setvals(qnb0, vn0, pos0);
ins.vn0 = vn0; ins.pos0 = pos0;
[ins.qnb, ins.att, ins.Cnb] = attsyn(ins.qnb); ins.Cnb0 = ins.Cnb;
ins.avp = [ins.att; ins.vn; ins.pos];
ins.eth = ethInit(ins.pos, ins.vn);
ins.Mpv = [ 1/ins.eth.RMh, 0,0; 0, 1/ins.eth.clRNh, 0; 0, 0, -1];
glv.wm_1 = zeros(3,1)'; glv.vm_1 = zeros(3,1)'; % 方便圆锥补偿和划桨补偿,它俩对应的是上一时刻的速度和角度增量
ins.an = zeros(3,1); %上一个时刻的加速度
🔗 参考文献
🎈 部分理论引用网络文献,若有侵权联系博主删除