104-RTKLIB中PPP设计

首先给出一个ppp的配置文件:

# rtkpost options (2019/06/12 11:10:52, v.2.4.3 b31)

pos1-posmode       =ppp-kine   # (0:single,1:dgps,2:kinematic,3:static,4:movingbase,5:fixed,6:ppp-kine,7:ppp-static,8:ppp-fixed)
pos1-frequency     =l1+l2      # (1:l1,2:l1+l2,3:l1+l2+l5,4:l1+l5)
pos1-soltype       =forward    # (0:forward,1:backward,2:combined)
pos1-elmask        =15         # (deg)
pos1-snrmask_r     =off        # (0:off,1:on)
pos1-snrmask_b     =off        # (0:off,1:on)
pos1-snrmask_L1    =0,0,0,0,0,0,0,0,0
pos1-snrmask_L2    =0,0,0,0,0,0,0,0,0
pos1-snrmask_L5    =0,0,0,0,0,0,0,0,0
pos1-dynamics      =off        # (0:off,1:on)
pos1-tidecorr      =on         # (0:off,1:on,2:otl)
pos1-ionoopt       =est-stec   # (0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec,5:ionex-tec,6:qzs-brdc,7:qzs-lex,8:stec)
pos1-tropopt       =est-ztdgrad # (0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad,5:ztd)
pos1-sateph        =precise    # (0:brdc,1:precise,2:brdc+sbas,3:brdc+ssrapc,4:brdc+ssrcom)
pos1-posopt1       =on         # (0:off,1:on)
pos1-posopt2       =on         # (0:off,1:on)
pos1-posopt3       =on         # (0:off,1:on,2:precise)
pos1-posopt4       =on         # (0:off,1:on)
pos1-posopt5       =on         # (0:off,1:on)
pos1-posopt6       =on         # (0:off,1:on)
pos1-exclsats      =           # (prn ...)
pos1-navsys        =1          # (1:gps+2:sbas+4:glo+8:gal+16:qzs+32:comp)
pos2-armode        =continuous # (0:off,1:continuous,2:instantaneous,3:fix-and-hold)
pos2-gloarmode     =on         # (0:off,1:on,2:autocal)
pos2-bdsarmode     =on         # (0:off,1:on)
pos2-arthres       =3
pos2-arthres1      =0.9999
pos2-arthres2      =0.25
pos2-arthres3      =0.1
pos2-arthres4      =0.05
pos2-arlockcnt     =0
pos2-arelmask      =0          # (deg)
pos2-arminfix      =10
pos2-armaxiter     =1
pos2-elmaskhold    =0          # (deg)
pos2-aroutcnt      =5
pos2-maxage        =30         # (s)
pos2-syncsol       =off        # (0:off,1:on)
pos2-slipthres     =0.05       # (m)
pos2-rejionno      =30         # (m)
pos2-rejgdop       =30
pos2-niter         =1
pos2-baselen       =0          # (m)
pos2-basesig       =0          # (m)
out-solformat      =xyz        # (0:llh,1:xyz,2:enu,3:nmea)
out-outhead        =on         # (0:off,1:on)
out-outopt         =on         # (0:off,1:on)
out-outvel         =off        # (0:off,1:on)
out-timesys        =gpst       # (0:gpst,1:utc,2:jst)
out-timeform       =hms        # (0:tow,1:hms)
out-timendec       =3
out-degform        =deg        # (0:deg,1:dms)
out-fieldsep       =
out-outsingle      =off        # (0:off,1:on)
out-maxsolstd      =0          # (m)
out-height         =ellipsoidal # (0:ellipsoidal,1:geodetic)
out-geoid          =internal   # (0:internal,1:egm96,2:egm08_2.5,3:egm08_1,4:gsi2000)
out-solstatic      =all        # (0:all,1:single)
out-nmeaintv1      =0          # (s)
out-nmeaintv2      =0          # (s)
out-outstat        =off        # (0:off,1:state,2:residual)
stats-eratio1      =100
stats-eratio2      =100
stats-errphase     =0.003      # (m)
stats-errphaseel   =0.003      # (m)
stats-errphasebl   =0          # (m/10km)
stats-errdoppler   =10         # (Hz)
stats-stdbias      =30         # (m)
stats-stdiono      =0.03       # (m)
stats-stdtrop      =0.3        # (m)
stats-prnaccelh    =10         # (m/s^2)
stats-prnaccelv    =10         # (m/s^2)
stats-prnbias      =0.0001     # (m)
stats-prniono      =0.001      # (m)
stats-prntrop      =0.0001     # (m)
stats-prnpos       =0          # (m)
stats-clkstab      =5e-12      # (s/s)
ant1-postype       =llh        # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm,6:raw)
ant1-pos1          =90         # (deg|m)
ant1-pos2          =0          # (deg|m)
ant1-pos3          =-6335367.6285 # (m|m)
ant1-anttype       =
ant1-antdele       =0          # (m)
ant1-antdeln       =0          # (m)
ant1-antdelu       =0          # (m)
ant2-postype       =llh        # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm,6:raw)
ant2-pos1          =90         # (deg|m)
ant2-pos2          =0          # (deg|m)
ant2-pos3          =-6335367.6285 # (m|m)
ant2-anttype       =
ant2-antdele       =0          # (m)
ant2-antdeln       =0          # (m)
ant2-antdelu       =0          # (m)
ant2-maxaveep      =0
ant2-initrst       =off        # (0:off,1:on)
misc-timeinterp    =off        # (0:off,1:on)
misc-sbasatsel     =0          # (0:all)
misc-rnxopt1       =
misc-rnxopt2       =
misc-pppopt        =
file-satantfile    =F:\vs2017\RTKLIB_243\RTKLIB_243\data\gps\igs14.atx
file-rcvantfile    =F:\vs2017\RTKLIB_243\RTKLIB_243\data\gps\igs14.atx
file-staposfile    =
file-geoidfile     =
file-ionofile      =
file-dcbfile       =F:\vs2017\RTKLIB_243\RTKLIB_243\data\gps\P1C10208.DCB
file-eopfile       =F:\vs2017\RTKLIB_243\RTKLIB_243\data\gps\igs11817.erp
file-blqfile       =
file-tempdir       =
file-geexefile     =
file-solstatfile   =
file-tracefile     =

