主要内容

gpsSensor

GPS接收机仿真模型

描述

gpsSensor系统对象™模型来自全球定位系统(GPS)接收器的数据输出。

要模拟GPS接收器:

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

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

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

创建

描述

全球定位系统= GPSSensor.返回A.gpsSensor基于本地位置和速度输入信号计算全局定位系统接收器读数的系统对象。大地测量坐标中的默认参考位置是

  • 纬度:0O.N

  • 经度:0O.E.

  • 高度:0米

全球定位系统= gpsSensor ('参考范围'射频返回A.gpsSensor系统对象,用于相对于参考帧读取全局定位系统接收器读取的系统对象射频.指定射频作为NED的(North-East-Down)或“ENU表示”(East-North-Up)。默认值为NED的

例子

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

属性

全部展开

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

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

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

Hz中接收器的更新率,指定为正实标量。

数据类型:|

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

数据类型:|

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

  • 如果将属性设置为“本地”,则需要指定truePosition作为笛卡尔坐标的输入,即关于本地导航框架的原点固定和定义ReferenceLcation财产。此外,当您指定时trueVelocity输入时,您需要根据这个本地导航框架指定它。

  • 如果将属性设置为“大地”,则需要指定truePosition输入作为纬度,经度和高度的大地坐标。此外,当您指定时trueVelocity输入,您需要根据导航框架(NED或ENU)指定它,导航框架的原点对应于truePosition输入。设置属性时“大地”, 这gpsSensor忽略了对象参考要求财产。

数据类型:特征向量

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

可调:是的

数据类型:|

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

可调:是的

数据类型:|

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

可调:是的

数据类型:|

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

将全球位置噪声绘制为白色噪声过程的衰减因子。一个衰变倍数为1型为全球位置噪声作为随机步行过程。

可调:是的

数据类型:|

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

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

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

数据类型:字符|字符串

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

依赖关系

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

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

使用

描述

例子

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

输入参数

全部展开

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

  • PositionInputFormat属性指定为“本地”,指定tureposition.作为相对于原点固定的局部导航坐标系的笛卡尔坐标参考要求

  • PositionInputFormat属性指定为“大地”,指定tureposition.作为大地坐标(经度、纬度、海拔)纬度经度是米。高度为WGS84椭球模型上方高度,单位为米。

数据类型:|

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

  • PositionInputFormat属性指定为“本地”,指定trueVelocity对于原点固定为的本地导航框架(NED或ENU)参考要求

  • PositionInputFormat属性指定为“大地”,指定trueVelocity关于导航框架(NED或ENU),其来源对应于truePosition输入。

数据类型:|

输出参数

全部展开

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

N是当前帧中的样本数。

数据类型:|

GPS接收器在局部导航坐标系中的GPS接收器,以米为单位,作为真正的有限情况返回N3数组。N是当前帧中的样本数。

  • PositionInputFormat属性指定为“本地”,返回速度是相对于原点固定为的局部导航框架参考要求

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

数据类型:|

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

N是当前帧中的样本数。

数据类型:|

GPS接收器在局部导航坐标系中的水平速度的方向,以真正的有限返回N-by-1列的值在0到360之间。北是360度,东是90度。

N是当前帧中的样本数。

数据类型:|

对象功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,要发布命名的系统对象的系统资源obj.,使用下面的语法:

发行版(obj)

全部展开

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

例子

全部折叠

创建一个gpsSensor系统对象™用于建模GPS接收器数据。假设一个典型的1hz采样率和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”fs,'参考',回流);

调用全球定位系统用指定的truePositiontrueVelocity模拟在静止平台上接收GPS数据。

位置= GPS(Trueposition,TrueVelocity);

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

t = (0: (numSamples-1)) / fs;子图(3,1,1,1)绘图(t,位置(:,1),...t的(numSamples) * refLoc(1)标题(“GPS传感器读数”) ylabel ('纬度(度)'子图(3,1,2)plot(t, position(:,2),...t的(numSamples) * refLoc (2)) ylabel ('经度(度)')子图(3,1,3)绘图(t,位置(:,3),...t的(numSamples) * refLoc (3)) ylabel (的高度(米))包含(“时间(s)”

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

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

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

  2. DecayFactor0.5

  3. 调用全球定位系统用变量指定固定位置。

  4. 策划的结果。

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

重置(GPS)GPS.Decayfactor = 0.5;位置= GPS(Trueposition,TrueVelocity);子图(3,1,1,1)绘图(t,位置(:,1),...t的(numSamples) * refLoc(1)标题('GPS传感器读数-衰减系数= 0.5') ylabel ('纬度(度)'子图(3,1,2)plot(t, position(:,2),...t的(numSamples) * refLoc (2)) ylabel ('经度(度)')子图(3,1,3)绘图(t,位置(:,3),...t的(numSamples) * refLoc (3)) ylabel (的高度(米))包含(“时间(s)”

图中包含3个轴。标题为GPS传感器读数-衰减系数= 0.5的轴1包含1001个line类型的对象。坐标轴2包含1001个line类型的对象。坐标轴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 m/s,超过60秒,然后垂直加速度2 m/s,超过2秒,然后以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(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个轴。标题为“地面速度和航向精度之间的关系”的轴1包含一个类型为线的对象。Axes 2包含一个类型为line的对象。

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

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

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

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

fs = 1;时间= 60 * 20;轴承= 68;%程度距离= 25.39 e3;%米距离=距离* Sind(轴承);Distancentorth =距离* COSD(轴承);natickned = [0,0,0];bostonned = [distanceNorth,距离,0];trajectory = waypointtrajectory(...“锚点”,[natickned; bostonned],...“TimeOfArrival”(0;持续时间),...'samplesperframe'10...“SampleRate”fs);

创建一个gpsSensor对象模型为平台接收GPS数据。设定横向定位25DecayFactor0.25强调噪音。设定参考要求在LLA的Natick坐标。

全球定位系统(GPS) = gpsSensor (...“HorizontalPositionAccuracy”25岁的...'腐朽活动器', 0.25,...“SampleRate”fs,...'参考', NatickLLA);

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

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

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

图中包含一个坐标轴。Natick到Boston轨迹的GPS传感器数据轴包含122个直线类型的对象。

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

发布(GPS)发布(轨迹)

扩展功能

也可以看看

对象

在R2020B中介绍