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方向误差统计:
PPPH源代码中的一些bug及修复_第1张图片
PPPH源代码中的一些bug及修复_第2张图片
收敛后的最后历元坐标与已知IGS坐标做差,XYZ三个方向偏差分别为:
X: 0.8mm Y: -0.2mm Z: -3.6mm

你可能感兴趣的:(PPP)