主函數: pppos
1 申請變量,初始化標志位
2 更新狀態
狀態更新函數: udstate_ppp
1 位置更新
2 時鍾更新
3 對流層參數更新(如果配置為對流層參數估計模式)
4 電離層參數更新(如果配置為電離層參數估計模式)
5 更新L5接收機硬件延遲參數(如果頻點配置大於等於3,包含L5)
6 整周模糊度更新
PPP位置更新函數: udpos_ppp
1 如果是PMODE_PPP_FIXED模式,則直接初始化,用已知的固定點坐標
2 檢測狀態量的值,如果是首次進入,則進行位置和在台賦初值(spp的位置和速度信息 或者前一歷元的位置和速度信息??????)
(動態模式,則還需要額外對速度和加速度賦值)
3 如果是PMODE_PPP_STATIC 模式,狀態量不變,只更新p陣,賦初值
4 如果是PMODE_PPP_KINEMA模式,但是運動模型不是動態,則直接初始化位置和方差
5 F陣設置
6 狀態轉移
7 Q陣更新
PPP時鍾更新函數: udpos_ppp
1 循環遍歷每一模式
2 檢測是否為精密星歷EPHOPT_PREC(精密星歷的時間是基於gps時間,忽略系統間的偏差)
3 否則利用前一秒的結果,並考慮系統間時差信息
4 初始化時鍾信息和方差值
PPP對流層更新函數:udtrop_ppp
需要對對流層的模型估計做一個詳細的了解???
1 判斷狀態量是否為0,需要進行賦初值
(sbstropcorr 對應 TROPOPT_SBAS修正還是????)
(如果模型大於TROPOPT_ESTG,則賦初值不一致?????)
2 如果已經有初值,則直接更新p陣
(如果模型大於TROPOPT_ESTG,則P陣更新的方式不一致?????)
ppp電離層更新函數:udiono_ppp
1 檢測相位中斷是否超過門限,重置電離層參數
2 遍歷各個衛星的電離層參數:
3 如果檢測為0, 根據偽距計算電離層初值,並進行初始化
(用到ionmapf,ionosphere mapping function ????)
4 否則,根據高度角,更新P陣
ppp硬件延遲參數更新函數:uddcb_ppp
1 如果檢測為0,直接賦初值
(認為是穩定的,沒有噪聲驅動,固定的)
PPP整周模糊度更新函數:udbias_ppp
1 檢測邊界時間翻轉(?????)
2 清除衛星周跳標志位
3 檢測周跳:LLI
4 檢測周跳:幾何無關gf
5 檢測周跳:MW組合
6 前一時刻位置轉化:ECEF->LLA
7 遍歷各個頻點,更新模糊度量:
8 遍歷各個衛星,如果檢測到相位中斷大於門限,或單歷元模式,或檢測到
時鍾跳變,則重新賦值模糊度參數
9 遍歷各個衛星:
9.1 觀測量量修正,得到修正后的觀測量和修正后的無電離層組合觀測量(天線相位中心修正, 相位纏繞修正,衛星硬件延遲修正)
9.2 無電離層組合,bias賦值
9.3 否則,根據單個觀測量的載波相位,減去偽距,在補償根據雙頻偽距估算出來的電離層延遲,得到模糊度初值。
9.4 檢測值是否有效,是否周跳,如果正常,統計初始模糊度和狀態量之間的整體偏差(反映載波相位和偽距的一致性)
9 根據9.4得到的計算結果,判斷如果滿足補償門限,進行補償(門限值挺大的??)
10 遍歷各個衛星,進行P陣更新
(如果狀態量無效,或有周跳發生,則用bias進行重置)
重置模糊度固定標志位
LLI周跳檢測函數:detslp_ll
gf周跳檢測函數:detslp_gf
根據雙頻觀測量相減,剩余電離層殘差以及整周模糊度,穩定項,前后做差檢測周跳
mw周跳檢測函數:detslp_mw
主要受偽距噪聲和多路徑的影響