GPS定位基本原理淺析



位置服務已經成爲越來越熱的一門技術,也將成爲以後所有移動設備(智能手機、掌上電腦等)的標配。而定位導航技術中,目前精度最高、應用最廣泛的,自然非GPS莫屬了。網絡上介紹GPS原理的專業資料很多,而本文試圖從編程人員的角度出發,以一種程序員易於理解的方式來簡單介紹一下GPS定位的基本原理,希望對做GPS開發的朋友有所啓發。當然,本文並沒有涉及具體的開發方面的技術。

一、GPS定位數學模型

之所以先介紹數學模型,是因爲我認爲這個數學模型可能是程序員比較關心的問題。當然事先聲明,這個模型只是我根據一些GPS資料總專爲程序員總結出來的一個簡化模型,細節方面可能並不符合實際,想了解具體細節請參考專業的GPS講解資料。

GPS定位,實際上就是通過四顆已知位置的衛星來確定GPS接收器的位置。

GPS_thumb22

如上圖所示,圖中的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_thumb11

目前定位精度最高的是差分定位,或稱相對定位。就是通過增加一個參考GPS接收器來提高定位精度。

GPS_thumb1 

 

上面我們已經圍繞一個虛擬的GetLocation()函數基本搞清楚了GPS定位的基本數學模型,對於編程而言,知道這些就足夠了(其實不知道也不影響編程)。如果好奇心還沒滿足的話,我們繼續瞭解一些GPS相關的背景知識。

 

二、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(歐洲導航衛星系統,即伽利略計劃),歐盟
  • 北斗導航系統,中國

 

三、GPS系統的構成

GPS系統=空間部分+控制部分+用戶部分

GPS_thumb23

 

1.空間部分

GPS空間部分主要由24顆GPS衛星構成,其中21顆工作衛星,3顆備用衛星。24顆衛星運行在6個軌道平面上,運行週期爲12個小時。保證在任一時刻、任一地點高度角15度以上都能夠觀測到4顆以上的衛星。

主要作用:發送用於導航定位的衛星信號。

構成:24顆衛星=21顆工作衛星+3顆備用衛星

GPS_thumb1

2.控制部分

GPS控制部分由1個主控站,5個檢測站和3個注入站組成。

組成:GPS控制部分=主控站(1個)+監測站(5個)+注入站(3個)

作用:監測和控制衛星運行,編算衛星星曆(導航電文),保持系統時間。

  • 主控站:從各個監控站收集衛星數據,計算出衛星的星曆和時鐘修正參數等,並通過注入站注入衛星;向衛星發佈指令,控制衛星,當衛星出現故障時,調度備用衛星。
  • 監控站:接收衛星信號,檢測衛星運行狀態,收集天氣數據,並將這些信息傳送給主控站。
  • 注入站:將主控站計算的衛星星曆及時鐘修正參數等注入衛星。 

GPS_thumb3

 

分佈情況:

  • 主控站:位於美國科羅拉多州(Calorado)的法爾孔(Falcon)空軍基地。
  • 注入站:阿鬆森羣島(Ascendion),大西洋;迭戈加西亞(Diego Garcia),印度洋;卡瓦加蘭(Kwajalein),東太平洋。
  • 監控站:1個與主控站在一起;3個與注入站在一起;另外一個在夏威夷(Hawaii),西太平洋。

GPS_thumb2 

3.用戶部分

GPS用戶設備部分包含GPS接收器及相關設備。GPS接收器主要由GPS芯片構成。

如車載、船載GPS導航儀,內置GPS功能的移動設備,GPS測繪設備等都屬於GPS用戶設備。

組成:主要爲GPS接收器

作用:接收、跟蹤、變換和測量GPS信號的設備,GPS系統的消費者。

 

GPS定位是目前最爲精確、應用最爲廣泛的定位導航技術,以後將會成爲每一個移動設備的標配之一。現在的中高端只能手機,有相當一部分已經配備了GPS硬件。那麼針對GPS定位的開發技術也將成爲一項主流常規技術。本文目的在於讓準備進行GPS定位開發的編程人員對於GPS有一個大致的瞭解,這對於編程可能沒有什麼直接的幫助,但是我想了解一下GPS的大致工作原理,在編程過程中就能夠對GPS設備的工作特性有一個感性的認識,這對於開發還是有很大間接好處的。想了解關於GPS定位的具體開發技術,請參考《爲Windows Mobile設備創建位置感知的應用程序》

發佈了12 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章