版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、%=本程序为捷联惯导的解算程序(由惯性器件的输出解算出飞行器的位置、速度、姿态信息)= clear all; close all; clc; deg_rad=pi/180; %由度转化成弧度 rad_deg=180/pi; %由弧度转化成度 %-从源文件中读入数据- fid_read=fopen(imuout.txt,r); %path1_den.dat 是由轨迹发生器产生的数据 alldata numofalldata=fscanf(fid_read,%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g,17 inf); alldata=alldat
2、a; numofeachdata=round(numofalldata/17); time=alldata(:,1); longitude=alldata(:,2); %经度 单位:弧度 latitude=alldata(:,3); %纬度 单位:弧度 high=alldata(:,4); %高度 单位:米 ve=-alldata(:,6); % 东向、北向、天向速度 单位:米/妙 vn=alldata(:,5); vu=alldata(:,7); fb_x=alldata(:,9); %比力(fx,fy,fz) fb_y=alldata(:,8); %指向右机翼方向为x正方向,指向机头方向为
3、y正向,z轴与x轴和y轴构成右手坐标系 单位:米/秒2 fb_z=-alldata(:,10); %右前上 pitch=alldata(:,11); %俯仰角(向上为正) 单位:弧度 head=-alldata(:,13); %偏航角(偏西为正) roll=alldata(:,12); %滚转角(向右为正) omigax=alldata(:,15); %陀螺输出(单位:弧度/秒,坐标轴的定义与比力的相同) omigay=alldata(:,14); omigaz=-alldata(:,16); %-程序初始化- latitude0=latitude(1); longitude0=longitu
4、de(1); %初始位置 high0=high(1); ve0=ve(1); vn0=vn(1); %初始速度 vu0=vu(1); pitch0=pitch(1); head0=head(1); %初始姿态 roll0=roll(1); timeeach=0.005; %周期 和仿真总时间 timeall=(numofeachdata-1)*timeeach; omega_ie=0.7292115147e-4;%0.00007272205216643040; %地球自转角速度 单位:弧度每妙 g0=9.78; %-导航解算开始- %假设没有初始对准误差 pitch_err0=pitch0+0
5、*deg_rad; head_err0=head0+0*deg_rad; roll_err0=roll0+0*deg_rad; %初始捷联矩阵的计算 捷联惯导系统p63 旋转顺序 head - pitch - roll %导航坐标系n为东北天方向 载体坐标系b为右前上 偏航角北偏西为正 tbn(1,1)=cos(roll_err0)*cos(head_err0)-sin(roll_err0)*sin(pitch_err0)*sin(head_err0); tbn(1,2)=cos(roll_err0)*sin(head_err0)+sin(roll_err0)*sin(pitch_err0)*
6、cos(head_err0); tbn(1,3)=-sin(roll_err0)*cos(pitch_err0); tbn(2,1)=-cos(pitch_err0)*sin(head_err0); tbn(2,2)=cos(pitch_err0)*cos(head_err0); tbn(2,3)=sin(pitch_err0); tbn(3,1)=sin(roll_err0)*cos(head_err0)+cos(roll_err0)*sin(pitch_err0)*sin(head_err0); tbn(3,2)=sin(roll_err0)*sin(head_err0)-cos(roll
7、_err0)*sin(pitch_err0)*cos(head_err0); tbn(3,3)=cos(roll_err0)*cos(pitch_err0); tnb=tbn; %位置矩阵的初始化 捷联惯导系统p46 其中游动方位角 a0 假使初始经纬度确知 cne(1,1) = - sin(longitude0); cne(1,2) = cos(longitude0); cne(1,3) = 0; cne(2,1) = - sin(latitude0) * cos(longitude0); cne(2,2) = - sin(latitude0) * sin(longitude0); cne(
8、2,3) = cos(latitude0); cne(3,1) = cos(latitude0) * cos(longitude0); cne(3,2) = cos(latitude0) * sin(longitude0); cne(3,3) = sin(latitude0); cen=cne; %初始四元数的确定 捷联惯导系统 p151-152 方法本身保证了q12+q22+q32+q42=1 q(2,1) = sqrt(abs(1.0 + tnb(1,1) - tnb(2,2) - tnb(3,3) / 2.0; q(3,1) = sqrt(abs(1.0 - tnb(1,1) + tnb
9、(2,2) - tnb(3,3) / 2.0; q(4,1) = sqrt(abs(1.0 - tnb(1,1) - tnb(2,2) + tnb(3,3) / 2.0; q(1,1) = sqrt(abs(1.0 - q(2,1) 2 - q(3,1) 2 - q(4,1) 2); % 判断q(1,1)的符号 flag_q11=cos(head_err0/2.0)*cos(pitch_err0/2.0)*cos(roll_err0/2.0)-sin(head_err0/2.0)*sin(pitch_err0/2.0)*sin(roll_err0/2.0); if (flag_q11 0) %
10、此时q(1,1)取正 if (tnb(3,2) tnb(2,3) q(2,1) = - q(2,1); end if (tnb(1,3) tnb(3,1) q(3,1) = - q(3,1); end if (tnb(2,1) tnb(2,3) q(2,1) = - q(2,1); end if (tnb(1,3) tnb(3,1) q(3,1) = - q(3,1); end if (tnb(2,1) tnb(1,2) q(4,1) = - q(4,1); end end %-迭代推算用到的参数的初始化- wiee_e = 0; wiee_n = 0; wiee_u = omega_ie;
11、wiee = wiee_e wiee_n wiee_u; %地球速率在地球系中的投影 东北天 lat_err(1)=latitude0; lon_err(1)=longitude0; high_err(1)=high0; ve_err(1)=ve0; vn_err(1)=vn0; vu_err(1)=vu0; pitch_err(1)=pitch_err0; head_err(1)=head_err0; roll_err(1)=roll_err0; re=6378137.0;%6378245.0; %地球长轴 惯性导航系统 p28 e=0.003352810664747480719845528
12、6185206; %地球扁率精确值 ee=0.00669437999014131699614; %-迭代推算开始- for i=1:numofeachdata %-惯性仪表数据的获得- wibb(1,1)=omigax(i); %指向右机翼方向为x正方向,指向机头方向为y正向,z轴与x轴和y轴构成右手坐标系 wibb(2,1)=omigay(i); %单位:弧度/妙 wibb(3,1)=omigaz(i); %右前上 fb(1,1)=fb_x(i); %指向右机翼方向为x正方向,指向机头方向为y正向,z轴与x轴和y轴构成右手坐标系 fb(2,1)=fb_y(i); %单位:米/秒2 fb(3,
13、1)=fb_z(i); %右前上 %-计算在姿态矩阵和位置矩阵更新时用到的参数- rm=re*(1.0-2.0*e+3.0*e*cne(3,3)2)+high_err(i); %捷联惯导系统 p233 p235 rn=re*(1.0+e*cne(3,3)2)+high_err(i); % rn=re*(1-ee)/(sqrt(1-ee*sin(lat_err(i)3+high_err(i); % rm=re/sqrt(1-ee*sin(lat_err(i)+high_err(i); %实验当地重力加速度计算 捷联惯导系统p150 惯性导航系统 p35 g=g0*(1.0+0.0052884*c
14、ne(3,3)2)-0.0000059*(1-(1-2*cne(3,3)2)2)*(1.0-2.0*high_err(i)/re); tmp_slat=sin(lat_err(i)*sin(lat_err(i); wien = cne * wiee; %地球速率在导航系中的投影 wenn(1,1) = -vn_err(i)/rm; wenn(2,1) = ve_err(i)/rn; % p45 考虑了地球转动的影响. wenn(3,1) = ve_err(i)*tan(lat_err(i)/rn; %计算wenn(不太精确),更新速度和位置矩阵时用 winn=wien+wenn; winb=t
15、bn*winn; wnbb=wibb-winb; %姿态速率 在姿态更新时用到 fn=tnb*fb; % x-y-z 东北天 % 速度的更新 捷联惯导系统 p30 33 东北天 difve_err=fn(1,1)+(2*wien(3,1)+wenn(3,1)*vn_err(i)-(2*wien(2,1)+wenn(2,1)*vu_err(i); difvn_err=fn(2,1)-(2*wien(3,1)+wenn(3,1)*ve_err(i)+(2*wien(1,1)+wenn(1,1)*vu_err(i); difvu_err=fn(3,1)+(2*wien(2,1)+wenn(2,1)*
16、ve_err(i)-(2*wien(1,1)+wenn(1,1)*vn_err(i)-g; ve_err(i+1)=ve_err(i)+difve_err*timeeach; vn_err(i+1)=vn_err(i)+difvn_err*timeeach; vu_err(i+1)=vu_err(i)+difvu_err*timeeach; high_err(i+1)=high_err(i)+vu_err(i)*timeeach; % 位置矩阵的实时更新 惯性导航系统 p190 cne(1,1)=cne(1,1)+timeeach*(wenn(3,1)*cne(2,1)-wenn(2,1)*c
17、ne(3,1); cne(1,2)=cne(1,2)+timeeach*(wenn(3,1)*cne(2,2)-wenn(2,1)*cne(3,2); cne(1,3)=cne(1,3)+timeeach*(wenn(3,1)*cne(2,3)-wenn(2,1)*cne(3,3); cne(2,1)=cne(2,1)+timeeach*(-wenn(3,1)*cne(1,1)+wenn(1,1)*cne(3,1); cne(2,2)=cne(2,2)+timeeach*(-wenn(3,1)*cne(1,2)+wenn(1,1)*cne(3,2); cne(2,3)=cne(2,3)+tim
18、eeach*(-wenn(3,1)*cne(1,3)+wenn(1,1)*cne(3,3); cne(3,1)=cne(3,1)+timeeach*(wenn(2,1)*cne(1,1)-wenn(1,1)*cne(2,1); cne(3,2)=cne(3,2)+timeeach*(wenn(2,1)*cne(1,2)-wenn(1,1)*cne(2,2); cne(3,3)=cne(3,3)+timeeach*(wenn(2,1)*cne(1,3)-wenn(1,1)*cne(2,3); % mat_wenn(1,1)=0; % mat_wenn(1,2)=wenn(3,1); % mat_
19、wenn(1,3)=-wenn(2,1); %wenn的反对阵矩阵取负 % mat_wenn(2,1)=-wenn(3,1); %这里位置矩阵的及时修正为: dcne/dt=mat_wenn*cne % mat_wenn(2,2)=0; % mat_wenn(2,3)=wenn(1,1); % mat_wenn(3,1)=wenn(2,1); % mat_wenn(3,2)=-wenn(1,1); % mat_wenn(3,3)=0; % % mat_wenn=mat_wenn*cne*timeeach; % cne=cne+mat_wenn; cen=cne; % 计算经纬度 lat_err
20、(i+1)=asin(cne(3,3); lon_err(i+1)=atan(cne(3,2)/cne(3,1); %这是经度的主值 if (cne(3,1) 0) lon_err(i+1) = lon_err(i+1) - pi; else lon_err(i+1) = lon_err(i+1) + pi; end end % 四元数的及时修正 惯性导航系统 p194 % mat_wnbb= 0, -wnbb(1,1), -wnbb(2,1), -wnbb(3,1); % wnbb(1,1), 0, wnbb(3,1), -wnbb(2,1); % wnbb(2,1), -wnbb(3,1)
21、, 0, wnbb(1,1); % wnbb(3,1), wnbb(2,1), -wnbb(1,1), 0; % q=q+mat_wnbb*q*timeeach/2.0; q(1,1)=q(1,1)+timeeach*(-wnbb(1,1)*q(2,1)-wnbb(2,1)*q(3,1)-wnbb(3,1)*q(4,1)/2.0; q(2,1)=q(2,1)+timeeach*(wnbb(1,1)*q(1,1)+wnbb(3,1)*q(3,1)-wnbb(2,1)*q(4,1)/2.0; q(3,1)=q(3,1)+timeeach*(wnbb(2,1)*q(1,1)-wnbb(3,1)*q(
22、2,1)+wnbb(1,1)*q(4,1)/2.0; q(4,1)=q(4,1)+timeeach*(wnbb(3,1)*q(1,1)+wnbb(2,1)*q(2,1)-wnbb(1,1)*q(3,1)/2.0; % 四元数归一化处理 q_norm=sqrt(sum(q.*q); q=q/q_norm; % 计算姿态矩阵 tnb tnb(1,1) = q(1,1) 2 + q(2,1) 2 - q(3,1)2 - q(4,1)2; tnb(1,2) = 2.0 * (q(2,1) * q(3,1) - q(1,1) * q(4,1); tnb(1,3) = 2.0 * (q(2,1) * q(
23、4,1) + q(1,1) * q(3,1); tnb(2,1) = 2.0 * (q(2,1) * q(3,1) + q(1,1) * q(4,1); tnb(2,2) = q(1,1)2 - q(2,1)2 + q(3,1)2 - q(4,1)2; tnb(2,3) = 2.0 * (q(3,1) * q(4,1) - q(1,1) * q(2,1); tnb(3,1) = 2.0 * (q(2,1) * q(4,1) - q(1,1) * q(3,1); tnb(3,2) = 2.0 * (q(3,1) * q(4,1) + q(1,1) * q(2,1); tnb(3,3) = q(1
24、,1)2 - q(2,1)2 - q(3,1)2 + q(4,1)2; tbn=tnb; flag_pitch=asin(tnb(3,2); flag_roll=atan(-tnb(3,1)/tnb(3,3); flag_head=atan(-tnb(1,2)/tnb(2,2); if(tnb(3,3)0) if(flag_roll0) flag_roll=flag_roll-pi; end end % 偏航角范围 -180度180度 北偏西为正 if(tnb(2,2)0) if(flag_head0) flag_head=flag_head-pi; end end % 姿态角更新 pitch_err(i+1)=flag_pitch; head_err(i+1)=flag_head; roll_err(i+1)=flag_roll; % 解算完毕 由对准结果、陀螺、加表的输出解算出载体的位置、速度、姿态 %-计算解算误差- ddlat(i)=(lat_err(i)-latitude(i)*rad_deg; %纬度误差 单位:度 ddlog(i)=(lon_err(i)-longitude(i)*rad_deg; %经度误差 单位:度 ddhigh(i)=high_err
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品采购管理制度
- 企业环境的应急预案
- 幼儿园手工制作活动策划方案(3篇)
- 春节安全的应急预案范文(35篇)
- 老师工作计划11篇
- 高中体育述职报告5篇
- 高考地理二轮复习综合题专项训练1特征(点)描述类含答案
- 第二十三章 数据分析 综合检测
- 山西省太原市2024-2025学年七年级上学期期中地理试题(含答案)
- 河南省周口市项城市东街小学等校2024-2025学年四年级上学期11月期中数学试题
- 食材配送实施方案(适用于学校、医院、酒店、企事业单位食堂等食材采购)投标方案(技术方案)
- 期中练习(试题)-2024-2025学年人教PEP版英语六年级上册
- 2024-2025学年五年级科学上册第二单元《地球表面的变化》测试卷(教科版)
- 中国高血压防治指南(2024年修订版)要点解读
- 2024年新人教版七年级上册数学教学课件 第三章 代数式 数学活动
- 九年级物理全册教案【人教版】
- 《中华民族一家亲-同心共筑中国梦》队会课件
- Unit 4 Time to celebrate 大单元教学设计 2024-2025学年外研版英语七年级上册
- 二十届三中全会精神应知应会知识测试30题(附答案)
- 【A公司企业文化建设问题及优化建议开题报告3400字】
- 2.2.1 有理数的乘法(第一课时)-教案
评论
0/150
提交评论