主函數: 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
主要受偽距噪聲和多路徑的影響

