主要内容

gpsSensor

GPS接收机仿真模型

描述

gpsSensor系统对象™为全球定位系统(GPS)接收器的数据输出建模。该对象将位置噪声建模为一阶高斯马尔可夫过程,其中西格玛值指定在HorizontalPositionAccuracyVerticalPositionAccuracy属性。对象将速度噪声建模为高斯噪声,其西格玛值指定在VelocityAccuracy财产。

为GPS接收器建模:

  1. 创建gpsSensor对象并设置其属性。

  2. 调用带有参数的对象,就像调用函数一样。

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

创建

描述

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

  • 纬度:0oN

  • 经度:0oE

  • 高度:0米

全球定位系统(GPS)= gpsSensor (“ReferenceFrame”射频)返回一个gpsSensor计算相对于参考帧的全球定位系统接收器读数的系统对象射频.指定射频作为NED的(North-East-Down)或“ENU表示”(East-North-Up)。默认值为NED的

例子

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

属性

全部展开

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

如果属性是可调,您可以随时更改其值。

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

接收器的更新速率(以Hz为单位),指定为正实标量。

数据类型:|

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

数据类型:|

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

  • 如果将属性设置为“本地”,然后需要指定truePosition输入为相对于局部导航帧的笛卡尔坐标,其原点是固定的并由ReferenceLcation财产。此外,当您指定trueVelocity输入,你需要指定它与这个本地导航框相关。

  • 如果将属性设置为“大地”,然后需要指定truePosition输入为纬度、经度和高度的大地坐标。此外,当您指定trueVelocity输入,您需要指定它与导航帧(NED或ENU)的原点对应的truePosition输入。当将属性设置为“大地”,gpsSensor忽略了对象ReferenceLocation财产。

数据类型:特征向量

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

可调:是的

数据类型:|

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

可调:是的

数据类型:|

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

可调:是的

数据类型:|

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

衰减因子为0将全局位置噪声建模为白噪声过程。衰减因子1将全局位置噪声建模为随机游走过程。

可调:是的

数据类型:|

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

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

  • “与种子mt19937ar”-使用mt19937ar算法和指定的种子生成随机数种子财产。

数据类型:字符|字符串

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

依赖关系

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

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

使用

描述

例子

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

输入参数

全部展开

GPS接收器在导航坐标系中的位置,指定为实有限值N3矩阵。N是当前帧中的样本数。

  • PositionInputFormat属性指定为“本地”,指定truePosition作为原点固定在的局部导航坐标系的笛卡尔坐标ReferenceLocation

  • PositionInputFormat属性指定为“大地”,指定truePosition作为大地坐标(经度纬度高度)纬度而且经度在米。高度为WGS84椭球模型以上高度,单位为米。

数据类型:|

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

  • PositionInputFormat属性指定为“本地”,指定trueVelocity相对于原点固定在的本地导航帧(NED或ENU)ReferenceLocation

  • PositionInputFormat属性指定为“大地”,指定trueVelocity相对于导航帧(NED或ENU),其原点对应于truePosition输入。

数据类型:|

输出参数

全部展开

GPS接收器在大地纬度、经度和高度(LLA)坐标系中的位置,返回为实有限值N3数组。纬度和经度用度数表示,北方和东方为正数。海拔以米为单位。

N是当前帧中的样本数。

数据类型:|

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

  • PositionInputFormat属性指定为“本地”,返回速度相对于原点固定为的局部导航帧ReferenceLocation

  • PositionInputFormat属性指定为“大地”,返回速度相对于导航帧(NED或ENU),其原点对应于位置输出。

数据类型:|

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

N是当前帧中的样本数。

数据类型:|

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

N是当前帧中的样本数。

数据类型:|

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放名为obj,使用以下语法:

发行版(obj)

全部展开

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

例子

全部折叠

创建一个gpsSensor系统对象™用于对GPS接收器数据建模。假设典型的1 Hz采样率和1000秒的模拟时间。根据MA (USA) Natick的纬度、经度和海拔高度(LLA)定义参考位置。通过用零指定真实位置和速度来定义传感器为静止的。

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

调用全球定位系统(gps)与指定的truePosition而且trueVelocity模拟静止平台接收GPS数据。

位置= gps (truePosition trueVelocity);

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

