rtklib使用kalman滤波进行高精度相对定位原理

rtklib使用kalman滤波进行高精度相对定位中浮点解的计算,流程主要分为以下几个步骤:

1. 计算移动站概略坐标

2. 计算卫星位置、速度

3. 选择共视卫星

4. 计算非差残差项和双差

5. 使用kalman滤波计算浮点解

6. 重新进行双差计算

5. 计算固定解


各个步骤的关键算法如下:

1. 计算概略坐标

    概略坐标的计算可以使用卡拉曼滤波方法或者加权最小二乘法,rtklib中使用的是后者。

    对应代码:rtkpos--pntpos

2. 计算卫星位置速度

    对应代码: relpos--satposs

3. 选择基准站与移动站共视卫星

   对应代码: relpos--selsat

4. kalman滤波状态更新

    kalman滤波状态更新主要内容有3个,即a 状态转移矩阵的确定 b 初值确定 c 状态向量确定

    rtklib中状态向量选择移动站的位置速度 以及单差整周模糊度(x,v,N1,N2,N3...Nm)

    初值选择:坐标速度为第一步中计算的概略坐标,整周模糊度初值则使用伪距载波相位组合确定uppos upbias

    状态转移矩阵的选择:对于位置速度可分为静态模型和动态模型 高动态模型,具体模型与单点定位kalman滤波模型一致uppos 

                                        对于整周模糊度,未发生周跳则整周模糊度不变,发生周跳时,则重置滤波器,重新使用伪距载波组合计算概略整周模糊度为初值进行滤波

   计算量测值与预测值差v和观测矩阵H(ddres),并进行卡尔曼滤波的量测更更新filter,此步得到浮点解

   周跳的判断:rtklib使用电离层残差法进行周跳的探测

                        对应代码udbias-detslp_gf_L1L2/L1L5

5. 重新计算双差ddres

6. 使用LAMBDA算法计算固定解

   对应代码: resamb_LAMBDA


以下两图为卡尔曼滤波效果(解算为静态点):

图1可以看出单差整周经过卡尔曼滤波后控制在1周以内,图2为周跳发生,卡尔曼滤波重置图

rtklib使用kalman滤波进行高精度相对定位原理_第1张图片

rtklib使用kalman滤波进行高精度相对定位原理_第2张图片

你可能感兴趣的:(GPS/北斗,c)