主要内容

insSensor

惯性导航系统与GNSS/GPS仿真模型

描述

insSensor系统对象™为一个设备建模,该设备融合了来自惯性导航系统(INS)和全球导航卫星系统(GNSS)(如GPS)的测量数据,并输出融合的测量数据。

输出融合的INS和GNSS测量值:

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

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

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

例子

INS= insSensor返回一个System对象,INS该软件为输出INS和GNSS测量值的设备建模。

例子

INS= insSensor (名称,值属性使用一个或多个名称-值对。未指定的属性有默认值。将每个属性名用引号括起来。

属性

全部展开

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

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

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

传感器在平台上的位置,单位为米,指定为一个形式为[]的三元实值向量。xyz].矢量定义了传感器原点与平台原点之间的偏移量。

可调:是的

数据类型:|

传感器本体的滚转测量精度,以度为单位,指定为非负实标量。

是绕着旋转吗x传感器体的-轴。滚动噪声被建模为白噪声过程。RollAccuracy设置轧辊测量噪声的标准偏差。

可调:是的

数据类型:|

传感器体的螺距测量精度,以度为单位,指定为非负实标量。

球场是绕着旋转吗y传感器体的-轴。Pitch noise被建模为一个白噪声过程。PitchAccuracy定义螺距测量噪声的标准偏差。

可调:是的

数据类型:|

传感器本体的偏航测量精度,以度为单位,指定为非负实标量。

偏航是绕着旋转吗z传感器体的-轴。偏航噪声被建模为白噪声过程。YawAccuracy定义偏航测量噪声的标准偏差。

可调:是的

数据类型:|

传感器本体位置测量的精度,以米为单位,指定为非负实标量或三元实值向量。向量的元素设置的精度x-,y- - - - - -,z-位置测量,分别。如果你指定PositionAccuracy作为标量值,对象将所有三个位置的精度设置为该值。

位置噪声被建模为白噪声过程。PositionAccuracy定义位置测量噪声的标准偏差。

可调:是的

数据类型:|

传感器本体的速度测量精度,以米每秒为单位,指定为非负实标量。

速度噪声被建模为白噪声过程。VelocityAccuracy定义速度测量噪声的标准偏差。

可调:是的

数据类型:|

传感器本体加速度测量的精度,以米/秒为单位,指定为非负实标量。

加速度噪声被建模为白噪声过程。AccelerationAccuracy定义加速度测量噪声的标准偏差。

可调:是的

数据类型:|

传感器本体角速度测量的精度,以米每秒为单位,指定为非负实标量。

角速度被建模为白噪声过程。AngularVelocityAccuracy定义加速度测量噪声的标准偏差。

可调:是的

数据类型:|

启用输入模拟时间,指定为逻辑0)或1真正的).将此属性设置为真正的命令输入模拟时间simTime论点。

可调:没有

数据类型:逻辑

启用GNSS修复,指定为逻辑1真正的)或0).将此属性设置为来模拟GNSS接收机的丢失。当GNSS接收机固定装置丢失时,位置测量以指定的速率漂移PositionErrorFactor财产。

可调:是的

依赖关系

若要启用此属性,请设置TimeInput真正的

数据类型:逻辑

没有GNSS固定的位置误差因子,指定为标量或1 × 3标量向量。

HasGNSSFix属性设置为时,由于加速度计的恒定偏置,位置误差以二次速率增长。位置组件的位置错误Et)可表示为Et) = 1/2αt2,在那里α对应元件的位置误差因子和t是GNSS修复丢失的时间。在运行时,对象进行计算t基于simTime输入。计算出的Et)的值xy,z组件被添加到组件的相应位置gTruth输入。

可调:是的

依赖关系

若要启用此属性,请设置TimeInput真正的而且HasGNSSFix

数据类型:|

随机数源,指定为以下选项之一:

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

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

数据类型:字符|字符串

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

依赖关系

若要启用此属性,请设置RandomStream“mt19937ar with seed”

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

