
基于位置的服务已经成为一种日益流行的技术,并将成为未来所有移动设备(智能手机、掌上电脑等)的标准配置. 在定位导航技术中,GPS是最精确、应用最广泛的技术. 网络上有很多关于GPS原理的资料,本文试图从编程人员的角度介绍GPS定位的基本原理,以便于编程人员理解,以期对从事GPS开发的朋友有所启发. 当然,本文不涉及具体的开发技术
我之所以首先介绍数学模型是因为我认为这个数学模型可能是程序员关心的问题. 当然,这个模型只是一个简化的模型,我根据一些GPS数据总结给程序员. 细节可能与实际情况不符. 详情请参阅GPS讲解资料
GPS定位,实际上就是通过四颗已知卫星来确定GPS接收机的位置

如上图所示,图中GPS接收机是确定当前位置的设备,卫星1、2、3、4是本次定位使用的四颗卫星
然后定位过程就是通过函数getlocation()从已知的四对数据[Position1,D1]、[position2,D2]、[position3,D3]和[position4,D4]中获取位置值. 它可以表示为程序员熟悉的函数调用
Location=GetLocation([Position1,d1],[Position2,d2],[Position3,d3],[Position4,d4]);
当您看到这个函数调用时,程序员应该很兴奋: 这些参数来自哪里?这个功能是如何执行的?是谁干的?我们仍然要问: 为什么我们需要四对参数?现在让我们一起探索

事实上,在太空中运行的每一颗GPS卫星都会通过卫星信号不断地向世界广播其当前的位置坐标信息. 任何一个GPS接收机都可以通过天线方便地接收信息,并且可以读取信息(这实际上是每个GPS芯片的核心功能之一). 这就是位置信息的来源
我们已经知道,每一颗GPS卫星都会不遗余力地广播自己的位置,因此在发送位置信息时,也会在数据包发送时附加时间戳. 接收到数据包后,GPS接收机从当前时间中减去时间戳上的时间(当前时间只能由GPS接收机自己确定),即数据包通过空中传输所需的时间
如果你知道数据包在空中的传输时间,那么乘以传输速度就可以得到数据包在空中的距离,即卫星到GPS接收机的距离. 如果数据包通过波传输,理想的速度是光速C. 如果将传播时间记录为Ti,则可以表示为:
di=c*Ti(i=1,2,3,4);
这就是di(I=1,2,3,4)的来源
我发明这个函数是为了说明这个问题. 其实,它可能不存在,但一定有这样类似的操作逻辑. 这些运算逻辑可以用软件来实现,但事实上,大部分都是由硬件芯片完成的(这可能是每个GPS芯片的核心功能之一)
根据立体几何的知识,在三维空间中,三对数据如[位置I,di]可以确定一个点(实际上是两个,但通过逻辑判断可以省略一个). 为什么我们需要四对?理想情况下,三对卫星就足够了,这意味着只需要三颗卫星就可以实现GPS定位. 但事实上,它必须是四个
因为根据上面的公式,Di是用c*Ti来计算的,我们知道c的值非常大(理想的速度是光速),所以对于时间Ti来说,一个微小的误差会放大很多倍,导致整个结果无效. 换句话说,在GPS定位中差分gps原理,时间的精度非常高. 在GPS卫星上,铯原子钟是用来计时的,但我们不可能为每个GPS提供一个铯原子钟,因为铯原子钟的价格可能已经超过了这个GPS设备的价格加上这辆使用GPS的昂贵汽车的价格

同时,由于速度C也受空中电离层的影响,会产生误差,而且GPS卫星广播的位置也可能有误差. 其他因素,如其他因素,也会影响数据的准确性
简言之,数据中存在错误. 这些误差可能导致定位精度的降低,或直接导致定位无效. 在getlocation中使用一组数据来更正错误. 至于具体细节,我们不必在意. 只要我们知道差分gps原理,我们可以通过一些巧妙的算法来消除或减少误差,并通过一组数据来保证有效的定位. 这就是为什么getlocation()函数必须使用四组数据,这就是为什么必须有四颗卫星才能定位
如上所述,在计算位置时,它们以空间坐标的形式表示. 然而,对于GPS设备和应用,它们通常需要使用诸如[经度、纬度、海拔]这样的位置信息. 然后我们可以想象,在getlocation()函数返回位置结果之前,可能存在从空间坐标形式到经纬度形式的转换. 我们不妨假设有一个像convert这样的函数来执行转换
其实,上述只是定位原理之一,叫单点定位,或绝对定位. 它是一个单一的GPS来确定位置

目前,定位精度最高的是差分定位,即相对定位. 它是通过增加一个参考GPS接收机来提高定位精度

在上面,我们基本上阐明了围绕虚拟getlocation()函数进行GPS定位的基本数学模型. 对于编程来说,知道这些就足够了(事实上,我们不知道也不影响编程). 如果好奇心还不够,让我们继续学习GPS的一些背景知识

(胡说八道,当然是人类发射的!由地球人发射!)在
GPS(全球定位系统)也称为NAVSTAR GPS(导航卫星定时和测距全球定位系统). GPS是美国国防部开发的一种天基全天候导航系统. 它用于满足军事人员在地面或近地空间中获取一般参考坐标系下的位置、速度和时间信息的要求
GPS系统=空间部分+控制部分+用户部分

GPS空间部分主要由24颗GPS卫星组成,其中工作卫星21颗,备用卫星3颗. 这24颗卫星在6个轨道飞机上运行,周期为12小时. 确保在任何时间、任何地点、高度角超过15度的地方都能观测到4颗以上的卫星
卫星定位和主要功能: 发送导航信号
组成: 24颗卫星=21颗工作卫星+3颗备用卫星


GPS控制部分由1个主控站、5个检测站和3个注入站组成
组成: GPS控制部分=主控站(1)+监测站(5)+注入站(3)
功能: 监视和控制卫星运行,编制卫星星历(导航信息),保持系统时间

分发:

GPS用户设备包括GPS接收机及相关设备. GPS接收机主要由GPS芯片组成
如车载、船载GPS导航仪、内置GPS功能的移动设备、GPS测绘设备等,都属于GPS用户设备
组成: 主要是GPS接收机
职位: 接收、跟踪、转换、测量gps信号设备,gps系统用户
GPS定位是目前最精确、应用最广泛的定位导航技术,将成为未来每个移动设备的标准配置之一. 目前,高端手机只能使用,相当一部分手机已经配备了GPS硬件. 那么GPS定位的发展技术将成为主流的常规技术. 本文的目的是让正在准备GPS定位开发的程序员对GPS有一个大致的了解,这可能对编程没有任何直接的帮助,但我想了解GPS的一般工作原理,以便对GPS设备的工作特性有一个感性的认识在编程过程中,这对开发有很大的间接好处. 有关GPS定位的特定开发技术,请参阅为windows mobile设备创建位置感知应用程序
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-279404-1.html
再25年还3000点儿