t = (0: (numSamples-1)) / fs;Subplot (3,1,1) plot(t, position(:,1),...t的(numSamples) * refLoc(1)标题(“GPS传感器读数”) ylabel (的纬度(度)) subplot(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 (的高度(米))包含(“时间(s)”)

图中包含3个轴对象。标题为GPS Sensor reads的axis对象1包含1001个类型为line的对象。Axes对象2包含1001个line类型的对象。Axes对象3包含1001个line类型的对象。

位置读数有噪声控制HorizontalPositionAccuracyVerticalPositionAccuracyVelocityAccuracy,DecayFactor.的DecayFactor属性控制噪声模型中的漂移。默认情况下,DecayFactor被设置为0.999,近似于随机游走过程。观察其效果DecayFactor属性:

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

  2. DecayFactor0.5

  3. 调用全球定位系统(gps)用变量指定一个固定的位置。

  4. 策划的结果。

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

重置(gps) gps。DecayFactor= 0.5; position = gps(truePosition,trueVelocity); subplot(3, 1, 1) plot(t, position(:,1),...t的(numSamples) * refLoc(1)标题(GPS传感器读数-衰减系数= 0.5) ylabel (的纬度(度)) subplot(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 (的高度(米))包含(“时间(s)”)

图中包含3个轴对象。标题为GPS传感器读数-衰减因子= 0.5的axis对象1包含1001个类型为line的对象。Axes对象2包含1001个line类型的对象。Axes对象3包含1001个line类型的对象。

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

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

全球定位系统(GPS) = gpsSensor
GPS = gpsSensor with properties: SampleRate: 1 Hz PositionInputFormat: 'Local' ReferenceLocation: [0 0 0] [deg deg m] HorizontalPositionAccuracy: 1.6 m VerticalPositionAccuracy: 3 m VelocityAccuracy: 0.1 m/s RandomStream: 'Global stream' DecayFactor: 0.999

创建矩阵来描述在NED坐标系中平台的位置和速度。平台从静止位置开始,在60秒内加速到60米/秒的东北方向,然后在2秒内垂直加速到2米/秒,然后以2米/秒的速度上升,持续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)包含(“时间(s)”);ylabel (“当然精度(度)”)

图中包含2个轴对象。axis对象1的标题为“Groundspeed and Course Accuracy Relationship Between Groundspeed and Course Accuracy”,包含一个类型为line的对象。Axes对象2包含一个类型为line的对象。

模拟从纳蒂克市到波士顿的轨迹接收到的GPS数据。

定义Natick, MA USA和Boston, MA USA的十进位纬度和经度。为简单起见,将两个位置的高度设置为零。

NatickLLA = [42.27752809999999, -71.34680909999997, 0];BostonLLA = [42.3600825, -71.05888010000001, 0];

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

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

创建一个gpsSensor对象为平台建模接收GPS数据。设置HorizontalPositionalAccuracy25DecayFactor0.25为了强调噪音。设置ReferenceLocation到LLA的Natick坐标。

全球定位系统(GPS) = gpsSensor (...“HorizontalPositionAccuracy”25岁的...“DecayFactor”, 0.25,...“SampleRate”fs,...“ReferenceLocation”, NatickLLA);

打开一个图,画出纳蒂克和波士顿在LLA的位置。为了简单,忽略海拔。

在循环中,调用gpsSensor对象与地面真实轨迹,以模拟接收到的GPS数据。绘制地面真实轨迹和接收到的GPS数据模型。

图(1)情节(NatickLLA (1) NatickLLA (2),“柯”...BostonLLA BostonLLA (1) (2),“kx”)包含(的纬度(度)) ylabel (的经度(度))标题(“纳蒂克到波士顿轨迹的GPS传感器数据”)举行~isDone(轨迹)[truePositionNED,~,trueVelocityNED] =轨迹();reportedPositionLLA = GPS (truePositionNED trueVelocityNED);图(1)情节(reportedPositionLLA (: 1), reportedPositionLLA (:, 2),“r”。)结束

图中包含一个axes对象。标题为GPS Sensor Data for Natick to Boston弹道的坐标轴对象包含122个类型为直线的对象。

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

发布(GPS)发布(轨迹)

扩展功能

版本历史

介绍了R2019b

另请参阅

对象

Baidu
map