主要内容

介绍模拟IMU测量

这个例子展示了如何模拟惯性测量单元(IMU)测量使用imuSensor系统对象。IMU可以包括个人的组合传感器,包括一个陀螺仪,加速度计和磁强计。您可以指定单个传感器使用的属性gyroparams,accelparams,magparams,分别。

在接下来的情节,除非另有注明,只有x轴测量显示。

默认参数

陀螺仪的缺省参数模型模拟一个理想的信号。给定一个正弦输入,陀螺仪的输出应该完全匹配。

params = gyroparams% N生成样本的采样率Fs正弦频率%的Fc。N = 1000;Fs = 100;Fc = 0.25;t = (0: (1 / Fs): ((n - 1) / Fs)。”;acc = 0 (N, 3);angvel = 0 (N, 3);angvel(: 1) =罪(2 *π* Fc * t);imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“理想的陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')
params = gyroparams属性:MeasurementRange:正rad / s决议:0 (rad / s) / LSB ConstantBias: [0 0 0] rad / s AxesMisalignment: [3 x3双]% NoiseDensity: [0 0 0] (rad / s) /√赫兹BiasInstability: [0 0 0] rad / s随机散步:[0 0 0](rad / s) *√赫兹TemperatureBias: [0 0 0] (rad / s) /°C TemperatureScaleFactor: [0 0 0] % /°C AccelerationBias: [0 0 0] (rad / s) / (m / s²)

硬件参数调优

以下参数模型硬件限制或缺陷。一些可以通过校准来纠正。

MeasurementRange决定了报告的最大绝对值陀螺仪。更大的绝对值是饱和。显示的效果是通过设置测量范围值小于真实正弦波的振幅角速度。

imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。MeasurementRange = 0.5;% rad /秒[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“饱和陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')

决议影响数字测量的步长。使用这个参数模型量化效应的模拟数字转换器(ADC)。显示的效果是通过增加参数比典型的更大的价值。

imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。决议= 0.5;% (rad / s) / LSB[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“量子化的陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')

AxesMisalignment在传感器轴的倾斜。这斜通常发生在传感器安装在印刷电路板上,通过校准可以纠正。显示的效果是通过倾斜轴略和策划x轴和y轴。

imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。AxesMisalignment = (2 0 0);% %[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (:, 1:2),“——”t gyroData(: 1:2))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“偏差陀螺仪数据”)传说(“x(地面实况),“y”(地面实况),“x(陀螺仪)',y(陀螺仪)')

ConstantBias发生在传感器测量由于硬件缺陷。由于这种偏见不是由环境因素引起的,如温度,它可以通过校准来纠正。

imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。ConstantBias= [0.4 0 0];% rad /秒[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“有偏见的陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')

随机噪声参数调优

以下参数模型随机噪声传感器测量。这些参数的更多信息可以在找到惯性传感器噪声使用阿伦方差分析(传感器融合和跟踪工具箱)的例子。

NoiseDensity白噪声的数量在传感器测量。它有时被称为角随机游走为加速度计陀螺仪或速度随机漫步。

rng (“默认”)imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。NoiseDensity= 1.25e-2;% (rad / s) /√(赫兹)[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“白噪声陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')

BiasInstability是粉红色或闪烁噪声的传感器测量。

imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。BiasInstability = 2.0依照;% rad /秒[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“偏见不稳定陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')

随机散步是布朗噪声的传感器测量。它有时被称为速率随机游走为加速度计陀螺仪和加速度随机漫步。

imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。随机散步= 9.1e-2;% (rad / s) * sqrt(赫兹)[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“随机漫步陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')

环境参数调优

以下参数模型噪声来自环境变化的传感器。

TemperatureBias偏见是添加到传感器测量由于温差从默认的操作温度。大多数传感器数据列表默认操作温度为25摄氏度。这种偏见通过设置显示参数设置为非零值和设置操作温度高于25摄氏度的值。

imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。TemperatureBias = 0.06;% (rad / s) /(摄氏度)imu。温度= 35;[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“Temperature-Biased陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')

TemperatureScaleFactor传感器的误差比例因子是由于工作温度的变化。这将导致错误的比例测量;换句话说小理想值有误差小于大值。这个错误表明温度线性增加。

imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。TemperatureScaleFactor = 3.2;% % /(摄氏度)standardTemperature = 25;%摄氏度temperatureSlope = 2;%(摄氏度)/ s温度= temperatureSlope * t + standardTemperature;gyroData = 0 (N, 3);i = 1: N imu。温度=温度(我);[~,gyroData(我)):= imu (acc(我,:),angvel(我,:));结束图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“Temperature-Scaled陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')

AccelerationBias是偏见添加到陀螺仪测量由于线性加速度。这个参数是特定于陀螺仪。这种偏见通过设置显示参数设置为非零值,使用一个非零输入加速度。

imu = imuSensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope。AccelerationBias = 0.3;% (rad / s) / (m / s ^ 2)acc (: 1) = 1;[~,gyroData] = imu (acc, angvel);图绘制(t, angvel (: 1),“——”t gyroData(: 1))包含(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“Acceleration-Biased陀螺仪数据”)传说(“x(地面实况),“x(陀螺仪)')

另请参阅

|||