前言:想要寫出一篇引人入勝的文章?我們特意為您整理了GNSS單點定位程序?qū)崿F(xiàn)分析范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:在全球衛(wèi)星導(dǎo)航系統(tǒng)(gnss)數(shù)據(jù)處理領(lǐng)域,偽距單點定位是經(jīng)常涉及的問題,并廣泛應(yīng)用于實時位置導(dǎo)航、提供RTK實時衛(wèi)星位置及鐘差等場合?;贛icrosoftVisualstudio編程環(huán)境,自主開發(fā)了具有單點定位基本功能的程序算法,該程序可以計算觀測時段內(nèi)任意時刻的衛(wèi)星瞬時坐標(biāo),可根據(jù)精度強弱度(PDOP)值對參與單點定位的衛(wèi)星進(jìn)行預(yù)處理,獲取盡可能準(zhǔn)確的批歷元或某特定歷元的單點定位坐標(biāo),并驗證了問題解決的正確性和程序編寫的合理性。
關(guān)鍵詞:GNSS;單點定位;廣播星歷;程序實現(xiàn)
1引言
全球定位系統(tǒng)(GPS)為GNSS最具代表性的部分,很多國內(nèi)外學(xué)者都專注于此領(lǐng)域的研究,偽距單點定位技術(shù)發(fā)展已經(jīng)相當(dāng)成熟。但查閱已發(fā)表的文獻(xiàn)發(fā)現(xiàn),偽距單點定位程序的編寫在相當(dāng)多的文獻(xiàn)中僅是一筆帶過,許多文獻(xiàn)都并未對程序進(jìn)行詳細(xì)的解讀,這給學(xué)習(xí)GPS編程中遇到問題的讀者帶來了很大的困擾,需要額外浪費大量的研究時間去摸索程序的編寫。因此,自主開發(fā)改進(jìn)程序設(shè)計,實現(xiàn)GPS單點定位的各項功能顯得尤為重要。
2GPS定位的時間系統(tǒng)和坐標(biāo)系統(tǒng)
2.1GPS時間系統(tǒng)
GPS時是全球定位系統(tǒng)GPS使用的一種時間系統(tǒng)。它是由GPS的地面監(jiān)控系統(tǒng)和GPS衛(wèi)星中的原子鐘建立、維持的一種原子時,其起點為1980-01-06T00:00:00。在起始時刻,GPS時與UTC對齊,這兩種時間系統(tǒng)所給出的時間是相同的。由于UTC存在跳秒,經(jīng)過一段時間后,這兩種時間系統(tǒng)中就會相差n個整秒,n是這段時間內(nèi)UTC的積累跳秒數(shù),隨時間的變化而變化。由于在GPS時的起始時刻1980-01-06,UTC與國際原子時TAI已相差19s,因此GPS時與國際原子時之間總會有19s的差異,即TAI-GPST=19s。GPS已被廣泛應(yīng)用在時間對比,用戶通過上述關(guān)系,即可獲得高精度的UTC或者TAI時間,國際上有專門的單位在測定并且公布了C0值,其數(shù)值一般可以保持在10ns以內(nèi)。
2.2WGS-84大地坐標(biāo)系統(tǒng)
WGS-84坐標(biāo)系統(tǒng)是一種國際上公認(rèn)的地心坐標(biāo)系統(tǒng),在用廣播星歷的情況下,GPS單點定位的坐標(biāo)以及相對定位中解算的基線向量屬于WGS-84大地坐標(biāo)系,GPS衛(wèi)星廣播星歷是以WGS-84坐標(biāo)系為依據(jù)而建立的。坐標(biāo)系原點位于地球質(zhì)心,X軸指向BIH1984.0的零子午面和CTP赤道的點,Z軸指向BIH198.40定義的協(xié)議地球極(CTP),Y軸與Z軸、X軸構(gòu)成右手坐標(biāo)系,稱為1984年世界大地坐標(biāo)系統(tǒng)。
3GPS偽距單點定位原理
GPS衛(wèi)星發(fā)射的信號由載波、測距碼、導(dǎo)航電文三部分組成。
3.1GPS衛(wèi)星位置計算
GPS導(dǎo)航定位是以衛(wèi)星為已知的基準(zhǔn)點,通過測定站星間的距離,解算用戶的位置。GPS定位所采用的坐標(biāo)系是由測軌跟蹤站及其坐標(biāo)值所定義的地心坐標(biāo)系,該地心坐標(biāo)系采用WGS-84(1984年世界大地坐標(biāo)系)。因此,用戶接收機在取得導(dǎo)航電文的軌道參數(shù)后,要首先計算衛(wèi)星的位置和速度。為了解算測站點的坐標(biāo),需要知道在同一坐標(biāo)系中站星間的距離和GPS衛(wèi)星的信號與衛(wèi)星星歷衛(wèi)星位置,所以需要多次計算衛(wèi)星的位置。根據(jù)廣播星歷中衛(wèi)星電文提供的軌道參數(shù),按一定的公式可計算出觀測瞬間GSP衛(wèi)星在地固系的位置。按“二體問題”公式計算軌道參數(shù);根據(jù)導(dǎo)航電文給出的軌道攝動參數(shù)進(jìn)行攝動修正,計算修正后的軌道參數(shù);計算衛(wèi)星在軌道坐標(biāo)系的坐標(biāo);考慮地球自轉(zhuǎn)的影響,將軌道坐標(biāo)系轉(zhuǎn)換為WGS-84坐標(biāo)系。
3.2地面點坐標(biāo)計算
接上一過程,解算出每個歷元內(nèi)個衛(wèi)星的位置坐標(biāo),再由衛(wèi)星的已知坐標(biāo)進(jìn)行空間距離交會,進(jìn)而解算出地面站的位置坐標(biāo)。
3.3單點定位的主要誤差來源
GPS定位中出現(xiàn)的各種誤差,按性質(zhì)可分為系統(tǒng)誤差(偏差)和隨機誤差兩大類。其中,系統(tǒng)誤差無論從誤差的大小還是對定位結(jié)果的危害性來講,都比隨機誤差大得多,而且它們又有規(guī)律可循,可以采取一定的方法和措施來加以消除。
3.3.1衛(wèi)星星歷誤差由衛(wèi)星星歷所給出的衛(wèi)星位置和速度與衛(wèi)星的實際位置和速度之差稱為衛(wèi)星星歷誤差。星歷誤差的大小主要取決于衛(wèi)星定軌系統(tǒng)的質(zhì)量。如定軌站的數(shù)量及其地理分布、觀測值的數(shù)量及精度、定軌時所用的數(shù)學(xué)力學(xué)模型和定軌軟件的完善程度等。此外,與星歷的外推時間間隔(實測星歷的外推時間間隔可視為零)也有直接關(guān)系。
3.3.2衛(wèi)星鐘的鐘誤差衛(wèi)星上雖然使用了高精度的原子鐘,但它們也不可避免地存在誤差,這種誤差既包含著系統(tǒng)性的誤差(如鐘差鐘連頻漂等偏差),也包含著隨機誤差。系統(tǒng)誤差遠(yuǎn)較隨機誤差的值大,而且可以通過檢驗和比對來確定并通過模型來加以改正,而隨機誤差只能通過鐘的穩(wěn)定度來描述其統(tǒng)計特性,無法確定其符號和大小。
3.3.3接收機的位置誤差在進(jìn)行授時和定軌時,接收機的位置通常被認(rèn)為是已知的,其誤差將使授時和定軌的結(jié)果產(chǎn)生系統(tǒng)誤差。該項誤差對測碼偽距觀測值和載波相位觀測值的影響是相同的。進(jìn)行GPS基線解算時,需已知其中一個端點在WGS-84坐標(biāo)系中的近似坐標(biāo),近似坐標(biāo)的誤差過大也會對解算結(jié)果產(chǎn)生影響。目前采用的對流折射改正模型很多,主要有霍普菲爾德模型、薩斯塔莫寧模型、勃蘭克模型等,這些模型都有各自的適用范圍,經(jīng)過比對各種模型和測試各種模型的結(jié)果后,本程序采用霍普菲爾德模型,電離層改正主要采用主流的雙頻觀測值進(jìn)行消除。
4單點定位的程序?qū)崿F(xiàn)
4.1C++程序?qū)崿F(xiàn)
根據(jù)上述GPS單點定位原理,使用Qt開發(fā)環(huán)境,編寫單點定位程序。在讀取觀測文件時,為了更方便地看出文件頭的內(nèi)容和構(gòu)成,推薦使用EditwithNotepad++來查看。讀取導(dǎo)航文件,計算測量時刻衛(wèi)星瞬時坐標(biāo),提取偽距解算地面點近似坐標(biāo),建立誤差方程確定誤差系數(shù),利用最小二乘原理計算坐標(biāo)的改正值,最后即求得瞬時的WGS84絕對坐標(biāo)。在此過程中,需用到大量的矩陣計算,因此選用了成熟穩(wěn)定的Eigen矩陣庫。
4.2Matlab交互實現(xiàn)
將O文件和N文件導(dǎo)入程序,根據(jù)時間匹配依次計算衛(wèi)星鐘差、坐標(biāo)及速度,得出改正值,刪除不符合要求的觀測歷元,生成地面點坐標(biāo)結(jié)果文件,文件中包含的內(nèi)容為各歷元解算坐標(biāo)與地面點預(yù)估坐標(biāo)的差值。使用Matlab中的plot命令,將文件中N、E、U三個方向的數(shù)據(jù)分別成圖,查看改正值的波動情況。各測站坐標(biāo)改正值平均值如表1所示。通過較多實例表明,程序編寫可以順利地運行出結(jié)果,定位精度都在米級,結(jié)果精度均在標(biāo)準(zhǔn)范圍之內(nèi),完全可以驗證偽距單點定位解算結(jié)果的正確性,從而驗證了該算法程序能夠滿足單點定位的精度要求。有極個別歷元結(jié)算出來的坐標(biāo)內(nèi)符合精度精度較低,原因主要分為兩個方面,①該歷元觀測時衛(wèi)星數(shù)量較少,使得衛(wèi)星結(jié)構(gòu)不穩(wěn)定而引起誤差;②因為衛(wèi)星高度角較小,對流層和電離層改正未完全消除,使誤差增大。通過查看生成的.spp文件,觀測時衛(wèi)星觀測數(shù)正常,但衛(wèi)星高度角較小,對流層和電離層的改正未完全消除,導(dǎo)致解算精度較差。由于觀測文件(*.O文件)有不同格式,在不同格式的文件中偽距所在的位置不同,而且對每顆衛(wèi)星的觀測數(shù)據(jù)所占的行數(shù)也不同,因此給偽距讀取帶來了很大不便。為解決這個問題,在程序設(shè)計中對偽距的讀取進(jìn)行了精心設(shè)計,根據(jù)RENIX文件版本和*.O文件字頭塊內(nèi)容進(jìn)行判斷,先確定需要獲取的偽距所在的行和列,然后依次將衛(wèi)星號及其偽距讀入到動態(tài)數(shù)組。
5結(jié)束語
GPS單點定位計算過程需要用到大量矩陣計算,數(shù)值分析,使用C++語言處理這些問題較為復(fù)雜,而Matlab包含大量高度集成的函數(shù),可以方便地處理這些問題,因此將C++與Matlab等可視化的語言交互,美化界面是很多程序常用的方法。但是這種C++與Matlab相互交互的程序也存在不足,比如在進(jìn)行程序編寫過程中電腦必須同時安裝C++開發(fā)環(huán)境和Matlab軟件才可以進(jìn)行程序編輯,增加了程序書寫的復(fù)雜性及可行性,使用Matlab編程,對基于IGS全球跟蹤站的解算出來的各軸觀測值改正數(shù)進(jìn)行繪圖,觀察計算結(jié)果的波動情況。
參考文獻(xiàn):
[1]廖華.GPS偽距單點定位算法的綜合比較[J].測繪科學(xué),2011,36(1):20-21.
[2]陳藝軍,楊善婷,鄭加柱.GPS單點定位程序開發(fā)幾點思考[J].無線通信技術(shù),2010,19(1):53-56,61.
[3]李征航,黃勁松.GPS測量與數(shù)據(jù)處理[M].2版.武漢:武漢大學(xué)出版社,2010:20-22.
作者:馮鵬睿 徐泮林 高明超 單位:山東科技大學(xué)測繪科學(xué)與工程學(xué)院