PPPH源代碼中的一些bug及修復

PPPH是Berkay Bahadur基於MATLAB編寫的多系統GNSS事後精密定位及分析軟件。既支持圖形界面(官方文檔中宣稱需要matlab2016a及以上版本,本人2016a沒成功,直接使用matlab2018a)也可以使用命令行運行,非常方便。,最近調試過程中發現一些類似bug,導致解算的樣本數據精度不理想。現列舉bug如下,望各位大神能批評指正。
一 data_hand.m文件中:
第10行 後一天軌道文件名錯誤
原代碼:

if ~isempty(files.orbitb) && ~isempty(files.orbitb)

修改後:

 if ~isempty(files.orbitb) && ~isempty(files.orbita)

二 cs_detect.m文件中:
第65行 GF組合周跳探測時第二頻率的波長錯誤
原代碼: A = [1 -1;wavl(k,1) -wavl(k,1)];
修改後: A = [1 -1;wavl(k,1) -wavl(k,2)];
三 outlier.m文件中:
第30行 二階多項式擬合周跳時,沒有考慮擬合點個數小於3
增加如下代碼:

  if(ran<3)
      data.obs.st(st:fn,k) = 0;
      break;
  end

第36行 計算單位權中誤差時冗餘度錯誤
原代碼:

 rmse = sqrt(sum(V.^2)/ran);

修改後:

rmse = sqrt(sum(V.^2)/(ran-3));

四 nmodel.m文件中:
第151行:波長索引錯誤
原代碼:

model(t,20) = ((wind_up(r_xyz,s_xyz,sun_xyz,prev))/2/pi)*wavl(k,1);

修改後:

model(t,20) = ((wind_up(r_xyz,s_xyz,sun_xyz,prev))/2/pi)*wavl(k,2);

五 sat_apc.m文件中
第9行 計算衛星天線相位中心改正時,轉換矩陣中y方向餘弦j公式錯誤
原代碼:

j   = cross(k,e);

修改後:

j = cross(k,e)./norm(cross(k,e));

修改後的軟件採用單GPS靜態模式處理樣本數據(ISTA00TUR_R_20171910000_01D_30S_MO.17o)的結果與IGS天解座標做差比較。
收斂後的NEU方向誤差統計:
在這裏插入圖片描述
在這裏插入圖片描述
收斂後的最後曆元座標與已知IGS座標做差,XYZ三個方向偏差分別爲:
X: 0.8mm Y: -0.2mm Z: -3.6mm

發佈了8 篇原創文章 · 獲贊 9 · 訪問量 3380
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章