主要内容

GPS传感器

GPS接收机仿真模型

描述

GPS传感器系统对象™ 对全球定位系统(GPS)接收器输出的数据进行建模。

要为GPS接收器建模,请执行以下操作:

  1. 创建GPS传感器对象,并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

全球定位系统(GPS)= gpsSensor返回一个GPS传感器基于局部位置和速度输入信号计算全球定位系统接收读数的系统对象。大地坐标的默认参考位置是

  • 纬度:0oN

  • 经度:0oE

  • 高度:0米

全球定位系统(GPS)=GPS传感器(“ReferenceFrame”射频返回一个GPS传感器计算相对于参考坐标系的全球定位系统接收机读数的系统对象射频.指定射频作为NED的(东北向下)或‘ENU’(East-North-Up)。默认值为NED的

例子

全球定位系统(GPS) = gpsSensor (___名称,值每个属性集的名字到指定的价值.未指定的属性具有默认值。

属性

全部展开

除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放函数将解锁它们。

如果一个属性是可调,您可以随时更改它的值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计

接收端更新速率(Hz),指定为正实标量。

数据类型:|

参考位置,在大地坐标(纬度、经度和海拔)中指定为3元素行向量。高度是参考椭球模型WGS84之上的高度。参考位置的单位是[度米]。度数格式为十进制(DD)。

数据类型:|

位置坐标输入格式,指定为“本地”“大地测量学”

  • 如果将属性设置为“本地”,则需要指定真实位置作为本地导航框架的笛卡尔坐标输入,其原点是固定的,并由指称所有物此外,当您指定真速度输入时,需要为此本地导航框指定它。

  • 如果将属性设置为“大地测量学”,则需要指定真实位置输入为纬度、经度和高度的大地坐标。此外,当您指定真速度输入,您需要根据导航框架(NED或ENU)指定它,导航框架的原点对应于真实位置输入。将属性设置为“大地测量学”,GPS传感器忽略了对象ReferenceLocation财产。

数据类型:特征向量

水平位置精度,以米为单位,指定为非负实标量。水平位置精度是指在水平位置测量中噪声的标准偏差。

可调:是的

数据类型:|

垂直位置精度,以米为单位,指定为非负实标量。垂直位置精度是指垂直位置测量中噪声的标准差。

可调:是的

数据类型:|

以米/秒为单位的速度精度,指定为非负实标量。速度精度指定速度测量中噪声的标准偏差。

可调:是的

数据类型:|

全局位置噪声衰减因子,指定为[0,1]范围内的标量。

衰减系数为0的模型将全局位置噪声视为白噪声过程。衰减因子1将全局位置噪声建模为一个随机行走过程。

可调:是的

数据类型:|

随机数源,指定为字符向量或字符串:

  • “全球流”–使用当前全局随机数流生成随机数。

  • “带种子的mt19937ar”—使用mt19937ar算法生成随机数,种子由种子财产。

数据类型:烧焦|字符串

mt19937ar随机数生成器算法的初始种子,指定为非负整数标量。

依赖关系

要启用此属性,请设置RandomStream“带种子的mt19937ar”

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

用法

描述

例子

位置速度水平速度课程]=全球定位系统(真实位置真速度从位置和速度输入计算全球导航卫星系统接收器读数。

输入参数

全部展开

GPS接收机在导航坐标系中的位置,指定为实坐标系N-by-3矩阵。N是当前帧中的样本数。

  • 位置输入格式属性指定为“本地”具体说明turePosition作为相对于本地导航框架的笛卡尔坐标,其原点固定在ReferenceLocation

  • 位置输入格式属性指定为“大地测量学”具体说明turePosition作为大地坐标(经度、纬度、海拔)纬度经度在米。海拔高度是WGS84椭球体模型上方的高度,单位为米。

数据类型:|

GPS接收机在导航坐标系中的速度,单位为米/秒,指定为实有限值N-by-3矩阵。N是当前帧中的样本数。

  • 位置输入格式属性指定为“本地”具体说明真速度关于原点固定在的本地导航框(NED或ENU)ReferenceLocation

  • 位置输入格式属性指定为“大地测量学”具体说明真速度与导航框架(NED或ENU)有关,其原点对应于真实位置输入。

数据类型:|

输出参数

全部展开

GPS接收机在大地纬度、经度和高度(LLA)坐标系统中的位置,以实有限值返回N-by-3阵列。纬度和经度以度为单位,北方和东方为正。高度以米为单位。

N是当前帧中的样本数。

数据类型:|

GPS接收机在本地导航坐标系中的速度,单位为米/秒,返回为实有限值N3数组。N是当前帧中的样本数。

  • 位置输入格式属性指定为“本地”,返回速度相对于原点固定在的本地导航帧ReferenceLocation

  • 位置输入格式属性指定为“大地测量学”,返回的速度是相对于导航框架(NED或ENU),其原点对应于位置输出

数据类型:|

本地导航坐标系中GPS接收机的水平速度的大小(以米/秒为单位),返回为实有限值N1列向量。

N是当前帧中的样本数。

数据类型:|

GPS接收机在局部导航坐标系中的水平速度方向,以度数表示,返回为实有限N-0到360之间的值的by-1列。北对应360度,东对应90度。

N是当前帧中的样本数。

数据类型:|

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,请使用以下语法:

释放(obj)

全部展开

一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部崩溃

创建一个GPS传感器系统对象™ 为GPS接收机数据建模。假设典型的1 Hz采样率和1000秒模拟时间。根据马萨诸塞州纳蒂克的纬度、经度和海拔(LLA)定义参考位置。通过用零指定真实位置和速度,将传感器定义为静止。

fs = 1;时间= 1000;numSamples = * fs持续时间;refLoc = [42.2825 -71.343 53.0352];truePosition = 0 (numSamples, 3);trueVelocity = 0 (numSamples, 3);全球定位系统(gps) = gpsSensor (“SampleRate”,财政司司长,“ReferenceLocation”, refLoc);

呼叫全球定位系统(gps)与指定的真实位置真速度模拟接收固定平台的GPS数据。

位置=gps(真实位置、真实速度);

绘制位置的真实位置和GPS传感器读数。

t = (0: (numSamples-1)) / fs;Subplot (3,1,1) plot(t, position(:,1),...t、 一个(numSamples)*refLoc(1))标题(“GPS传感器读数”)伊拉贝尔(的纬度(度)子图(3,1,2)plot(t, position(:,2),...t的(numSamples) * refLoc (2)) ylabel (的经度(度)) subplot(3,1,3) plot(t, position(:,3),...t的(numSamples) * refLoc (3)) ylabel (的高度(米))xlabel(‘时间’

图中包含3个轴。标题为GPS传感器读数的轴1包含1001个line类型的对象。坐标轴2包含1001个line类型的对象。坐标轴3包含1001个line类型的对象。

位置读数有噪声,由控制HorizontalPositionAccuracyVerticalPositionAccuracy速度精度衰变因子这个衰变因子属性控制噪声模型中的漂移。默认情况下,衰变因子设置为0.999,近似于随机漫步过程。观察其效果衰变因子财产:

  1. 重置全球定位系统(gps)对象

  2. 衰变因子0.5

  3. 呼叫全球定位系统(gps)具有指定固定位置的变量。

  4. 绘制结果。

全球定位系统(GPS)位置读数现在围绕真实位置振荡。

重置(gps) gps。衰变因子= 0.5; position = gps(truePosition,trueVelocity); subplot(3, 1, 1) plot(t, position(:,1),...t、 一个(numSamples)*refLoc(1))标题('GPS传感器读数-衰减系数=0.5')伊拉贝尔(的纬度(度)子图(3,1,2)plot(t, position(:,2),...t的(numSamples) * refLoc (2)) ylabel (的经度(度)) subplot(3,1,3) plot(t, position(:,3),...t的(numSamples) * refLoc (3)) ylabel (的高度(米))xlabel(‘时间’

图中包含3个轴。标题为GPS传感器读数-衰减系数=0.5的轴1包含1001个线型对象。轴2包含1001个线型对象。轴3包含1001个线型对象。

随着地面速度的增加,GPS接收器实现了更大的航向精度。在本例中,您创建了一个GPS接收器模拟对象,并模拟从一个从静止位置加速的平台接收的数据。

创建一个默认的GPS传感器系统对象™用于建模GPS接收器返回的数据。

GPS=GPS传感器
GPS=GPS传感器及其属性:采样器:1 Hz位置输入格式:“本地”参考位置:[0 0][deg deg m]水平位置精度:1.6 m垂直位置精度:3 m速度精度:0.1 m/s随机流:“全局流”衰减因子:0.999

创建矩阵以描述NED坐标系中平台的位置和速度。平台从静止位置开始,在60秒内加速至东北60 m/s,然后在2秒内垂直加速至2 m/s,然后以2 m/s的速度再爬升8秒。假设速度恒定,例如速度是位置的简单导数。

时间= 70;numSamples = * GPS.SampleRate持续时间;课程= 45 *的(持续时间,1);水平速度=[(一60);60 * 1 (1)];Nvelocity =水平。*信德(课程);Evelocity =水平。* cosd(课程);Dvelocity = [0 (60, 1); 1; 2 * 1 (9,1)];NEDvelocity = [Nvelocity、Evelocity Dvelocity];Ndistance = cumsum (Nvelocity);Edistance = cumsum (Evelocity); Ddistance = cumsum(Dvelocity); NEDposition = [Ndistance,Edistance,Ddistance];

模型GPS测量数据调用全球定位系统(GPS)使用速度和位置矩阵创建对象。

[~, ~, groundspeedMeasurement courseMeasurement] = GPS (NEDposition NEDvelocity);

绘制地面速度以及真实航向与GPS模拟器返回的航向之间的差异。

随着地面速度的增加,航向的准确性也会增加。注意,在最后十秒速度的增加没有影响,因为额外的速度不在地平面上。

t = (0: numSamples-1) / GPS.SampleRate;次要情节(2,1,1)情节(t,水平速度);ylabel (‘速度(米/秒)’)头衔(“地面速度和航向精度之间的关系”) subplot(2,1,2) courseAccuracy = coursemmeasurement - course;情节(t, courseAccuracy)包含(‘时间’);伊莱贝尔(‘航向精度(度)’

图中包含2个轴。轴1(地面速度和航向精度之间的标题关系)包含一个line类型的对象。轴2包含一个line类型的对象。

模拟从马萨诸塞州纳蒂克市到马萨诸塞州波士顿的轨道期间接收到的GPS数据。

定义美国马萨诸塞州纳蒂克市和美国马萨诸塞州波士顿市的十进制纬度和经度。为简单起见,将这两个位置的高度设置为零。

纳蒂克拉=[42.2775280999999,-71.3468090999997,0];波士顿拉=[42.3600825,-71.0588800000001,0];

定义一个可以在20分钟内将站台从纳蒂克带到波士顿的动作。将本地NED坐标系的原点设置为Natick。创建一个航路点轨迹对象输出轨迹,每次10个样本。

fs = 1;时间= 60 * 20;轴承= 68;%度距离=25.39e3;%米distanceEast =距离*信德(轴承);distanceNorth =距离* cosd(轴承);NatickNED = (0, 0, 0);波士顿= (distanceNorth distanceEast 0);轨迹= waypointTrajectory (...“航路点”(NatickNED;波士顿),...“到达时间”,[0;持续时间],...“SamplesPerFrame”,10,...“SampleRate”fs);

创建一个GPS传感器对象为平台接收GPS数据建模。设定HorizontalPositionalAccuracy25衰变因子0.25强调噪音。设置ReferenceLocation在洛杉矶的纳蒂克坐标。

全球定位系统(GPS) = gpsSensor (...“水平定位精度”25岁的...“DecayFactor”, 0.25,...“SampleRate”,财政司司长,...“ReferenceLocation”,纳蒂奇拉);

打开图表,绘制出Natick和Boston在LLA的位置。简单起见,忽略高度。

在循环中,调用GPS传感器目标与地面真实轨道,以模拟接收的GPS数据。绘制地面真实轨迹和接收的GPS数据模型。

图(1)情节(NatickLLA (1) NatickLLA (2),“高”...BostonLLA BostonLLA (1) (2),“kx”)xlabel(的纬度(度))伊拉贝尔(的经度(度))头衔(“纳蒂克至波士顿轨道的GPS传感器数据”)持有在…上虽然~isDone(轨迹)[TruePositioned,~,trueVelocityNED]=轨迹();reportedPositionLLA=GPS(truePositionNED,trueVelocityNED);图(1)绘图(reportedPositionLLA(:,1),reportedPositionLLA(:,2),“r”。结束

图中包含一个轴。标题为“Natick至Boston轨迹GPS传感器数据”的轴包含122个line类型的对象。

作为最佳实践,在完成时释放系统对象。

发布(GPS)发布(轨迹)

扩展功能

另请参阅

对象

介绍了R2020b