卫星导航定位算法与程序的设计——实验报告

上传人:xmg****18 文档编号:108395569 上传时间:2019-10-23 格式:DOC 页数:16 大小:146.92KB
返回 下载 相关 举报
卫星导航定位算法与程序的设计——实验报告_第1页
第1页 / 共16页
卫星导航定位算法与程序的设计——实验报告_第2页
第2页 / 共16页
卫星导航定位算法与程序的设计——实验报告_第3页
第3页 / 共16页
卫星导航定位算法与程序的设计——实验报告_第4页
第4页 / 共16页
卫星导航定位算法与程序的设计——实验报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《卫星导航定位算法与程序的设计——实验报告》由会员分享,可在线阅读,更多相关《卫星导航定位算法与程序的设计——实验报告(16页珍藏版)》请在金锄头文库上搜索。

1、. . . .2013 级测绘工程专业卫星导航定位算法与程序设计实验报告实验名称: 卫星导航基本程序设计 班 级: 学 号: 姓 名: 实验时间: 2016年6月28日2016年6月30 中 国 矿 业 大 学目录实验一 时空基准转换2一、实验目的2二、实验内容2三、实验过程2四、实验感想6实验二 RINEX文件读写7一、实验目的7二、实验内容7三、实验过程7实验三 卫星轨道计算12一、实验目的12二、实验内容12三、实验过程12四、实验感想15 参考实验一 时空基准转换一、实验目的1、加深对时空系统及其之间转换关系的理解2、掌握常用时空基准之间的转换模型与软件实现3、每人独立完成实验规定的内

2、容二、实验内容本实验内容包括:内容一:编程实现GPS起点1980年1月6日0时对应的儒略日内容二:编程实现2011年11月27日对应的GPS周数与一周内的秒数内容三:在WGS84椭球的条件下,编程实现当中央子午线为117度时,计算高斯坐标x = 3548910.811290287, y = 179854.6172135982 对应的经纬度坐标?内容四:WGS84椭球下,表面x=-2408000; y=4698000;z= 3566000处的地平坐标系坐标为: e=704.8615;n=114.8683;u=751.9771的点对应的直角坐标为多少?三、实验过程1.针对第一、二部分内容:1.1解

3、决思路:先建立” TimeStruct.h”的头文件,将格里高利历、GPS时间结构、儒略日时间结构共结构体的方式放在里面;在建立“TimeTr”的头文件,建立类“CTimeTr”,创建变量“GPSTime”、“Time”、”JulDay”,并且申明函数“TIME2JUL”、“TIME2GTIME”等,用这些函数分别实现所需要的转换。1.2具体的实现函数:“TIME2JUL”函数:double CTimeTr:TIME2JUL()/TIME Time,JULIANDAY &JulDaydouble m,y;double D;/h =Time.byHour+Time.byMinute/60.0+T

4、ime.dSecond/3600.00;if(Time.byMonth=2)y=Time.wYear-1;m=Time.byMonth+12;elsey=Time.wYear;m=Time.byMonth;D=floor(365.25*(y+4716)+floor(30.6001*(m+1)+Time.byDay+Time.byHour/24.0-1537.5;JulDay.lDay = int(D);JulDay.lSecond = D-int(JulDay.lDay);return 0;“TIME2GTIME”:void CTimeTr:TIME2GTIME()double JD;long

5、 m,y;int WN;double Wsecend;/UT=Time.byHour+Time.byMinute/60.0+Time.dSecond/3600.00;if(Time.byMonth=0.0001 & abs(l1-l0)=0.0001 B0=B1; aa0=aa1; l0=l1; F_xB=(c*Beta2+(c*Beta4+(c*Beta6+c*Beta8*cos(B0)2)*cos(B0)2)*cos(B0)2)*sin(B0)*cos(B0); F_xBl=a2*l02+a4*l04+a6*l06; F_yBl=a3*l03+a5*l05; B1=(x-F_xB-F_xB

6、l)/(c*Beta0); aa1=(a*cos(B1)/sqrt(1-e2*(sin(B1)2); l1=(y-F_yBl)/aa1;endL=rad2deg(l1)+L0;B=rad2deg(B1);2.3实验结果四、实验感想本次试验是花时间较多的一次实验,关于时间转换的部分全部都是自己动手将matlab代码写成“C+”的类,进行实现的。其中遇到的较大的困难是儒略日向UTC转换的部分,这部分的函数步骤较多,关键是在一开始的时间结构里面,各时间各部分的数据类型大多定义的是“int”型的,但是在进行计算的时候有较多的小数,需要用到浮点型的函数,这部分用了较多的时间。在做这个实验的时候,第一天花

7、了时间主要是转换代码,使程序没有错误,能够正常的运行出来,出现黑框框,但是还只有个别功能能够用,能够运行出正确的结果;第二天时间主要是花在修改函数上头,能够使所写的功能都能运行出正确的结果。通过做时间转换的实验,使自己产生了第一次亲自编写“C+”代码的经历,而且所有错误的解决全部都是自己解决,收获不少。实验二 RINEX文件读写一、实验目的1、深入了解RINEX文件格式2、进一步提高MATLAB程序设计能力3、掌握N文件、O文件、SP3文件的基本读写技巧二、实验内容本实验内容包括:1、任选IGS站,下载N文件、O文件与SP3文件;2、编程实现N文件读入,并采用中文标注出主要参数的名称及作用;4

8、、 编程实现O文件读入,并采用中文标注出主要参数的名称及作用;5、编程实现SP3文件读入,并采用中文标注出主要参数的名称及作用;三、实验过程1、针对第一部分内容:编程实现N文件读入,并采用中文标注出主要参数的名称及作用1.1、解决思路:按照“GPSeasy”开源代码提供的函数,按照实验要求读取了N文件的内容,先用“rinexe”函数,将N文件读取成“eph.dat”文件,然后再用“get_eph”函数将“eph.dat”文件读取成“Eph”矩阵,此矩阵中包含了N文件中的数据,在最后用“fprintf”函数将所需要的数据输出成”.TXT”文件即可。1.2、主要函数代码:“get_eph”函数:f

9、unction eph = get_eph(ephemeridesfile)fide = fopen(ephemeridesfile);eph, count = fread(fide, Inf, double);noeph = count/22;eph = reshape(eph, 22, noeph);“rinexe”函数(部分):function rinexe(ephemerisfile, outputfile)fide = fopen(ephemerisfile);head_lines = 0;while 1 head_lines = head_lines+1; line = fgetl(fide); answer = findstr(line,END OF HEADER); if isempty(answer), break; end;end;head_lines主函数中输出结果得函数部分: af0=data(19);%卫星中差 M0=data(3); roota=data(4); deltan=data(5); ecc=data(6); omega=data(7); cuc=data(8);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号