模拟IMU测量的介绍

此示例演示如何使用。来模拟惯性测量单元(IMU)的测量imuSensor系统对象。一个IMU可包括单个传感器,包括陀螺仪,加速度计,和磁力的组合。您可以使用指定单个传感器的性能gyroparamsaccelparams,magparams, 分别。

在下面的曲线图中,除非另有说明,仅在x轴测量显示。

默认参数

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

PARAMS = gyroparams%生成N个样本在F与具有正弦频率的采样速率%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('采样率',FS,“陀螺仪”、参数);[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“理想的陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”
分辨率Inf文件弧度/秒:PARAMS = gyroparams与属性:MeasurementRange 0(弧度/秒)/ LSB ConstantBias:[0 0 0]弧度/秒AxesMisalignment:[0 0 0]%NoiseDensity:[0 0 0](弧度/或多个)/√Hz的BiasInstability:[0 0 0]弧度/秒RandomWalk:[0 0 0](弧度/秒)*√Hz的TemperatureBias:[0 0 0](弧度/秒)/℃TemperatureScaleFactor:[0 00]%/℃AccelerationBias:[0 0 0](弧度/秒)/(米/秒²)

硬件参数调整

以下参数模拟硬件限制或缺陷。有些可以通过校准进行校正。

测量范围确定陀螺仪报告的最大绝对值。较大的绝对值是饱和的。通过将测量范围设置为小于正弦地面真角速度振幅的值,可以显示出这种效果。

IMU = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope。MeasurementRange = 0.5;% rad /秒[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“饱和陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”

决议影响数字测量值的步长。使用此参数模型与模拟数字转换器(ADC)的量化效应。效果由参数提高到比典型大得多的值示出。

IMU = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope。决议= 0.5;%(弧度/秒)/ LSB[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“量化陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”

AxesMisalignment是传感器轴上的歪斜量。这种歪斜通常发生在传感器安装到PCB上,可以通过校准来纠正。这种效果是通过略微倾斜x轴并同时绘制x轴和y轴来显示的。

IMU = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope。轴向偏差= [2 0 0];% 百分[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1:2),' - ', t, gyroData(:,1:2)) xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“未对齐陀螺仪数据”)图例(“×(地面实况)”'Y(地面实况)'...“×(陀螺仪)”'Y(陀螺仪)'

ConstantBias发生在传感器测量由于硬件缺陷。由于这种偏差不是由温度等环境因素造成的,因此可以通过校准来纠正。

IMU = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope.ConstantBias = [0.4 0 0];% rad /秒[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“偏陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”

随机噪声参数调整

以下参数中的传感器测量值的随机噪声建模。这些参数的更多信息,可以在找到惯性传感器的噪声分析使用Allan方差的例子。

NoiseDensity是传感器测量中白噪声的量。它有时被称为陀螺仪的角度随机行走或加速计的速度随机行走。

rng (“默认”) imu = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope。NoiseDensity= 1.25e-2;% (rad / s) /√(赫兹)[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“白噪音陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”

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

IMU = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope。BiasInstability = 2.0依照;% rad /秒[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“偏压不稳定陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”

RandomWalk为传感器测量中布朗噪声的量。它有时被称为速率随机漫步的陀螺仪或加速度随机漫步的加速度计。

IMU = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope.RandomWalk = 9.1e-2;% (rad / s) * sqrt(赫兹)[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“随机游走陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”

环境参数调整

以下参数模拟传感器环境变化引起的噪声。

TemperatureBias是由于温度与默认工作温度的差异而添加到传感器测量中的偏差。大多数传感器数据表列出的默认操作温度为25摄氏度。通过将参数设置为非零值并将操作温度设置为大于25摄氏度的值来显示这种偏差。

IMU = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope.TemperatureBias = 0.06;%(弧度/秒)/(℃)imu.Temperature = 35;[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“温度偏压式陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”

TemperatureScaleFactor是在传感器标度因子误差由于在操作温度变化。这会导致在测量的定标误差;换句话说较小理想值具有比较大的值误差更小。此错误是由线性增加的温度示出。

IMU = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope.TemperatureScaleFactor = 3.2;%%/(℃)standardTemperature = 25;%摄氏度temperatureSlope = 2;%(℃)/秒温度=温度ureslope *t +标准温度;gyroData = 0 (N, 3);对于I = 1:N = imu.Temperature温度(ⅰ);[〜,gyroData(I,:)] = IMU(ACC(I,:),angvel(I,:));结束图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“Temperature-Scaled陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”

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

IMU = imuSensor('采样率',FS,“陀螺仪”、参数);imu.Gyroscope。AccelerationBias = 0.3;%(弧度/秒)/(米/秒^ 2)ACC(:,1)= 1;[〜,gyroData] = IMU(ACC,angvel);图图(吨,angvel(:,1),' - ',T,gyroData(:,1))xlabel(“时间(s)”)ylabel (“角速度(rad / s)”)标题(“Acceleration-Biased陀螺仪数据”)图例(“×(地面实况)”“×(陀螺仪)”