gpsSensor
GPS接收机仿真模型
描述
的gpsSensor
系统对象™建模来自全球定位系统(GPS)接收器的数据输出。该对象将位置噪声建模为一阶高斯马尔可夫过程,其中西格玛值指定在HorizontalPositionAccuracy
和VerticalPositionAccuracy
属性。对象将速度噪声建模为高斯噪声,其sigma值指定在VelocityAccuracy
财产。
为GPS接收器建模:
创建
gpsSensor
对象并设置其属性。使用参数调用对象,就像调用函数一样。
有关系统对象如何工作的详细信息,请参见什么是系统对象?
创建
描述
返回一个全球定位系统(GPS)
= gpsSensorgpsSensor
基于本地位置和速度输入信号计算全球定位系统接收机读数的系统对象。默认的大地坐标参考位置为
纬度:0oN
经度:0oE
海拔高度:0米
返回一个全球定位系统(GPS)
= gpsSensor (“ReferenceFrame”
,射频
)gpsSensor
计算相对于所述参考帧的全球定位系统接收机读数的系统对象射频
.指定射频
作为NED的
(North-East-Down)或“ENU表示”
(East-North-Up)。默认值为NED的
.
GPS = gpsSensor(___,
设置每个属性名称,值
)的名字
到指定的价值
.未指定的属性有默认值。
属性
除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放
功能解锁它们。
如果属性为可调,您可以随时更改其值。
有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计.
SampleRate
- - - - - -接收机更新频率(Hz)
1
(默认)|正实标量
接收机的更新速率(以Hz为单位),指定为正实标量。
数据类型:单
|双
ReferenceLocation
- - - - - -本地导航参考系的原点
[0 0 0]
(默认)|[纬度、经度、高度]
参考位置,在大地坐标(纬度、经度和高度)中指定为3元素行向量。海拔高度是参考椭球模型WGS84之上的高度。参考位置在[度,度,米]
.度格式为十进制DD。
数据类型:单
|双
PositionInputFormat
- - - - - -位置坐标输入格式
“本地”
(默认)|“大地”
位置坐标输入格式,指定为“本地”
或“大地”
.
如果将属性设置为
“本地”
,则需要指定truePosition
函数定义的原点为固定的局部导航框架的笛卡尔坐标ReferenceLcation
财产。此外,当您指定trueVelocity
输入,你需要根据这个本地导航框来指定它。如果将属性设置为
“大地”
,则需要指定truePosition
以纬度、经度和高度的大地坐标形式输入。此外,当您指定trueVelocity
输入时,您需要根据导航帧(NED或ENU)指定它,其原点对应于truePosition
输入。当将属性设置为“大地”
,gpsSensor
对象忽略ReferenceLocation
财产。
数据类型:特征向量
HorizontalPositionAccuracy
- - - - - -水平位置精度(m)
1.6
(默认)|非负实标量
水平位置精度(以米为单位),指定为非负实标量。水平位置精度是指水平位置测量中噪声的标准偏差。
可调:是的
数据类型:单
|双
VerticalPositionAccuracy
- - - - - -垂直位置精度(m)
3.
(默认)|非负实标量
垂直位置精度(以米为单位),指定为非负实标量。垂直位置精度是指垂直位置测量中噪声的标准偏差。
可调:是的
数据类型:单
|双
VelocityAccuracy
- - - - - -速度精度(m/s)
0.1
(默认)|非负实标量
速度精度,单位为米/秒,指定为非负实标量。速度精度是指速度测量中噪声的标准偏差。
可调:是的
数据类型:单
|双
DecayFactor
- - - - - -全局位置噪声衰减因子
0.999
(默认)|范围[0,1]中的标量
全局位置噪声衰减因子,指定为范围[0,1]中的标量。
衰减因子为0将全局位置噪声建模为白噪声过程。衰减因子1将全局位置噪声建模为随机游走过程。
可调:是的
数据类型:单
|双
RandomStream
- - - - - -随机数源
“全球流”
(默认)|“mt19937ar with seed”
随机数源,指定为字符向量或字符串:
“全球流”
—使用当前全局随机数流生成随机数。“mt19937ar with seed”
——使用mt19937ar算法生成随机数,其种子由种子
财产。
数据类型:字符
|字符串
种子
- - - - - -最初的种子
67
(默认)|非负整数标量
mt19937ar随机数生成器算法的初始种子,指定为非负整数标量。
依赖关系
若要启用此属性,请设置RandomStream
来“mt19937ar with seed”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
使用
描述
[
从位置和速度输入计算全球导航卫星系统接收机读数。位置
,速度
,水平速度
,课程
= gps (truePosition
,trueVelocity
)
输入参数
truePosition
- - - - - -GPS接收机在导航坐标系中的位置
N3矩阵
GPS接收机在导航坐标系中的位置,指定为实有限值N3矩阵。N是当前帧中的样本数。
当
PositionInputFormat
属性指定为“本地”
,指定truePosition
作为原点固定的局部导航坐标系的笛卡尔坐标ReferenceLocation
.当
PositionInputFormat
属性指定为“大地”
,指定truePosition
作为大地坐标[纬度、经度、高度]
.纬度
而且经度
单位是米。高度
为WGS84椭球模型上方的高度,单位为米。
数据类型:单
|双
trueVelocity
- - - - - -GPS接收机在导航坐标系下的速度(m/s)
N3矩阵
GPS接收机在导航坐标系中的速度,单位为米/秒,指定为实有限值N3矩阵。N是当前帧中的样本数。
当
PositionInputFormat
属性指定为“本地”
,指定trueVelocity
对于原点固定的本地导航帧(NED或ENU)ReferenceLocation
.当
PositionInputFormat
属性指定为“大地”
,指定trueVelocity
的导航帧(NED或ENU),其原点对应于truePosition
输入。
数据类型:单
|双
输出参数
位置
-在LLA坐标系中的位置
N3矩阵
GPS接收机在大地纬度、经度和高度(LLA)坐标系中的位置,作为实有限值返回N3数组。纬度和经度是用度数表示的,东、北是正数。海拔以米为单位。
N是当前帧中的样本数。
数据类型:单
|双
速度
-局部导航坐标系速度(m/s)
N3矩阵
GPS接收机在本地导航坐标系中的速度,单位为米/秒,返回为实有限值N3数组。N是当前帧中的样本数。
当
PositionInputFormat
属性指定为“本地”
,返回速度相对于原点固定的局部导航帧ReferenceLocation
.当
PositionInputFormat
属性指定为“大地”
,返回的速度是相对于导航帧(NED或ENU),其原点对应于位置
输出。
数据类型:单
|双
水平速度
-局部导航坐标系水平速度幅值(m/s)
N-by-1列向量
GPS接收机在本地导航坐标系中水平速度的大小,单位为米/秒,返回为实有限值N-by-1列向量。
N是当前帧中的样本数。
数据类型:单
|双
课程
-局部导航坐标系中水平速度方向(°)
N-by-1列向量
GPS接收机在局部导航坐标系中的水平速度方向,以度为单位,返回实有限N-by-1列的值在0到360之间。北对应360度,东对应90度。
N是当前帧中的样本数。
数据类型:单
|双
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj
,使用这种语法:
发行版(obj)
例子
从静止输入生成GPS位置测量
创建一个gpsSensor
系统对象™用于建模GPS接收机数据。假设典型的采样率为1 Hz,模拟时间为1000秒。根据Natick, MA (USA)的纬度、经度和海拔(LLA)定义参考位置。通过用零指定真实位置和速度来定义传感器为静止的。
Fs = 1;持续时间= 1000;numSamples = duration*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, truevocity);
绘制真实位置和GPS传感器的位置读数。
t = (0:(numSamples-1))/fs;Subplot (3,1,1) plot(t, position(:,1),...t, ones(numSamples)*refLoc(1))“GPS传感器读数”) ylabel (的纬度(度)) subplot(3,1,2) plot(t, position(:,2),...t, ones(numSamples)*refLoc(2))的经度(度)) subplot(3,1,3) plot(t, position(:,3),...t, ones(numSamples)*refLoc(3))的高度(米))包含(“时间(s)”)
位置读数有噪声控制HorizontalPositionAccuracy
,VerticalPositionAccuracy
,VelocityAccuracy
,DecayFactor
.的DecayFactor
属性控制噪声模型中的漂移。默认情况下,DecayFactor
设置为0.999
,接近随机游走过程。观察其效果DecayFactor
属性:
重置
全球定位系统(gps)
对象。集
DecayFactor
来0.5
.调用
全球定位系统(gps)
用变量指定一个固定的位置。画出结果。
的全球定位系统(GPS)
位置读数现在在真实位置附近振荡。
重置(gps) gps。DecayFactor= 0.5; position = gps(truePosition,trueVelocity); subplot(3, 1, 1) plot(t, position(:,1),...t, ones(numSamples)*refLoc(1))GPS传感器读数-衰减因子= 0.5) ylabel (的纬度(度)) subplot(3,1,2) plot(t, position(:,2),...t, ones(numSamples)*refLoc(2))的经度(度)) subplot(3,1,3) plot(t, position(:,3),...t, ones(numSamples)*refLoc(3))的高度(米))包含(“时间(s)”)
地速与航向精度的关系
随着地面速度的增加,GPS接收器实现了更高的航向精度。在本例中,您将创建一个GPS接收机模拟对象,并模拟从一个从静止位置加速的平台接收到的数据。
创建默认值gpsSensor
系统对象™用于对GPS接收器返回的数据进行建模。
GPS = gpsSensor
GPS = gpsSensor与属性: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 = duration*GPS.SampleRate;课程= 45*ones(持续时间,1);地速= [(1:60)';60*ones(10,1)];Nvelocity =地面速度。*sind(航向);速度=地面速度。*cosd(课程);Dvelocity = [0 (60,1);-1;-2*ones(9,1)];NEDvelocity = [Nvelocity, velocity,Dvelocity];Ndistance = cumsum(Nvelocity);Edistance = cumsum(速度); Ddistance = cumsum(Dvelocity); NEDposition = [Ndistance,Edistance,Ddistance];
模型GPS测量数据调用全球定位系统(GPS)
对象与你的速度和位置矩阵。
[~,~,地速测量,航向测量]= GPS(NEDposition,NEDvelocity);
绘制出地面速度和真实路线与GPS模拟器返回的路线之差。
随着地面速度的增加,赛道的准确性也随之提高。请注意,在最后十秒内速度的增加没有任何影响,因为额外的速度不在地平面内。
t = (0:numSamples-1)/GPS.SampleRate;次要情节(2,1,1)情节(t,水平速度);ylabel (“速度(米/秒)”)标题(“地速与航向精度的关系”) subplot(2,1,2)课程精度=课程测量-课程;情节(t, courseAccuracy)包含(“时间(s)”);ylabel (课程精确度(学位))
GPS接收机模型数据
模拟GPS数据在从纳蒂克市,MA,到波士顿,MA的轨迹接收。
定义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.39e3;%米东距=距离*信德(方位);distanceNorth =距离*cosd(方位);NatickNED = [0,0,0];BostonNED = [distancnorth, distanceast,0];轨迹=轨迹点...“锚点”(NatickNED;波士顿),...“TimeOfArrival”(0;持续时间),...“SamplesPerFrame”10...“SampleRate”fs);
创建一个gpsSensor
对象为平台接收GPS数据建模。设置HorizontalPositionalAccuracy
来25
和DecayFactor
来0.25
为了强调噪音。设置ReferenceLocation
到LLA的纳蒂克坐标。
GPS = gpsSensor(...“HorizontalPositionAccuracy”25岁的...“DecayFactor”, 0.25,...“SampleRate”fs,...“ReferenceLocation”, NatickLLA);
打开一个图,画出Natick和Boston在LLA的位置。为了简单起见,忽略海拔高度。
在循环中,调用gpsSensor
对象与地面真实轨迹,以模拟接收到的GPS数据。绘制GPS接收数据的真实轨迹和模型。
图(1)情节(NatickLLA (1) NatickLLA (2),“柯”,...BostonLLA BostonLLA (1) (2),“kx”)包含(的纬度(度)) ylabel (的经度(度))标题(“Natick到Boston轨迹的GPS传感器数据”)举行在而~isDone(轨迹)[truePositionNED,~,trueVelocityNED] =轨迹();reporttedpositionlla = GPS(truePositionNED,trueVelocityNED);图(1)情节(reportedPositionLLA (: 1), reportedPositionLLA (:, 2),“r”。)结束
作为最佳实践,在完成时释放System对象。
发布(GPS)发布(轨迹)
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
看到系统对象在MATLAB代码生成(MATLAB编码器).
版本历史
R2019b引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。