GNSS钟跳探测

钟跳探测

什么是钟跳?

  • 定义

大地测量型与导航型 GNSS 接收机内部时标一般采用价格较为低廉的石英钟,其稳定度不及卫星端高精度的原子钟。随着测量的进行,接收机钟差会逐渐产生漂移,导致接收机内部时钟与 GPS 时同步误差不断累积。为了尽可能地保持接收机内部时钟与 GPS时同步,当接收机钟差漂移到某一阈值时,大多数接收机厂商通过对其插入时钟跳跃进行控制,保证其同步精度在一定范围之内。

  • 分类
    钟跳产生后对接收机时标、伪距观测值、载波相位观测值均有影响。钟跳分为以下四类
类型时标伪距载波相位描述
一类阶跃连续连续这类钟跳可以理解为接收机没有在既定频率下采样,其他所有观测值都是连续的。
二类阶跃阶跃连续这类钟跳可以理解为第一类钟跳不断累积,当钟差过大时,接收机在时标和伪距上插入了周跳值,而载波相位上没有
三类连续阶跃连续这类钟跳可以理解为实际上时标的钟跳发生了,但是时标没有输出。比如时标在30s时阶跃为29.999s,但是此时不输入,等到30s时才输出。
四类连续阶跃阶跃与第三类相同

钟跳的特点

  • 钟跳形式多样
  • 钟跳的数值随机
  • 钟跳对于所有卫星、所有频率都一致

钟跳发生后,可能造成观测值不连续,此时会影响最终的定位。在探测钟跳之前,必须了解钟跳与周跳的区别。上述三个特点表明了钟跳与周跳的区别,由于钟跳的第三个特点,所以对于GF周跳探测方法来说所有类型的钟跳都是不敏感的,其次当发生第一类和第四类钟跳时,伪距和相位观测值具有一致性,不影响MW的周跳探测。所以,需要区别的是第二类和第三类钟跳。

在钟跳和周跳的处理方法上,如果第二类和第三类钟跳出现,那么按照周跳的判断,所有卫星都被标记周跳,会引起模糊度重置,影响解算效果。所以必须先进行钟跳探测,对其修复后在进行周跳探测。


钟跳探测方法

这里介绍实时模式下,观测值域内的钟跳探测方法。假设钟跳引起的伪距和相位阶跃值分别为:dP,dL,令ΔPi=PiPi1ΔLi=LiLi1,构造钟差检验量如下:
Sji=ΔPjiΔLji=ΔII,i1λΔNi,i1+ΔdPi,i1ΔdLi,i1+ξ

其中Δ是历元间差分算子,构造的检验量仅和电离层延迟、周跳、钟跳和观测噪声影响。一般来说,先使用GF模型探测周跳,之后再根据检验量探测钟跳。

abs(S)>k1,说明S探测异常,之后进一步判断需要根据以下两个条件:

  • 钟跳对于所有卫星、所有频率均产生相同数值阶跃。
  • 对于毫秒级钟跳,其数值换算为ms单位时具有整数特性。

构造两个关系式:
- n=ns,ns<na
- abs(Mround(M))<k2
第一个式子中n代表探测到的钟跳卫星数,ns,代表该历元可用卫星数,na代表该历元卫星总数。
第二个式子的M计算为:
M=103(nj=1Sj)/(nC)
n为光速,这里针对于毫秒级钟跳。

阈值设置

k1阈值主要考虑了检验量中钟跳和观测噪声的影响,钟跳1ms,影响可以达到105,所以k1一般设置为10530m
k2阈值主要考虑了小数影响,因为M的小数部分主要受到累加的电离层延迟的影响,一般设置为104 105

### RTKLIB中周探测和修复方法 #### 周的概念及其重要性 在GNSS载波相位测量中,周是指由于信号失锁或其他干扰因素引起的整周计数器重置现象。这种现象会在累积的相位观测值中引入一个整周跃,从而影响后续的数据处理和定位精度[^2]。 #### 周探测的过程 RTKLIB中的周探测过程主要包括以下几个方面: 1. **多普勒辅助法** 多普勒频移可以用来估计载波频率的变化趋势。通过对比相邻历元之间多普勒积分值与相位变化量的一致性,能够有效识别可能存在的周。然而,传统方法受限于接收机时钟跳变的影响而难以应用。近期的一些改进工作(如rtklibexplorer博客提到的内容)已经解决了这一问题,使得多普勒辅助法成为一种可靠的周检测手段[^1]。 2. **几何自由组合(GF)** GF是一种基于无电离层组合的线性变换技术,它消除了大部分误差源并增强了对异常值敏感度的能力。具体实现方式为比较连续两个时刻GF组合值得差异是否超出设定门限来判断是否存在周事件。例如,在RTKLIB里,默认采用固定阈值0.05作为判定标准;而在其他软件像GAMP则依据采样周期长度以及仰角动态调整相应参数配置[^3]。 #### 周修复策略 一旦确认某个特定链路上出现了周,则需进一步采取措施加以修正: - 首先要精确量化该次跃迁对应的整周数目; - 接着验证所得结果合理性后再将其应用于原始观测量序列之中予以补偿消除影响。 整个流程涉及复杂算法运算以确保准确性的同时还需兼顾效率考量以便实时应用场景需求得到满足。 ```python def detect_and_repair_cycle_slip(obs_data, doppler_data): """ Detect and repair cycle slips using Doppler assistance. Args: obs_data (list): List of phase observation data. doppler_data (list): Corresponding Doppler frequency shift values. Returns: list: Corrected phase observations after slip detection & repair. """ corrected_observations = [] for i in range(len(obs_data)-1): delta_phase = abs(obs_data[i+1] - obs_data[i]) # Use a threshold based on system specifications or empirical tuning if delta_phase > THRESHOLD: estimated_cycles = estimate_integer_weeks(doppler_data[i], obs_data[i], obs_data[i+1]) validated_cycles = validate_estimation(estimated_cycles) adjusted_value = apply_correction(validated_cycles, obs_data[i+1]) corrected_observations.append(adjusted_value) else: corrected_observations.append(obs_data[i+1]) return corrected_observations def estimate_integer_weeks(doppler_shift, prev_observation, current_observation): """Estimate integer number of cycles slipped.""" pass # Placeholder function; implementation depends on specific algorithm details def validate_estimation(cycle_estimate): """Validate the correctness of an estimated cycle count against certain criteria.""" pass # Validation logic here def apply_correction(cycles_to_add_or_subtract, raw_measurement): """Apply correction to observed measurement by adding/subtracting detected whole cycles.""" pass # Correction application code goes here ``` 以上伪代码展示了如何利用多普勒信息来进行初步筛选潜在存在问题的时间点,并随后执行更细致深入分析最终完成校正操作的整体框架结构示意。 #### 总结 综上所述,RTKLIB提供了多种途径用于解决因各种原因引发的载波相位中断情况下的恢复机制设计思路和技术方案介绍。这些功能模块共同协作保障了高精度全球导航卫星系统的正常运作和服务质量水平提升做出了积极贡献。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值