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