来源:http://blog.csdn.net/webgeek/article/details/18220891
位置服务已经成为越来越热的一门技术,也将成为以后所有移动设备(智能手机、掌上电脑等)的标配。而定位导航技术中,目前精度最高、应用最广泛的,自然非GPS莫属了。网络上介绍GPS原理的专业资料很多,而本文试图从编程人员的角度出发,以一种程序员易于理解的方式来简单介绍一下GPS定位的基本原理,希望对做GPS开发的朋友有所启发。当然,本文并没有涉及具体的开发方面的技术。
一、GPS定位数学模型
之所以先介绍数学模型,是因为我认为这个数学模型可能是程序员比较关心的问题。当然事先声明,这个模型只是我根据一些GPS资料总专为程序员总结出来的一个简化模型,细节方面可能并不符合实际,想了解具体细节请参考专业的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相关的背景知识。
二、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系统=空间部分+控制部分+用户部分
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)自20世纪70年代初诞生以来,已成为全球范围内的核心技术,被广泛应用于各个科学和工程领域。它不仅在军事国防、智能交通、邮电通信等方面发挥关键作用,还在地球科学、气象学、...
### 室内定位技术浅析 #### 发展趋势 随着移动互联网技术和物联网技术的迅速发展,全球互联网用户数量持续攀升,截至2016年,全球互联网用户数达到了32亿,占全球总人口的44%。其中,移动互联网用户总数更是达到了...
GPS定位的基本原理是通过计算与至少四颗卫星之间的距离来确定位置。 - **GPS定位原理**:GPS接收机通过接收来自不同卫星的信号并结合卫星的精确位置信息,利用时间差来计算出自己的位置。 - **无线辅助定位(AGPS)*...
GPS测绘技术的基本原理主要包含以下几个步骤:首先,将GPS接收机安置在合适的地点并固定,然后利用卫星信号感应技术接收来自多个卫星的信号。这些信号经过计算机处理后,转化为数据信息,通过三维坐标体系进行分析和...
GPS定位的基本原理是通过接收至少三颗GPS卫星发出的导航电文,计算接收机到卫星的距离,然后利用这些距离信息通过几何方法确定地面点的位置。在P点架设GPS接收机,同时接收多颗卫星信号,通过卫星星历获取卫星的空间...
GPS定位的基本原理是基于三角测量。当GPS接收机接收到至少4颗卫星的信号时,通过计算这些卫星到接收机的距离,可以解算出接收机的三维坐标。具体来说,接收机测量出到每颗卫星的伪距(考虑到信号传播时间和卫星钟的...
文章首先介绍了GPS技术的基本原理和特点。GPS系统由三部分组成:空间中的卫星、地面监控站和用户端设备。卫星在六个轨道上运行,确保地球上任何位置都能接收到至少四颗卫星的信号以实现精确定位。地面监控站负责监测...
\n\nGPS定位的基本原理是通过测量卫星到用户接收机之间的实际距离,结合多个卫星的数据来计算接收机的精确位置。目前,GPS定位技术包括网络RTK(Real-Time Kinematic)技术和精密单点定位技术。网络RTK技术利用多个...
1. 差分GPS定位技术的优点:差分GPS(DGPS)技术可以显著提高GPS的定位精度,其基本原理是在已知位置的基准站上建立参考,对GPS卫星信号进行实时观测和修正,然后将修正值发送给移动站,移动站接收后即可进行高精度...
GPS技术的基本原理是通过接收多颗GPS卫星发射的信号,计算出地面接收器的位置、速度和时间信息。该系统由24颗分布在六个轨道面上的卫星组成,确保全球任何地方都能接收到至少四颗卫星的信号。GPS的优势在于其全天候...
1. GPS技术的基本原理 GPS技术是由美国建立的一个卫星导航定位系统,能够提供高精度的三维位置、速度和系统时间信息。GPS系统由空间、地面控制和用户三部分组成。GPS的空间部分由24颗GPS工作卫星组成,每颗卫星发出...
GPS—RTK(Real-Time Kinematic)技术是GPS测量技术的一种高级形式,它结合了载波相位测量和数据传输技术,实现了实时差分GPS定位。RTK技术的核心在于利用至少两台GPS接收机同时接收卫星信号,一台作为基准站,已知...
GPS(RTK)即实时动态定位系统,是结合了计算机技术、数字通讯技术、无线电技术和GPS定位技术的综合系统。它通过两台或以上的GPS接收机,其中一台作为基准站,另一台作为移动站进行工作。基准站利用已知精确坐标的点,...
GPS测绘技术的基本原理是利用GPS接收机接收到GPS卫星发出的导航电文,通过计算接收机与卫星之间的距离,构建出三维坐标,从而实现精确的定位。在工程测绘中,这一技术能构建观测值并进行仿真,获取地理位置数据。GPS...
GPS技术的基本原理基于卫星定位。通过计算GPS卫星与用户接收天线之间的距离,可以确定接收天线所在点的三维坐标(x,y,z)。它主要分为两种定位方法:相对定位和绝对定位。相对定位通常使用多个接收机实时追踪GPS...
GPS定位的基本原理涉及时间差测量。用户端的接收器通过接收来自四颗或更多卫星的信号,根据信号到达的时间差计算出距离每颗卫星的距离,进而利用这些距离信息解算出接收器所在的位置。这一过程依赖于精确的时间同步...
一、GPS技术的基本原理 GPS系统由多颗分布在不同轨道上的卫星组成,它们不断向地球广播导航信息,使得地面接收设备可以计算出自身在地心坐标系中的精确位置。这一技术的核心在于通过接收至少四颗卫星的信号,解算出...
高程拟合的基本原理是,通过在测区内选择一些既有GPS测量数据又有水准高程测量的重合点,计算出这些点的高程异常,然后根据这些点的位置和异常值,拟合出测区的似大地水准面,进而求得其他未知点的高程异常,实现...
GPS实时动态技术在土地测量作业中的应用,首先需要理解这项技术的基本原理。GPS实时动态技术,也称为RTK(Real-Time Kinematic),是基于全球定位系统(GPS)的一种高精度定位技术。它通过接收多个GPS卫星信号,结合...