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