主要内容

IMU测量模拟简介

方法模拟惯性测量单元(IMU)测量imuSensor系统对象。IMU可以包括单个传感器的组合,包括陀螺仪、加速度计和磁力计。您可以使用指定各个传感器的属性gyroparamsaccelparams,magparams,分别。

在下面的图中,除非另有说明,只显示x轴测量值。使用滑块以交互方式调优参数。

默认参数

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

参数= gyroparams
params = gyroparams带属性:MeasurementRange: Inf rad/s分辨率:0 (rad/s)/LSB ConstantBias: [0 0 0] rad/s AxesMisalignment: [3x3 double] % NoiseDensity: [0 0 0] (rad/s)/√Hz BiasInstability: [0 0 0] rad/s RandomWalk: [0 0 0] (rad/s)*√Hz TemperatureBias: [0 0 0] (rad/s)/°C TemperatureScaleFactor:[0 0 0] %/°C AccelerationBias: [0 0 0] (rad/s)/(m/s²)
生成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) = sin(2*pi*Fc*t);imu = imsensor (“SampleRate”Fs,“陀螺”、参数);[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“理想陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为Ideal Gyroscope Data的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。

硬件参数调优

以下参数说明了模型硬件的局限性或缺陷。有些可以通过校准来校正。

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

imu = imsensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope.MeasurementRange =0.5% rad /秒[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“饱和陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为饱和陀螺仪数据的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。

决议影响数字测量的步长。使用此参数来模拟来自模数转换器(ADC)的量化效应。这种效果可以通过将参数增加到比典型值大得多的值来显示。

imu = imsensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope.Resolution =0.5% (rad / s) / LSB[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“量化陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为Quantized Gyroscope Data的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。

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

imu = imsensor (“SampleRate”Fs,“陀螺”、参数);xMisalignment =2% %imu.Gyroscope.AxesMisalignment = [xMisalignment, 0,0];% %[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1:2),“——”, t, gyroData(:,1:2)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“偏差陀螺仪数据”)传说(x(基本真理)y(基本真理)...“x(陀螺仪)'y(陀螺仪)'

图中包含一个轴对象。标题为Misaligned Gyroscope Data的axis对象包含4个类型为line的对象。这些物体代表x(地面真相),y(地面真相),x(陀螺仪),y(陀螺仪)。

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

imu = imsensor (“SampleRate”Fs,“陀螺”、参数);xBias =0.4% rad /秒imu.Gyroscope.ConstantBias = [xBias, 0,0];% rad /秒[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“偏置陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为Biased Gyroscope Data的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。

随机噪声参数调谐

以下参数模拟传感器测量中的随机噪声。有关这些参数的更多信息,请参见利用Allan方差分析惯性传感器噪声的例子。

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

rng (“默认”) imu = imsensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope.NoiseDensity =0.0125% (rad / s) /√(赫兹)[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“白噪声陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为White Noise Gyroscope Data的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。

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

imu = imsensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope.BiasInstability =0.02% rad /秒[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“偏置不稳定性陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为Bias Instability Gyroscope Data的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。

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

imu = imsensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope.RandomWalk =0.091% (rad / s) * sqrt(赫兹)[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“随机游走陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为Random Walk Gyroscope Data的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。

环境参数调优

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

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

imu = imsensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope.TemperatureBias =0.06% (rad/s)/(℃)imu。温度= 35;[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“偏温陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为Temperature-Biased Gyroscope Data的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。

TemperatureScaleFactor是由于工作温度变化引起的传感器比例因子的误差。这会导致测量尺度上的误差;换句话说,较小的理想值比较大的理想值误差更小。这种误差可以用线性增加温度来表示。

imu = imsensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope.TemperatureScaleFactor =3.2% %/(℃)standardTemperature = 25;% C度温度值= 2;%(摄氏度)/秒温度=温度*t +标准温度;gyroData = 0 (N, 3);i = 1:N imu。温度=温度(i);[~, gyroData(i,:)] = imu(acc(i,:)), angvel(i,:));结束图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“温度缩放陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为Temperature-Scaled Gyroscope Data的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。

AccelerationBias是由于线性加速度而增加到陀螺仪测量的偏差。此参数是陀螺仪所特有的。这种偏差通过将参数设置为非零值和使用非零输入加速度来显示。

imu = imsensor (“SampleRate”Fs,“陀螺”、参数);imu.Gyroscope.AccelerationBias =0.3% (rad / s) / (m / s ^ 2)Acc (:,1) = 1;[~, gyroData] = imu(acc, angvel);图(t,天使角(:,1),“——”, t, gyroData(:,1)) xlabel(“时间(s)”) ylabel (角速度(rad/s))标题(“加速度偏置陀螺仪数据”)传说(x(基本真理)“x(陀螺仪)'

图中包含一个轴对象。标题为“加速度偏置陀螺仪数据”的axis对象包含2个类型为line的对象。这些物体代表x(地面真相),x(陀螺仪)。