GPS卫星坐标计算班级:08测绘一班姓名:浦绍佼学号:2008075408测绘一班(20080754)西南交通大学地学学院测量工程系GPS卫星坐标计算报告2目录实验目的:.......................................................................................................................................3卫星坐标计算步骤:.......................................................................................................................3具体过程:.......................................................................................................................................5四:运行与结果.............................................................................................................................12五,心得体会:.............................................................................................................................1308测绘一班(20080754)西南交通大学地学学院测量工程系GPS卫星坐标计算报告3实验目的:根据导航文件求出卫星坐标。卫星坐标计算步骤:一:计算平均角速度:n=;n0=;:由导航文件给出二:规划时刻:,为参考历元三:平近点角:四:偏近点角:+e;(此处进行迭代运算)五:真近点角:;六:升交点角距:;七:摄动改正:顾及Ω,I,n的摄动变化以及正弦改正模型的振幅项,;则升交点角距:轨道向径:08测绘一班(20080754)西南交通大学地学学院测量工程系GPS卫星坐标计算报告4轨道倾角:式中:为参考时刻的升交角距;八:改正后的升交角距:改正后的轨道向径:;改正后的轨道倾角:;九:卫星在升交点轨道直角坐标系的坐标:;:十:升交点经度:7.2921151467*rad/s;:升交点赤经变化率;:GPS周开始时刻的升交点经度;十一:卫星在地固坐标系的空间直角坐标为:=R(-)(R(-)R(-),(R(-)为旋转矩阵,将其代入展开后得:;;08测绘一班(20080754)西南交通大学地学学院测量工程系GPS卫星坐标计算报告5具体过程:一:原始资料(卫星导航文件)二:进行必要的界面设计:08测绘一班(20080754)西南交通大学地学学院测量工程系GPS卫星坐标计算报告6三:编写代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;usingSystem.Diagnostics;namespace20080754{publicpartialclassForm1:Form{privatestringstFilePath=string.Empty;publicForm1(){InitializeComponent();listView1.Columns.Add(序号,40,HorizontalAlignment.Center);listView1.Columns.Add(星历参数,80,HorizontalAlignment.Center);listView1.Columns.Add(参数值,130,HorizontalAlignment.Center);listView1.GridLines=true;listView1.View=View.Details;listView1.HeaderStyle=ColumnHeaderStyle.Clickable;listView1.FullRowSelect=true;08测绘一班(20080754)西南交通大学地学学院测量工程系GPS卫星坐标计算报告7listView2.Columns.Add(时间,60,HorizontalAlignment.Center);listView2.Columns.Add(历元,55,HorizontalAlignment.Center);listView2.Columns.Add(X,115,HorizontalAlignment.Center);listView2.Columns.Add(Y,115,HorizontalAlignment.Center);listView2.Columns.Add(Z,115,HorizontalAlignment.Center);listView2.GridLines=true;listView2.View=View.Details;listView2.HeaderStyle=ColumnHeaderStyle.Clickable;listView2.FullRowSelect=true;}privatevoidlistView1_SelectedIndexChanged(objectsender,EventArgse){}publicvoiddrsj(objectsender,EventArgse){listView1.Items.Clear();//读取相对路径stringstr1=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;stringfilename=str1+GPS卫星导航文件.txt;//读取卫星广播星历文件StreamReaderreadnavigation=newStreamReader(filename,Encoding.Default);stringmyinfo=readnavigation.ReadToEnd();readnavigation.Close();//把卫星广播星历里的D改为e,以便后续计算stringmyinfor=myinfo;myinfor=myinfor.Replace(D,e);//把数据分开读入到一个数组中存储string[]split=newstring[]{};string[]arrs=myinfor.Split(split,StringSplitOptions.RemoveEmptyEntries);double[]M=newdouble[arrs.Length];string[]N=newstring[arrs.Length];N[0]=PRN;N[1]=Yer;N[2]=Mon;N[3]=day;N[4]=H;N[5]=M;N[6]=sec;N[7]=a0;N[8]=a1;N[9]=a2;N[10]=IODE;N[11]=Crs;N[12]=delta-n;N[13]=M0;N[14]=Cuc;N[15]=e;N[16]=Cus;N[17]=sqrt(a);N[18]=t0e;N[19]=Cic;N[20]=omega0;N[21]=Cis;N[22]=i0;N[23]=Crc;N[24]=omega;N[25]=omega-spot;N[26]=IDOT;N[27]=CodesonL2channel;N[28]=GPSWeek;N[29]=L2Pdataflag;08测绘一班(20080754)西南交通大学地学学院测量工程系GPS卫星坐标计算报告8N[30]=SVaccuracy;N[31]=SVhealth;N[32]=TGD;N[33]=IODCIssueofData;N[34]=Transmissiontimeofmessage;for(inti=0;iarrs.Length;i++){ListViewItemli=newListViewItem();li.Text=(i+1).ToString();li.SubItems.Add(N[i]);li.SubItems.Add(arrs[i]);listView1.Items.Add(li);M[i]=double.Parse(arrs[i]);}}privatevoid载入导航文件_Click(objectsender,EventArgse){drsj(sender,e);}privatevoid计算_Click(objectsender,EventArgse){listView1.Items.Clear();//读取相对路径stringstr1=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;stringfilename=str1+GPS卫星导航文件.txt;//读取卫星广播星历文件StreamReaderreadnavigation=newStreamReader(filename,Encoding.Default);stringmyinfo=readnavigation.ReadToEnd();readnavigation.Close();//把卫星广播星历里的D改为e,以便后续计算stringmyinfor=myinfo;myinfor=myinfor.Replace(D,e);//把数据分开读入到一个数组中存储string[]split=newstring[]{};string[]arrs=myinfor.Split(split,StringSplitOptions.RemoveEmptyEntries);double[]M=newdouble[arrs.Length];string[]N=newstring[arrs.Length];N[0]=PRN;N[1]=Yer;N[2]=Mon;N[3]=day;N[4]=H;N[5]=M;N[6]=sec;N[7]=a0;N[8]=a1;N[9]=a2;N[10]=IODE;N[11]=Crs;N[12]=delta-n;N[13]=M0;N[14]=Cuc;N[15]=e;N[16]=Cus;N[17]=sqrt(a);N[18]=t0e;N[19]=Cic;N[20]=omega0;N[21]=Cis;N[22]=i0;N[23]=Crc;N[24]=omega;N[25]=omega-spot;08测绘一班(20080754)西南交通大学地学学院测量工程系GPS卫星坐标计算报告9N[26]=IDOT;N[27]=CodesonL2channel;N[28]=GPSWeek;N[29]=L2Pdataflag;N[30]=SVaccuracy;N[31]=SVhealth;N[32]=TGD;N[33]=IODCIssueofData;N[34]=Transmissiontimeofmessage;for(inti=0;iarrs.Length;i++){ListViewItemli=newListViewItem();li.Text=(i+1).ToString();li.SubItems.Add(N[i]);li.SubItems.Add(arrs[i]);listView1.Items.Add(li);M[i]=double.Parse(arrs[i]);}doublen0,n,tk,t,Mk,Ek,Ek0,Vk,faik,k