使用

描述

例子

测量= INS (gTruth对从INS传感器读数和GNSS传感器读数接收的数据进行建模。输出测量基于传感器本体的惯性基真状态,gTruth

测量= INS (gTruthsimTime另外指定模拟的时间,simTime.要启用此语法,请设置TimeInput财产真正的

输入参数

全部展开

传感器体的惯性基真状态,在局部笛卡尔坐标中,指定为包含以下字段的结构:

描述
“位置”

位置,以米为单位,指定为实的,有限的N的-by-3矩阵xyz)向量。N是当前帧中的样本数。

“速度”

速度(v),单位为米/秒,指定为实的,有限的N的-by-3矩阵vxvyvz)向量。N是当前帧中的样本数。

“定位”

相对于局部笛卡尔坐标系的方向,指定为下列选项之一:

  • N的列向量四元数对象

  • 3-by-3-by -N旋转矩阵数组

  • N的-by-3矩阵xy球场z偏航度数角

每个四元数或旋转矩阵都是从局部笛卡尔坐标系旋转到当前传感器体坐标系的一帧。N是当前帧中的样本数。

“加速”

加速度(一个),单位为米每秒的平方,指定为实数,有限N的-by-3矩阵一个x一个y一个z)向量。N是当前帧中的样本数。

“AngularVelocity”

角速度(ω),单位为度/秒的平方,指定为实数,有限N的-by-3矩阵ωxωyωz)向量。N是当前帧中的样本数。

字段值必须为类型

位置速度,取向字段为必填项。其他字段是可选的。

例子:struct('Position',[0 0 0],'Velocity',[0 0 0],'Orientation',四元数([1 0 0 0]))

模拟时间(以秒为单位),指定为非负实标量。

数据类型:|

输出参数

全部展开

传感器体运动的测量,在局部笛卡尔坐标下,返回为包含以下字段的结构:

描述
“位置”

位置,以米为单位,指定为实的,有限的N的-by-3矩阵xyz)向量。N是当前帧中的样本数。

“速度”

速度(v),单位为米/秒,指定为实的,有限的N的-by-3矩阵vxvyvz)向量。N是当前帧中的样本数。

“定位”

相对于局部笛卡尔坐标系的方向,指定为下列选项之一:

  • N的列向量四元数对象

  • 3-by-3-by -N旋转矩阵数组

  • N的-by-3矩阵xy球场z偏航度数角

每个四元数或旋转矩阵都是从局部笛卡尔坐标系旋转到当前传感器体坐标系的一帧。N是当前帧中的样本数。

“加速”

加速度(一个),单位为米每秒的平方,指定为实数,有限N的-by-3矩阵一个x一个y一个z)向量。N是当前帧中的样本数。

“AngularVelocity”

角速度(ω),单位为度/秒的平方,指定为实数,有限N的-by-3矩阵ωxωyωz)向量。N是当前帧中的样本数。

返回的字段值为类型类中的相应字段值具有相同的类型gTruth输入。

对象的功能

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

发行版(obj)

全部展开

扰动 定义在物体上的扰动
扰乱 对物体施加扰动
一步 运行系统对象算法
克隆 创建重复的系统对象
isLocked 确定系统对象正在使用中
重置 重置的内部状态系统对象
释放 释放资源并允许更改系统对象属性值和输入特征

例子

全部折叠

创建一个运动结构,在本地东北向下(NED)原点定义一个静止位置。因为平台是静止的,所以只需要定义一个样本。假设地面真实运动以100 Hz采样率采样10秒。创建默认值insSensor系统对象™。对象的输出预分配变量insSensor对象。

Fs = 100;持续时间= 10;numSamples = Fs*duration;运动= struct(...“位置”, 0(1、3)...“速度”, 0(1、3)...“定位”, (1, 1,“四元数”));INS = insSensor;positionMeasurements = 0 (numSamples,3);速度测量=零(numSamples,3);定向测量=零(numSamples,1,“四元数”);

