版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上GPS衛(wèi)星坐標(biāo)計算 班級:08測繪一班姓名:浦紹佼學(xué)號:目錄實驗?zāi)康模?根據(jù)導(dǎo)航文件求出衛(wèi)星坐標(biāo)。衛(wèi)星坐標(biāo)計算步驟:一:計算平均角速度: n =n0+n ;n0=GMa3;n:由導(dǎo)航文件給出二:規(guī)劃時刻:tk=t-t0e, t0e為參考?xì)v元三:平近點角:Mk=M0+ntk;四:偏近點角:Ek=Mk+esinEk;(此處進行迭代運算)五:真近點角:Vk=tan-1sinEk1-e2cosEk-e;六:升交點角距:k=Vk+;七:攝動改正:顧及,I,n的攝動變化以及正弦改正模型的振幅項Cc,Cs;則 升交點角距: u=Cuccos2k+Cussin2k; 軌道向徑:r=C
2、rccos2k+Crssin2k; 軌道傾角:i=Ciccos2k+Cissin2k;式中:k為參考時刻的升交角距;八:改正后的升交角距:uk=k+u; 改正后的軌道向徑:rk=a1-ecosEk+r; 改正后的軌道傾角:ik=i0+i+(IDOT)tk;九:衛(wèi)星在升交點軌道直角坐標(biāo)系的坐標(biāo): xk=rkcosuk;yk=rksinuk:十:升交點經(jīng)度:t=0+('-e)t-t0e-et0e; e: 7.*1016 rad/s; ':升交點赤經(jīng)變化率; 0:GPS周開始時刻的升交點經(jīng)度;十一:衛(wèi)星在地固坐標(biāo)系的空間直角坐標(biāo)為: XkYkZk =R(-k)(R(-ik) xkyk
3、zkR(-k), (R(-ik)為旋轉(zhuǎn)矩陣,將其代入展開后得: Xk=xkcosk-ykcosiksink; Yk=xksink+ykcosikcosk;Zk=yksinik具體過程:一:原始資料(衛(wèi)星導(dǎo)航文件)二:進行必要的界面設(shè)計:三:編寫代碼: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;u
4、sing System.Diagnostics;namespace public partial class Form1 : Form private string stFilePath = string.Empty; public Form1() InitializeComponent(); listView1.Columns.Add("序號", 40, HorizontalAlignment.Center); listView1.Columns.Add("星歷參數(shù)", 80, HorizontalAlignment.Center); listView
5、1.Columns.Add("參數(shù)值", 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.Ad
6、d("歷元", 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; listView
7、2.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.Setu
8、pInformation.ApplicationBase; string filename = str1 + "GPS衛(wèi)星導(dǎo)航文件.txt " /讀取衛(wèi)星廣播星歷文件 StreamReader readnavigation = new StreamReader(filename, Encoding.Default); string myinfo = readnavigation.ReadToEnd(); readnavigation.Close(); /把衛(wèi)星廣播星歷里的D改為e,以便后續(xù)計算 string myinfor = myinfo; myinfor = myinf
9、or.Replace("D", "e"); /把數(shù)據(jù)分開讀入到一個數(shù)組中存儲 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
10、" 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&quo
11、t; 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&qu
12、ot; 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).ToS
13、tring(); li.SubItems.Add(Ni); li.SubItems.Add(arrsi); listView1.Items.Add(li); Mi = double.Parse(arrsi); private void 載入導(dǎo)航文件_Click(object sender, EventArgs e) drsj(sender, e); private void 計算_Click(object sender, EventArgs e) listView1.Items.Clear(); /讀取相對路徑 string str1 = AppDomain.CurrentDomain.Set
14、upInformation.ApplicationBase; string filename = str1 + "GPS衛(wèi)星導(dǎo)航文件.txt " /讀取衛(wèi)星廣播星歷文件 StreamReader readnavigation = new StreamReader(filename, Encoding.Default); string myinfo = readnavigation.ReadToEnd(); readnavigation.Close(); /把衛(wèi)星廣播星歷里的D改為e,以便后續(xù)計算 string myinfor = myinfo; myinfor = myin
15、for.Replace("D", "e"); /把數(shù)據(jù)分開讀入到一個數(shù)組中存儲 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 = "Mo
16、n" 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&qu
17、ot; 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&q
18、uot; 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).To
19、String(); 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 < 21; i+) n
20、0 = Math.Sqrt(.418e008 / (Math.Pow(M17, 6); n = n0 + M12; tk = t * i; Mk = M13 + n * tk; Ek = Mk; do Ek0 = Ek; Ek = Mk + M15 * Math.Sin(Ek0); while (Math.Abs(Ek - Ek0) > 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 * M
21、15) * Math.Sin(Ek); double A2 = Math.Cos(Ek) - M15; if (Vk < 0) if (A1 < 0 && A2 > 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(
22、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.e-0
23、5) * tk - 7.e-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).ToStrin
24、g(); 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() + "衛(wèi)星坐標(biāo)計算結(jié)果" + ".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("
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版農(nóng)村土地整治舊房買賣合同范本4篇
- 二零二五年度牛奶飲品行業(yè)標(biāo)準(zhǔn)制定與執(zhí)行合同4篇
- 2025年度品牌跨界合作與聯(lián)名推廣合同8篇
- 二零二五年度城市綠地用地使用權(quán)轉(zhuǎn)讓合同
- 二零二五年度農(nóng)藥技術(shù)支持代理銷售合同樣本
- 2025年度鐵藝圍欄出口貿(mào)易采購合同
- 二零二五年度新材料研發(fā)采購合同(中英文版)3篇
- 二零二五年度外匯市場投資培訓(xùn)借款合同投資培訓(xùn)
- 2025年度個人二手房買賣合同履約保證金合同
- 二零二五年度人工智能(AI)技術(shù)咨詢服務(wù)合同2篇
- 人員測評與選拔的主要方法課件
- 2024年內(nèi)蒙古電力集團招聘筆試參考題庫含答案解析
- 阿米巴落地實操方案
- 藥物制劑工(三級)理論試題題庫及答案
- 高強度間歇訓(xùn)練(HIIT)對代謝健康的長期影響
- ICU患者導(dǎo)管留置登記表
- 中建商務(wù)工作指南手冊
- 耳鼻咽喉:頭頸外科疾病診斷流程與冶療策略
- 貴州省2023年中考英語真題
- 個人借條電子版模板
- 中國思想史 馬工程329P
評論
0/150
提交評論