您好, 歡迎來到智慧城市網(wǎng)! 登錄| 免費(fèi)注冊(cè)| 產(chǎn)品展廳| 收藏商鋪|
當(dāng)前位置:北京北斗聯(lián)星科技有限公司>>技術(shù)文章>>淺析差分GPS的算法及數(shù)據(jù)格式
何 怡1,李揚(yáng)繼2
摘 要:簡要介紹了GPS 25XL的星歷數(shù)據(jù)及位置數(shù)據(jù)遵從的標(biāo)準(zhǔn),詳述了差分GPS技術(shù)在消除電離層、對(duì)流層誤差方面的算法,同時(shí)對(duì)RTCM SC-104電文格式進(jìn)行了分析,并在此基礎(chǔ)上給出了構(gòu)造RTCM SC-104格式差分?jǐn)?shù)據(jù)的方法,為相應(yīng)產(chǎn)品的開發(fā)提供了有益的經(jīng)驗(yàn)。
一、引言
GPS利用zui簡單的C/A碼定位,精度可達(dá)到14m;利用P碼定位,精度可達(dá)到3m。美國政府曾經(jīng)采取SA(Selective Availability)政策,人為地將誤差引入衛(wèi)星時(shí)鐘和衛(wèi)星數(shù)據(jù)中,極大地限制了定位技術(shù)的應(yīng)用?,F(xiàn)在美國根據(jù)形勢對(duì)全部衛(wèi)星取消了SA政策,這使差分GPS(DGPS)的精度有了更大提高,但修正速率因不受SA的影響而放慢。因此,即使取消了SA政策,DGPS仍然具有很高的利用價(jià)值,是重要的導(dǎo)航定位產(chǎn)品之一。
商用的差分GPS設(shè)備已經(jīng)投入使用,其用戶設(shè)備采用雙工傳輸?shù)拇蠭/O通用通信接口,并采用通用的RTCM SC-104電文格式。分析差分?jǐn)?shù)據(jù)電文格式有助于我們利用RTCM格式的差分改正信號(hào),修正定位誤差。
本文將詳細(xì)介紹差分GPS算法和通用的GPS差分?jǐn)?shù)據(jù)格式RTCM SC-104。
二、相關(guān)的數(shù)據(jù)格式遵從的標(biāo)準(zhǔn)
在下面將要介紹的算法中,許多參數(shù)都來自GPS的星歷數(shù)據(jù)和位置數(shù)據(jù)。在本文列出的參考資料中,可以方便地查閱這兩種數(shù)據(jù)格式,所以這里不再贅述,只簡要介紹一下它們遵從的標(biāo)準(zhǔn)。
星歷數(shù)據(jù)和位置數(shù)據(jù)結(jié)構(gòu)中有很多參數(shù)是float型和double型的,它們都遵從IEEE-754標(biāo)準(zhǔn)。
三、DGPS算法介紹
GPS定位是利用一組衛(wèi)星的偽距、星歷、衛(wèi)星發(fā)射時(shí)間等觀測量和用戶鐘差來實(shí)現(xiàn)的。要獲得地面的三維坐標(biāo),必須對(duì)至少4顆衛(wèi)星進(jìn)行測量。在這一定位過程中,存在3部分誤差:
*部分誤差是由衛(wèi)星鐘誤差、星歷誤差、電離層誤差、對(duì)流層誤差等引起的;
第二部分是由傳播延遲導(dǎo)致的誤差;
第三部分為各用戶接收機(jī)固有的誤差,由內(nèi)部噪聲、通道延遲、多徑效應(yīng)等原因造成。
利用差分技術(shù),*部分誤差可以*消除;第二部分誤差大部分可以消除,消除程度主要取決于基準(zhǔn)接收機(jī)和用戶接收機(jī)的距離;第三部分誤差則無法消除。
下面,我們主要介紹消除由于電離層延遲和對(duì)流層延遲引起的誤差的算法。在算法中使用的時(shí)間系統(tǒng)為GPS時(shí),坐標(biāo)系統(tǒng)為WGS-84坐標(biāo)系。
1消除電離層誤差的算法
我們主要通過電離層網(wǎng)格延遲算法來獲得實(shí)際的電離層延遲值,以消除電離層誤差。具體過程如下:解算星歷,得出衛(wèi)星位置→求電離層穿透點(diǎn)位置→求對(duì)應(yīng)網(wǎng)格點(diǎn)→求網(wǎng)格4個(gè)頂點(diǎn)的電離層延遲改正數(shù)→內(nèi)插獲得穿透點(diǎn)垂直延遲改正數(shù)→求穿透點(diǎn)的實(shí)際延遲值。
?。?)衛(wèi)星位置的計(jì)算
解算出星歷數(shù)據(jù)后,加入星歷修正和差分信息,便可計(jì)算出衛(wèi)星位置。
從GPS OEM板接收到的是二進(jìn)制編碼的星歷數(shù)據(jù)流,必須按照本文前面部分列出的數(shù)據(jù)結(jié)構(gòu)解算星歷數(shù)據(jù),再依據(jù)IEEE-754標(biāo)準(zhǔn)將其轉(zhuǎn)換為十進(jìn)制編碼的數(shù)據(jù)。在這里,需要解算的參數(shù)有:軌道長半軸的平方根(sqrta)、平近點(diǎn)角改正(dn)、星歷表基準(zhǔn)時(shí)間(toe)、toe時(shí)的平近點(diǎn)角(m0)、偏心率(e)、近地點(diǎn)角距(w)、衛(wèi)星軌道攝動(dòng)修正參數(shù)(cus cuc cis ciccrs crc)、軌道傾角(i0)、升交點(diǎn)赤經(jīng)(omg0)、升交點(diǎn)赤經(jīng)變化率(odot)。
另外,在衛(wèi)星位置的計(jì)算中,需要一些常量參數(shù),下面一并列出:WGS-84橢球長半軸(a=6378137.0 m),WGS-84橢球扁率(f=1/298.257223563)、地球自轉(zhuǎn)角速度(we=7.292115×10-5rad/s),地球引力常數(shù)(GM=3.986005×1 014m3/s2)。
下面列出衛(wèi)星位置的具體解算過程:
1)計(jì)算衛(wèi)星運(yùn)行的平均角速度:先計(jì)算圓軌道的平均角速度,由于GPS衛(wèi)星軌道實(shí)際為微橢球形,所以應(yīng)在計(jì)算的原軌道的平均角速率上加一個(gè)修正量;
2)計(jì)算歸化時(shí)刻:tk=t-toe。tk為相對(duì)于星歷基準(zhǔn)時(shí)間的歸化時(shí)刻。應(yīng)考慮一個(gè)星期(604 800 s)的開始或結(jié)束,當(dāng)tk>302 400 s,應(yīng)減去604 800 s;tk<-302 400 s,應(yīng)加上604 800 s;
3)計(jì)算觀測時(shí)刻的平近點(diǎn)角Mk:Mk=m0+n·tk;
4)計(jì)算偏近點(diǎn)角Ek:利用開普勒方程迭代方式計(jì)算,電文中已給出基準(zhǔn)時(shí)刻的平近點(diǎn)角m0,并在3)中求得Mk,Ek=Mk+e·sinEk (均以弧度計(jì))。
迭代計(jì)算:取E0=Mk,Ei+1=Mk+e·sinEi,代入計(jì)算,當(dāng)|Ei+1-Ei|<ε=10-12時(shí)停止迭代;
5)計(jì)算衛(wèi)星矢徑rk:rk=a·(1-e·cosEk);
6)計(jì)算衛(wèi)星真近點(diǎn)角Vk:Vk=
7)計(jì)算升交點(diǎn)角距Φk:Φk=Vk+ω(ω為電文中的近地點(diǎn)角距);
8)計(jì)算攝動(dòng)改正項(xiàng)δu、δr、δi:
9)計(jì)算經(jīng)過攝動(dòng)改正的升交距角Uk、衛(wèi)星矢徑rk和軌道傾角ik:
11)計(jì)算觀測時(shí)刻的升交點(diǎn)經(jīng)度Ωk:Ωk=Ω-GAST。其中:Ω為升交點(diǎn)赤經(jīng)、春分點(diǎn)、升交點(diǎn)角距;GAST為格林尼治視恒星時(shí)、春分點(diǎn)、格林尼治起始子午線角距。升交點(diǎn)赤經(jīng):Ω=Ωoe-Ωtk。
衛(wèi)星電文提供一個(gè)星期的開始時(shí)刻tk(星期六午夜/星期日子夜的交換時(shí)刻)的格林尼治視恒星時(shí)GASTw,由于地球自轉(zhuǎn),GAST不斷增加,其增值率為地球自轉(zhuǎn)速率we。
12)計(jì)算衛(wèi)星在地心坐標(biāo)系中的位置。軌道平面直角坐標(biāo)系轉(zhuǎn)換為地心坐標(biāo)系:沿地心升交點(diǎn)(X軸)旋轉(zhuǎn)ik角,沿Z軸旋轉(zhuǎn)Ωk角(依照右手定則為:-ik、-Ωk)。經(jīng)由旋轉(zhuǎn)矩陣二次變換:
?。?)電離層改正數(shù)的計(jì)算
在已經(jīng)求得衛(wèi)星位置的前提下,根據(jù)衛(wèi)星的坐標(biāo)和GPS輸出的用戶概略位置可以求得電離層穿透點(diǎn)的位置,從廣域差分廣播數(shù)據(jù)中查找其所在的網(wǎng)格點(diǎn),獲得對(duì)應(yīng)網(wǎng)格4個(gè)頂點(diǎn)的電離層垂直延遲改正數(shù),然后內(nèi)插獲得電離層穿透點(diǎn)垂直延遲改正數(shù),并利用垂直延遲改正數(shù)來求得電離層穿透點(diǎn)實(shí)際延遲的改正數(shù)。
1)計(jì)算用戶電離層穿透點(diǎn)的概略位置:需要求得用戶仰角E和衛(wèi)星相對(duì)用戶方位角Au(λ,φ分別表示經(jīng)度、緯度)。
衛(wèi)星、用戶、地心構(gòu)成一個(gè)三角形ΔSUO,如圖1所示。
2)用戶電離層穿透點(diǎn)垂直延遲改正值的獲得。
在已經(jīng)求得用戶電離層穿透點(diǎn)概略位置的情況下,查找網(wǎng)格點(diǎn),獲得用戶所在的網(wǎng)格以及網(wǎng)格4個(gè)頂
確定用戶所在網(wǎng)格的方法非常簡單,只要在給出的數(shù)據(jù)流中查找同時(shí)滿足條件(1)和(2)的網(wǎng)格頂點(diǎn)即可:
穿透點(diǎn)垂直延遲值因4個(gè)網(wǎng)格頂點(diǎn)的排列順序的不同而不同,從而影響zui終的定位精度,所以確定網(wǎng)格頂點(diǎn)的順序至關(guān)重要。假設(shè)已經(jīng)獲得的網(wǎng)格4個(gè)頂點(diǎn)的經(jīng)度、緯度、垂直延遲值分別為(φ1,λ1,
我們使用內(nèi)插的方法求得用戶電離層穿透點(diǎn)的垂直延遲值,內(nèi)插公式為
4個(gè)網(wǎng)格點(diǎn)的經(jīng)、緯度,而Δλ=λIPP-λ1,Δφ=φIPP
3)求得用戶電離層穿透點(diǎn)實(shí)際延遲改正值。傾斜因子:
2消除對(duì)流層誤差的算法
這里選取改進(jìn)的Hopfield模型對(duì)對(duì)流層進(jìn)行修正:
已知用戶概率位置:經(jīng)度L,緯度B,高度h。
海平面標(biāo)準(zhǔn)氣象元素:t0=18℃,P0=1013.25mbar,H0=50%。
用戶的氣象元素計(jì)算如下(將用戶的氣象元素近似為用戶位置的函數(shù)):
分別計(jì)算干、濕分量折射改正量:
rdry、rwet分別表示測站到傳播路徑與干濕折射指數(shù)趨于零的邊界之交點(diǎn)的距離(m),其計(jì)算公式為
其中i為dry、wet,E為衛(wèi)星高度仰角,r0為用戶地心向徑,單位為米。
四、DGPS數(shù)據(jù)格式(RTCM SC-104格式)分析
1RTCM SC-104格式的電文編碼
RTCM電文是由二進(jìn)制編碼的數(shù)據(jù)流組成,每一組由N+2個(gè)30 bit的字碼組成,每個(gè)字碼分解為5個(gè)6 bit的字節(jié),這樣可允許在標(biāo)準(zhǔn)計(jì)算機(jī)UART間串行傳送。如果所用的UART提供8 bit,則數(shù)據(jù)的zui高位(MSB)和次高位僅僅作為填充位,固定填為為“0”和“1”,是無效數(shù)據(jù)。MSB標(biāo)為d1,LSB標(biāo)為d30。每個(gè)字碼的第五個(gè)字節(jié)(d25~d30)為奇偶校驗(yàn)碼,用于檢驗(yàn)本字碼的RTCM數(shù)據(jù)。前一組RTCMzui后一個(gè)字碼的低兩位(d29和d30),標(biāo)記為d29*和d30*,用于產(chǎn)生本組*字碼的奇偶校驗(yàn)碼。奇偶校驗(yàn)碼遵從(32,26)漢明碼檢錯(cuò)準(zhǔn)則,漢明校驗(yàn)矩陣為H,校驗(yàn)公式為:S6×1=H6×24⊕M24×1,式中M24×1為電文中每個(gè)字碼的前24位信息位。由于衛(wèi)星電文的子幀長為30 bit,為了滿足字長和信息位(24 bit)的要求,將(32,26)漢明碼縮短,去掉兩位信息位構(gòu)成(32,24)縮短碼。這種縮短碼的糾錯(cuò)能力和zui小距離與原碼相同。
RTCM電文結(jié)構(gòu)包含2個(gè)字頭和N個(gè)數(shù)據(jù)字。下面詳細(xì)介紹電文結(jié)構(gòu):
RTCM SC-104電文結(jié)構(gòu):
第1字碼:
第2字碼:
第3字碼:
其中:
第1字碼:
引導(dǎo)字:固定填入01100110
基臺(tái)識(shí)別:固定填入1111111111
第2字碼:
修正Z計(jì)數(shù)=(星期的GPS時(shí)間%3600)/0.6
序號(hào):從001開始計(jì)數(shù)
幀長:該幀電文數(shù)據(jù)的字節(jié)數(shù)
從第3個(gè)字碼起:
填入衛(wèi)星信息數(shù)據(jù)(比例因子——1位,UDRE——2位,衛(wèi)星識(shí)別——5位,偽距改正數(shù)——16位,偽距變化率改正值——8位,衛(wèi)星發(fā)布日期——8位),每填入24位之后對(duì)這些數(shù)據(jù)進(jìn)行奇偶校驗(yàn),奇偶校驗(yàn)碼是6位,每30位(24位數(shù)據(jù)+6位奇偶校驗(yàn)碼)便組成1個(gè)字碼。
比例因子:填0或1;
衛(wèi)星識(shí)別:衛(wèi)星號(hào),若解讀的是星歷中第32顆衛(wèi)星的數(shù)據(jù),則將衛(wèi)星識(shí)別置0;否則,將星歷數(shù)據(jù)中的衛(wèi)星號(hào)svid加1;
偽距改正數(shù):按照一定的數(shù)學(xué)模型解算出;
數(shù)據(jù)發(fā)布日期:選取當(dāng)前日期。
zui后一個(gè)字碼:若此字碼的數(shù)據(jù)信息不足24位,則用填充位“1010…”補(bǔ)足24位。
RTCM電文中每個(gè)字碼奇偶校驗(yàn)位的zui低位(d30*)決定是否對(duì)下一字碼的前四個(gè)字節(jié)取補(bǔ)碼(第五個(gè)字節(jié)不能取補(bǔ)碼)。若d30*為1,則取補(bǔ)碼,否則取原碼。
電文格式采用6/8進(jìn)行數(shù)據(jù)傳輸。bit7設(shè)置為1,bit8設(shè)置為0。由于UART為約定的非同步通訊,首先發(fā)送或接收LSB。所以,每一個(gè)字節(jié)在發(fā)送前先要完成“滾動(dòng)”,這在效果上保持了RTCM電文的邏輯序列。因此,在發(fā)送媒介中MSB優(yōu)先。所謂“滾動(dòng)”,就是d1和d6、d2和d5、d3和d4進(jìn)行互換(僅滾動(dòng)數(shù)據(jù)位,bit7、bit8不參與滾動(dòng))。
根據(jù)上面的分析可知:63<byte<128(byte為電文字碼中的字節(jié)),每個(gè)字節(jié)的低6位是有效數(shù)據(jù)。
2獲得GPS差分?jǐn)?shù)據(jù)的流程
?。?)將計(jì)算數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制,按照格式填入字碼中;
?。?)進(jìn)行奇偶校驗(yàn);
?。?)若需要,字節(jié)取補(bǔ)碼(奇偶校驗(yàn)位不能取補(bǔ)碼);
?。?)進(jìn)行字節(jié)滾動(dòng)(bit7、bit8不參與滾動(dòng))。
五、結(jié)束語
本文論述了差分GPS的原理和應(yīng)用,并提出了構(gòu)造RTCM SC-104 格式差分?jǐn)?shù)據(jù)的方法。為了擴(kuò)展差分GPS的用途領(lǐng)域,對(duì)具體的算法和性能還需要進(jìn)行深入研究。
參考文獻(xiàn)
[1]干國強(qiáng),邱致和. 導(dǎo)航與定位——現(xiàn)代戰(zhàn)爭的北斗星[M].北京:國防工業(yè)出版社,2000.
[2]王廣運(yùn),郭秉義,李洪濤. 差分GPS定位技術(shù)與應(yīng)用[M].北京:電子工業(yè)出版社,1998.
[3]李洪濤,許國昌,薛鴻印,等.GPS應(yīng)用程序設(shè)計(jì)[M].北京:科學(xué)出版社,1999.
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
以上信息由企業(yè)自行提供,信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由相關(guān)企業(yè)負(fù)責(zé),智慧城市網(wǎng)對(duì)此不承擔(dān)任何保證責(zé)任。
溫馨提示:為規(guī)避購買風(fēng)險(xiǎn),建議您在購買產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。