目录
摘要
本节主要记录ardupliot IMU批量采样测量振动分析方法。
1.(Measuring Vibration with IMU Batch Sampler)
IMU批量取样器可用于将IMU传感器的高频数据记录到自动驾驶仪上的dataflash日志中。这些数据可以在飞行后进行分析,利用数据的快速傅立叶变换(FFT)生成的图形诊断振动问题。 FFT将数据从时域转换到频域。换句话说,随时间(即飞行)记录的加速计数据可以转换为显示振动频率的图表。这些曲线图的一个常见特征是螺旋桨“叶片通过频率”(叶片穿过机臂的频率)出现峰值,这会导致机身加速。FFT有以下限制:
- FFT不能显示超过传感器采样率一半的频率
- 可以显示的最小频率是样本量的一半除以样本率
采样速率通常与提供给自动驾驶仪的陀螺仪更新速率相同。例如,如果您在MPU9250传感器上使用 INS_FAST_SAMPLE(在现代Pixhawk类自动驾驶仪上相当典型),则采样频率为8KHz,但平均值和下采样频率为1KHz。如果您没有使用具有快速采样功能的自动驾驶仪,则采样率为1KHz 该1KHz“后端”速率是陀螺滤波发生的速率,即低通和陷波滤波器,在小型直升机上1KHz不足以避免较高频率噪声的混叠。例如,一架3英寸的直升机可能具有600Hz的全油门电机频率。由于滤波器只能在采样频率的一半(奈奎斯特极限)下应用,因此在1Khz下采样时不可能过滤600Hz的噪声,并且噪声将被混叠到较低的频率。
在固件版本4.1及更高版本中,后端速率已针对支持快速采样的IMU(即Invensense传感器)进行了配置,以便支持更高的速率。后端速率可通过设置INS_GYRO_RATE进行配置。默认0提供与以前固件版本相同的行为。速率为N表示后端速率为2^N Khz,因此,例如,值为1表示后端速率为2Khz,以此类推。
**
注意: 这提高了所有陀螺滤波器的运行速度,并且根据配置的槽口数量,计算成本可能会很高。高于0的值仅建议在F7或H7平台上使用,高于1的值只能在仔细调整后使用。这是为这些平台自动完成的。这允许在这些自动驾驶仪上捕获1KHz及以下的频率。 **
2.Pre-Flight Setup(飞行前设置)
- 设置 INS_LOG_BAT_MASK =1以从第一个IMU收集数据。
- 不能检查LOG_BITMASK’s 的IMU原始位。默认的LOG_BITMASK 值很好。如果进行检查,结果可能会令人困惑,因为如果使用后过滤器或常规日志记录,您将无法获得样本。但是,如果使用传感器速率日志记录,并且您的SD卡能够处理,您将获得样本。
3.Flight and Post-Flight Analysis(飞行和飞行后分析)
- 执行一次至少几分钟的常规飞行(而不仅仅是轻轻的悬停)并下载dataflash日志。
- 打开Mission Planner,按Ctrl-F,按FFT按钮,按“新建测向日志”并选择上面下载的.bin日志文件。
- 加速计数据显示在左上角窗口中,纵轴显示振幅,横轴显示频率。振幅没有缩放到有用的值,这意味着该图对于确定振动频率很有用,但对于水平是否过高则没有用处。频率高于300Hz的振动可能导致姿态或位置控制问题。
- 默认配置显示过滤前的原始加速计和陀螺仪数据。滤波是防止噪声到达PID回路和电机的关键部分,因此,在滤波后查看数据也很重要。此外,在使用陷波配置高级过滤时(请参阅INS_NOTCH_ENABLE),如果不查看输出,则很难有效地执行此操作。为了查看后过滤器输出设置INS_LOG_BAT_OPT =2。
- 对于处于手动飞行模式的小型直升机,重要的是让尽可能多的信号在100Hz以下通过,而在100Hz以上尽可能少的信号通过。配置后过滤器输出将允许您看到这一点。
4.Advanced Configuration and Analysis(高级配置和分析)
- 将INS_LOG_BAT_OPT 设置为1,以启用传感器最高速率的批量采样,从而允许从InvenseSense进行500hz以上的快速IMU分析。
- INS_LOG_BAT_MASK可用于仅对单个传感器进行采样。这将增加从单个传感器(例如平台上最好的传感器)检索到的样本数量,从而为分析提供更好的数据
- INS_LOG_BAT_CNT指定将采集的样本数量。增加该值将产生更具代表性的问题频率概念。当除以采样率时,将给出可以检测到的最低频率,因此1024个采样在1024kHz采样时(很差)将拾取0.5Hz的频率。
- 将样本推送到dataflash日志之间的INS_LOG_BAT_LGIN间隔,单位为ms。增加该间隔可减少将数据刷新到dataflash日志所需的时间,从而缩短循环时间。这将以增加系统负载为代价,并可能阻塞其他消息的dataflash日志。
- INS_LOG_BAT_LGCT每次INS_LOG_BAT_LGIN ms计数时要推送的样本数。增加此值可在每次将样本发送到dataflash日志时推送更多样本。增加该值可能会导致定时抖动,并可能阻塞其他消息的dataflash日志。
以下两张图来自PixRacer自动驾驶仪上的同一航班。右侧的Accel[0]是InvenseSsense IMU,显示的频率高于左侧较慢的IMU.
5.Log Message Contents(日志消息内容)
批量采样涉及两种类型的dataflash日志消息,即ISBH和ISBD。
- ISBH是一个批标题;它包括批次号和有关批次的元数据。
- ISBD消息包含批次的实际数据,并按批次号引用标题.
6.Analysis with pymavlink(pymavlink分析)
pymavlink是一个以开发人员为中心的工具,支持图形FFT数据
pbarker@bluebottle:~/rc/ardupilot(fastest-sampling)$ ~/rc/pymavlink/tools/mavfft_isb.py /tmp/000003.BIN
Processing log /tmp/000003.BIN
.Skipping ISBD outside ISBH (fftnum=0)
Skipping ISBD outside ISBH (fftnum=0)
Skipping ISBD outside ISBH (fftnum=0)
Skipping ISBD outside ISBH (fftnum=0)
Skipping ISBD outside ISBH (fftnum=0)
Skipping ISBD outside ISBH (fftnum=0)
...............................
32560s messages 48433 messages/second 1904039 kB/second
Extracted 10 fft data sets
Sensor: Gyro[0]
Sensor: Accel[0]
该输出显示了从单个IMU多段测井中提取数据的mavfft_isb.py。
这个多翼框架清楚地显示了80Hz范围内的振动。
这个多翼框架清楚地显示了80Hz范围内的旋转振动。
|