??(一)GPS基礎原理
GPS,全稱Global Positioning System,已經廣泛應用于我們的日常生活中了,現在的智能手機里都會自帶GPS定位功能。這是一個美國的全球定位系統,雖然我們現在也有北斗了,但畢竟GPS搞的早,所以先從它開始研究起。
整個GPS系統分三大部分:地面站、衛星和接收機。
地面站負責監控。它們通過接收、測量各個衛星信號,計算衛星的運行軌道,并將衛星的運行軌道信息發射給衛星,讓衛星去轉播。
衛星負責向地面發射信號,為廣播形式。
接收機接收衛星信號,從衛星信號中獲取衛星的運行軌道等信息,通過計算來確定自身的位置。
地面站和衛星都是由美國控制的,我們能控制的只有接收機。
定位的基本原理其實很簡單,中學幾何知識就夠了。把接收機抽象成一個質點X,三個衛星抽象成質點X,Y,Z,如果A到X,Y,Z的距離分別為rx,ry,rz,分別以X,Y,Z為圓心,以rx,ry,rz 為半徑作3個球面,3個球面相交于兩點,其中一點就是接收機所在位置(因為接收機肯定在地面附近,根據計算結果很容易排除另一點)。
那rx,ry,rz?這幾個距離怎么知道呢?很簡單,利用公式:距 離 = 速 度 × 時 間。?
衛星發射信號到接收機,速度為光速是已知的,所以我們只要知道信號從衛星到接收機跑的時間有多長就可以了。這個時間長度就是接收到信號的時間減去發射信號時的時間。接收到信號的時間接收機自然是知道的,發送信號的時間可以根據信號內容算出來,那么時間長度就可以算出來了,于是距離可知。
這里還有一個問題,因為各種原因,接收機的時間和GPS衛星的時間通常不同步,于是在計算時間時會多一個未知數鐘差,所以我們需要再多一顆衛星,4顆衛星4個方程,解出4個未知數。
至此,若用方程來表示,設接收機的位置坐標為(x, y, z),衛星位置坐標分別為(xn, yn, zn), n = 1, 2, 3, 4,衛星到接收機的距離分別為r1, r2, r3, r4,c為光速,δt為鐘差,則有以下方程組:
這就是GPS定位的基本原理。
(二)GPS時間
前面GPS基礎原理中提到了一個鐘差的概念,并沒有細說。
時間是一個相對的概念,最簡單的例子:你的手表的時間和我的手表的時間可能是不一樣的,那不一樣就會有問題,我說的8點上班和你認為的8點上班就不是同一個時刻了,于是你上班就可能會遲到。同理,GPS衛星的時間和接收機的時間也不一樣,于是在利用時間來算距離的時候就會有很大的誤差,所以我們要統一時間。
為了統一時間,人類做了很多的努力,建立了多個不同的時間系統。有以地球自轉為基礎的世界時(UT),有以原子鐘為基礎的國際原子時(TAI),還有兩者折中的協調世界時(UTC)。目前,幾乎所有國家的標準時間都采用協調世界時。
然而GPS系統并沒有采用協調世界時,而是建立了其專用的GPS時間系統(GPST)。
GPS時間是連續的。
GPS時間用星期數(周數)和周內秒來表示時間。
GPS時間的秒長由地面站的原子鐘和衛星的原子鐘的觀測量綜合得出。
GPS時間的零時刻與協調世界時的1980年1月6日(是個星期天)零時刻同步。
GPS時間落后國際原子時19秒加一個秒內偏差。美國會控制GPS時間使這個秒內偏差小于1微秒,一般在幾百納秒之內。
需要注意的是每顆GPS衛星都有自己的衛星時間,每顆衛星都是按照自己本身的時鐘在運行,而由GPS地面站來保證衛星時間與GPS時間之間的差異小于1微秒。在衛星播發的導航電文中,在遙測字(TLW: Telemetry Word)和交接字(HOW: HandOver Word)中與時間相關的數據都是基于衛星時間,而其他的數據都是基于GPS時間。
GPS時間與協調時的差異參數由導航電文給出,在導航電文第4子幀第18頁。這些參數由地面站負責更新,至少每6天更新一次,否則準確性會隨時間流逝而下降。
衛星時間與GPS時間的差異參數也由導航電文給出,在導航電文第1子幀。
這樣GPS時間和衛星時間還有協調時三者就聯系起來了,可以互相推導出來。還有一個接收機時間是獨立于這三者的,所以存在一個接收機時間與GPS時間的鐘差未知數。
時間關系確定,誤差保持在一定范圍,就可以用于計算距離,進而定位,這就是GPS的基本原理。
(三)GPS坐標系
定位就需要坐標,坐標當然是相對坐標系而言的,我們描述一個物體的位置,首先就需要建立坐標系。
按大類來分,坐標系可以分為慣性坐標系和非慣性坐標系。慣性坐標系是在空間靜止或者做勻速直線運動的坐標系,其他都是非慣性坐標系。
GPS涉及到的坐標系大體有五個,在說這五大坐標系之前,我們需要先了解一些基本概念。
基本概念
地極(Polar):地球自轉軸與地球表面的兩個交點,北邊的叫北極,南邊的叫南極。
赤道面(Equator Plane):通過地心并于地球自轉軸垂直的平面。
赤道(Equator):赤道面與地球表面相交的大圓。
天球(Celestial Sphere):天文學概念,指一個以地心為中心,半徑為任意長的假想球體。其目的是將天體沿觀測者視線投影到球面上,以便于研究天體及其相互關系。
黃道(Ecliptic):太陽中心在天球上視運動的軌跡。即地球繞太陽公轉的軌道平面與地球表面相交的大圓。
黃赤交角(Ecliptic Obliquity):黃道面與赤道面的夾角,約23.5°。
春分點(Vernal Equinox):黃道與赤道有兩個交點,其中太陽投影沿黃道從南向北通過赤道的點,稱為春分點,另一點為秋分點。
歲差(Axial Precession ):地球自轉軸長期進動,引起春分點沿黃道西移,致使回歸年短于恒星年的現象。周期約為25800年。主要有日月歲差和行星歲差。
章動(Nutation ):月球在白道上運行,白道與黃道相交成5°9′的角,月球圍繞地球公轉導致地球在公轉軌道上左右搖擺,以18.6年為周期,這種現象稱為章動。
極移(Polar Wandering ):地球自轉軸相對于地球并不固定,這種運動稱地極移動,簡稱極移。
子午面:(Meridian Plane):包含地球自轉軸的平面。
本初子午面(Prime Meridian Plane):通過英國倫敦格林尼治天文臺與地球自轉軸構成的平面,是地球上計算經度的起始經線。
有了這些基本概念后,就可以進一步了解五大坐標系了。
地心慣性坐標系(ECI: Earth Centered Inertial)
地心慣性坐標系是太陽系內的一個慣性坐標系,不隨地球而轉動,也不受地球、太陽運行的章動和歲差的影響。
坐標原點位于地心;X軸位于赤道平面內,指向某一特定年(歷元時刻)的太陽春分點位置;Z軸指向那一年地球北極的平均位置處;Y軸位于赤道平面內,與X軸垂直,且與X、Z軸構成右手直角坐標系。
由于采用的歷元時間不同,可以有各種不同的地心慣性坐標系,目前國際上通用的地心慣性坐標系是J2000歷元坐標系,它是以公元2000年的春分點為基準的歷元坐標系。
地心地固直角坐標系(ECEF: Earth Centered Earth Fixed)
地固坐標系固定在地球上而隨地球一起在空間做公轉和自轉運動,因此地球上任一固定點在地球坐標系的坐標就不會由于地球旋轉而變化。
坐標原點位于地心;X軸指向參考子午面與地球赤道的交點;Z軸與地球自轉軸重合并指向地球北極;Y軸位于赤道平面內,與X軸垂直,且與X、Z軸構成右手直角坐標系。
因為有極移,所以采用了協議地極,以1900年到1905年間的地極實際位置的平均值作為基準點。
大地坐標系:也叫經緯高坐標系(LLA: Longitude Latitude Altitude)
也是地固坐標系。坐標原點位于地心。
基于基準橢球體(基準橢球體是定義的與地球幾何最吻合的橢球體)。
大地緯度?? phi??是過該點的基準橢球面法線與赤道面的夾角。緯度值在-90°到+90°之間。北半球為正,南半球為負。
大地經度?λ lambdaλ?是過該點的子午面與本初子午面之間的夾角。經度值在-180°到+180°之間。
大地高度 h hh 是過該點到基準橢球面的法線距離,基準橢球面以內為負,以外為正。
站心坐標系:也叫東北天坐標系(ENU: East North Up)
是以觀測站為原點的坐標系,主要用于了解以觀察者為中心的其他物體運動規律。
三個坐標軸分別指向相互垂直的東向、北向和天向,因而又稱東北天坐標系。
可用于計算衛星在用戶處的觀測向量、仰角和方位角。
WGS-84: World Geodetic System-1984 Coordinate System
是一個地心地固直角坐標系。
坐標原點為地心,Z軸指向國際時間服務機構(BIH)1984年定義的協議地球極(CTP: Conventional Terrestrial Pole)方向,X軸指向本初子午面和CTP赤道的交點,Y軸與Z軸、X軸垂直構成右手坐標系。
GPS廣播星歷是以WGS-84坐標系為基準的。
最后列舉一下坐標之間的轉換關系。
LLA => ECEF
其中e是橢球偏心率,N是基準橢球體的卯酉圈曲率半徑。若基準橢球體長半徑為a,短半徑為b,則:
ECEF => LLA
CEF => ENU 和 ENU => ECEF
用戶到衛星的觀測向量?[Δx ? Δy ? Δz] T是衛星位置與用戶位置的差,其變換到ENU坐標系可通過兩次旋轉得到。
第一次旋轉將ECEF繞Z軸旋轉λ+90°,第二次選擇繞新的X軸旋轉90°??。于是得到坐標變換矩陣:
而用戶到衛星的觀測向量在ENU坐標系中表示為:
由上式可得:
有了用戶到衛星的觀測向量,我們就可以計算該衛星相對用戶的方位角和仰角了。仰角θ是高出水平面的角度:
方位角α是觀測向量在水平面內的投影指的方位,以北向為0度順時針為正,即:
(四)GPS信號結構
GPS信號結構可以分為三層:載波;偽碼;數據碼。
載波
載波是三層里的基礎,偽碼和數據碼都是調制在載波上才能發送。GPS有兩個載波頻率,L1和L2,L1為1575.42MHz,L2為1227.60MHz。我們常用的主要是L1載波。根據頻率,我們可以算出L1載波的波長:
偽碼
偽碼主要有兩個作用:一是用來實現碼分多址,二是用來測距。GPS系統其實就是一個基于碼分多址(CDMA)的擴頻系統。GPS使用的偽碼有兩種,一種是公開的C/A碼,一種是特許用戶才能用的P(Y)碼(Y碼就是加密的P碼,所以算成一種)。在此我們不管P(Y)碼,因為我們用不了,以后我們只談C/A碼。
C/A碼是長度為1023個碼片(chip)的金碼(Gold Code)。金碼是一種組合碼,由一對級數相同的m序列線性組合而成,很適用于多址擴頻的通信系統。它有著良好的自相關和互相關特性,即自相關函數幅值大大高于互相關函數幅值。這個特性被用來識別不同的金碼。C/A碼自然也具有這個良好的特性。因此不同的衛星可以用不同的C/A碼來區分。
一個C/A碼長度是1023個碼片,每1毫秒重復一次,因此其碼率為1.023Mcps,一個碼片的時間約為1 / ( 1.023M ) ≈ 977.5ns,將其乘以光速,得到1碼片的長度約為293m。通過相關性的計算,可以得到當前C/A碼的相位,于是可以進行粗略的測距計算,當然精度只有300m左右。
若需要更高精度的測距,則需要用到載波相位。由C/A碼的碼率可以計算出1碼片時間L1載波重復1575.42 M / 1.023 M = 1540次。相當于可以在精度300m的基礎上再提高1540倍,達到0.2m左右。當然這是理論值,還有很多其他因素的考慮,如鐘差、大氣延時等,以及載波相位的周整模糊度問題,這些我們以后再講。
數據碼
對每顆衛星來說,其C/A碼是固定的,無法用于傳遞導航電文。為了能傳遞導航電文,GPS系統設計了數據碼。
數據碼的速率為50bps,即一個比特持續20ms,相當于每一比特C/A碼重復20周。每個數據比特的發生沿都與C/A碼的第一個碼片的發生沿對齊。
數據碼的內容就是導航電文,導航電文的內容下一篇再講。
在發射信號的時候,數據碼首先與偽碼異或相加,其結果再通過雙相移位鍵控(BPSK)對載波進行調制,然后發送出去。接收的時候正好相反。
至此,GPS信號結構就很清晰了,如下圖所示:
(五)GPS導航電文
GPS的導航電文以幀的形式編排為比特流,每一幀為1500比特,這1500比特又分為5個子幀,每個子幀為300比特。每一子幀又分為10個字,每個字30為比特。發送時MSB在前。每一比特發送需要20ms,所以發送一幀需要30s。
每周開始的時候(周六半夜12點/周日凌晨0點),不管之前數據發到哪個子幀,從第一子幀重新開始發;第四、五子幀從第一頁開始發。
對每一個子幀來說,其第一個字是遙測字(TLW: Telemetry Word),第二個字是交接字(HOW: HandOver Word),后8個字為數據。
遙測字
其結構如下圖所示。其首8個比特為前導碼(preamble),前導碼固定為10001011。這個固定的前導碼可以用來搜索、確定子幀的起始沿。第9位到第22位提供特許用戶使用的數據,我們不用管。第23位為完好性狀態指示標志(ISF:Integrity Status Flag),為1表示有發射的信號有增強的完好性保證,即更加靠譜。當然這個靠譜是有標準的,在GPS的接口說明文檔里有詳細數值指標,需要詳細了解的可以去查閱。第24位保留。最后6位為奇偶校驗碼。
交接字
其結構如下圖所示。第1到17比特為被截斷的周內時(TOW: Time of Week),表示的是下一子幀起始沿的GPS時間,單位為6s,即變動1表示時間6s。第18位為警告標志,為1時非特許用戶自行承擔使用該衛星信息的風險。第19位為反電子欺騙措施(AS)標志,為1表示實施了該措施。第20位到22位為子幀ID,每一幀有5個子幀,ID為1~5。第23、24比特是通過求解得到的,目的是保證奇偶校驗碼的最后29、30比特為0。
數據字
對于數據字,各個子幀就不一樣了,下面分子幀來講。
第一子幀
第一子幀包含的數據有
周數(WN: Week Number):10位,最大值為1023,表示從GPS時間0時開始的第幾周。因位數限制,最大表示范圍只有約19.6年,于是每19.6年會翻轉一次。最近一次翻轉發生在今年4月6日。
L2載波上是否有P碼和C/A碼:2位,這個我們不管。
用戶測距精度(URA: User Range Accuracy):4位,16個級別,數值越小,精度越高。
衛星健康狀況:6位,其中1位為匯總是否有問題,5位具體表示是什么問題。
時鐘數據的期號(IODC: Issue of Data, Clock):10位,同一期(同樣)的時鐘校正參數有著相同的期號,因此可用于確定時鐘校正參數是否發生變化。
L2載波的P碼上是否有導航電文:1位,這個我們不管。
預估群波延時(Estimated Group Delay Differential):8位,單頻接收機用這個數據來校正電離層延時。
時鐘校正參數:包含toc, af0, af1, af2。用于校正衛星時鐘。衛星時鐘在GPS時間為t時的衛星鐘差Δts可以表示為:
第二、三子幀
第二子幀和第三子幀的數據合在一起可以提供一套衛星星歷(Ephemeris)參數。
?
參數名 | 位數 | 含義 |
---|---|---|
t o e | 16 | 星歷參考時間 |
sqrtA | 32 | 衛星軌道半長軸A的平方根 |
e? | 32 | 衛星軌道偏心率 |
i0 | 32 | toe時的軌道傾角 |
ω | 32 | 近地點角距 |
M0 | 32 | toe時的平近點角 |
Δn | 16 | 衛星平均角速度校正值 |
i | 14 | 軌道傾角的變化率 |
Ω | 24 | 軌道升交點赤經的變化率 |
Cuc | 16 | 升交點角距余弦調和校正振幅 |
Cus | 16 | 升交點角距正弦調和校正振幅 |
Crc | 16 | 軌道半徑余弦調和校正振幅 |
Crs | 16 | 軌道半徑正弦調和校正振幅 |
Cic | 16 | 軌道傾角余弦調和校正振幅 |
Cis | 16 | 軌道傾角正弦調和校正振幅 |
?
除了星歷參數以外,還有:
星歷數據的期號(IODE: Issue of Data, Ephemeris):8位,可用于確定星歷數據是否發生變化。它在第二和第三子幀中都有,方便盡快發現星歷參數的變化。一般情況下,IODE的值與第一子幀中的IODC值的低8位應該相同,若不同,則發送的參數有變化,需要更新數據。
星歷數據的有效期(Curve Fit Interval)指示標志:1位,為0表示4小時,為1表示4小時以上。
AODO(Age of Data Offset):5位無符號整數,其值需要乘于900,單位為秒。用于判斷在第四子幀中的NMCT的有效時間,計算tNMCT,可以在眾多衛星發送的NMCT中選取最新的值來使用。
第四、五子幀
第四子幀和第五子幀的數據量比較大,無法包含在一幀內,所以進行了分頁,完整電文有25頁,即需要25幀才能把完整的數據發送完。發送一幀是30s,所以完整電文發送完一遍需要750s,即12.5分鐘。不過第四、五子幀的內容并不是定位所急需的,所以定位并不需要等這么久。
第四子幀和第五子幀包含的數據主要有:
Data ID 和 SV ID:主要用于指示該頁表示的內容,若為星歷數據,則SV ID是衛星PRN號。
所有衛星的歷書(Almanac)參數
歷書參數的內容包括:M
?
參數名 | 位數 | 含義 |
---|---|---|
toa | 8 | 歷書參考時間 |
sqrtA | 24 | 衛星軌道半長軸A的平方根 |
e ee | 16 | 衛星軌道偏心率 |
δi | 16 | toa?時的軌道傾角?δ i = i 0 ? 0.3 π |
Ω0 | 24 | 周內時為0時的軌道升交點赤經 |
ω | 24 | 近地點角距 |
M0 | 24 | toa時的平近點角 |
Ω | 16 | 軌道升交點赤經的變化率 |
af0 | 11 | 衛星時鐘校正參數 |
af1 | 11 | 衛星時鐘校正參數 |
?
衛星健康狀況指示:對32顆衛星中的每顆衛星健康狀態都有兩處地方指示:一是在每一個含歷書的頁中;8位,其中3位為問題分類,5位具體表示是什么問題。
一是在第四、五子幀的第25頁;6位,其中1位為匯總是否有問題,5位具體表示是什么問題。
反電子欺騙措施(AS: Anti-Spoof)標志:在第4子幀的第25頁,對32顆衛星中的每顆衛星都有一個4位的標志,其中1位表示是否實施了該措施,3位表示具體配置。
歷書參考周數WNa(Almanac Reference Week):8位,歷書參考時間toa就是相對于WNa的,這樣就可以確定歷書參考時間。
UTC數據:GPS時間與協調時(UTC)的差異參數,位于第4子幀第18頁。這些參數由地面站負責更新,至少每6天更新一次,否則準確性會隨時間流逝而下降。
?
參數名 | 位數 | 含義 |
---|---|---|
A0 | 32 | 計算秒內時間偏差的系數 |
A1 | 24 | 計算秒內時間偏差的系數 |
ΔtLS | 8 | 因閏秒導致的時間差異 |
tot | 8 | UTC的參考時間 |
WNt | 8 | 基于UTC時間的周數 |
WNLSF | 8 | GPS周數 mod 256,指示閏秒的日期所在的周 |
DN | 8 | 相對WNLSF的天數,與WNLSF一起指示閏秒的日期 |
ΔtLSF | 8 | 發生潤秒后取代ΔtLS用于計算 |
?
從GPS時間計算UTC時間的方法為:
其中tE為GPS時間,而ΔtUTC?為
電離層延時校正參數:位于第4子幀第18頁,有8個參數α0,α1,α2,α3,β0,β1,β2,β3,每個8位,用于電離層延時的校正。
特殊信息:第4子幀的第17頁。可以包含22個的8位ASCII碼,用于傳遞一些特殊信息。
偽距校正值(NMCT: Navigation Message Correction Table):位于第4子幀第13頁,包含一個2位的可用性指示(AI: Availability Indicator)和30個6位的ERD(Estimated Range Deviation)值。
AI指示校正值是否加密,普通用戶和特許用戶是否可用。
30個ERD存放衛星ID 1~31中除了自己的其余30個衛星的ERD值,按ID號升序排列。每個ERD為6位,一位符號位,5位數據,LSB相當于0.3m。
使用方法為:
其中PRc為ERD校正后的偽距,RPR是ERD校正前的。
星歷和歷書的比較
兩者都是用開普勒軌道參數來表示,都用于描述衛星在各個時刻的空間位置和運動速度。
星歷有效期短,只有4小時;歷書有效期長達半年。
星歷參數多,歷書參數少。
星歷參數中有攝動校正量,而歷書沒有,因為歷書有效期長,不適用。
星歷參數精度高,歷書參數精度低。
星歷參數與歷書參數是由地面站獨立推算的,因此它們的參數值有可能不同。
一顆衛星只播發自己的星歷,但是會播發所有衛星的歷書。
根據星歷計算得到的衛星位置和速度值相當準確,可以直接用于定位與定速;根據歷書計算的結果準確度不高,一般只能用于衛星信號的搜索和捕獲。
編輯:黃飛
?
評論