收藏 分享(赏)

GPS卫星坐标计算.doc

上传人:rav7596 文档编号:5998015 上传时间:2019-03-23 格式:DOC 页数:17 大小:294KB
下载 相关 举报
GPS卫星坐标计算.doc_第1页
第1页 / 共17页
GPS卫星坐标计算.doc_第2页
第2页 / 共17页
GPS卫星坐标计算.doc_第3页
第3页 / 共17页
GPS卫星坐标计算.doc_第4页
第4页 / 共17页
GPS卫星坐标计算.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、0卫星定位技术与方法-根据广播星历参数计算卫星坐标作业报告指导教师: 熊 永 良 班 级: 测 绘 二 班 学生姓名: 段 海 东 学生学号: 2 0 0 8 0 7 8 3 作业日期: 2010 年 12 月 08 日 1目 录一. 已知数据 2二. 计算步骤 21.平均角速度 (mean angular speed) .22.规化时刻(normal time) 33.平近点角(mean anomaly) .34.偏近点角(eccentric anomaly) .35.真近点角(true anomaly) .36.升交距角(argument of ascending node) .37. 轨

2、道向径(Orbital radius) .38. 扰动改正(Perturbed correction) .410.卫星在升交点轨道直角坐标系中的坐标 .411. 升交点经度(Longitude of ascending node) .5三. 源程序 5四 程序运行结果 14七.作业体会 152根据广播星历参数计算卫星坐标一. 已知数据: 根据以下的广播星历参数计算 UTC2004 年 1 月 30 日 8点 0 分 00 秒20 分 00 秒,每隔一分钟的 PRN7 的卫星坐标。Compute the coordinate of PRN7 with interval of 1 minute.N

