




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
08测绘一班(20080754)GPS卫星坐标计算 班级:08测绘一班姓名:浦绍佼学号:20080754目录实验目的:3卫星坐标计算步骤:3具体过程:4四:运行与结果11五,心得体会:12实验目的: 根据导航文件求出卫星坐标。卫星坐标计算步骤:一:计算平均角速度: n =n0+n ;n0=GMa3;n:由导航文件给出二:规划时刻:tk=t-t0e, t0e为参考历元三:平近点角:Mk=M0+ntk;四:偏近点角:Ek=Mk+esinEk;(此处进行迭代运算)五:真近点角:Vk=tan-1sinEk1-e2cosEk-e;六:升交点角距:k=Vk+;七:摄动改正:顾及,I,n的摄动变化以及正弦改正模型的振幅项Cc,Cs;则 升交点角距: u=Cuccos2k+Cussin2k; 轨道向径:r=Crccos2k+Crssin2k; 轨道倾角:i=Ciccos2k+Cissin2k;式中:k为参考时刻的升交角距;八:改正后的升交角距:uk=k+u; 改正后的轨道向径:rk=a1-ecosEk+r; 改正后的轨道倾角:ik=i0+i+(IDOT)tk;九:卫星在升交点轨道直角坐标系的坐标: xk=rkcosuk;yk=rksinuk:十:升交点经度:t=0+(-e)t-t0e-et0e; e: 7.2921151467*1016 rad/s; :升交点赤经变化率; 0:GPS周开始时刻的升交点经度;十一:卫星在地固坐标系的空间直角坐标为: XkYkZk =R(-k)(R(-ik) xkykzkR(-k), (R(-ik)为旋转矩阵,将其代入展开后得: Xk=xkcosk-ykcosiksink; Yk=xksink+ykcosikcosk;Zk=yksinik具体过程:一:原始资料(卫星导航文件)二:进行必要的界面设计:三:编写代码: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.Diagnostics;namespace 20080754 public partial class Form1 : Form private string stFilePath = string.Empty; public Form1() 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; listView2.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; private void listView1_SelectedIndexChanged(object sender, EventArgs e) public void drsj(object sender, EventArgs e) listView1.Items.Clear(); /读取相对路径 string str1 = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; string filename = str1 + GPS卫星导航文件.txt ; /读取卫星广播星历文件 StreamReader readnavigation = new StreamReader(filename, Encoding.Default); string myinfo = readnavigation.ReadToEnd(); readnavigation.Close(); /把卫星广播星历里的D改为e,以便后续计算 string myinfor = myinfo; myinfor = myinfor.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 = 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 = Cis; N22 = i0; N23 = Crc; N24 = 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 arrs.Length; i+) ListViewItem li = new ListViewItem(); li.Text = (i + 1).ToString(); li.SubItems.Add(Ni); li.SubItems.Add(arrsi); listView1.Items.Add(li); Mi = double.Parse(arrsi); private void 载入导航文件_Click(object sender, EventArgs e) drsj(sender, e); private void 计算_Click(object sender, EventArgs e) listView1.Items.Clear(); /读取相对路径 string str1 = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; string filename = str1 + GPS卫星导航文件.txt ; /读取卫星广播星历文件 StreamReader readnavigation = new StreamReader(filename, Encoding.Default); string myinfo = readnavigation.ReadToEnd(); readnavigation.Close(); /把卫星广播星历里的D改为e,以便后续计算 string myinfor = myinfo; myinfor = myinfor.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 = 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 = Cis; N22 = i0; N23 = Crc; N24 = 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 arrs.Length; i+) ListViewItem li = new ListViewItem(); li.Text = (i + 1).ToString(); li.SubItems.Add(Ni); li.SubItems.Add(arrsi); listView1.Items.Add(li); Mi = double.Parse(arrsi); double n0, n, tk, t, Mk, Ek, Ek0, Vk, faik, ksu, ksr, ksi, uk, Rk, Ik, xk, yk, lmt; double X, Y, Z; X = new double21; Y = new double21; Z = new double21; t = 60; for (int i = 0; i 1e-15); Vk = Math.Atan(Math.Sqrt(1 - Math.Pow(M15, 2) * Math.Sin(Ek) / (Math.Cos(Ek) - M15); double A1 = (Math.Sqrt(1 - M15 * M15) * Math.Sin(Ek); double A2 = Math.Cos(Ek) - M15; if (Vk 0) if (A1 0) Vk += 2 * Math.PI; if (A1 0 & A2 0) Vk += Math.PI; else if (A1 = 0 & A2 = 0) Vk = Vk + Math.PI; faik = Vk + M24; ksu = M14 * Math.Cos(2 * faik) + M16 * Math.Sin(2 * faik); ksr = M23 * Math.Cos(2 * faik) + M11 * Math.Sin(2 * faik); ksi = M19 * Math.Cos(2 * faik) + M21 * Math.Sin(2 * faik); uk = faik + ksu; Rk = Math.Pow(M17, 2) * (1 - M15 * Math.Cos(Ek) + ksr; Ik = M22 + ksi + M26 * tk; xk = Rk * Math.Cos(uk); yk = Rk * Math.Sin(uk); lmt = M20 + (M25 - 7.2921151467e-05) * tk - 7.2921151467e-05 * M18; Xi = xk * Math.Cos(lmt) - yk * Math.Cos(Ik) * Math.Sin(lmt); Yi = xk * Math.Sin(lmt) + yk * Math.Cos(Ik) * Math.Cos(lmt); Zi = yk * Math.Sin(Ik); ListViewItem li = new ListViewItem(); li.Text = 第 + i.ToString() + 分钟; li.SubItems.Add(M18 + i * t).ToString(); li.SubItems.Add(Xi.ToString(); li.SubItems.Add(Yi.ToString(); li.SubItems.Add(Zi.ToString(); listView2.Items.Add(li); private void button3_Click(object sender, EventArgs e) stFilePath = Application.StartupPath.Trim() + 卫星坐标计算结果 + .txt; StreamWriter swStream; if (File.Exists(stFilePath) swStream = new StreamWriter(stFilePath); else swStream = File.CreateText(stFilePath); swStream.Write( 时间 ); swStream.Write( ); swStream.Write( 历元 ); swStream.Write( ); swStream.Write( X ); swStream.Write( ); swStream.Write( Y ); s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程总承包施工合同范本3篇
- 瑞阳安全培训中心课件
- 瑞丰银行吴光伟课件
- 农业碳汇:2025年市场驱动因素与潜力评估报告
- 理赔廉洁自律课件
- 农业碳汇项目碳排放权交易市场政策与区域发展战略研究
- 封闭工程竞标方案范本(3篇)
- 农业温室智能化设施在2025年的应用效果与市场推广策略研究
- 房屋工程监理投标方案(3篇)
- 微课辅助:让诗歌鉴赏教学更高效
- 80年血火淬炼此刻亮剑正当时:纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵仪式对初中生的启示-2025-2026学年初中主题班会
- 2025-2026学年西师大版(2024)小学数学一年级上册(全册)教学设计(附目录P227)
- 2025年大型集团财务审计外包服务合同风险防控条款规范
- 2025年国家保安员资格考试复习题库(附答案)
- 辅警考试真题(含答案)
- 新式茶饮基础知识培训课件
- 2025新疆天泽和达水务科技有限公司部分岗位社会招聘28人笔试模拟试题及答案解析
- 巧堆肥劳动课件
- 技术方案评审表-技术选型决策
- 万用表专业培训资料共23张课件
- 启闭机设备安装与调试施工方案
评论
0/150
提交评论