insSensor
惯性导航系统和GNSS / GPS仿真模型
描述
的insSensor
系统对象™模型设备,融合测量从一个惯性导航系统(INS)和全球导航卫星系统(GNSS)如GPS、并输出融合测量。
输出融合INS和GNSS测量:
创建
insSensor
对象并设置其属性。调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的系统对象是什么?
创建
属性
属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放
函数打开它们。
如果一个属性可调在任何时候,你可以改变它的值。
改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象。
MountingLocation
- - - - - -平台上的位置传感器(米)
(0 0 0)
(默认)|三元素的实值向量形式(xyz]
位置传感器的平台,在米,指定为一个三元素实值向量的形式xyz]。向量定义传感器的起源从原点的偏移的平台。
可调:是的
数据类型:单
|双
RollAccuracy
- - - - - -辊精度测量(度)
0.2
(默认)|非负实数
辊的精度测量传感器的身体,在度,指定为一个非负实数。
卷是周围的旋转x设在传感器的身体。滚动噪声建模为一个白噪声过程。RollAccuracy
集卷测量噪声的标准差。
可调:是的
数据类型:单
|双
PitchAccuracy
- - - - - -距测量精度(度)
0.2
(默认)|非负实数
球场的精度测量传感器的身体,在度,指定为一个非负实数。
球场是周围的旋转y设在传感器的身体。音调噪声建模为一个白噪声过程。PitchAccuracy
定义了螺距测量噪声的标准差。
可调:是的
数据类型:单
|双
YawAccuracy
- - - - - -偏航测量精度(度)
1
(默认)|非负实数
偏航传感器测量精度的身体,在度,指定为一个非负实数。
偏航是周围的旋转z设在传感器的身体。偏航噪声建模为一个白噪声过程。YawAccuracy
定义了偏航测量噪声的标准差。
可调:是的
数据类型:单
|双
PositionAccuracy
- - - - - -位置测量精度(m)
(1 1 1)
(默认)|非负实数|三元素实值向量
身体的位置测量传感器,精度在米,指定为非负实数或三元素实值向量。向量的元素设置的准确性x- - - - - -,y- - - - - -,z分别测量-安置。如果您指定PositionAccuracy
作为一个标量值,那么对象集所有三个位置的准确性这个值。
位置噪声建模为一个白噪声过程。PositionAccuracy
定义位置测量噪声的标准差。
可调:是的
数据类型:单
|双
VelocityAccuracy
- - - - - -速度测量精度(米/秒)
0.05
(默认)|非负实数
传感器的速度测量精度的身体,在米每秒,指定为一个非负实数。
速度噪声建模为一个白噪声过程。VelocityAccuracy
定义了速度测量噪声的标准差。
可调:是的
数据类型:单
|双
AccelerationAccuracy
- - - - - -加速度测量精度(m / s2)
0
(默认)|非负实数
加速度传感器测量精度的身体,在米每秒,指定为一个非负实数。
加速度噪声建模为一个白噪声过程。AccelerationAccuracy
定义加速度测量噪声的标准差。
可调:是的
数据类型:单
|双
AngularVelocityAccuracy
- - - - - -角速度测量精度(度/秒)
0
(默认)|非负实数
传感器的角速度测量精度的身体,在米每秒,指定为一个非负实数。
角速度是建模为一个白噪声过程。AngularVelocityAccuracy
定义加速度测量噪声的标准差。
可调:是的
数据类型:单
|双
TimeInput
- - - - - -允许输入的模拟时间
假
或0
(默认)|真正的
或1
HasGNSSFix
- - - - - -使GNSS修复
真正的
或1
(默认)|假
或0
启用GNSS修复,指定为一个逻辑1
(真正的
)或0
(假
)。将此属性设置为假
模拟GNSS接收机修复的损失。GNSS接收机修复丢失时,指定的位置测量漂移速度PositionErrorFactor
财产。
可调:是的
依赖关系
要启用这个特性,设置TimeInput
来真正的
。
数据类型:逻辑
PositionErrorFactor
- - - - - -位置误差因素没有GNSS修复
(0 0 0)
(默认)|负的标量|1×3矢量的标量
RandomStream
- - - - - -随机数源
“全球流”
(默认)|“与种子mt19937ar”
随机数来源,指定这些选项之一:
“全球流”
——使用当前全球随机数生成随机数流。“与种子mt19937ar”
——使用mt19937ar算法生成随机数,指定的种子种子
财产。
数据类型:字符
|字符串
种子
- - - - - -最初的种子
67年
(默认)|非负整数
的初始种子mt19937ar随机数发生器算法,指定为一个非负整数。
依赖关系
要启用这个特性,设置RandomStream
来“与种子mt19937ar”
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
使用
描述
输入参数
gTruth
- - - - - -惯性传感器的身体的真实状态
结构
惯性传感器身体的真实状态,在当地笛卡尔坐标系,指定为一个包含这些字段的结构:
场 | 描述 |
---|---|
“位置” |
位置,在米,指定为一个真正的、有限的N3的矩阵xyz)向量。N在当前帧的样本数量。 |
“速度” |
速度(v),米每秒,指定为一个真正的、有限的N3的矩阵vxvyvz)向量。N在当前帧的样本数量。 |
“定位” |
取向对当地的笛卡儿坐标系统,指定为这些选项之一:
每一个四元数或旋转矩阵是一个框架旋转从本地笛卡尔坐标系统电流传感器体坐标系。N在当前帧的样本数量。 |
“加速” |
加速度(一个米每秒的平方),指定为一个真正的、有限的N3的矩阵一个x一个y一个z)向量。N在当前帧的样本数量。 |
“AngularVelocity” |
角速度(ω),在度每秒的平方,指定为一个真正的、有限的N3的矩阵ωxωyωz)向量。N在当前帧的样本数量。 |
必须的字段值类型双
或单
。
的位置
,速度
,取向
字段是必需的。其他字段是可选的。
例子:结构(“位置”,[0 0 0],“速度”,[0 0 0],“定位”,四元数([1 0 0 0]))
simTime
- - - - - -仿真时间
非负实数
仿真时间,以秒为单位,指定为一个非负实数。
数据类型:单
|双
输出参数
测量
——测量传感器的身体运动
结构
测量传感器的身体运动,在当地的笛卡尔坐标,返回包含这些字段的结构:
场 | 描述 |
---|---|
“位置” |
位置,在米,指定为一个真正的、有限的N3的矩阵xyz)向量。N在当前帧的样本数量。 |
“速度” |
速度(v),米每秒,指定为一个真正的、有限的N3的矩阵vxvyvz)向量。N在当前帧的样本数量。 |
“定位” |
取向对当地的笛卡儿坐标系统,指定为这些选项之一:
每一个四元数或旋转矩阵是一个框架旋转从本地笛卡尔坐标系统电流传感器体坐标系。N在当前帧的样本数量。 |
“加速” |
加速度(一个米每秒的平方),指定为一个真正的、有限的N3的矩阵一个x一个y一个z)向量。N在当前帧的样本数量。 |
“AngularVelocity” |
角速度(ω),在度每秒的平方,指定为一个真正的、有限的N3的矩阵ωxωyωz)向量。N在当前帧的样本数量。 |
返回的字段值的类型双
或单
和相同类型的中相应的字段值gTruth
输入。
对象的功能
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj
使用这个语法:
发行版(obj)
例子
从静止的输入生成INS测量
创建一个动态结构,定义了一个固定位置在当地north-east-down (NED)的起源。因为这个平台是静止的,你只需要定义一个样本。假设真实运动采样10秒100 Hz采样率。创建一个默认的insSensor
系统对象™。Preallocate变量来保存的输出insSensor
对象。
Fs = 100;时间= 10;numSamples = f *时间;运动=结构(…“位置”,0 (1、3)…“速度”,0 (1、3)…“定位”,(1,1,“四元数”));INS = insSensor;positionMeasurements = 0 (numSamples, 3);velocityMeasurements = 0 (numSamples, 3);orientationMeasurements = 0 (numSamples 1“四元数”);
在一个循环中,调用INS
运动与静止的结构返回位置,速度,在当地NED和方向测量坐标系统。日志的位置、速度和姿态测量。
为=我= 1:numSamples测量INS(运动);:positionMeasurements(我)= measurements.Position;:velocityMeasurements(我)= measurements.Velocity;orientationMeasurements (i) = measurements.Orientation;结束
从四元数与欧拉角转换方向可视化的目的。情节的位置、速度和方向测量。
orientationMeasurements = eulerd (orientationMeasurements,“ZYX股票”,“帧”);t = (0: (numSamples-1)) / Fs;次要情节(1,1)情节(t, positionMeasurements)标题(“位置”)包含(“时间(s)”)ylabel (“位置(m)”)传说(“北”,“东”,“下来”次要情节(3、1、2)情节(t, velocityMeasurements)标题(“速度”)包含(“时间(s)”)ylabel (“速度(米/秒)”)传说(“北”,“东”,“下来”次要情节(3,1,3)情节(t, orientationMeasurements)标题(“定位”)包含(“时间(s)”)ylabel (的旋转(度))传说(“滚”,“节”,“偏航”)
从驾驶场景生成INS测量
生成的INS传感器测量车辆在驾驶的情况下安装。情节INS测量地面真理的车辆和可视化的速度和加速度。
创建驾驶场景
负载的地理数据的行驶路线MathWorks®苹果在纳蒂克山校区,马。
data =负载(“ahroute.mat”);拉丁= data.latitude;lonIn = data.longitude;
路线的纬度和经度坐标转换成笛卡尔坐标系。设置第一个坐标原点的行驶路线。为简单起见,假设海拔0的路线。
alt = 0;起源=[拉丁语(1)lonIn (1), alt);[xEast, yNorth, z上]= latlon2local(拉丁语,lonIn alt、起源);
创建一个驾驶场景。设置转换路线的起源作为地理的参考点。
场景= drivingScenario (“GeoReference”、来源);
创建一个基于道路的笛卡尔坐标的路线。
roadCenters = [xEast yNorth z上);路(场景,roadCenters);
创建一个车辆,道路的中心线。车辆之间的旅行4和5米每秒(9到11英里每小时),减速曲线在路上。创建轨迹,使用smoothTrajectory
函数。轨迹计算最小化混蛋并避免在加速度不连续,这是一个要求建模INS传感器。
egoVehicle =车辆(场景中,“ClassID”1);egoPath = roadCenters;egoSpeed = [5 5 5 4 4 4 5 4 4 4 4 5 5 5 5 5];smoothTrajectory (egoVehicle egoPath egoSpeed);
情节场景和显示三维视图从自我后面车辆。
情节(场景)chasePlot (egoVehicle)
创建INS传感器
创建一个INS传感器接受输入的模拟时间。引入噪声传感器测量通过设置速度和精度测量的标准偏差0.1和0.05,分别。
INS = insSensor (“TimeInput”,真的,…“VelocityAccuracy”,0.1,…“AccelerationAccuracy”,0.05);
可视化INS测量
初始化一个地理球员显示INS测量和演员地面实况。配置玩家显示其最后10位置和缩放级别设置为17。
zoomLevel = 17;球员= geoplayer(拉丁语(1)lonIn (1) zoomLevel,…“HistoryDepth”10“HistoryStyle”,“行”);
预先分配的空间仿真时间、速度测量和加速度测量期间捕获的模拟。
numWaypoints =长度(拉丁);* = 0 (numWaypoints, 1);gTruthVelocities = 0 (numWaypoints, 1);gTruthAccelerations = 0 (numWaypoints, 1);sensorVelocities = 0 (numWaypoints, 1);sensorAccelerations = 0 (numWaypoints, 1);
模拟的场景。在模拟循环,获得地面真理的自我,一个INS测量状态。这些读数转换成地理坐标,在每一个路标,可视化地面真理和INS的地理数据的球员。也捕捉的速度和加速度数据绘制速度和加速度资料。
nextWaypoint = 2;而推进(场景)%获得地面真理的自我状态车辆。gTruth =状态(egoVehicle);%获得INS传感器测量。测量= INS (gTruth scenario.SimulationTime);%将数据转换为地理坐标。[它实用,lonOut] = local2latlon (measurement.Position (1),…measurement.Position (2),…measurement.Position(3),来源);%情节差异地面实况报告的地点和位置传感器。reachedWaypoint =总和(abs (roadCenters (nextWaypoint:) - gTruth.Position)) < 1;如果reachedWaypoint plotPosition(球员,拉丁语(nextWaypoint) lonIn (nextWaypoint),“TrackID”(1)plotPosition lonOut播放器,它实用,“TrackID”2,“标签”,“英寸”)%捕获仿真时间、速度和加速度。时间(1)nextWaypoint = scenario.SimulationTime;gTruthVelocities (nextWaypoint 1) = gTruth.Velocity (2);gTruthAccelerations (nextWaypoint 1) = gTruth.Acceleration (2);sensorVelocities (nextWaypoint 1) = measurement.Velocity (2);sensorAccelerations (nextWaypoint 1) = measurement.Acceleration (2);nextWaypoint = nextWaypoint + 1;结束如果nextWaypoint > numWaypoints打破结束结束
情节速度剖面
比较地面车辆的纵向速度随着时间的推移,真理对INS捕获的速度测量的传感器。
删除零矢量和速度矢量。
* (* = = 0)= [];gTruthVelocities (gTruthVelocities = = 0) = [];sensorVelocities (sensorVelocities = = 0) = [];图保存在情节(次,gTruthVelocities)情节(次,sensorVelocities)标题(“纵向速度剖面”)包含(“时间(s)”)ylabel (“速度(米/秒)”)传说(“地面实况”,“英寸”)举行从
情节加速度剖面
比较汽车的地面实况纵向加速度随时间变化对加速度的测量被INS传感器。
gTruthAccelerations (gTruthAccelerations = = 0) = [];sensorAccelerations (sensorAccelerations = = 0) = [];图保存在情节(次,gTruthAccelerations)情节(次,sensorAccelerations)标题(纵向加速度剖面的)包含(“时间(s)”)ylabel (“加速度(m / s ^ 2)”)传说(“地面实况”,“英寸”)举行从
提示
获得真实的演员在驾驶的情况下,使用
状态
函数。传感器测量报告当地的笛卡儿坐标系统。将这些测量转换为可视化地图上的地理位置,使用
local2latlon
函数。这个数据转换回当地坐标,使用latlon2local
函数。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
版本历史
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。