主要内容

GNSS仿真概述

全球导航卫星系统(GNSS)模拟生成接收机位置估计。这些接收机的位置估计来自GPS和GNSS传感器模型gpsSensor而且gnssSensor对象。监控岗位评估的状态gnssSensor使用稀释精度输出和比较可用的卫星数量。

仿真参数

指定GNSS模拟中使用的参数:

  • GNSS接收机采样率

  • 局部导航参考系

  • 以纬度、经度和海拔(LLA)坐标表示的地球上的位置

  • 要模拟的样本数量

Fs = 1;refFrame =“内德”;Lla0 = [42.2825 -71.343 53.0352];N = 100;

创建一个静止传感器的轨迹。

pos = 0 (N, 3);vel = 0 (N, 3);time = (0:N-1) ./ Fs;

传感器模型创建

创建GNSS仿真对象,gpsSensor而且gnssSensor使用相同的初始参数。

gps = gpsSensor(“SampleRate”Fs,“ReferenceLocation”lla0,...“ReferenceFrame”, refFrame);gnss = gnssSensor(“SampleRate”Fs,“ReferenceLocation”lla0,...“ReferenceFrame”, refFrame);

模拟使用gpsSensor

使用GPS传感器从固定接收器生成输出。在LLA坐标中可视化位置和每个方向的速度。

生成输出。[llaGPS, velGPS] = gps(pos, vel);可视化位置。图subplot(3,1,1) plot(time, llaGPS(:,1)) title(“纬度”) ylabel (“度”)包含(“年代”) subplot(3,1,2) plot(时间,llaGPS(:,2))“经”) ylabel (“度”)包含(“年代”) subplot(3,1,3) plot(time, llaGPS(:,3))“高度”) ylabel (“米”)包含(“年代”

图中包含3个轴对象。标题为Latitude的Axes对象1包含一个类型为line的对象。标题为Longitude的Axes对象2包含一个line类型的对象。标题为Altitude的坐标轴对象3包含一个类型为line的对象。

可视化速度。图表(时间,velGPS)“速度”)传说(“X”“Y”“Z”) ylabel (“米/秒”)包含(“年代”

图中包含一个轴对象。标题为Velocity的axis对象包含3个类型为line的对象。这些物体代表X Y Z。

模拟使用gnssSensor

使用GNSS传感器从固定接收器生成输出。可视化位置和速度,并注意模拟中的差异。

生成输出。[llaGNSS, velGNSS] = gnss(pos, vel);可视化位置。图subplot(3,1,1) plot(time, llaGNSS(:,1)) title(“纬度”) ylabel (“度”)包含(“年代”) subplot(3,1,2) plot(时间,llaGNSS(:,2))“经”) ylabel (“度”)包含(“年代”) subplot(3,1,3) plot(time, llaGNSS(:,3))“高度”) ylabel (“米”)包含(“年代”

图中包含3个轴对象。标题为Latitude的Axes对象1包含一个类型为line的对象。标题为Longitude的Axes对象2包含一个line类型的对象。标题为Altitude的坐标轴对象3包含一个类型为line的对象。

可视化速度。图(时间,velGNSS)“速度”)传说(“X”“Y”“Z”) ylabel (“米/秒”)包含(“年代”

图中包含一个轴对象。标题为Velocity的axis对象包含3个类型为line的对象。这些物体代表X Y Z。

精度的稀释

gnssSensor对象具有更高的逼真度模拟相比gpsSensor.例如,gnssSensor对象使用模拟卫星位置来估计接收机的位置。这意味着水平精度稀释(HDOP)和垂直精度稀释(VDOP)可以与位置估计一起报告。这些值表明基于卫星几何结构的位置估计有多精确。数值越小,估计越精确。

设置RNG种子以重现结果。rng (“默认”%指定模拟开始时间。initTime = datetime(2020, 4,20,18,10,0,“时区”“美国/ New_York”);创建GNSS接收机模型。gnss = gnssSensor(“SampleRate”Fs,“ReferenceLocation”lla0,...“ReferenceFrame”refFrame,“InitialTime”, initTime);获取接收方状态。[~, ~, status] = gnss(pos, vel);disp(状态(1))
卫星方位:[7x1 double]卫星仰角:[7x1 double] HDOP: 1.1290 VDOP: 1.9035

在整个模拟过程中查看HDOP。HDOP下降了。这意味着卫星的几何形状发生了变化。

hops = vertcat(status.HDOP);图plot(时间,顶点(状态。hdop))“HDOP”) ylabel (“米”)包含(“年代”

图中包含一个轴对象。标题为HDOP的axes对象包含一个类型为line的对象。

验证卫星几何形状已经改变。找到HDOP下降的指数,看看这是否与视野中卫星数量的变化相对应。的numSats变量从7增加到8。

中变化的期望样本指数观测卫星的百分比。[~, satChangeIdx] = max(abs(diff(hops)));可视化卫星的几何形状之前HDOP变化百分比。satAz =状态(satChangeIdx).卫星方位角;satEl = status(satChangeIdx).卫星海拔;numSats = numel(satAz);skyplot (satAz satEl);标题(sprintf (查看卫星:%d\nHDOP: %.4f...numSats hdops (satChangeIdx)))

图包含一个skyplot类型的对象。

可视化卫星几何后HDOP变化百分比。satAz = status(satChangeIdx+1).卫星方位角;satEl = status(satChangeIdx+1). satiteelevation;numSats = numel(satAz);skyplot (satAz satEl);标题(sprintf (查看卫星:%d\nHDOP: %.4f...numSats hdops (satChangeIdx + 1)))

图包含一个skyplot类型的对象。

当使用卡尔曼滤波器将GNSS接收机位置估计值与其他传感器测量值相结合时,HDOP和VDOP值可作为测量协方差矩阵中的对角线元素。

将HDOP和VDOP转换为测量协方差矩阵。hdop = status(1).HDOP;vdop = status(1).VDOP;measCov = diag([hdop。^ 2/2, hdop。^ 2/2, vdop。^ 2]);disp (measCov)
0.6373 0 0 0 0.6373 0 0 0 3.6233