XiaoGongWei / MG_APP

MG-APP (https://link.springer.com/article/10.1007/s10291-020-00976-1);
https://xiaogongwei10.blog.csdn.net/
95 stars 52 forks source link

Some questions about the function of 'reciveClkRapaire'. #28

Open Gitxiaoseng opened 4 years ago

Gitxiaoseng commented 4 years ago

对receiver clock repair 有以下三点疑惑,还请帮忙接解答一下:

  1. 函数中,‘M_IR’,以及'jump_pro > 0.8'里面的 ‘M_IR’和0.8的阈值为什么这么选取,有什么依据么?

2.函数中,dP3 = epochData.PP3 - preEpochData.PP3; 及 dL3 = epochData.LL3 - preEpochData.LL3;这里的’PP3‘,’LL3‘感觉不是原始观测值的历元差,看代码是做了各种改正,这样做的好处是什么呢? eg: LL3 = alph1(L1 + L1Offset + SatL1Offset - AntWindup) Lamta1- alph2(L2+ L2Offset + SatL2Offset - AntWindup)Lamta2; 顺便问一句,可否解释一下receiver ant number correction(Cycle)和satellite ant weeks correction(weeks)的意义,就是以周为单位的接收机和卫星的天线PCO,对吗 另外.请问一下,钟跳修复对PPP的影响感觉不是很大,测试也很少发现全部卫星初始化的情况,那这个钟跳修复的实际作用如何呢?

XiaoGongWei commented 4 years ago

1、回答: M_IR是相邻历元的电离层残差,根据经验取得0.1m。正常情况(无周跳,电离层异常,接收机钟跳)30s历元电离层残差是几个mm。0.8是80%概率,卫星有80%发生了钟跳,程序就认为出现了接收机钟跳。 2、回答: 改正之后观测不受到电离层影响。接收机钟跳修复也可以用P1,L1,我程序是双频数据处理使用PP3和LL3更方便,稳定。 3、回答: 是的,接收机和卫星天线改正是综合PCO+PCV改正之后除以波长得到的周数。例如L1Offset和SatL1Offset变量。 4、回答: 钟跳出现的接收机(有些接收机很容易钟跳)必须要修复。对PPP影响非常大,出现钟跳没有修复钟跳那样PPP会重新初始化。你可以试试zwe21530.12o这个数据,24小时发生了4次钟跳,数据见附件。 ZWE图像

zwe21530.zip

Gitxiaoseng commented 4 years ago

问题已解决,感谢回复

Gitxiaoseng commented 4 years ago

对这个函数还有一个疑问,就是‘preEpochLen’与‘epochLen’都表示前一个历元及当前历元观测卫星数,那么在钟跳探测与修复的时候,是说接收机此时的钟跳值会对GPS/BDS/GLONASS等卫星产生相同的影响?不用区分jump_G,jump_C,jump_R等了吧,而是对等均分? 另外,钟跳修复的时候,应该是对当前历元及其以后的历元观测值同时一起修复的话,那应该有一个全局的jump,来记录观测弧段的钟跳值,然后改正吧?比如在历元10处出现了第一次钟跳大小为5,此时jump为5,在历元100处,出现了第二次钟跳,大小为20,那么jump += 20,此时为25,即后面所有的观测值都修这个25的jump,如此递进下去吧?但是看‘reciveClkRapaire’中这个jump好像一直都是当前的钟跳值,并没有这个累计的过程,不知道理解的是否正确,还请有空帮我再次解答一下,谢谢~

Gitxiaoseng commented 4 years ago

求证了之后,现在过来回答一下这个问题,以便帮助后期对“钟跳探测与修复”方面有疑惑同学: 1,接收机钟跳对于不同GNSS系统卫星的影响是一样的,即“接收机共用钟周跳带来的系统性偏差(以秒或米为单位时)对所有卫星是一样的”,但对应不同频率,不同系统,不同卫星的周数未必完全一致(只因为频率的差异),因而主要在修复时区分不同系统,不同卫星的频率就好。

【感谢测地所肖博,山科大周博及武大郭斐老师的解疑】

XiaoGongWei commented 4 years ago

1.是的,接收机钟跳对所有系统卫星影响是一样的,不区分卫星系统。

2 jump存储了钟跳数值,假如第10,20个历元分别发生接收机钟跳,那么11-19历元观测值都会被修改,preEpoch存的是修改后的观测数据,而不是O文件观测数据,当第20历元再次钟跳,会计算20历元相对于修正的后第19历元观测值钟跳数值。相当于钟跳存储到preEpoch里面,类似于你说的jump+=20,每次都是计算当前历元与上个修正历元钟跳数值。