西西河

主题:【原创】说说GPS定位导航 -- honeybl

共:💬73 🌺145 新:
分页树展主题 · 全看
/ 5
下页 末页
  • 家园 【原创】说说GPS定位导航

    战争和军备竞赛永远是高科技产品的催生婆。由美国政府和军方出资建设的全球定位系统(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,右手拿个格洛纳斯滴。

    关键词(Tags): #GPS#定位元宝推荐:水风,爱莲, 通宝推:镐梓,

    本帖一共被 2 帖 引用 (帖内工具实现)
    • 家园 【讨论】我知道的

      1.所谓差分gps,就是用一个固定地点的精确测量位置数据减去在这个固定点的gps实时测定的位置数据,把这个差值广播出去,则在一定范围内所有的gps都用这个差值来修正定位数据即可实现很高的精度。以前在舰船知识的论坛上就讨论过,用北斗双星外加福建的一两个地面站就可以实现高精度无源定位,为台海作战服务。

      2.gps信号是很微弱的,gps终端放大信号消耗很多能量,所以现在的gps终端普遍耗电比较多。再加上国产芯片生产技术落后,耗电更高,所以国产货在民用市场竞争力不足。

      3.gps技术也是不断改进的,以前的gps要先通电半个小时左右,接收卫星星历,然后才能定位,现在基本上开机之后几秒钟就可以定位了。

      4.北斗一其实用作中国周边的地区作战足够用了,因为可以用设在国内的地面站作为补充。现在的北斗二,估计是为了适应新的军事需求设计的,研究速度自然也是根据需求的紧迫性来决定。

      • 家园 双星加地面校正站的设计不是很实用。

        一方面在接受机的定位算法设计,芯片制造和成本控制上有难度;另一方面攻击地面上的校正站的难度大大低于攻击太空中的卫星:既可以派飞机来扔炸弹,又可以派特工来砍电缆,相对渴望不可及的卫星实在是太方便了。

        • 家园 周边作战没问题。

          要是台海作战,在福建设几个地面站,那它的安全保卫工作问题不大。另外,更厉害的是派先遣人员在台湾军事目标附近约定时间广播差分信号,引导制导弹药完成厘米级精度的攻击。

      • 家园 就民用级别的GPS来说

        美国的sirf3芯片最耗电,而台湾的联发科(就是山寨机芯片那个)的最新GPS芯片貌似极其省电,好像叫‘MT3329’,另外瑞士有一个公司生产的GPS芯片,也很省电,但是性能不如联发科的

    • 家园 说说双星定位--悲壮的先驱者

      接着上次的话题继续讲下去,这次说说双星定位技术。

      采用两颗卫星是可以实现定位的。但不是光靠两颗卫星就可以了。空间的一个点,有三个维度的自由度,因而必须在两颗卫星之外引入额外的信息量,才能定位。

      根据先前介绍的GPS系统的定位方法,我们知道整个GPS系统能够提供高精度定位结果的关键取决于如下两个关键条件

      1.在恶劣外太空环境中的卫星上的原子钟的精度

      2.对卫星轨道的非常精确的控制,测量和修正。

      因此,在上述技术难关没有被攻克之前,科学家们提出了各种不同的“地区级”的双星定位技术。这些技术各有千秋,侧重点个不同,精度也不高,只能解决有没有的问题。

      接下来我就介绍一个双星定位系统的定位原理,整个系统由中央控制台,两颗定位卫星(一主一辅),和定位终端机构成。

      (以下内容,纯属理论;如有雷同,实属巧合)

      1.在地球同步轨道上,以一定的角度间隔布放两颗定位卫星。由于是在地球同步轨道上,卫星相对地球保持静止不动,从而大大降低了定位难度。

      2. 先计算出定位点与两颗定位卫星的距离差,从而可以确定一个平面S1:

      2.1 可以先由两颗卫星同步发射时间信号,终端机先同步到主卫星,而后测量辅卫星的信号到达的时间差值,从而得出相对距离差。

      2.2 或者中央控制台通过主卫星,向终端机发出一个询问信息,终端机发出一个响应信息,“同时”由主辅卫星接收并转发给中央控制台,中央控制台测量相应信息到达的时间差值,从而得出相对距离差。终端机可以在响应消息中将其在2.1中的测量值反馈给中央控制台,以便计算时的校正。

      3.中央控制台根据发出询问信息,到收到从主卫星转发的相应消息的时间,计算出终端机距离主卫星的距离,得到一个球面S2,同S1相交,得到曲线L1。同时,根据同样的原理,通过计算出终端机距离辅卫星的距离,得到一个校正的球面S3和校正曲线L2.

      4.根据响应信息,假定终端机是静止在地球表面上,则计算L1同地球表面的相交点,就是定位点的位置。(当然,如同4星定位一样,通过L2可以实现数据的校正)

      5.中央控制台通过加密的方式将结果告知终端机,从而完成定位服务。

      因此,这种主动应答式的双星定位有着如下显而易见的缺点:

      1.区域定位,而非全球定位。

      2.需要有一个询问-应答-计算-反馈的过程,容易暴露终端机的目标,同时也增加了接收机的重量和功耗。

      3.用户容量是有限制的。

      4.敌对势力可以通过“拒绝服务”的方式,通过大量的干扰信息,阻塞卫星通路。

      5.精度不高,而且不能对快速运动物体进行实时定位。

      6.一旦中央控制台出故障,就全网瘫痪,稳健性差。

      7.等等

      因此,命中注定了主动应答式的双星定位是一个悲壮的先驱者,他必然将被单向测量式的GPS系统所取代,必将迅速地淡出历史,成为一名默默无闻的先驱者。

      让我们拭目以待这一天的到来!

      • 家园 双星定位是要靠控制台的

        必须有源

      • 家园 这个要看干什么用了。

          在中国及附近的太平洋上,和平时期的航海、航空中途导航足够了。

          相比起来,传说中的六十年代导航水平极低,据说当时空军飞机出海飞着飞着突然发现前面就是南朝鲜,赶紧回头。

        • 家园 这个有没有典故?

          因为咱就不说二战时欧洲就用两个无线电基站来导航了,我手头有一本六十年代民航的工作手册,上面就提到了我国民航当时已经使用这种技术了,说起来空军不至于啊。

          这种技术飞机只需要接收信号就可以了,倒是不担心会暴露目标,难道是发射站被干扰了?

          要是里面有曲折的话,不妨说来听听。

          • 家园 这只是以前听人说了这么一句。

              二战时那是为了导到一个点,专门针对某个机群用的,平时零星的是不可能这样干。

              以前一般的飞机远程测位是利用无线电广播台,用定向天线测定两个电台的方位,再在地图上交叉,还有就是用六分仪测星星。这个工作比较烦,飞行员自己很难搞,所以稍大的飞机上都有位专职的导航员。这种测法精度不可能高,误差十几公里到几十公里都有可能,飞到终点时都需要找地标。

              如果有个明确的目的地就比较方便,找到目的地附近的某个电台对着飞就行了。当时中国战斗机到黄海上巡逻可能是先对着汉城或某个南韩城市的电台飞,飞到一定时间估摸距离差不多了再拐弯掉头。这个距离也是不准的。飞机上有空速表,是相对空气的速度,如果顺风或逆风误差就很大了,飞远了差个几十公里到上百公里也不罕见。再就是地面雷达导航,这距离远了也不准,当时经常有战斗机起飞拦截敌机,雷达上看两回波已经重叠在一起,飞行员就是看不到敌机。不要说中国,那时候就是美国的飞机在大海上迷航也是常事。

              

        • 家园 双星定位是默认接受机在地面上的。

          通过这样增加一个条件,或者前提,来进行数据校正和误差减少。并且降低接收机的硬件成本。否则对接收机的时钟精度要求就高了。本来为了信令对答和用户认证,终端机里又要有发射模块,又要有用户识别模块,搞得体积,重量,成本已经上去不少了。

          所以对飞机就不太适用(当然,中央控制台可以根据应答信息中有关用户模式的消息(地面静止,地面移动,空中移动等),调整软件的相应算法,不考虑精度问题,直接用L1和L2相交的点来计算出位置)

          双星系统从诞生的一开始,就是一个实验性的系统,就是一颗铺路石。先解决有没有的问题,为后续系统做先驱。 这就是他的悲壮性。

          说实话,

          1. 中国要是没有双星系统的话,伽利略的门都进不去。

          2. 可也是正因为有双星系统,进门后,被像贼一样处处设防。

          3. 正是因为知道会被象贼一样处处受限,所以一开始中国就没有“太傻太天真”,没有自废武功,该怎么干就怎么干,靠自己的力量上北斗2。

          4. 真是因为知道中国不会上当,伽利略知道拉不拉印度和日本进来,不会改变结果,因此该拉的照样拉。

          总结起来2句话:

          1. 国际间的协作,必须靠自己的实力为后盾。

          2. 天上是不会无故掉馅饼滴。

    • 家园 刚海龟的正宗鲁皮皮好像是专家。估计在建设我国北斗中
    • 家园 还有连测啊,拥有自己的卫星才是王道啊
    • 家园 11颗卫星和GPS在民用航空的应用。

      首先承认错误,的确可能收到11颗卫星的。是我不仔细了。

      按照设计,GPS的24颗卫星以大约55度的倾斜角,按照60度的间隔分布在6个轨道面上,以确保在任何一个地点至少有6颗卫星的覆盖。因此可以收到比6颗多的卫星。我在wiki上找到了一个动画,说明在北纬45度的一个固定点上所看到的卫星的数量上的变化。

      链接

      先前我提到过差分GPS系统,就是为了防止飞机和船舶在机场起飞降落以及在港口和狭窄水道发生相撞事故而开发的。因此飞机是可以用GPS来导航的。

      现在好的飞机可以实时显示飞机当前的经纬度(在一张地图上),高度,当前时间,距离目的地的距离,估计可能就是机载GPS终端通过NMEA-0183接口协议输出的信息。

      GPS是无源的,工作时只接收信号,不发射信号。因此从技术上来讲不会对飞行控制造成干扰。但是就如同飞行模式的手机不被航空公司认可一样,最好咨询一下空乘人员。

      如果你要在飞行的途中使用GPS终端的话,别忘了还要告诉飞行员不要飞得太高和太快,不要上升下降太剧烈。所有的民用GPS芯片均有自动反“欺诈”功能。一旦判断出你不是民用飞机而是军用飞机甚至是导弹的话,芯片据说会自动销毁。

      不知道这个传言是否正确,哪位飞行员有空的话可以试验一下,不过要切记安全。

分页树展主题 · 全看
/ 5
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河