在循环中,调用INS在局部NED坐标系中返回位置、速度和方向测量值。记录位置,速度和方向测量。

i = 1:numSamples测量= INS(运动);positionMeasurements(i,:) = measurements.Position;velocityMeasurements(i,:) = measurements.Velocity;orientationMeasurements(i) = measurements.Orientation;结束

将方向从四元数转换为欧拉角以实现可视化。绘制位置、速度和方向随时间的测量值。

定向测量=欧拉(定向测量,“ZYX股票”“帧”);t = (0:(numSamples-1))/Fs;subplot(3,1,1) plot(t,positionMeasurements)“位置”)包含(“时间(s)”) ylabel (“位置(m)”)传说(“北”“东”“下来”) subplot(3,1,2) plot(t,velocityMeasurements)标题(“速度”)包含(“时间(s)”) ylabel (“速度(米/秒)”)传说(“北”“东”“下来”) subplot(3,1,3) subplot(t,orientation, measurements)“定位”)包含(“时间(s)”) ylabel (的旋转(度))传说(“滚”“节”“偏航”

图中包含3个轴对象。带有标题Position的坐标轴对象1包含3个类型为line的对象。这些物体代表北、东、下。标题为Velocity的坐标轴对象2包含3个类型为line的对象。这些物体代表北、东、下。标题为Orientation的坐标轴对象3包含3个类型为line的对象。这些对象代表横摇、俯仰、偏航。

生成INS测量值insSensor系统对象™。使用waypointTrajectory来生成真实路径。

指定从传感器本体开始的真实方向x-轴向北,末端为传感器本体x-轴与东方对齐。为弧轨迹指定路径点,并为相应的路径点指定到达时间向量。使用100hz采样率。创建一个waypointTrajectory系统对象带有路点约束,并设置SamplesPerFrame这样整个轨迹就用一次调用输出了。

eulerAngles = [0,0,0;...0, 0, 0;...90年,0,0;...90年,0,0);方向=四元数(eulerAngles,“eulerd”“ZYX股票”“帧”);R = 20;路点= [0,0,0;...100年,0,0;...100 + r, r, 0;...100 + r, 100 + r, 0);Toa = [0,10,10+(2*pi*r/4),20+(2*pi*r/4)];Fs = 100;numSamples = floor(Fs*toa(end));路径=轨迹(“锚点”锚点,...“TimeOfArrival”toa,...“定位”取向,...“SampleRate”Fs,...“SamplesPerFrame”, numSamples);

创建一个insSensor用于建模接收INS数据的系统对象。设置PositionAccuracy0.1

ins = insSensor(“PositionAccuracy”, 0.1);

称路径点为轨迹对象,路径,以生成地真相运动。打电话给INS模拟器,ins,与地面真实运动生成INS测量。

[motion.Position, motion.Orientation,运动。Velocity = path();insMeas = ins(运动);

转换返回的方向ins到欧拉角,以角度为单位,便于可视化。绘制完整的路径和方向随时间的变化。

orientationMeasurementEuler = eulerd(insMeas。取向,“ZYX股票”“帧”);次要情节(2,1,1)情节(insMeas.Position (: 1), insMeas.Position (:, 2));标题(“路径”)包含(“北(m)”) ylabel (“东(m)”) subplot(2,1,2) t = (0:(numSamples-1)).'/Fs;情节(t, orientationMeasurementEuler (: 1),...t, orientationMeasurementEuler (:, 2),...t, orientationMeasurementEuler (:, 3));标题(“定位”)传说(“偏航”“节”“滚”)包含(“时间(s)”) ylabel (的旋转(度)

图中包含2个轴对象。带有标题Path的Axes对象1包含一个line类型的对象。标题为Orientation的坐标轴对象2包含3个类型为line的对象。这些对象代表偏航,俯仰,滚转。

扩展功能

版本历史

R2020b中介绍