主要内容

模拟IMU测量的简介

此示例显示如何使用该示例模拟惯性测量单元(IMU)测量imusvesor.(传感器融合和跟踪工具箱)系统对象。IMU可以包括各个传感器的组合,包括陀螺仪,加速度计和磁力计。您可以使用以下方法指定单个传感器的属性Gyroparams.(传感器融合和跟踪工具箱)加速(传感器融合和跟踪工具箱), 和magparams.(传感器融合和跟踪工具箱), 分别。

在以下绘图中,除非另有说明,否则仅示出了X轴测量。

默认参数

陀螺仪模型的默认参数模拟了理想的信号。鉴于正弦输入,陀螺仪输出应完全匹配。

params = gyroparams.%以S正弦频率的FS的采样率生成N个样本占FC的百分比。n = 1000;FS = 100;FC = 0.25;t =(0:(1 / fs):((n-1)/ fs))。';ACC =零(n,3);angvel =零(n,3);agvel(:,1)= sin(2 * pi * fc * t);imu = imusensor('采样率',fs,'陀螺仪',params);[〜,gyrodata] = IMU(ACC,Angvel);图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('理想的陀螺数据') 传奇('x(地面真相)''x(陀螺)'
Params =具有属性的Gyroparams:MeasurementRange:INF RAD / S分辨率:0(rad / s)/ lsb anclantbias:[0 0] rad / s axesmisalignment:[0 0]%黑暗度:[0 0](rad /s)/√Hz偏心可图:[0 0] RAD / S OrandalWalk:[0 0](rad / s)*√Hz温度纤维:[0 0](Rad / s)/°C温度:[0 00]%/°C加速度:[0 0](rad / s)/(m /s²)

硬件参数调整

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

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

imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.measurementrange = 0.5;%rad / s[〜,gyrodata] = IMU(ACC,Angvel);图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('饱和陀螺数据') 传奇('x(地面真相)''x(陀螺)'

解析度影响数字测量的步长。使用此参数来模拟模数转换器(ADC)的量化效果。通过将参数增加到比典型值更大的值更大的值来显示效果。

imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.resolution = 0.5;%(rad / s)/ lsb[〜,gyrodata] = IMU(ACC,Angvel);图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('量化陀螺数据') 传奇('x(地面真相)''x(陀螺)'

Axesmisalign.是传感器轴中的歪斜量。当传感器安装到PCB时,这种倾斜通常会发生,并且可以通过校准进行校正。通过略微偏斜X轴并绘制X轴和Y轴来示出效果。

imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.axesmisalignment = [2 0 0];% 百分[〜,gyrodata] = IMU(ACC,Angvel);图绘图(T,Angvel(:,1:2),' - ',t,gyrodata(:,1:2))Xlabel('时间'')ylabel('角速度(rad / s)') 标题('错位陀螺数据') 传奇('x(地面真相)''y(地面真相)'......'x(陀螺)''Y(陀螺)'

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

imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.constantbias = [0.4 0 0];%rad / s[〜,gyrodata] = IMU(ACC,Angvel);图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('偏见陀螺数据') 传奇('x(地面真相)''x(陀螺)'

随机噪声参数调整

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

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

RNG('默认')imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.noisedensity = 1.25e-2;%(rad / s)/ sqrt(hz)[〜,gyrodata] = IMU(ACC,Angvel);图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('白色噪音陀螺数据') 传奇('x(地面真相)''x(陀螺)'

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

imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.biasinstability = 2.0e-2;%rad / s[〜,gyrodata] = IMU(ACC,Angvel);图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('偏见不稳定陀螺数据') 传奇('x(地面真相)''x(陀螺)'

randywalk.是传感器测量中的布朗噪声的数量。它有时被称为随机行走的陀螺仪或加速随机行走,用于加速度计。

imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.randomwalk = 9.1e-2;%(rad / s)* sqrt(hz)[〜,gyrodata] = IMU(ACC,Angvel);图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('随机步行陀螺数据') 传奇('x(地面真相)''x(陀螺)'

环境参数调整

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

温度纤维纤维由于与默认工作温度的温差,偏置是传感器测量。大多数传感器数据表列出默认工作温度为25摄氏度。通过将参数设置为非零值并将工作温度设置为25摄氏度高于25摄氏度的值来示出该偏差。

imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.temperaturebias = 0.06;%(rad / s)/(volesc)imu.temperature = 35;[〜,gyrodata] = IMU(ACC,Angvel);图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('温度偏置陀螺数据') 传奇('x(地面真相)''x(陀螺)'

温度劳动力由于工作温度的变化,传感器比例因子中的错误是由于工作温度的变化。这导致测量缩放中的错误;换句话说,较小的理想值具有比较大值更少的误差。通过线性增加温度显示此误差。

imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.temperaturescalefactor = 3.2;%% /(volesc)standardtemperature = 25;%摄氏度温度= 2;%(度C)/ s温度=温度升温* T +标准化;gyrodata =零(n,3);为了i = 1:n imu.temperature =温度(i);[〜,gyrodata(我,:)] = imu(acc(我,:),agvel(我,:));结尾图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('温度缩放的陀螺仪数据') 传奇('x(地面真相)''x(陀螺)'

加速纤维是否由于线性加速而添加到陀螺仪测量中的偏差。此参数特定于陀螺仪。通过将参数设置为非零值并使用非零输入加速来示出该偏差。

imu = imusensor('采样率',fs,'陀螺仪',params);imu.gyroscope.accelerationBias = 0.3;%(rad / s)/(m / s ^ 2)ACC(:,1)= 1;[〜,gyrodata] = IMU(ACC,Angvel);图绘图(t,angvel(:,1),' - ',t,gyrodata(:,1))xlabel('时间'')ylabel('角速度(rad / s)') 标题('加速 - 偏见陀螺数据') 传奇('x(地面真相)''x(陀螺)'