导航与制导实验报告INS与GPS位置组合导航_第1页
导航与制导实验报告INS与GPS位置组合导航_第2页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、导航与制导原理实验报告实验要求1. 完成INS与GPS位置组合导航的仿真;2. 画出组合导航后的位置误差、速度误差曲线;3. 画出原始轨迹与组合导航后的轨迹比较图;(画图时弧度制单位要转换成度分秒制单位)4. 结果分析5. 提交纸版实验报告(附上代码)全局变量%地球半径(长半轴)R=6378160;f=1/298.3;wie=7.2921151467e-5;g0=9.7803267714;deg二n/180;min=deg/60;sec=min/60;hur=3600;dph=deg/hur;ts=0.1;%地球扁率%地球自转角速率%重力加速度基础值%角度%角分%角秒%小时%度/时%仿真采样时

2、间GPS_Sample_Rate=10;%GPS采样时间Runs=10;%由于随机误差,使用Kalman滤波时,应多次滤波,以求平均值Tg=3600;%陀螺仪Markov过程相关时间Ta=1800;%加速度计Markov过程相关时间四.KalmanFilter:估计状态初始值:Xk=zeros(18,1);估计协方差初始值:Pk=diag(min,min,min,0.5,0.5,0.5,30/Re,30/Re,30,0.1*dph,0.1*dph,0.1*dph,0.1*dph,0.1*dph,0.1*dph,l.e3,l.e3,l.e3.'2);%18*18矩阵系统噪声方差:Qk=l

3、e-6*diag(0.01,0.01,0.01,0.01,0.01,0.01,0.9780,0.9780,0.9780).'2量测噪声方差:Rk二diag(le-5,le-5,10.3986)."2系数矩阵F,G,H的表示,参考课件6.2.1。五可能用到的公式(1)四元数Q的即时修正(符号表示四元数乘法)rol°一唸y唸彳術1一b1717znbbbnbxnbybnbzT为向量扩展四元数,标量部分为0。(2)四元数Q的归一化(3)姿态矩阵Cn的计算b能5於-鞘仍=巩社込+%殆)-2(社啊一如磁)2如牺+q°q2(匪令-Qo<7i)能一苏一於卜诫一sin

4、sin6siny+cos单cosycos"sinGsinysin申cosy.cos9sinysincos&sin屮sin6cosy+cos单sinycosj/cos9cossin9cosysimpsinysin&cos9cosy.(4) 提取姿态角(5) 比力的坐标变换(6)速度计算i?n=f71+gn+6)爲)xvn其中n=00pF(7)地球速率及地理坐标系相对地球坐标系的转动角速率0切屆cosLa)iesinLRe+hVjJ1tanL/?E+h_机体系相对于地理系的转动角速率在机体系中的投影(8)位置计算Rn=J?(l-2/+3/stnzL)Rb=/f(l+/sm

5、2L)(10)重力加速度1十0.0019318S138639stn2Lg(L)=9.7803267714x,Vl-0.006694379990l3smL(11)连续系统离散化公式(简化形式)Fk=1+F(tk)屯T珏二(1十F(tk)*T)*G(tk)*THk=H(tk)其中,I是单位矩阵,T是仿真采样时间。六数据文件说明dataWbibN.txtdataFbibN.txtdataPos.txtdataVn.txtatt0=0;0;0.3491dataGPSposN.txt%叠加噪声的陀螺仪角速度输出%叠加噪声的加速度计比力输出%原始轨迹的位置数据(依次是纬度L,经度九,高度h)%原始轨迹的速

6、度数据(依次是东速度、北速度、天速度)%姿态解算矩阵初始值(依次是俯仰角9,横滚角丫,航向角龙)%叠加噪声的GPS位置数据(即等间隔采样原始轨迹的位置数据,采样间隔是10,即第10、20,的数据,并叠加噪声)七仿真流程图整个仿真过程流程图Y循环是否給束K足否足丄0旳位置、遠度、姿态呎初值捷麻解篇,并只更新gpk細mpn滤波修止位登、速度数摭谏取用.光数抵误潍计算.湎圏表示K=k+1幵妁结束在整体仿真流程图中,Kalman滤波可以由子函数kalman_GPS_INS_correct.m进行。捷联解算可按照如下捷联解算流程图进行。开始速险解却循坏是否结束姿态何解篦姿态距即计算姿态四元数即时谆正井归

7、一化读入己存的E存轨迹相关数按E机逵态、速应.也置収初值加速度计、陀燼住采择値输入荻得前一时刻晏态四元数保怎计算,画图显示比力的塑杯变喚姿态速率计诗加好1八实验思路根据上述两个流程图,要实现INS与GPS位置组合导航,需要在已给的INS导航代码中,加入当k为10的倍数时进行Kalman滤波,修正位置、速度数据环节,则添加代码如下(添加位置见完整程序):%添加程序F,G,H=GetConSis(vtC(:,k),posC(:,k),q_1,fn(:,k),Tg,Ta);%利用GetConSis得至UF,G,H矩阵ifrem(k,10)=0%判断k是否为10的倍数,若是则进行kalman滤波,修正

