一、全球衛星導航系統
GNSS:Global Navigation Satellite System
GPS:Global Positioning System(24顆衛星、10m)
BDS:北鬥系統、COMPASS(35顆衛星)
GLONASS:俄羅斯(24顆衛星、10m)
Galileo:歐盟(30顆 <1m)
二、GPS定位基本原理(借鑒GPS定位基本原理淺析)
1、GPS定位數學模型
GPS定位,實際上就是通過四顆已知位置的衛星來确定GPS接收器的位置。
如上圖所示,圖中的GPS接收器為目前要确定位置的裝置,衛星1、2、3、4為本次定位要用到的四顆衛星:
- Position1、Position2、Position3、Position4分别為四顆衛星的目前位置(空間坐标),已知
- d1、d2、d3、d4分别為四顆衛星到要定位的GPS接收器的距離,已知
- Location 為要定位的衛星接收器的位置,待求
那麼定位的過程,簡單來講就是通過一個函數GetLocation(),從已知的[Position1,d1]、[Position2,d2]、[Position3,d3]、[Position4,d4]四對資料中求出Location的值。用程式員熟悉的函數調用來表示就是:
Location=GetLocation([Position1,d1],[Position2,d2],[Position3,d3],[Position4,d4]);
一看到這個函數調用,程式員們就該來勁了:這些參數從哪裡來?這個函數又是如何執行?由誰來執行的呢?立體幾何還沒有忘幹淨的可能還要問:為什麼必須要4對參數呢?那下面我們就來一起探究一下。
1).Position1、Position2、Position3、Position4這些位置資訊從哪裡來?
實際上,運作于宇宙空間的GPS衛星,每一個都在時刻不停地通過衛星信号向全世界廣播自己的目前位置坐标資訊。任何一個GPS接收器都可以通過天線很輕松地接收到這些資訊,并且能夠讀懂這些資訊(這其實也是每一個GPS晶片的核心功能之一)。這就是這些位置資訊的來源。
2).d1、d2、d3、d4這些距離資訊從哪裡來?
我們已經知道每一個GPS衛星都在不辭辛勞地廣播自己的位置,那麼在發送位置資訊的同時,也會附加上該資料包發出時的時間戳。GPS接收器收到資料包後,用目前時間(目前時間當然隻能由GPS接收器自己來确定了)減去時間戳上的時間,就是資料包在空中傳輸所用的時間了。
知道了資料包在空中的傳輸時間,那麼乘上他的傳輸速度,就是資料包在空中傳輸的距離,也就是該衛星到GPS接收器的距離了。資料包是通過無線電波傳送的,那麼理想速度就是光速c,把傳播時間記為Ti的話,用公式表示就是:
di=c*Ti(i=1,2,3,4);
這就是di(i=1,2,3,4)的來源了。
3).GetLocation()函數是如何執行的?
這個函數是我為了說明問題而虛構的,事實上未必存在,但是一定存在這樣類似的運算邏輯。這些運算邏輯可以由軟體來實作,但是事實上可能大都是由硬體晶片來完成的(這可能也是每一個GPS晶片的核心功能之一)。
4).為什麼要必須要四對參數?
根據立體幾何知識,三維空間中,三對[Positioni,di]這樣的資料就可以确定一個點了(實際上可能是兩個,但我們可以通過邏輯判斷舍去一個),為什麼這裡需要四對呢?理想情況下,的确三對就夠了,也就是說理想情況下隻需要三顆衛星就可以實作GPS定位。但是事實上,必須要四顆。
因為根據上面的公式,di是通過c*Ti計算出來的,而我們知道c值是很大的(理想速度即光速),那麼對于時間Ti而言,一個極小的誤差都會被放大很多倍進而導緻整個結果無效。也就是說,在GPS定位中,對時間的精度要求是極高的。GPS衛星上是用銫原子鐘來計時的,但是我們不可能為每一個GPS接收器也配一個銫原子鐘,因為一個銫原子鐘的價格可能已經超過了這個GPS裝置再加上使用GPS的這輛名貴汽車的價格。
同時,由于速度c也會受到空中電離層的影響,是以也會有誤差;再者,GPS衛星廣播的自己的位置也可能會有誤差。其他等等一些因素也會影響資料的精确度。
總之,資料是存在誤差的。這些誤差可能導緻定位精确度降低,也可能直接導緻定位無效。GetLocation(函數)中多用了一組資料,正是為了來校正誤差。至于具體的細節,我們就不用關心了,我們隻要知道,多用一組資料,就可以通過一些巧妙的算法,消除或減小誤差,保證定位有效。這就是GetLocation()函數必須用四組資料的原因,也就是為什麼必須有四顆衛星才能定位的原因。
5).GetLocation()函數傳回的位置資訊怎樣被GPS裝置識别呢?
前面說在進行位置計算時都是用的空間坐标形式表示,但是對GPS裝置及應用程式而言,通常需要用的是一個[經度,緯度,高度]這樣的位置資訊。那麼我們可以想象,在GetLocation()函數傳回位置結果前,可能會進行一個從空間坐标形式到經緯度形式的轉換,我們不妨假設存在一個Convert(經緯度,空間坐标)這樣的函數來進行這個轉換。
6).單點定位與差分定位
實際上上面所說的隻是定位原理中的其中一種,稱為單點定位,或絕對定位。就是通過唯一的一個GPS接收器來确定位置。
目前定位精度最高的是差分定位,或稱相對定位。就是通過增加一個參考GPS接收器來提高定位精度。
上面我們已經圍繞一個虛拟的GetLocation()函數基本搞清楚了GPS定位的基本數學模型,對于程式設計而言,知道這些就足夠了(其實不知道也不影響程式設計)。如果好奇心還沒滿足的話,我們繼續了解一些GPS相關的背景知識。
2、GPS衛星是哪裡來的?
(廢話,當然是人發射的!地球人發射的!)
GPS(Global Position System,全球定位系統),全稱為NAVSTAR GPS(NAVigation Satellite Timing And Ranging Global Position System,導航星測時與測距全球定位系統)。GPS是一個由美國國防部開發的空基全天侯導航系統,它用以滿足軍方在地面或近地空間内擷取在一個通用參照系中的位置、速度和時間資訊的要求。
1).GPS發展曆程
- 1957年10月第一顆人造地球衛星SputnikⅠ發射成功,空基導航定位由此開始
-
1958年開始設計NNSS-TRANSIT,即子午衛星系統;
1964年該系統正式運作;
1967年該系統解密以供民用。
-
1973年,美國國防部準許研制GPS;
1991年海灣戰争中,GPS首次大規模用于實戰;
1994年,GPS全部建成投入使用;
2000年,克林頓宣布,GPS取消實施SA(對民用GPS精度的一種人為限制政策)。
2).美國政府的的GPS政策
-
兩種GPS服務:
SPS--标準定位服務,民用,精度約為100M;
PPS--精密定位服務,軍用和得到特許的民間使用者使用,精度高達10M.
-
兩種限制民用定位精度的措施(保障國家利益不受侵害):
SA--選擇可用性,認為降低普通使用者的測量精度,限制水準定位精度100M,垂直157M(已于2005年5月1日取消);
AS--反電子欺騙。
3).其他衛星導航系統
- GLONASS(全球軌道導航衛星系統),前蘇聯
- Galileo-ENSS(歐洲導航衛星系統,即伽利略計劃),歐盟
- 北鬥導航系統,中國
3、GPS系統的構成
GPS系統=空間部分+控制部分+使用者部分
1).空間部分
GPS空間部分主要由24顆GPS衛星構成,其中21顆工作衛星,3顆備用衛星。24顆衛星運作在6個軌道平面上,運作周期為12個小時。保證在任一時刻、任一地點高度角15度以上都能夠觀測到4顆以上的衛星。
主要作用:發送用于導航定位的衛星信号。
構成:24顆衛星=21顆工作衛星+3顆備用衛星
2).控制部分
GPS控制部分由1個主要站,5個檢測站和3個注入站組成。
組成:GPS控制部分=主要站(1個)+監測站(5個)+注入站(3個)
作用:監測和控制衛星運作,編算衛星星曆(導航電文),保持系統時間。
- 主要站:從各個監控站收集衛星資料,計算出衛星的星曆和時鐘修正參數等,并通過注入站注入衛星;向衛星釋出指令,控制衛星,當衛星出現故障時,排程備用衛星。
- 監控站:接收衛星信号,檢測衛星運作狀态,收集天氣資料,并将這些資訊傳送給主要站。
- 注入站:将主要站計算的衛星星曆及時鐘修正參數等注入衛星。
分布情況:
- 主要站:位于美國科羅拉多州(Calorado)的法爾孔(Falcon)空軍基地。
- 注入站:阿松森群島(Ascendion),大西洋;疊戈加西亞(Diego Garcia),印度洋;卡瓦加蘭(Kwajalein),東太平洋。
- 監控站:1個與主要站在一起;3個與注入站在一起;另外一個在夏威夷(Hawaii),西太平洋。
3).使用者部分
GPS使用者裝置部分包含GPS接收器及相關裝置。GPS接收器主要由GPS晶片構成。
如車載、船載GPS導航儀,内置GPS功能的移動裝置,GPS測繪裝置等都屬于GPS使用者裝置。
組成:主要為GPS接收器
作用:接收、跟蹤、變換和測量GPS信号的裝置,GPS系統的消費者。
GPS定位是目前最為精确、應用最為廣泛的定位導航技術,以後将會成為每一個移動裝置的标配之一。現在的中高端隻能手機,有相當一部分已經配備了GPS硬體。那麼針對GPS定位的開發技術也将成為一項主流正常技術。