GPS传感器噪声仿真
此示例演示如何使用GPS单元来模拟GNSS传感器添加到位置和速度输入的噪声。
模型描述
该模型通过将X、Y和Z坐标(位置和速度)的值生成为单独的正弦信号来定义轨迹,并使用Mux块将它们组合起来。
由于GNSS(GPS)单元需要离散信号,位置和速度矢量通过速率转换块,然后才进入GPS单元的位置和速度端口的输入。 除垂直位置精度**参数外,GPS单元的所有参数均保持不变,该参数设置为1.5m以匹配轨迹尺度。
让我们打开这个模型:
In [ ]:
cd(@__DIR__) # 转到带有示例的文件夹
engee.open("simulate-gps-sensor-noise.engee");
该模型有一个Engee功能块,它实现了将真实位置的参数从地心坐标系转换为大地坐标系的代码。
让我们启动模型:
In [ ]:
data = engee.run("simulate-gps-sensor-noise");
让我们将GPS单元的输出信号与信号的真实值进行比较。
In [ ]:
plot(
plot( data["真相。Shir/Dol"].time,
[first.(data["真相。Shir/Dol"].value) last.(data["真相。Shir/Dol"].value) first.(data["GNSS Shir/Dol"].value) last.(data["GNSS Shir/Dol"].value)],
lw=2, titlefont=font(11), guidesfont=font(8),
xlabel="时间,从", ylabel="学位", title="经纬度(True和GNSS)"),
plot( data["真相。身高"].time, [data["真相。身高"].value first.(data["GNSS高度"].value)],
lw=2, titlefont=font(11), guidesfont=font(8),
xlabel="时间,从", ylabel="身高,m", title="高度(真实和GNSS)" ),
layout=(1,2), size=(900,400), leg=false
)
Out[0]:
我们还将研究速度测量。:
In [ ]:
plot(
plot(data["】纬?"].time, first.(data["】纬?"].value), title="GPS课程", lw=2, titlefont=font(11), guidesfont=font(8), xlabel="时间,从", ylabel="学位"),
plot(data["速度"].time, [reduce(vcat, data["速度"].value) reduce(vcat, data["真相。速度"].value)], title="速度(真实和根据GNSS)", lw=2, titlefont=font(11), guidesfont=font(8), xlabel="时间,从", ylabel="米每秒"),
plot(data["地面速度"].time, first.(data["地面速度"].value), title="地面速度根据GNSS", lw=2, titlefont=font(11), guidesfont=font(8), xlabel="时间,从", ylabel="米每秒"),
layout=(1,3), size=(900,300), leg=false
)
Out[0]:
结论
我们检查了GPS单元的操作,并确保可以向模型中添加复杂的误差模型并计算嘈杂的轨迹指标。