主题:【原创】说说GPS定位导航 -- honeybl
战争和军备竞赛永远是高科技产品的催生婆。由美国政府和军方出资建设的全球定位系统(Global Positioning System)就是一个伟大的冷战产品。这套系统在为美国的军事称霸全球立下汗马功劳的同时,其民用子系统部分也深深地影响了我们的日常工作和生活。
本文从科普的角度,来说说这套GPS系统是如何定位的。
几乎所有的定位计算都涉及到三角几何的计算。我们假定在北京,上海分别放置两个信号基准站,而后我们测量一下,发现北京在我们的正北方,上海在我们的正东方,那么我们通过在地图上,从北京向正南方向画一条线,从上海向正西方向画一条线,这两条线相交的地方就是我的位置了(谁能告诉我这个地方是在哪儿?)。
这种通过测量地面信号基准站的方式来定位的方式,就是最早的全球定位系统,飞机领航员们有着全球各地机场,导航站,广播电台的地址,频率等信息,时刻在地图上画线,相交,求交点。
由于地球曲面的影响,信号基准站的选址限制,以及信号的衰减和失真等问题,这类系统的缺点是导航精度差,实时性不理想,无法自动化。
于是GPS系统应运而生。
在GPS系统中,信号基准站从地面被搬到了太空,变成了在固定轨道上环绕地球运转的GPS卫星。每一颗卫星都有固定的编号,对应于固定的运行轨道。
定位卫星的信息以30秒为一个周期,通过码分多址(CDMA)的方式进行广播,每颗卫星使用与其对应的正交码,便于接收端快速同步和解码。
总共有24颗GPS定位卫星(现在应该更多了),4颗为一组,在6个轨道面上运行, 以确保在地球表面的任何一个地方,在无遮挡的情况下,可以保证有至少6颗卫星的信号覆盖。这些GPS卫星以非常精确的方式,同步地发射如下信息:
日期和时间,卫星编号,卫星轨道参数等信息。
那么接受端是如何靠这类信息进行定位的呢?
我们打开GPS定位终端,于是定位终端开始在GPS频段内,按照每个卫星分配的正交码,尝试同步和解码卫星的信息。
好了,第一颗卫星被同步解码了,于是GPS终端就可以知道第一颗卫星时间,卫星编码和轨道参数了,我们称这为同步到GPS系统上去。
第二颗卫星也被同步解码了,于是GPS终端就知道第二颗卫星时间,卫星编码和轨道参数了。通过精确测量两颗卫星的含有相同时间的信号到达定位终端的时间差,结合相应的卫星轨道参数,我们就可以知道我们所处的一个曲面S1了(如果两颗卫星的信号非常精确地同时到达,则我们处在此时这两颗卫星的垂直平分面上)。
现在第三颗卫星也被同步解码了,同样的,通过和第一颗卫星的测量时间差,我们得到了曲面S2, S1和S2相交,得到一根曲线L1;通过计算和第二颗卫星的时间差,得到曲面S3,S3和S1相交,得到曲线L2; L1和L2相交,我们得到了一个或者两个点。幸运的是,如果是两个点的话,数学家会告诉我们,其中的一个点要么是在遥远的太空深处,要么是以不可思议的速度在地球上快速移动(卫星时刻相对地球在移动,比较前后两次的位置就可以计算出移动速度和方向了),因而我们可以很方便地忽略掉它,剩下的那个点,就是我们的位置了,于是我们通过GPS定位终端就知道了一个三维的地址(经纬度和高度),以及时间。
在定位终端的计算芯片中,上述计算过程均已经固化,只需要把相应的时间差值,卫星编码和轨道信息作为参数代入公式,就可以得到结果了。
上面介绍的是非常理想情况下的定位计算。在实际操作中,会存在各种各样的误差:卫星轨道的偏差,卫星上的原子时钟的快慢,定位终端的测量误差等等,考虑到无线电波是以光速在传播,因而会造成较大的定位误差。
因此,在接受端,虽然只需要解出三颗卫星的信息就可以定位了,但是他依旧会尝试同步并解码其他卫星的数据,按照不同卫星的信号质量,测量误差等对结果进行修正。
同时美国也不断地对每颗卫星测量其轨道数据偏差,时钟精度误差等,并计算出相应的矫正数据,通过专门的控制链路发射给卫星,因此卫星广播的相应参数均不是理论上数据,而是实际测量后的校正了的数据。
好了,这里面就有花头了。为了防止不友好甚至对美国有害的政府,组织和人员得到高精度的GPS定位服务,于是故意地在民用信道的校正数据中引入了误差(Selective Availability),从而有意使定位结果发生误差。94年我在外滩沿线做测量时,GPS基本上都把我定位到黄埔江的江中心线上了。
可是在局部地区,例如机场和码头等,需要高精度的定位服务(在机场的每个停机位的正前方,会有一块很大的黄色信息牌,告知飞行员该停机位的精确经纬度,以供校正),尤其是在雾天,因而就有了差分系统:在一个已经知道确切位置的点上测量GPS位置,从而计算出精确的GPS误差,通过特定的频率广播出来,这样飞机和轮船就可以精确地定位修正,从而避免相撞。
而对于军用GPS信道,一切均被数学加密笼罩在迷雾中。
90年的海湾战争是第一场高科技的战争,也是第一场GPS大显神威的战争。我们从电视上看到,只要设定好目的地的坐标,在GPS指引下,坦克部队在茫茫沙漠中急速飞奔而不会迷路。
与此同时,民用的SA被加大了干扰,以至于我在人民广场上,眼瞅着有6颗卫星被解出来,愣是没算出来位置。
可是与此同时,美军的后勤部门来不及为各个参战单位配备足够的军用GPS终端,于是美军一面掏钱从电器超市购买民用GPS终端分发给茫茫沙漠中的作战部队,一面大骂五角大楼的官僚还没有吸取在格林纳达美军靠旅游地图作战的教训,纷纷嚷着要扣他们的绩效工资。要说美军的效率还是挺高的,高层知道后,为了不让自己人被误炸,命令GPS系统取消在战争地区的SA干扰。这可是一项高优先级的重大用户需求。具体怎么改,我们不得而知,反正那几天里,我们的接收机均无法在上海市范围内定位,于是顺便给自己放假。
看到了GPS的巨大成功和广泛的应用,克林顿在2000年宣布永远关闭SA,嘴上说美国愿意为全世界人民提供无偿的高精度定位服务,心里却想着重走微软的道路:先让盗版满天飞,等其他竞争对手Over了,你又离不开时,再狠敲一笔,并且掐住你的喉咙。
可是对手们也不笨,于是就有了欧洲的伽利略,中国的北斗,还有俄罗斯的格洛纳斯的民用版和友好版。
因此,有再大的困难,北斗也是要上的。要知道在没有北斗的时候,中国的高科技炮兵是左手拿个GPS,右手拿个格洛纳斯滴。
本帖一共被 2 帖 引用 (帖内工具实现)
其实使用GPS制导弹药的第一场战争是空袭南斯拉夫。第一枚JDAM炸弹是1993年2月才在Eglin空军基地试验成功的,当然赶不上海湾战争。那时候的战斧是地形图像匹配制导,炸弹是激光制导,都没有用到GPS。当然地面部队用GPS定位已经普及。
哪国的ZXB都有夸大的作风。
已经改正。
发射导弹,不是反射
能否请教一下我国在这个技术上的瓶颈主要在什么地方?或者已经没有瓶颈了?毕竟90年代的技术了,按理说技术上应该不存在什么壁垒了,特别考虑我们卫星技术底子那么好的话。
进行卫星姿态的测量和矫正。
看看美国的令人眼馋的测量站分布:
本土:科罗拉多斯普林
太平洋: 夏威夷,夸贾林
印度洋:迪戈加西亚
大西洋:亚述森
能不能靠测量船纠正?是不是要求测量站的经纬度非常准确,所以测量船本身精度不够?
北京天安门广场是东经116°23'27",上海人民广场是北纬31°13'57" ,这个座标点在大别山里,如果精度要求高的话你就在一个海拔415米的一个背阴的山坡上,是在野营?
这个地点可能属于霍山县的东西溪乡,乡政府在此点东南三公里处,霍山县城在北偏西18公里处。周围最近的“大城市”是六安市和桐城市,一个在差不多正北56公里处,一个在东偏南57公里处。如果要到省会,那就是东北方向109公里的合肥了。
几个小问题:
格洛纳斯是什么?指南针?计算尺?
我买了一只带GPS的手机,看到最多时可以看到11颗卫星,问题是解算时是只取其中的4颗还是有多少算多少?超过4颗能不能提高精度?
给我的感学手机计算定位时还会参考机内的数字地图,如果你的位置离路不太远时会定位在最近的路面上。
如果你是做GPS的,能不能研发一种GPS手机对,要有能拨通(不一定要应接)对方手机,以取得对方手机的位置。这个用处除了监管老公外最主要的是可以把其中一个体积较小的放在孩子身上,或者给患有老年痴呆的老人身上。
GLONASS系统由卫星、地面测控站和用户设备三部分组成,系统由21颗工作星和3 颗备份星组成,分布于3 个轨道平面上,每个轨道面有8 颗卫星,轨道高度1万9000公里,运行周期11小时15分。GLONASS系统于20世纪70年代开始研制,1982年发射首颗卫星入轨。但由于航天拨款不足,该系统部分卫星一度老化,最严重曾只剩6颗卫星运行, 2003年12月,由俄国应用力学科研生产联合公司研制的新一代卫星交付联邦航天局和国防部试用,为2008年全面更新Glonass系统作准备。在技术方面,GLONASS系统的抗干扰能力比GPS要好,但其单点定位精确度不及GPS系统。2004年,印度和俄罗斯签署了《关于和平利用俄全球导航卫星系统的长期合作协议》,正式加入了GLONASS系统,计划联合发射18颗导航卫星。
2006年12月25日,俄罗斯用质子-K运载火箭发射了3颗格洛纳斯-M卫星,使格洛纳斯系统的卫星数量达到17颗。[1]
我国在这个技术上的瓶颈已经攻克了。
十年前我们的技术瓶颈包括(但不仅限于)星载原子钟,长寿命卫星平台. 真正的瓶颈是需要的数百亿元投资.
\
这个看和谁比了.五院的同志们可要脸红了。
gps 卫星定位实际上用到了 4 颗星。 因为三维定位三个未知数,
就需要三个方程式。还有一个未知数是GPS 接收机时间
与卫星之间原子钟的同步。为了精确定位,这个未知数是不能
当作已知的。这样一共需要 4颗星。
回答楼下 njyd 兄弟的问题:
更多的话,可以更精确的定位。因为再精确的定位也无法避免大气、
卫星漂移等各种小因素的小小干扰。而一点点小干扰就可以造成
几米的误差。 但这些误差是白噪声,多个解算结果会互相抵消。
所以好的算法在接收到多个卫星数据的时候,可以通过滤波算法,
比如卡尔曼滤波算法等,得到更精确的定位。 可以从 1米的误差
缩减到 5-10 cm。
当然,一般的 gps 定位仪不会费那么大劲的。它们简单的将多个
定位取平均值,只会让误差减小比如--- 一半左右。
本帖一共被 1 帖 引用 (帖内工具实现)
比如你说的gps 给老人定位,但当然就需要基站和服务器支持。
类似的应用,甚至不依赖 gps ,实际上已经有过,我记得服务商移动吧,
搞过,通过移动基站就可定位某个手机所在位置,但后来仿佛无声无息了,
估计是侵犯个人隐私了。
技术上呢,只要公司出钱,用 gps 定位并显示给监护中心,这个一点都
不难。 我见过公路运输公司给每辆卡车配的 gps ,可以在中心
显示全公司的卡车在全国的所在位置。 也隐约觉得国内出租车的 gps
好像也可以报警、定位。
技术上来说么,很简单,只要不断的将几个字符的数字发送到服务器上
保存下来就可以了, 但是否能让整个服务普及下来到个人随身
携带,我还不太清楚相关的产品。
车用GPS见到最便宜的也就五百左右,俺的GPS手机是一千一。如果为降低成本还可以只在移动的手机上带GPS,监视的手机上可以不用。使用时五到十分钟发一个短信也花不了多少钱。
我见到南京的一些出租车和公交车上也装了,出租车还可以发短信用于叫车,公交车装了以后就能自动报站,不需要司机手动操作。至于中心的显示俺看不到,肯定是有的。