本发明涉及卫星定位,更具体地,涉及一种利用可并行处理卡尔曼滤波器的载波相位差分方法。
背景技术:
1、载波相位差分技术,又称rtk(real time kinematic)是一种高精度的相对定位技术,常见的处理流程分为三个步骤:数据预处理;模糊度浮点滤波;模糊度整数固定。而rtk算法的模糊度浮点滤波计算耗时占总运算时间的50%-70%,目前常用的浮点滤波方式主要是使用卡尔曼滤波器。
2、常见为一体式的卡尔曼滤波,即位置相关参数和卫星相关参数是放置在同一个状态向量内。虽然位置相关参数数量通常来说比较固定,即[x,y,z,vx,vy,vz,ax,ay,az]t,分别是三个位置参数,三个速度参数和三个加速度参数。但随着全世界卫星导航系统的发展,在轨卫星和频点数量日渐增加,需要被估计的模糊度参数也增加,例如,30颗需要估计电离层延时的双频卫星,滤波器参数为9+30×(1+2)=99,30颗需要估计电离层延时的三频卫星,滤波器参数为9+30×(3+1)=129,维度是卫星个数每频点量增加。已知滤波过程的矩阵乘法和求逆都是o(n3)时间复杂度,这意味着129维的数据处理耗时将会是99维的2.2倍时间。
3、这些还是目前在亚太地区四大系统(gps,北斗,glonass,伽利略)可视卫星的个数,随着卫星导航系统的发展,如果数量较多的低轨卫星再参与计算,则需要一种能够支持并行处理计算的卡尔曼滤波器。
4、现有技术公开了一种加快卡尔曼滤波rtk浮点解收敛速度的方法,该方法提出了一种正则化辅助的手段,加快快卡尔曼滤波rtk浮点解的收敛速度,该方法包括卫星观测模块,计算模块,滤波定位模块;所述卫星观测模块用于对定位卫星的载波相位进行差分,建立观测方程;所述计算模块用于建立准则方程,计算正则化矩阵,获取状态量的预估值;所述计算模块还用于辅助滤波定位模块;所述滤波定位模块用于根据载波相位差分观测量以及所述计算模块获得的预估值进行滤波处理。该方法的缺陷是,目前在轨卫星和频点数量日渐增加,需要被估计的模糊度参数也在增加,在保证精度的情况下,数据处理耗时长。
5、为此,结合以上需求和现有技术的缺陷,本技术提出了一种利用可并行处理卡尔曼滤波器的载波相位差分方法。
技术实现思路
1、本发明提供了一种利用可并行处理卡尔曼滤波器的载波相位差分方法,能够将卫星相关的参数以卫星为划分,存放在各自独立的卡尔曼滤波器当中,能够解除位置相关参数和卫星相关参数的耦合关系,降低解算的时间复杂度,加快得到定位结果的过程。
2、本发明的首要目的是为解决上述技术问题,本发明的技术方案如下:
3、本发明第一方面提供了一种利用可并行处理卡尔曼滤波器的载波相位差分方法,本方法包括以下步骤:
4、s1、对输入的流动站数据和基准站数据作数据预处理,得到差分数据。
5、s2、以卫星高度角作为选择条件,判断卫星列表是否为空,不为空则从参考卫星列表和其他卫星列表选取参考卫星,若卫星列表为空则不进行任何操作。
6、s3、判断参考卫星是否需要变换,如果需要变换参考卫星则执行步骤s4,如果无需变换则执行步骤s5。
7、s4、计算待变换卫星的频点集合,所述待变换卫星包括有新参考卫星、旧参考卫星和双差卫星,使用参考卫星变换方法完成所有双差卫星的参考卫星变换。
8、s5、将不同卫星的滤波数据分别设置在不同线程的卡尔曼滤波器中,使用差分数据对卡尔曼滤波器进行并行处理完成卡尔曼滤波器的更新,得到各个双差卫星更新后的卡尔曼滤波器。
9、s6、固定模糊度,对各个双差卫星卡尔曼滤波器的结果进行位置平差,得到定位结果。
10、其中,步骤s5和s6均能够并行处理,每个卫星都放在单独的线程中。
11、进一步的,所述数据预处理过程具体为:使用流动站的伪距和载波数据分别减去基准站的伪距和载波数据,得到差分数据;对差分后的载波数据作周跳探测,构建无几何无电离层组合。
12、其中,构建无几何无电离层组合用于探测载波数据中可能会发生的整周模糊未能保持未常数的情况。
13、进一步的,对于一个卫星导航系统,有如下卫星集合:
14、
15、其中,上标(i)表示参考卫星集合,其集合大小为1;上标(j)表示其他卫星集合,其集合大小大于3;上标(ij)表示双差卫星集合,所述双差卫星集合具体为:在流动站数据与基准站数据作差之后,将参考卫星集合(i)的卫星,与其它卫星集合(j)的卫星,对相同类型和相同频点的观测值逐一作差得出;其中r1表示参考卫星集合(i)中第一个参考卫星,s1,s2,…表示其它卫星集合(j)中的卫星,d1,d2,…表示双差卫星集合(ij)中的卫星。
16、在一个具体的实施例中,参考卫星的频点集合n(i)和其它卫星的频点集合n(j)可能不会完全相等,因此在作双差,需要取它们的交集n(ij)如下:
17、
18、进一步的,所述卡尔曼滤波器能够实现并行处理,具体为:将参考卫星和双差卫星的每一颗卫星的滤波数据存放在各自的卡尔曼滤波器中;用于将o(n3)时间复杂度的部分分配至各个线程,实现并行处理。
19、进一步的,所述参考卫星的卡尔曼滤波器具体为:
20、
21、所述双差卫星的卡尔曼滤波器具体为:
22、
23、其中,下标k表示时间戳,上标是参考卫星(i)和双差卫星(ij)的集合符号;x表示卡尔曼滤波器的状态向量,h表示卡尔曼滤波器的设计矩阵,y表示卡尔曼滤波器的观测量;n1,n2,…表示此卫星各个频点的载波模糊度,f1,f2,…表示此卫星各个频点的频率,i1表示此卫星第一个频点的电离层延时;ρ和δρ分别表示此卫星的卫地距及其变化量;l1,l2,…表示此卫星各个频点的载波观测量,p1,p2,…表示此卫星各个频点的伪距观测量;是双差卫星(ij)第k时刻第1个频点的模糊度,是双差卫星(ij)第1个频点的频率的平方,是双差卫星(ij)的第k时刻第1个频点的载波观测值,是双差卫星(ij)的第k时刻第1个频点的伪距观测值,是双差卫星(ij)的第k时刻的卫地距变化量,是双差卫星(ij)的第k时刻第1个频点的电离层延时。
24、进一步的,对于第k时刻,当有新添加的卫星需要初始化,或是有现有卫星因周跳或失锁导致需要被初始化,则需要执行滤波器初始化过程,其中对参考卫星的卡尔曼滤波器进行初始化的过程具体为:
25、
26、对双差卫星的卡尔曼滤波器进行初始化的过程具体为:
27、
28、其中下标0表示初始化时刻,表示双差卫星第1个频点模糊度在初始化时刻的方差,表示双差卫星卫地距变化量在初始化时刻的方差,表示表示双差卫星第1个频点的电离层延时在初始化时刻的方差。
29、进一步的,步骤s4中,参考卫星变换的方法具体为:旧参考卫星i不在双差卫星列表j当中,即新参考卫星i′从双差卫星列表j选取出获得,即i′∈j;通过下述过程进行新旧参考卫星的转换:
30、
31、对于对于双差列表j中的卫星,除了新参考卫星i′之外都参与下述过程:
32、
33、其中,将新参考卫星i′从双差卫星列表j移除后,将旧参考卫星i插入到双差卫星列表j中,得到新双差卫星列表j′。
34、进一步的,步骤s5中,对卡尔曼滤波器进行更新的过程,忽略参考卫星上标(i)和双差卫星上标(ij),在第k时刻具体为:
35、
36、其中,每个卫星的数据都分别存放在各自的卡尔曼滤波器中,每个卡尔曼滤波器的更新任务按照队列输入至线程池并执行。
37、进一步的,步骤s3中,判断需要变换参考卫星前,需要缓存新旧参考卫星卡尔曼滤波器的状态和协方差。
38、本发明第二方面提供了一种利用可并行处理卡尔曼滤波器的载波相位差分系统,包括存储器、处理器,所述存储器中包括有利用可并行处理卡尔曼滤波器的载波相位差分程序,所述利用可并行处理卡尔曼滤波器的载波相位差分程序被所述处理器执行时实现如下步骤:
39、s1、对输入的流动站数据和基准站数据作数据预处理,得到差分数据。
40、s2、以卫星高度角作为选择条件,判断卫星列表是否为空,不为空则从参考卫星列表和其他卫星列表选取参考卫星,若卫星列表为空则不进行任何操作。
41、s3、判断参考卫星是否需要变换,如果需要变换参考卫星则执行步骤s4,如果无需变换则执行步骤s5。
42、s4、计算待变换卫星的频点集合,所述待变换卫星包括有新参考卫星、旧参考卫星和双差卫星,使用参考卫星变换方法完成所有双差卫星的参考卫星变换。
43、s5、将不同卫星的滤波数据分别设置在不同线程的卡尔曼滤波器中,使用差分数据对卡尔曼滤波器进行并行处理完成卡尔曼滤波器的更新,得到各个双差卫星更新后的卡尔曼滤波器。
44、s6、固定模糊度,对各个双差卫星卡尔曼滤波器的结果进行位置平差,得到定位结果。
45、与现有技术相比,本发明技术方案的有益效果是:
46、本发明提供了一种利用可并行处理卡尔曼滤波器的载波相位差分方法,通过计算待变换卫星的频点集合,将卫星相关的参数以卫星为划分,存放在各自独立的卡尔曼滤波器当中,解除了位置相关参数和卫星相关参数的耦合关系,降低了模糊度浮点滤波计算的耗时,提高了计算载波相位差分的效率,加快得到定位结果的过程。