GNSS定位 六月 19, 2023

GNSS信号质量分类

文章字数 12k 阅读约需 11 mins. 阅读次数 0

数据集

AR:天线重置
LT:长时间
UT:树下
WB:墙边
GGA格式:
GPS天内秒,参考X坐标,参考Y坐标,参考Z坐标,定位解状态

训练使用的数据集

#1: 230319_UT_AR  // 树下+天线重置
#2: 230319_UT_LT  // 树下+长时间
#3: 230403_WB_AR  // 墙边+天线重置
#4: 230423_WB_LT  // 墙边+长时间

训练一共四份数据,分别为:树下+天线重置树下+长时间墙边+天线重置墙边+长时间

对应:#1: 230319_UT_AR#2: 230319_UT_LT#3: 230403_WB_AR#4: 230423_WB_LT

模型结构

网络结构

  1. 网络共五层,输入与输出层各一,隐藏层三层
  2. 数据类型使用double,防止精度丢失
  3. 除了输出层,其余层使用PReLU激活函数,防止神经元死亡与梯度消失
  4. 加入了LSTM层,由于定位是与时间序列有关的数据,因此使用LSTM会有更好的结果

优化器

optimizer = tf.keras.optimizers.Adam(learning_rate=0.001)  # noqa

学习率保持默认,默认的学习率得到的误差更小

损失函数

由于信号分类属于二分类,因此使用Cross Entropy Loss Function(交叉熵损失函数)

模型训练结果

特征

使用三份数据特征:

  1. 包含通过观测值计算得到的残差:

    高度角(度),方位角(度),
    L1/L2伪距观测值,L1/L2伪距,L1/L2载噪比,L1/L2伪距定位残差,
    L1/L2计算残差,L1/L2载波相位,L1/L2载波相位b,L1/L2波长,L1/L2钟差,
    定位解状态。

  2. 去除通过观测值算出来的残差:

    高度角(度),方位角(度),
    L1/L2伪距观测值,L1/L2伪距,L1/L2载噪比,L1/L2伪距定位残差,
    L1/L2载波相位,L1/L2载波相位b,L1/L2波长,L1/L2钟差,
    定位解状态。

  3. 使用计算得到的多路径:

    卫星PRN,历元,高度角(度),
    L1_MISS,L2_MISS,L1计算残差,L2计算残差,
    L1钟差,L2钟差,
    mp1,mp2,mw,gf

  4. 使用计算得到的多路径并去除通过观测值计算得到的残差:

    卫星PRN,历元,高度角(度),
    L1_MISS,L2_MISS,
    L1钟差,L2钟差,
    mp1,mp2,mw,gf

训练

# train : test = 8 : 2
train, test = train_test_split(all_features, test_size=0.2)  # noqa
# train : val = 8 : 2
# train : val : test = 6.4 : 1.6 : 2
train, val = train_test_split(train, test_size=0.2)  # noqa

全部数据集预测

使用上述训练集的模型交叉预测:

230319_UT_AR:

使用230319_UT_AR模型:

包含通过观测值计算得到的残差: 
Loss: 0.059710733351820165
Error_count: 34237.0

去除通过观测值算出来的残差: 
Loss: 0.07317124215835544
Error_count: 41955.0

使用计算得到的多路径: 
Loss: 0.06884078823679195
Error_count: 39472.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.08449530068139684
Error_count: 48448.0

使用230319_UT_LT模型:

包含通过观测值计算得到的残差: 
Loss: 0.1486481065818365
Error_count: 85232.0

去除通过观测值算出来的残差: 
Loss: 0.17615512198695107
Error_count: 101004.0

使用计算得到的多路径: 
Loss: 0.17865084472628148
Error_count: 102435.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.30101450867747626
Error_count: 172596.0

使用230403_WB_AR模型:

包含通过观测值计算得到的残差: 
Loss: 0.11931856828182308
Error_count: 68415.0

去除通过观测值算出来的残差: 
Loss: 0.1254384083183782
Error_count: 71924.0

使用计算得到的多路径: 
Loss: 0.37846388352596266
Error_count: 217004.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.3995964289015506
Error_count: 229121.0

使用230423_WB_LT模型:

包含通过观测值计算得到的残差: 
Loss: 0.1981631759685096
Error_count: 113623.0

去除通过观测值算出来的残差: 
Loss: 0.16300854056901085
Error_count: 93466.0

使用计算得到的多路径: 
Loss: 0.29105429025377544
Error_count: 166885.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.4213986860394746
Error_count: 241622.0

图形化结果



230319_UT_LT:

使用230319_UT_AR模型:

包含通过观测值计算得到的残差: 
Loss: 0.09727932623826732
Error_count: 31279.0

去除通过观测值算出来的残差: 
Loss: 0.10940853025147883
Error_count: 35179.0

使用计算得到的多路径: 
Loss: 0.46572411347958875
Error_count: 149748.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.25670682780884374
Error_count: 82541.0

使用230319_UT_LT模型:

包含通过观测值计算得到的残差: 
Loss: 0.06156348549782607
Error_count: 19795.0

