GPS传感器噪声仿真
此示例演示如何使用GPS单元来模拟GNSS传感器添加到位置和速度输入的噪声。
模型描述
该模型通过将X、Y和Z坐标(位置和速度)的值生成为单独的正弦信号来定义轨迹,并使用Mux块将它们组合起来。
由于GNSS(GPS)单元需要离散信号,位置和速度矢量通过速率转换块,然后才进入GPS单元的位置和速度端口的输入。 除垂直位置精度**参数外,GPS单元的所有参数均保持不变,该参数设置为1.5m以匹配轨迹尺度。
让我们打开这个模型:
In [ ]:
cd(@__DIR__) # 转到带有示例的文件夹
engee.open("simulate-gps-sensor-noise.engee");
.png)
该模型有一个AnyMath功能块,它实现了将真实位置的参数从地心坐标系转换为大地坐标系的代码。
让我们启动模型:
In [ ]:
data = engee.run("simulate-gps-sensor-noise");
让我们将GPS单元的输出信号与信号的真实值进行比较。
In [ ]:
plot(
plot( data["Истин.Шир/Дол"].time,
[first.(data["Истин.Шир/Дол"].value) last.(data["Истин.Шир/Дол"].value) first.(data["ГНСС Шир/Дол"].value) last.(data["ГНСС Шир/Дол"].value)],
lw=2, titlefont=font(11), guidesfont=font(8),
xlabel="时间,从", ylabel="学位", title="经纬度(True和GNSS)"),
plot( data["Истин.Высота"].time, [data["Истин.Высота"].value first.(data["ГНСС Высота"].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单元的操作,并确保可以向模型中添加复杂的误差模型并计算嘈杂的轨迹指标。