公務(wù)員期刊網(wǎng) 論文中心 正文

GNSS單點(diǎn)定位程序?qū)崿F(xiàn)分析

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了GNSS單點(diǎn)定位程序?qū)崿F(xiàn)分析范文,希望能給你帶來靈感和參考,敬請(qǐng)閱讀。

GNSS單點(diǎn)定位程序?qū)崿F(xiàn)分析

摘要:在全球衛(wèi)星導(dǎo)航系統(tǒng)(gnss)數(shù)據(jù)處理領(lǐng)域,偽距單點(diǎn)定位是經(jīng)常涉及的問題,并廣泛應(yīng)用于實(shí)時(shí)位置導(dǎo)航、提供RTK實(shí)時(shí)衛(wèi)星位置及鐘差等場合。基于MicrosoftVisualstudio編程環(huán)境,自主開發(fā)了具有單點(diǎn)定位基本功能的程序算法,該程序可以計(jì)算觀測時(shí)段內(nèi)任意時(shí)刻的衛(wèi)星瞬時(shí)坐標(biāo),可根據(jù)精度強(qiáng)弱度(PDOP)值對(duì)參與單點(diǎn)定位的衛(wèi)星進(jìn)行預(yù)處理,獲取盡可能準(zhǔn)確的批歷元或某特定歷元的單點(diǎn)定位坐標(biāo),并驗(yàn)證了問題解決的正確性和程序編寫的合理性。

關(guān)鍵詞:GNSS;單點(diǎn)定位;廣播星歷;程序實(shí)現(xiàn)

1引言

全球定位系統(tǒng)(GPS)為GNSS最具代表性的部分,很多國內(nèi)外學(xué)者都專注于此領(lǐng)域的研究,偽距單點(diǎn)定位技術(shù)發(fā)展已經(jīng)相當(dāng)成熟。但查閱已發(fā)表的文獻(xiàn)發(fā)現(xiàn),偽距單點(diǎn)定位程序的編寫在相當(dāng)多的文獻(xiàn)中僅是一筆帶過,許多文獻(xiàn)都并未對(duì)程序進(jìn)行詳細(xì)的解讀,這給學(xué)習(xí)GPS編程中遇到問題的讀者帶來了很大的困擾,需要額外浪費(fèi)大量的研究時(shí)間去摸索程序的編寫。因此,自主開發(fā)改進(jìn)程序設(shè)計(jì),實(shí)現(xiàn)GPS單點(diǎn)定位的各項(xiàng)功能顯得尤為重要。

2GPS定位的時(shí)間系統(tǒng)和坐標(biāo)系統(tǒng)

2.1GPS時(shí)間系統(tǒng)

GPS時(shí)是全球定位系統(tǒng)GPS使用的一種時(shí)間系統(tǒng)。它是由GPS的地面監(jiān)控系統(tǒng)和GPS衛(wèi)星中的原子鐘建立、維持的一種原子時(shí),其起點(diǎn)為1980-01-06T00:00:00。在起始時(shí)刻,GPS時(shí)與UTC對(duì)齊,這兩種時(shí)間系統(tǒng)所給出的時(shí)間是相同的。由于UTC存在跳秒,經(jīng)過一段時(shí)間后,這兩種時(shí)間系統(tǒng)中就會(huì)相差n個(gè)整秒,n是這段時(shí)間內(nèi)UTC的積累跳秒數(shù),隨時(shí)間的變化而變化。由于在GPS時(shí)的起始時(shí)刻1980-01-06,UTC與國際原子時(shí)TAI已相差19s,因此GPS時(shí)與國際原子時(shí)之間總會(huì)有19s的差異,即TAI-GPST=19s。GPS已被廣泛應(yīng)用在時(shí)間對(duì)比,用戶通過上述關(guān)系,即可獲得高精度的UTC或者TAI時(shí)間,國際上有專門的單位在測定并且公布了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單點(diǎn)定位的坐標(biāo)以及相對(duì)定位中解算的基線向量屬于WGS-84大地坐標(biāo)系,GPS衛(wèi)星廣播星歷是以WGS-84坐標(biāo)系為依據(jù)而建立的。坐標(biāo)系原點(diǎn)位于地球質(zhì)心,X軸指向BIH1984.0的零子午面和CTP赤道的點(diǎn),Z軸指向BIH198.40定義的協(xié)議地球極(CTP),Y軸與Z軸、X軸構(gòu)成右手坐標(biāo)系,稱為1984年世界大地坐標(biāo)系統(tǒng)。

3GPS偽距單點(diǎn)定位原理

GPS衛(wèi)星發(fā)射的信號(hào)由載波、測距碼、導(dǎo)航電文三部分組成。

3.1GPS衛(wèi)星位置計(jì)算