去除通过观测值算出来的残差: 
Loss: 0.06045008677045948
Error_count: 19437.0

使用计算得到的多路径: 
Loss: 0.056481660021521565
Error_count: 18161.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.06345439730296264
Error_count: 20403.0

使用230403_WB_AR模型:

包含通过观测值计算得到的残差: 
Loss: 0.13624206159147598
Error_count: 43807.0

去除通过观测值算出来的残差: 
Loss: 0.11852720362756501
Error_count: 38111.0

使用计算得到的多路径: 
Loss: 0.42571640054985727
Error_count: 136884.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.4114132699712009
Error_count: 132285.0

使用230423_WB_LT模型:

包含通过观测值计算得到的残差: 
Loss: 0.21944218101748472
Error_count: 70559.0

去除通过观测值算出来的残差: 
Loss: 0.17033756507784462
Error_count: 54770.0

使用计算得到的多路径: 
Loss: 0.33871890725202
Error_count: 108911.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.34915002270338186
Error_count: 112265.0

图形化结果



230403_WB_AR:

使用230319_UT_AR模型:

包含通过观测值计算得到的残差: 
Loss: 0.11788184992896124
Error_count: 44389.0

去除通过观测值算出来的残差: 
Loss: 0.1118614810585439
Error_count: 42122.0

使用计算得到的多路径: 
Loss: 0.5878530360770671
Error_count: 221359.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.27059792062248544
Error_count: 101895.0

使用230319_UT_LT模型:

包含通过观测值计算得到的残差: 
Loss: 0.12306037630625008
Error_count: 46339.0

去除通过观测值算出来的残差: 
Loss: 0.109601519034404
Error_count: 41271.0

使用计算得到的多路径: 
Loss: 0.33484882686460143
Error_count: 126089.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.26549375257266533
Error_count: 99973.0

使用230403_WB_AR模型:

包含通过观测值计算得到的残差: 
Loss: 0.06409422262352113
Error_count: 24135.0

去除通过观测值算出来的残差: 
Loss: 0.07083958518675891
Error_count: 26675.0

使用计算得到的多路径: 
Loss: 0.056615899403805556
Error_count: 21319.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.06013995299491442
Error_count: 22646.0

使用230423_WB_LT模型:

包含通过观测值计算得到的残差: 
Loss: 0.18423072326751735
Error_count: 69373.0

去除通过观测值算出来的残差: 
Loss: 0.14564937392943925
Error_count: 54845.0

使用计算得到的多路径: 
Loss: 0.19619444702633082
Error_count: 73878.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.17943461114578216
Error_count: 67567.0

图形化结果



230423_WB_LT:

使用230319_UT_AR模型:

包含通过观测值计算得到的残差: 
Loss: 0.11707758944834289
Error_count: 47951.0

去除通过观测值算出来的残差: 
Loss: 0.13292363135611843
Error_count: 54441.0

使用计算得到的多路径: 
Loss: 0.4971945913479146
Error_count: 203634.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.2674172172494787
Error_count: 109525.0

使用230319_UT_LT模型:

包含通过观测值计算得到的残差: 
Loss: 0.13017926292709844
Error_count: 53317.0

去除通过观测值算出来的残差: 
Loss: 0.16972600264670407
Error_count: 69514.0

使用计算得到的多路径: 
Loss: 0.4036174877797473
Error_count: 165308.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.3407533828491623
Error_count: 139561.0

使用230403_WB_AR模型:

包含通过观测值计算得到的残差: 
Loss: 0.13575101448850735
Error_count: 55599.0

去除通过观测值算出来的残差: 
Loss: 0.11610582909714186
Error_count: 47553.0

使用计算得到的多路径: 
Loss: 0.18413637850798162
Error_count: 75416.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.18763520409408985
Error_count: 76849.0

使用230423_WB_LT模型:

包含通过观测值计算得到的残差: 
Loss: 0.0792717168905622
Error_count: 32467.0

去除通过观测值算出来的残差: 
Loss: 0.07693998036946426
Error_count: 31512.0

使用计算得到的多路径: 
Loss: 0.07547501501589488
Error_count: 30912.0

使用计算得到的多路径并去除通过观测值计算得到的残差:
Loss: 0.07393191817680178
Error_count: 30280.0

图形化结果



结果描述

  1. 在都使用计算残差时,使用原始观测值的数据时表现比使用mp1/mp2的表现要好。
  2. 在都不使用计算残差时,使用原始观测值的数据时表现比使用mp1/mp2的表现要好。
  3. 计算残差使用与否不能发现对预测的明显优化,表现为部分分组使用计算残差更好,其余的使用后更差。总体趋势是不使用计算残差的数据组表现更好

初步结论

  1. 使用计算残差表现好,推测是因为计算坐标足够准确,这个情况下是计算残差辅助预测。
  2. 去除计算残差后表现更好,推测是因为计算坐标误差很大,这个情况下计算残差拖累了预测。
  3. mp1/mp2在使用其他模型时表现极差,推测是因为特征不足,发生了过拟合,需要增加训练特征。

下一篇:
0%