8、。E_attE,_pos,E_vn,Xk,Pk=kalman_GPS_INS_correct(Xk,Qk,Pk,F,G,H,ts,Rk);%利用kalman_GPS_INS_correct进行kalman滤波elseZk=posC(:,k)-p_gps(:,(k)/10);E_attE,_pos,E_vn,Xk,Pk=kalman_GPS_INS_correct(Xk,Qk,Pk,F,G,H,ts,Rk,Zk);endattC(:,k)=attC(:,k)-E_att;posC(:,k)=posC(:,k)-E_pos;vtC(:,k)=vtC(:,k)-E_vn;%修正位置,速度数据九完整代

9、码及注释clc;clear;closeall;%捷联惯导更新仿真,四元数法,一阶近似算法,不考虑圆锥补偿和划桨补偿ts=0.1;%采样时间Re=6378160;%地球长半轴wie=7.2921151467e-5;%地球自转角速度f=1/298.3;%地球扁率g0=9.7803;%重力加速度基础值deg=pi/180;%角度min=deg/60;%角分sec=min/60;%角秒hur=3600;%小时dph=deg/hur;%度/小时%读取数据wbibS=dlmread('dataWbibN.txt');fbS=dlmread('dataFbibN.txt');

10、posS=dlmread('dataPos.txt');vtetS=dlmread('dataVn.txt');p_gps=dlmread('dataGPSposN.txt');%统计矩阵初始化mm,nn=size(posS);posSta=zeros(mm,nn);vtSta=posSta;attSta=posSta;posC(:,1)=posS(:,1);%位置向量初始值vtC(:,1)=vtetS(:,1);%速度向量初始值attC(:,1)=0;0;0.3491;%姿态解算矩阵初始值Qk=1e-6*diag(0.01,0.01,0.01,

11、0.01,0.01,0.01,0.9780,0.9780,0.9780)/2;%系统噪声方差矩阵Rk=diag(1e-5,1e-5,10.3986)2;%测量噪声方差Tg=3600*ones(3,1);%陀螺仪Markov过程相关时间Ta=1800*ones(3,1);%加速度计Markov过程相关时间%GPS_Sample_Rate=10;%GPS采样率太高效果也不好StaNum=10;%重复运行次数,用来求取统计平均值forOutLoop=1:StaNumPk=diag(min,min,min,0.5,0.5,0.5,30./Re,30./Re,30,0.1*dph,0.1*dph,0.1

12、*dph,0.1*dph,0.1*dph,0.1*dph,1.e-3,1.e-3,1.e-3/2);%初始估计协方差矩阵Xk=zeros(18,1);%初始状态%N=size(posS,2);%j=1;fork=1:N-1si=sin(attC(1,k);ci=cos(attC(1,k);sj=sin(attC(2,k);cj=cos(attC(2,k);sk=sin(attC(3,k);ck=cos(attC(3,k);%k时刻姿态矩阵M=cj*ck+si*sj*sk,ci*sk,sj*ck-si*cj*sk;-cj*sk+si*sj*ck,ci*ck,-sj*sk-si*cj*ck;-ci

13、*sj,si,ci*%Cnb矩阵q_1=sqrt(abs(1.0+M(1,1)+M(2,2)+M(3,3)/2.0;sign(M(3,2)-M(2,3)*sqrt(abs(1.0+M(1,1)-M(2,2)-M(3,3)/2.0;sign(M(1,3)-M(3,1)*sqrt(abs(1.0-M(1,1)+M(2,2)-M(3,3)/2.0;sign(M(2,1)-M(1,2)*sqrt(abs(1.0-M(1,1)-M(2,2)+M(3,3)/2.0;fn(:,k)=M*fbS(:,k);%比力的坐标变换%添加程序F,G,H=GetConSis(vtC(:,k),posC(:,k),q_1,

14、fn(:,k),Tg,Ta);%利用GetConSis得至UF,G,H矩阵ifrem(k,10)=0%判断k是否为10的倍数,若是则进行kalman滤波,修正。E_attE,_pos,E_vn,Xk,Pk=kalman_GPS_INS_correct(Xk,Qk,Pk,F,G,H,ts,Rk);%利用kalman_GPS_INS_correct进行kalman滤波elseZk=posC(:,k)-p_gps(:,(k)/10);E_attE,_pos,E_vn,Xk,Pk=kalman_GPS_INS_correct(Xk,Qk,Pk,F,G,H,ts,Rk,Zk);endattC(:,k)=

15、attC(:,k)-E_att;posC(:,k)=posC(:,k)-E_pos;vtC(:,k)=vtC(:,k)-E_vn;%修正位置,速度数据%捷联惯导解算wnie=wie*0;cos(posC(1,k);sin(posC(1,k);%地球系相对惯性系的转动角速度在导航系(地理系)的投影%计算主曲率半径Rm=Re*(1-2*f+3*f*sin(posC(1,k)入2)+posC(3,k);Rn=Re*(1+f*sin(posC(1,k)八2)+posC(3,k);wnen=-vtC(2,k)/(Rm+posC(3,k);vtC(1,k)/(Rn+posC(3,k);vtC(1,k)*t

16、an(posC(1,k)/(Rn+posC(3,k);%导航系相对地球系的转动角速度在导航系的投影gn=g=g0+0.051799*sin(posC(1,k)入20.94114e6*posC(3,k)%重力加速度0;0;-g;%导航坐标系的重力加速度wbnbC(:,k)=wbibS(:,k)-M(wnie+wnen);%姿态角转动角速度计算q=1.0/2*qmul(q_1,0;wbnbC(:,k)*ts+q_1;%姿态四兀数更新q=q/sqrt(q'*q)%四元数归一化%姿态角更新q11=q(1)*q(1);q12=q(1)*q(2);q13=q(1)*q(3);q14=q(1)*q(

17、4);q22=q(2)*q(2);q23=q(2)*q(3);q24=q(2)*q(4);q33=q(3)*q(3);q34=q(3)*q(4);q44=q(4)*q(4);T=q11+q22-q33-q44,2*(q23+q14),2*(q24-q13),2*(q23-q14),q11-q22+q33-q44,2*(q34+q12),2*(q24+q13);2*(q34-q12);q11-q22-q33+q44;attC(:,k+1)=asin(T(3,2);atan(-T(3,1)/T(3,3);atan(T(1,2)/T(2,2);%横滚角gamma修正ifT(3,3)<0ifat

18、tC(2,k+1)<0attC(2,k+1)=attC(2,k+1)+pi;elseattC(2,k+1)=attC(2,k+1)-pi;endend%航向角psi修正ifT(2,2)<0ifT(1,2)>0attC(3,k+1)=attC(3,k+1)+pi;elseattC(3,k+1)=attC(3,k+1)-pi;endendifabs(T(2,2)<1.0e-20ifT(1,2)>0attC(3,k+1)=pi/2.0;elseattC(3,k+1)=-pi/2.0;endend%速度更新vtC(:,k+1)=vtC(:,k)+ts*(fn(:,k)+g

19、n-cross(2*wnie+wnen),vtC(:,k);%位置更新posC(1,k+1)=posC(1,k)+ts*vtC(2,k)/(Rm+posC(3,k);%纬度posC(2,k+1)=posC(2,k)+ts*vtC(1,k)/(Rn+posC(3,k)*cos(posC(1,k);%经度posC(3,k+1)=posC(3,k)+ts*vtC(3,k);%高度end%attSta=attSta+attC;vtSta=vtSta+vtC;posSta=posSta+posC;end%对统计矩阵取平均attC=1./StaNum*attSta;posC=1./StaNum*posSt

20、a;vtC=1./StaNum*vtSta;%解算值与仿真值的误差,作图%结算矩阵均为3x(N+1),需做处理%N点数据,相邻两点采样间隔为0.1s,做作图横轴修正fori=1:Ntime(i)=i*ts;Rm=Re*(1-2*f+3*f*(sin(attC(1,i)入2);Rn=Re*(1+f*(sin(attC(1,i)A2);Latitude_error(i)=(posC(1,i)-posS(1,i)*Rm;Longitude_error(i)=(posC(2,i)-posS(2,i)*Rn*cos(attC(1,i);endposCp=posC(:,1:N);figure;subplo

21、t(131);plot(time,Latitude_error);title('纬度误差');xlabel('Time/s');ylabel('itdeltaL/m');gridon;subplot(132);plot(time,Longitude_error);title('经度误差');xlabel('Time/s');ylabel('itdeltaphi/m');gridon;subplot(133);plot(time,posCp(3,:)-posS(3,:);title('高度误差

22、');xlabel('Time/s');ylabel('itdeltah/m');gridon;vtCp=vtC(:,1:N);figure;subplot(131);plot(time,vtCp(1,:)-vtetS(1,:);title('东速度误差');xlabel('Time/s');ylabel('itdeltavelocityeast/(m/s)');gridon;subplot(132);plot(time,vtCp(2,:)-vtetS(2,:);title('北速度误差');xlabel('Time/s');ylabel('itdeltavelocitynorth/(m/s)');gridon;subplot(133);plot(time,vtCp(3,:)-vtetS(3,:);title('天速度误差');xlabel(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论