一 、为啥卫星需要校准?
从 [卫星定位原理(https://www.jianshu.com/p/f26d05c97966)
看,卫星定位计算要求知道
- 卫星精确的坐标
- 卫星本身精确的时间,从而根据时间差来计算卫星到接收器距离。
卫星校准就是为了保证这两个值足够精准。
二、卫星校准主要包括哪些点
卫星校准一般包括三个点:
- 轨道校准(位置)
- 时间校准
- 健康状态校准
所以说当我们说卫星已经校准,意思是它时间准确+位置准确+也没有其他问题了。
三、怎么知道一个卫星是否已经校准了?
3.1 时间校准
卫星的时间准不准,地面基站说了算。
类似于卫星定位原理提到的GPS授时,至少4个以上的地面基站才能完成对卫星的时间校准,实际上这些用于给卫星进行时间校准的基站至少有十几个。
卫星时间校准后,不是像手机一样把自己时间改为地面基站时间,而是会转发地面站对它的校准数据,校准数据一般包含toc/a0/a1/a2,其中toc是开始时间、a0是是钟差,是说现在卫星时间比标准时间快了或者慢了多少;a1是钟漂,只说每秒会快多少或者慢多少;a2是漂移率,类似加速度,指这个钟漂本身变化得有多快。
GNSS芯片收到并验证 toc/a0/a1/a2 后,将 toc 作为时间模型的参考点,
结合
- 钟差模型
- 信号强度
- 伪距残差
- 解算稳定性
- 卫星健康状态
gnss接收端(具体就是gnss芯片)会给每个卫星计算一个时间效期,在这个有效期内可以认为卫星时间校准的,卫星时间校准后将其有效期内使用该模型补偿卫星时间差。
如果时候上层通过系统提供的接口(比如android的GnssStatus.callback)获取每个卫星的校准状态,如果卫星状态是fixed,那就说明时间、位置等都是校准的,
注意!android层没有获得单独某一个方面校准的字段!
卫星的“时间校准”(更准确说:时间模型更新)不是连续进行的,
而是由地面系统大约每 几十分钟到几小时 向卫星注入一次新的时间校准模型。
3.2 轨道校准
轨道校准的本质是:地面系统持续估计卫星“真实轨道”,然后周期性把一套“轨道预测参数”发给卫星,由卫星再广播给接收机。
接收机根据这些参数,自行计算任意时刻的卫星位置。
具体执行类似时间校准。
3.3 卫星健康状态
卫星健康状态与时间、轨道一样,都由地面系统基于持续监测作出判断,并通过卫星在导航电文中广播给接收机;
不同之处在于,健康状态不是用于建模修正,而是作为接收机是否允许使用该卫星的强制裁决条件。
四、常见问题答疑
1、 卫星校准数目几个才对定位有效?
答:基本上是四个以上才有用 四个以下精度会大大降低 参考[卫星定位原理](https://mp.weixin.qq.com/s/7qbIX6EaGCsm8IvmWGa-TQ)
2 误区❌「健康状态差 = 卫星坏了」
❗unhealthy = 不保证导航安全
- 卫星可能:
- 还能发信号
- 还能被接收
- 但禁止用于定位
3 误区❌定位慢 = 卫星少 / 信号弱」
工程上经常错判,实际可能是:
- 导航电文没收齐(星历 / 时间)
- 首次定位(TTFF)
- AGNSS 数据过期
- 冷启动
小结
GNSS 定位并不是“看到几颗卫星”的问题,而是“系统愿意信任几颗卫星”的问题;这种信任,建立在时间可预测、轨道可预测以及健康可裁决的工程基础之上,如果信任一颗卫星就是说它已经被校准,被校准的卫星的数据就可以用来做定位解算。