根据这个配置文件,得到的状态向量的维度nx=254。已某一历元为例,参与定位的卫星个数为6个,即nv=6*4=24。那么有:
P ( 254 , 254 ) , H ( 24 , 254 ) , R ( 24 , 24 ) P(254,254),H(24,254),R(24,24) P(254,254),H(24,254),R(24,24)

注意,这里没有设计Q阵及 Φ \Phi Φ阵,因为程序中的卡尔曼滤波过程时这样的,如图:

104-RTKLIB中PPP设计_第1张图片

程序中的实现时先通过ppp_res得到 x ^ k ( − ) , y k − h ( x ^ k ( − ) ) 即 v , H ( x ^ k ( − ) ) \hat{x}_k(-), y_k-h(\hat{x}_k(-))即v, H(\hat{x}_k(-)) x^k(),ykh(x^k())v,H(x^k()),接着滤波,然后再通过ppp_res得到 x ^ k + 1 ( − ) , y k − h ( x ^ k + 1 ( − ) ) 即 v , H ( x ^ k + 1 ( − ) ) \hat{x}_{k+1}(-), y_k-h(\hat{x}_{k+1}(-))即v, H(\hat{x}_{k+1}(-)) x^k+1(),ykh(x^k+1())v,H(x^k+1())

X和P的设计如图:
104-RTKLIB中PPP设计_第2张图片

H的设计如图,参与定位的卫星有5,14,18,21,25,30,
104-RTKLIB中PPP设计_第3张图片

注意,rtklib中为了方便将H设计成254*24。H的设计遵循L1,P1,L2,P2的顺序。

最后是R阵的设计。其对角线的参数由四部分组成,第一部分由varerr求取,根据不同的系统、高度角、载波类型及观测类型会有所不同;其余三部分分别是对流层、电离层和卫星位置误差。对流层误差设计为SQR(0.01),电离层设计为0,卫星位置误差再定位时求取。

你可能感兴趣的:(RTKLIB,rtklib,ppp)