目前主流的卫星导航系统,都是通过至少四颗已知位置的卫星来确定卫星接收器的位置。
如图1所示,图中的导航卫星接收器为当前要确定位置的设备,卫星1、2、3、4为本次定位要用到的四颗卫星:
Position1、Position2、Position3、Position4分别为四颗卫星的当前前的空间坐标,是已知数据。
d1、d2、d3、d4分别为四颗卫星到要定位的导航卫星接收器的距离,已知Location 为要定位的卫星接收器的位置,是待求数据。
因此定位的过程,就是通过一个函数MyPosition(),从已知的[Position1,d1]、[Position2,d2]、[Position3,d3]、[Position4,d4]四对数据中求出Location的值。使用编程方式的函数调用来表达:
Location=MyPisition([Position1,d1],[Position2,d2],[Position3,d3],[Position4,d4]);
那么,这些参数是如何得到的?该函数又是如何执行呢?由谁来执行的呢?为何要用到4个参数呢?
1.Position1、Position2、Position3、Position4这些位置信息从哪里来的呢?
导航卫星都在不间断地通过卫星信号向地球广播自己的当前位置坐标信息。任何一个导航卫星接收器在开阔区域都可以通过天线很轻松地接收到这些信息,也可以识别信息内容,这些内容就包含了位置信息。
2.四个距离信息从哪里来?
因为每颗导航卫星24小时不间断地广播自己的位置信息,因此它发送位置信息的时候也会附带上实时的时间戳。卫星接收器收到数据后,拿当前时间减去时间戳时间,就是数据在空中传输所用的时间。
得到数据在空中的传输时间后,再乘以其传输速率,便得到数据在空中传输的距离,也就是该卫星到卫星接收器之间的距离。数据包是通过无线电波传送的,速度可以认为是光速C,若把传输时间记做Ti的,以下公式可以获得每颗卫星的距离:
di=C*Ti(i=1,2,3,4);
这就是di(i=1,2,3,4)的来源了。
3.为什么要必须要四对参数,也就是四个坐标?
如果你有立体几何基础,在3维空间中3对[Positioni,di]这样的数据就可以确定一个点,但为何导航定位需要四对呢?正常状态下三颗就可以定位,但是事实上必须要四颗。
根据上面的公式,di是通过C*Ti计算出来的,而我们知道光速C值是很大的,因此对于时间Ti而言,一个极小的误差都会被放大多倍并最终导致位置偏离过大。因此在卫星定位中,时间精度的要求是苛刻的。导航卫星上是用原子钟来计时的,但价格昂贵,导航设备终端是无法使用原子钟的。
还有,光速C也会受电离层影响而产生误差,导航卫星广播的自己的位置也可能会有些许误差。还有其他未知因素引起的误差。
因此在MyPosition()函数中多用一组数据,就是为了校正误差。细节不过分赘述,可以明确的是通过多用一组数据,再加上一些巧妙的算法,就可以减小误差,保证定位的准确性。这就是必须有四颗卫星才能定位的原因。
4.位置信息的计算结果如何被定位设备识别?
定位终端需要得到[经度,纬度,高度]这样的位置信息才能定位。因此,我们推测,数据返回前,定位设备会通过一定算法将数据从空间坐标形式转换到经纬度形式。
5.更高级的差分定位
以上提到的仅仅是最简单的单点定位,只是通过一个卫星接收器来确定位置。
精度更高的方式是差分定位,它是通过增加一个或多个参考卫星接收器来提高定位精度。目前也已经被广泛的应用。除此之外,通过建设地面基站等校准方式消灭误差,使得定位精度可以提高到毫米级。目前GPS和北斗都能做到。
(本文有参考和引用相关资料和数据,感谢)
咱就说国产北斗导航吧,因为以后北斗在国内是流行趋势。北斗系统用户终端具有双向报文功能,用户可以一次传送40-60汉字短报文信息。可以达到一次传送达120个文字信息,在远洋导航起着重要作用及价值。精密授时:具有精密授时功能,可向用户提供20ns~100ns时间同步精度。定位精度:水平精度100米(1。)。设立标校站之后20米,(类似差分状态)。工作频率:2491.75mHz。系统用户容纳量:540000用户/小时。军用就不必细说了。