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 (“米”)包含(“年代”)
可视化速度。图表(时间,velGPS)“速度”)传说(“X”,“Y”,“Z”) ylabel (“米/秒”)包含(“年代”)
模拟使用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 (“米”)包含(“年代”)
可视化速度。图(时间,velGNSS)“速度”)传说(“X”,“Y”,“Z”) ylabel (“米/秒”)包含(“年代”)
精度的稀释
的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下降的指数,看看这是否与视野中卫星数量的变化相对应。的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)))
可视化卫星几何后HDOP变化百分比。satAz = status(satChangeIdx+1).卫星方位角;satEl = status(satChangeIdx+1). satiteelevation;numSats = numel(satAz);skyplot (satAz satEl);标题(sprintf (查看卫星:%d\nHDOP: %.4f,...numSats hdops (satChangeIdx + 1)))
当使用卡尔曼滤波器将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