GPS導(dǎo)航定位是以衛(wèi)星為已知的基準(zhǔn)點(diǎn),通過測定站星間的距離,解算用戶的位置。GPS定位所采用的坐標(biāo)系是由測軌跟蹤站及其坐標(biāo)值所定義的地心坐標(biāo)系,該地心坐標(biāo)系采用WGS-84(1984年世界大地坐標(biāo)系)。因此,用戶接收機(jī)在取得導(dǎo)航電文的軌道參數(shù)后,要首先計(jì)算衛(wèi)星的位置和速度。為了解算測站點(diǎn)的坐標(biāo),需要知道在同一坐標(biāo)系中站星間的距離和GPS衛(wèi)星的信號(hào)與衛(wèi)星星歷衛(wèi)星位置,所以需要多次計(jì)算衛(wèi)星的位置。根據(jù)廣播星歷中衛(wèi)星電文提供的軌道參數(shù),按一定的公式可計(jì)算出觀測瞬間GSP衛(wèi)星在地固系的位置。按“二體問題”公式計(jì)算軌道參數(shù);根據(jù)導(dǎo)航電文給出的軌道攝動(dòng)參數(shù)進(jìn)行攝動(dòng)修正,計(jì)算修正后的軌道參數(shù);計(jì)算衛(wèi)星在軌道坐標(biāo)系的坐標(biāo);考慮地球自轉(zhuǎn)的影響,將軌道坐標(biāo)系轉(zhuǎn)換為WGS-84坐標(biāo)系。

3.2地面點(diǎn)坐標(biāo)計(jì)算

接上一過程,解算出每個(gè)歷元內(nèi)個(gè)衛(wèi)星的位置坐標(biāo),再由衛(wèi)星的已知坐標(biāo)進(jìn)行空間距離交會(huì),進(jìn)而解算出地面站的位置坐標(biāo)。

3.3單點(diǎn)定位的主要誤差來源

GPS定位中出現(xiàn)的各種誤差,按性質(zhì)可分為系統(tǒng)誤差(偏差)和隨機(jī)誤差兩大類。其中,系統(tǒng)誤差無論從誤差的大小還是對(duì)定位結(jié)果的危害性來講,都比隨機(jī)誤差大得多,而且它們又有規(guī)律可循,可以采取一定的方法和措施來加以消除。

3.3.1衛(wèi)星星歷誤差由衛(wèi)星星歷所給出的衛(wèi)星位置和速度與衛(wèi)星的實(shí)際位置和速度之差稱為衛(wèi)星星歷誤差。星歷誤差的大小主要取決于衛(wèi)星定軌系統(tǒng)的質(zhì)量。如定軌站的數(shù)量及其地理分布、觀測值的數(shù)量及精度、定軌時(shí)所用的數(shù)學(xué)力學(xué)模型和定軌軟件的完善程度等。此外,與星歷的外推時(shí)間間隔(實(shí)測星歷的外推時(shí)間間隔可視為零)也有直接關(guān)系。

3.3.2衛(wèi)星鐘的鐘誤差衛(wèi)星上雖然使用了高精度的原子鐘,但它們也不可避免地存在誤差,這種誤差既包含著系統(tǒng)性的誤差(如鐘差鐘連頻漂等偏差),也包含著隨機(jī)誤差。系統(tǒng)誤差遠(yuǎn)較隨機(jī)誤差的值大,而且可以通過檢驗(yàn)和比對(duì)來確定并通過模型來加以改正,而隨機(jī)誤差只能通過鐘的穩(wěn)定度來描述其統(tǒng)計(jì)特性,無法確定其符號(hào)和大小。

3.3.3接收機(jī)的位置誤差在進(jìn)行授時(shí)和定軌時(shí),接收機(jī)的位置通常被認(rèn)為是已知的,其誤差將使授時(shí)和定軌的結(jié)果產(chǎn)生系統(tǒng)誤差。該項(xiàng)誤差對(duì)測碼偽距觀測值和載波相位觀測值的影響是相同的。進(jìn)行GPS基線解算時(shí),需已知其中一個(gè)端點(diǎn)在WGS-84坐標(biāo)系中的近似坐標(biāo),近似坐標(biāo)的誤差過大也會(huì)對(duì)解算結(jié)果產(chǎn)生影響。目前采用的對(duì)流折射改正模型很多,主要有霍普菲爾德模型、薩斯塔莫寧模型、勃蘭克模型等,這些模型都有各自的適用范圍,經(jīng)過比對(duì)各種模型和測試各種模型的結(jié)果后,本程序采用霍普菲爾德模型,電離層改正主要采用主流的雙頻觀測值進(jìn)行消除。

4單點(diǎn)定位的程序?qū)崿F(xiàn)

4.1C++程序?qū)崿F(xiàn)

