主頁(http://www.by236.com):GPS定位基本原理淺析(科普文)
摘要:位置服務已經成為越來越熱的一門技術,也將成為以后所有移動設備(智能手機、平板電腦等)的標配。而定位導航技術中,目前精度最高、應用最廣泛的,自然非GPS莫屬了。網絡上介紹GPS原理的專業資料很多,而本文試圖從編程人員的角度出發,以一種程序員易于理解的方式來簡單介紹一下GPS定位的基本原理,希望對做GPS開發的朋友有所啟發。當然,本文并沒有涉及具體的開發方面的技術。 一、GPS定位數學模型 之所以先介紹數學模型,是因為我認為這個數學模型可能是程序員比較關心的問題。當然事先聲明,這個模型只是我根據一些GPS資料總專為程序員總結出來的一個簡化模型,細節方面可能并不符合實際,想了解具體細節請參考專業的GPS講解資料。 GPS定位,實際上就是通過四顆已知位置的衛星來確定GPS接收器的位置。
如上圖所示,圖中的GPS接收器為當前要確定位置的設備,衛星1、2、3、4為本次定位要用到的四顆衛星:
那么定位的過程,簡單來講就是通過一個函數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相關的背景知識。 二、GPS衛星是哪里來的? (廢話,當然是人發射的!地球人發射的。 GPS(Global Position System,全球定位系統),全稱為NAVSTAR GPS(NAVigation Satellite Timing And Ranging Global Position System,導航星測時與測距全球定位系統)。GPS是一個由美國國防部開發的空基全天侯導航系統,它用以滿足軍方在地面或近地空間內獲取在一個通用參照系中的位置、速度和時間信息的要求。 1 , GPS發展歷程
2.美國政府的的GPS策略
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個) 作用:監測和控制衛星運行,編算衛星星歷(導航電文),保持系統時間。
分布情況:
3 . 用戶部分 GPS用戶設備部分包含GPS接收器及相關設備。GPS接收器主要由GPS芯片構成。如車載、船載GPS導航儀,內置GPS功能的移動設備,GPS測繪設備等都屬于GPS用戶設備。 組成:主要為GPS接收器 作用:接收、跟蹤、變換和測量GPS信號的設備,GPS系統的消費者。 GPS定位是目前最為精確、應用最為廣泛的定位導航技術,以后將會成為每一個移動設備的標配之一,F在的智能手機幾乎全部配備GPS硬件。那么針對GPS定位的開發技術也會成為一項主流常規技術。 (中國集群通信網 | 責任編輯:陳曉亮) |



