1、卫星导航定位算法与程序设计实验报告23 级测绘工程专业卫星导航定位算法与程序设计实验报告实验名称: 卫星导航基本程序设计 班 级: 学 号: 姓 名: 实验时间: 2016年6月8日16年6月30中 国 矿 业 大 学实验一 时空基准转换 2一、实验目得 2二、实验内容 2三、实验过程2四、实验感想6实验二 RINEX文件读写7一、实验目得7二、实验内容 7三、实验过程7实验三 卫星轨道计算12一、实验目得 12二、实验内容 2三、实验过程1四、实验感想 实验一 时空基准转换一、实验目得1、加深对时空系统及其之间转换关系得理解2、掌握常用时空基准之间得转换模型与软件实现3、每人独立完成实验规定
2、得内容二、实验内容本实验内容包括:内容一:编程实现GP起点1980年月6日0时对应得儒略日内容二:编程实现011年1月2日对应得GP周数与一周内得秒数内容三:在WGS84椭球得条件下,编程实现当中央子午线为17度时,计算高斯坐标x = 3510、12928,y 1794.6135982对应得经纬度坐标?内容四:WS8椭球下,表面x248000; y69800;z= 56000处得地平坐标系坐标为:e=74。81;=1、8683;75、9771得点对应得直角坐标为多少?三、实验过程1.针对第一、二部分内容:1。1解决思路:先建立” TiSru、”得头文件,将格里高利历、GPS时间结构、儒略日时间
3、结构共结构体得方式放在里面;在建立“TieTr”得头文件,建立类“CTmeT”,创建变量“GPme”、“Time”、”JulDay,并且申明函数“IMEJUL”、“TIME2GTIM”等,用这些函数分别实现所需要得转换。1。2具体得实现函数:“TIME2J”函数:dube CTeTr:TIME2JL()/TIME Time,UANDAY uaydoubl m,y;dble D;/h Tm.byHour+Tie、bMinute/0.+Time、dSecn/360、00;f(Tie。byth=2)y=Tim。Yer-1;m=Tim。byMonth+;lsey=Tme。wYear;mTime。byo
4、nh;D=floor(365。25*(y+76)+or(30、001(m+1)+Time.bya+Tie、bHour/24、-1537、;JulD、a =i();Jula。lSeco =Dnt(JDy、ly);rtun 0;“IE2TIE”:oidCTimer:TIME2GTIE() doble D;lnm,y; in;ubleWseend; /UT=ime、byHrTime.byMnue/60。0+ime、dSecn/360。00; i(Te。bMonth2) =im、Year-; =Tm、h+1; lse y=Time、wYear;m=Time。byMoh; JD=int(36.25y)n
5、t(30。60(m+1)+Time、byay+Tie。yHour4。198.; WN = flor(JD-2424.5)/7.0); Gpsime、We=; seend=(J244244.7W)6000;psTim、lSecond=secen;1、3实验结果:2 针对第三部分内容:2、解决思路:运用实验指导书中提供得atla高斯反算得代码,进行解算;将高斯反算得公式直接输成matlab代码,绕后在函数“functioB, gufanua(,)”中,将坐标x 589.8112087,y = 19854.172358,0 117,带入函数得坐边,即可得到所需要得经纬度。2。2主要函数得代码: fc
6、tio B,L=gausfnsuan(x,y,L0)a=637813;f=1/298。5223563;b=aaf;c=a/b;e=sqrt(a2)/a; e1=qrt(a2-b)/;eta0=1-(3/4)e1+(45/6)e4(75256)*6+(1125/16384)*e18;Beta=Bta0;Ba4(15/32)e4-(15/8)e16(36/89)*e1;eta6=(39)16+(735/2048)8;Be=(315/102)18;B=x(c*Bet0);aa0=(cos(B)/sqrt(1e2si(B)2);l0=y/a0;=asqt(1-e2sin(B);=tan(B0);in=
7、e1*cos(0);a1=*os(B0);a2=(1/2)Nn(B)cos(B);a(1/)*cos(B0)*(12in);a(/2)s(B)*cos(B0)*(-2+*in2+*i4);a(1/0)Ns(B0)5*(12+t4+14*in25in2t2);a6=(720)*Nsin(B0)*os(0)5(618*t2+t4);_x=(c*ea2+(cBa+(c*Bta6+c*eta8co(0)2)cos(0)2)*co(B)2)sin(0)cos(B0); xBl2*l02+a4l04+a606;yBl=a3+a5l05;B1=(xF_F_xBl)/(cBe0);a1=(B)qrt(1-2*
8、(sn(B)2);l1=(y-_yBl)/aa1;hile as(1-0)、0001 ab(l1-l0)=0、0001 0B1; aa=aa1; =1; F_x=(cBeta2+(c*Beta4+(c*Bta+*Beta8os(B0)2)os(B0)2)*cos(B)2)in(B)os(0); _xl=a2l02+a4*l0+a6*l06; F_yB=al0+a5l05; B1=(xB-F_Bl)(c*e0); aa1(a*cos(B1)/sqrt(1e2(sin(B)2); l=(F_Bl)/aa1;endL=radeg(l)L0;B=rddeg(B1); .3实验结果四、实验感想本次试验就
9、是花时间较多得一次实验,关于时间转换得部分全部都就是自己动手将matlab代码写成“C+”得类,进行实现得。其中遇到得较大得困难就是儒略日向C转换得部分,这部分得函数步骤较多,关键就是在一开始得时间结构里面,各时间各部分得数据类型大多定义得就是“int”型得,但就是在进行计算得时候有较多得小数,需要用到浮点型得函数,这部分用了较多得时间。在做这个实验得时候,第一天花了时间主要就是转换代码,使程序没有错误,能够正常得运行出来,出现黑框框,但就是还只有个别功能能够用,能够运行出正确得结果;第二天时间主要就是花在修改函数上头,能够使所写得功能都能运行出正确得结果。通过做时间转换得实验,使自己产生了第
10、一次亲自编写“C+”代码得经历,而且所有错误得解决全部都就是自己解决,收获不少、实验二 NE文件读写一、实验目得1、深入了解RINEX文件格式2、进一步提高MATLAB程序设计能力3、掌握N文件、O文件、SP3文件得基本读写技巧二、实验内容本实验内容包括:、任选站,下载N文件、O文件与P3文件;、编程实现N文件读入,并采用中文标注出主要参数得名称及作用;4、编程实现O文件读入,并采用中文标注出主要参数得名称及作用;5、编程实现S3文件读入,并采用中文标注出主要参数得名称及作用;三、实验过程1、针对第一部分内容:编程实现N文件读入,并采用中文标注出主要参数得名称及作用。1、解决思路:按照“GPS
11、eay”开源代码提供得函数,按照实验要求读取了N文件得内容,先用“rnexe”函数,将N文件读取成“eph。t文件,然后再用“get_p”函数将“eph、t”文件读取成“Ep”矩阵,此矩阵中包含了文件中得数据,在最后用“fprintf函数将所需要得数据输出成”。XT”文件即可。1。2、主要函数代码:“get_eh”函数:funcin eph =gt_eh(epemeriesfile)e = n(ephemeidesfl);eph,ount =fread(fide, Inf, doube);noe= ont/22;e = reshe(ph, 22, noeph);“rinee”函数(部分):nc
12、tion rine(ephemrisfile, otputile)fid = fopen(epemerse);hea_lies= 0;whle 1 ha_ines hed_in+1; in= fgetl(fide); aner =findsr(lin,ED OF EDER); semy(anwer), brek; end;end;head_lines主函数中输出结果得函数部分: fdat(9);卫星中差 M=a(); roota=data(4); eltan=data(5); cc=data(6); mega=dta(7); cu=data(8); cus=ata(9); r=daa(); crata(1); i0dta(1); idot=data(13); toedaa(18); af1=data(20);%对所要输出得参数赋值 prntf(fid,卫星编号:%dn卫星钟差:dn平近点角距:d轨道长半轴得平方根:dn平均运动
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1