RTKLIB中ppp代码解析

rtklib的demo版本

基本观测方程

1、 pppos(rtk_t *rtk, const obsd_t *obs, int n, const nav_t *nav)

        该函数里调用的函数

        1)udstate_ppp(rtk,obs,n,nav); 待估参数的预测,对应klaman公式中的xk/k-1、 Pk/k-1

                 只要是作为待估参数,则都需要时间更新,也就是在这里处理

                  udpos_ppp(rtk);  位置的时间更新也就是预测  

                   udclk_ppp(rtk);  接收机钟差的预测 x

                   udtrop_ppp(rtk);  对流层如果作为待估参数的话,进行预测

                   udiono_ppp(rtk,obs,n,nav);  电离层估计的预测
                   uddcb_ppp(rtk);   多频的话涉及到频间偏差,估计第三个f的频间偏差
                   udbias_ppp(rtk,obs,n,nav);  模糊度、周跳、可选择的ssr等各种改正,模糊度都是单颗

                     卫星的模糊度或者双频组合后的模糊度

        2) satposs(obs[0].time,obs,n,nav,rtk->opt.sateph,rs,dts,var,svh); 卫星位置 为了后面用ppp-re中求残差用。

        3)testeclipse(obs,n,nav,rs); 对block IIA卫星的处理,如果排除block IIA的话

       4) tidedisp(gpst2utc(obs[0].time),rtk->x,opt->tidecorr==1?1:7,&nav->erp, opt->odisp[0],dr);  如果配置潮汐改正,则进行潮汐改正

         5) ppp_res(0,obs,n,rs,dts,var,svh,dr,exc,nav,xp,rtk,v,H,R,azel) ;残差处理,预测的值与量测做差,得到kalman中的v

             这里面有几个重要的函数

             model_trop  model_iono 对流层电离层模型

            atantpcv(rs+i*6,rr,nav->pcvs+sat-1,dants);卫星的pcv改正

            antmodel(opt->pcvr,opt->antdel[0],azel+i*2,opt->posopt[1],dantr); 接收机端 pco pcv改正。

            model_phw 相位缠绕

             corr_meas(obs+i,nav,azel+i*2,&rtk->opt,dantr,dants,rtk->ssat[sat-1].phw,L,P,&Lc,&Pc);

              各类模型修正

             kalman公式中的 zk =hx+v  需要找到h,

  各项修正corr_meas函数其实已经把hx解算出来了,那么需要把h区分出来,也就是找对应的系数

             v= zk - hx     在代码中对应的是v[nv]=y-(r+cdtr-CLIGHT*dts[i*2]+dtrp+C*dion+dcb+bias);                 这个公式中的都是在corr_meas中处理了,包含着待估的x

       varerr(obs[i].sat,sys,azel[1+i*2],  SNR_UNIT*rtk->ssat[sat-1].snr_rover[frq], j,opt,obs+i);量测方差

整个ppp_res()函数,如果不组合,就是非差非组合的残差v  如果组合就是组合后的残差v

想要模糊度固定,前面用了精密星历和精密钟差,那么还需要修正fcb,才能做ppp_ar()。

         6) filter(xp,Pp,H,v,R,rtk->nx,nv) kalman方程中的测量xk = xk/k-1 +kv  以及pk = pk/k-1 - kh*pk/k-1  状态更新

          7)ppp_res(i+1,obs,n,rs,dts,var,svh,dr,exc,nav,xp,rtk,v,H,R,azel) klamna迭代成功后进行验后浮点解的校验

          8)ppp_ar(rtk,obs,n,exc,nav,azel,xp,Pp)模糊度固定(开源代码没有给出)

             补充: 该部分代码有其他开源的版本,然后对应的解析在另一篇学习笔记里。

PPP-AR代码解析_ppp ar 消电离层-CSDN博客

           9) ppp_res(9,obs,n,rs,dts,var,svh,dr,exc,nav,xp,rtk,v,H,R,azel))  模糊度固定的残差校验

           10) update_stat(rtk,obs,n,stat); 输出结果的更新,取固定解还是浮点解

           11) test_hold_amb(rtk) 固定结果的模糊度保持(没有开源全)

以上如果利用rtklib的源码解算,开源的其实是只能到浮点解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值