3、avigation data:卫星导航文件格式:二. 计算步骤:The steps for satellite coordinates1.平均角速度 (mean angular speed): nn0 30aGMn 由广播星历获得 , GM=3.986005e+1432.规化时刻(normal time): 0ttkt0 已知(由广播星历获得) ,t 为 GPS 周秒3.平近点角(mean anomaly): kk tnM0M0 已知(由广播星历获得)4.偏近点角(eccentric anomaly): kkk EeMEsin迭代求解:初始值取 E=M,以弧度为单位5.真近点角(true an

4、omaly): eEVkkk cosin1artn26.升交距角(argument of ascending node): 近地点角距(argument of perigee)7. 轨道向径(Orbital radius): )cos1( kk Eeark048. 扰动改正(Perturbed correction): 升交角距(Argument of ascending node) 00u2sin2cosuSuCC 轨道向径(Orbital radius) 00r 2sin2cosrSrC 轨道顷角(Orbital inclination) 00i 2sin2cos iSiCC0是升交角距

5、(the argument of ascending node)9. 改正后升交角距、轨道向径、轨道倾角改正后升交角距(Corrected argument of ascending nod)改正后的轨道向径(Corrected orbital radius)改正后的轨道倾角(Corrected orbital inclination)10.卫星在升交点轨道直角坐标系中的坐标:如下图所示rkk)cosEe1(aru0kki0kt)IDOT(ikksinurycox511. 升交点经度(Longitude of ascending node):如下图所示12. 在地固坐标系中的卫星位置(Expr

6、essed in spheric coordinate system)三. 源程序:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Text.RegularExpressions;s/rad10295467.t)(5-e eke0t kkkiyZixYsncosncok6n

7、amespace Testpublic partial class Form1 : Formpublic Form1()InitializeComponent();listView1.Columns.Add(“序号“, 40);listView1.Columns.Add(“星历内容“, 130);listView1.Columns.Add(“导航数据“, 130);listView1.GridLines = true; /显示表格线listView1.View = View.Details;/显示表格细节listView1.HeaderStyle = ColumnHeaderStyle.Cli

8、ckable;/对表头进行设置listView2.Columns.Add(“时间“, 60);listView2.Columns.Add(“x坐标“, 150);listView2.Columns.Add(“y坐标“, 150);listView2.Columns.Add(“z坐标“, 150);listView2.GridLines = true; /显示表格线listView2.View = View.Details;/显示表格细节listView2.HeaderStyle = ColumnHeaderStyle.Clickable;/对表头进行设置private void button1

9、_Click(object sender, EventArgs e)/读取相对路径string str1 = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;7string filename = str1 + “navigation data.txt “;/读取卫星广播星历文件StreamReader myreader = new StreamReader(filename, Encoding.Default);string myinfo = myreader.ReadToEnd();myreader.Close();/把卫星广

10、播星历里的D改为e,以便后续计算string mystring = myinfo;string myinfor = mystring;myinfor = mystring.Replace(“D“, “e“);/把数据分开读入到一个数组中存储string split = new string “ “ ;string arrs = myinfor.Split(split, StringSplitOptions.RemoveEmptyEntries);double M = new doublearrs.Length;/星历代码string N = new stringarrs.Length;N0 =

11、 “PRN“; N1 = “Yer“; N2 = “Mon“; N3 = “day“; N4 = “H“; N5 = “M“; N6 = “sec“; N7 = “a0“; N8 = “a1“; N9 = “a2“;N10 = “IODE“; N11 = “Crs“; N12 = “delta-n“; N13 = “M0“;N14 = “Cuc“; N15 = “e“; N16 = “Cus“; N17 = “sqrt(a)“;N18 = “t0e“; N19 = “Cic“; N20 = “omega0“; N21 = 8“Cis“;N22 = “i0“; N23 = “Crc“; N24

12、= “omega“; N25 = “omega-spot“;N26 = “IDOT“; N27 = “Codes on L2 channel“; N28 = “GPS Week“; N29 = “L2 P data flag“;N30 = “SV accuracy“; N31 = “SV health“; N32 = “TGD“; N33 = “IODC Issue of Data“;N34 = “Transmission time of message“;/把卫星广播星历读入到数组中for (int i = 0; i 1e-15);/计算真近点角double Vk = Math.Atan(M

13、ath.Sqrt(1 - M15 * M15) * Math.Sin(Ek) / (Math.Cos(Ek) - M15);/反正切值的象限处理double A1 = Math.Atan(Math.Sqrt(1 - M15 * M15) * Math.Sin(Ek);double A2 = Math.Cos(Ek) - M15;10if (Vk 0)Vk += 2 * Math.PI;if (A1 0 elseif (A1 = 0 /计算升交角距double fk = Vk + M24;/摄动改正值的计算double du = M14 * Math.Cos(2 * fk) + M16 * Ma

14、th.Sin(2 * fk);double dr = M23 * Math.Cos(2 * fk) + M11 * Math.Sin(2 * fk);double di = M19 * Math.Cos(2 * fk) + M21 * Math.Sin(2 * fk);11/摄动改正double uk = fk + du;double rk = Math.Pow(M17, 2) * (1 - M15 * Math.Cos(Ek) + dr;double ik = M22 + di + M26 * tk;/计算卫星在升交点轨道直角坐标系的坐标double xk = rk * Math.Cos(u

15、k);double yk = rk * Math.Sin(uk);/计算升交点经度double we = 7.2921151467e-05;double jdt = M20 + (M25 - we) * tk - we * M18;/卫星在地固坐标系中的空间直角坐标XKl = xk * Math.Cos(jdt) - yk * Math.Cos(ik) * Math.Sin(jdt);YKl = xk * Math.Sin(jdt) + yk * Math.Cos(ik) * Math.Cos(jdt);ZKl = yk * Math.Sin(ik); /输出卫星在地固坐标系中的空间直角坐标f

16、or (int i = 0; i 21; i+)ListViewItem list = new ListViewItem();list.Text = “第“ + i.ToString() + “分钟“;list.SubItems.Add(XKi.ToString();list.SubItems.Add(YKi.ToString();12list.SubItems.Add(ZKi.ToString();listView2.Items.Add(list);private void button2_Click(object sender, EventArgs e)/读取相对路径string str1

17、 = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;string filename = str1 + “navigation data.txt “;/读取卫星广播星历文件StreamReader myreader = new StreamReader(filename, Encoding.Default);string myinfo = myreader.ReadToEnd();myreader.Close();/把卫星广播星历里的D改为e,以便后续计算string mystring = myinfo;string myinf

18、or = mystring;myinfor = mystring.Replace(“D“, “e“);/把数据分开读入到一个数组中存储string split = new string “ “ ;string arrs = myinfor.Split(split, StringSplitOptions.RemoveEmptyEntries);13/星历代码string N = new stringarrs.Length;N0 = “PRN“; N1 = “Yer“; N2 = “Mon“; N3 = “day“; N4 = “H“; N5 = “M“; N6 = “sec“; N7 = “a0

19、“; N8 = “a1“; N9 = “a2“;N10 = “IODE“; N11 = “Crs“; N12 = “delta-n“; N13 = “M0“;N14 = “Cuc“; N15 = “e“; N16 = “Cus“; N17 = “sqrt(a)“;N18 = “t0e“; N19 = “Cic“; N20 = “omega0“; N21 = “Cis“;N22 = “i0“; N23 = “Crc“; N24 = “omega“; N25 = “omega-spot“;N26 = “IDOT“; N27 = “Codes on L2 channel“; N28 = “GPS W

20、eek“; N29 = “L2 P data flag“;N30 = “SV accuracy“; N31 = “SV health“; N32 = “TGD“; N33 = “IODC Issue of Data“;N34 = “Transmission time of message“;/把卫星广播星历文件内容输出到listView进行查看for (int i = 0; i arrs.Length; i+)ListViewItem li = new ListViewItem();li.Text = (i + 1).ToString();li.SubItems.Add(Ni);li.SubI

21、tems.Add(arrsi);listView1.Items.Add(li);14四 程序运行结果:星历内容的读取、显示:卫星坐标计算结果:15运行界面:作业体会:此次作业,收获颇多。起初由于自己的疏忽,在真近点角的计算时忘了处理象限,导致做后的结果都差了一个负号,所以不管做什么都得认真、细心;想要做好一件事情,必须有百分百的投入,有足够的专注度;发现自己16对 GPS 卫星定位技术与方法这方面知识越来越感兴趣,以后要多加学习。由于教材上、老师的课件上都有明细的计算步骤,作业起来很方便,不容易出错,经过计算,发现程序运行出来的卫星坐标结果与教材上给的坐标有较大的差距,这个差距达到几十米,检查程序也没有发现问题,问了班上几个同学,他们也都说存在这样的问题,所以,恳请老师给予指点。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报