根據(jù)上述GPS單點(diǎn)定位原理,使用Qt開發(fā)環(huán)境,編寫單點(diǎn)定位程序。在讀取觀測文件時(shí),為了更方便地看出文件頭的內(nèi)容和構(gòu)成,推薦使用EditwithNotepad++來查看。讀取導(dǎo)航文件,計(jì)算測量時(shí)刻衛(wèi)星瞬時(shí)坐標(biāo),提取偽距解算地面點(diǎn)近似坐標(biāo),建立誤差方程確定誤差系數(shù),利用最小二乘原理計(jì)算坐標(biāo)的改正值,最后即求得瞬時(shí)的WGS84絕對(duì)坐標(biāo)。在此過程中,需用到大量的矩陣計(jì)算,因此選用了成熟穩(wěn)定的Eigen矩陣庫。

4.2Matlab交互實(shí)現(xiàn)

將O文件和N文件導(dǎo)入程序,根據(jù)時(shí)間匹配依次計(jì)算衛(wèi)星鐘差、坐標(biāo)及速度,得出改正值,刪除不符合要求的觀測歷元,生成地面點(diǎn)坐標(biāo)結(jié)果文件,文件中包含的內(nèi)容為各歷元解算坐標(biāo)與地面點(diǎn)預(yù)估坐標(biāo)的差值。使用Matlab中的plot命令,將文件中N、E、U三個(gè)方向的數(shù)據(jù)分別成圖,查看改正值的波動(dòng)情況。各測站坐標(biāo)改正值平均值如表1所示。通過較多實(shí)例表明,程序編寫可以順利地運(yùn)行出結(jié)果,定位精度都在米級(jí),結(jié)果精度均在標(biāo)準(zhǔn)范圍之內(nèi),完全可以驗(yàn)證偽距單點(diǎn)定位解算結(jié)果的正確性,從而驗(yàn)證了該算法程序能夠滿足單點(diǎn)定位的精度要求。有極個(gè)別歷元結(jié)算出來的坐標(biāo)內(nèi)符合精度精度較低,原因主要分為兩個(gè)方面,①該歷元觀測時(shí)衛(wèi)星數(shù)量較少,使得衛(wèi)星結(jié)構(gòu)不穩(wěn)定而引起誤差;②因?yàn)樾l(wèi)星高度角較小,對(duì)流層和電離層改正未完全消除,使誤差增大。通過查看生成的.spp文件,觀測時(shí)衛(wèi)星觀測數(shù)正常,但衛(wèi)星高度角較小,對(duì)流層和電離層的改正未完全消除,導(dǎo)致解算精度較差。由于觀測文件(*.O文件)有不同格式,在不同格式的文件中偽距所在的位置不同,而且對(duì)每顆衛(wèi)星的觀測數(shù)據(jù)所占的行數(shù)也不同,因此給偽距讀取帶來了很大不便。為解決這個(gè)問題,在程序設(shè)計(jì)中對(duì)偽距的讀取進(jìn)行了精心設(shè)計(jì),根據(jù)RENIX文件版本和*.O文件字頭塊內(nèi)容進(jìn)行判斷,先確定需要獲取的偽距所在的行和列,然后依次將衛(wèi)星號(hào)及其偽距讀入到動(dòng)態(tài)數(shù)組。

5結(jié)束語

GPS單點(diǎn)定位計(jì)算過程需要用到大量矩陣計(jì)算,數(shù)值分析,使用C++語言處理這些問題較為復(fù)雜,而Matlab包含大量高度集成的函數(shù),可以方便地處理這些問題,因此將C++與Matlab等可視化的語言交互,美化界面是很多程序常用的方法。但是這種C++與Matlab相互交互的程序也存在不足,比如在進(jìn)行程序編寫過程中電腦必須同時(shí)安裝C++開發(fā)環(huán)境和Matlab軟件才可以進(jìn)行程序編輯,增加了程序書寫的復(fù)雜性及可行性,使用Matlab編程,對(duì)基于IGS全球跟蹤站的解算出來的各軸觀測值改正數(shù)進(jìn)行繪圖,觀察計(jì)算結(jié)果的波動(dòng)情況。

參考文獻(xiàn):

[1]廖華.GPS偽距單點(diǎn)定位算法的綜合比較[J].測繪科學(xué),2011,36(1):20-21.

[2]陳藝軍,楊善婷,鄭加柱.GPS單點(diǎn)定位程序開發(fā)幾點(diǎn)思考[J].無線通信技術(shù),2010,19(1):53-56,61.

[3]李征航,黃勁松.GPS測量與數(shù)據(jù)處理[M].2版.武漢:武漢大學(xué)出版社,2010:20-22.

作者:馮鵬睿 徐泮林 高明超 單位:山東科技大學(xué)測繪科學(xué)與工程學(xué)院