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)

注意,這裏沒有設計Q陣及Φ\Phi陣,因爲程序中的卡爾曼濾波過程時這樣的,如圖:

程序中的實現時先通過ppp_res得到x^k(),ykh(x^k())v,H(x^k())\hat{x}_k(-), y_k-h(\hat{x}_k(-))即v, H(\hat{x}_k(-)),接着濾波,然後再通過ppp_res得到x^k+1(),ykh(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和P的設計如圖:

H的設計如圖,參與定位的衛星有5,14,18,21,25,30,

注意,rtklib中爲了方便將H設計成254*24。H的設計遵循L1,P1,L2,P2的順序。

最後是R陣的設計。其對角線的參數由四部分組成,第一部分由varerr求取,根據不同的系統、高度角、載波類型及觀測類型會有所不同;其餘三部分分別是對流層、電離層和衛星位置誤差。對流層誤差設計爲SQR(0.01),電離層設計爲0,衛星位置誤差再定位時求取。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章