软件滤波器配置


通过滤波器可有效滤除电机、螺旋桨及外部干扰带来的振动与噪声,确保 EKF 获取纯净的 IMU 姿态数据,避免姿态误判,提升飞行稳定性和操控性。 ArduPilot支持低通滤波器与陷波滤波器两种软件滤波器进行滤波。

  • 低通滤波器:允许低于截止频率的信号通过(控制信号),过滤/抑制高于该频率的所有信号。
  • 陷波滤波器:针对某个狭窄的特定频率范围进行深度衰减(挖坑),同时尽可能地保留其他频率的信号,

[!Warning] 滤波器会增加相位延迟并且会增加处理器的负载,在处理器性能不足的控制器(比如STM32F7/F4)中谨慎使用;软件滤波只能缓解振动,无法解决严重的物理缺陷,机械振动过大应通过调整硬件结构或增加控制器减震器进行解决。在调试软件滤波器前,需先进行PID调参让飞机能够平稳飞行;再进行滤波器配置。

低通滤波器

根据载具自身重量、惯性大小以及对控制响应度进行低通滤波器的匹配;以达到精准高效的控制体验。ArduPilot的低通滤波器是由INS_GYRO_FILTER(陀螺仪)和INS_ACCEL_FILTER(加速度计)控制.对于手动配置,一般只需要配置INS_GYRO_FILTER陀螺仪低通滤波器;INS_GYRO_FILTER=20(默认)适用于大多数载具。
Mission Planner、LGC 等地面站可根据机型、动力、螺旋桨规格自动匹配滤波参数模型。

不合适的值的典型表现

参数设置 不利表现 优势
过大 INS_GYRO_FILTER = 60 IMU噪声多,可能引发无人机抖动或电机啸叫和异常发热 控制回路延迟更低,响应更灵,追求响应度可以引入陷波滤波器缓解
调小 INS_GYRO_FILTER = 15 相位滞后大,反应迟缓、姿态偏软 能滤除更多噪声

[!NOTE] 调试原则是尽可能地提高低通滤波器的截止频率,兼顾滤波效果,寻找两者平衡点。

陷波滤波器

陷波滤波器功能说明

动态陷波滤波器属于频率自适应窄带滤波,可跟随无人机电机实时转速自动调整滤波中心频率,专门用于抑制电机运转产生的周期性机械振动噪声,与低通滤波器形成互补搭配使用。 该滤波器能够实时追踪电机旋转基频以及各次谐波倍频,精准针对振动集中的频率峰值做能量衰减压制,仅针对性滤除振动干扰,不会影响其余频段有效姿态信号,最大限度保留飞控姿态响应灵敏度。

通俗来讲:全局噪声由低通滤波器整体压制,固定周期性电机振动,由动态陷波滤波器定点精准剔除,二者配合可实现降噪与操控手感兼顾

配置方法

  • 在配置前需要先设置日志存储数据(INS_RAW_LOG_OPT=10)

对于 4.5.0 以下版本固件,请使用IMU 批量日志采集功能

INS_LOG_BAT_OPT= 4    //进行滤波前后1KHz采样
INS_LOG_BAT_MASK = 1    //设置为采集第一个IMU数据
INS_LOG_BAT_LGIN        //采样间隔,常规无需修改。
LOG_BITMASK             // RAW IMU不要勾选,在默认设置的基础上增加勾选 Fast Attitude/PID/Fast IMU/Fast harmonic match logging项。
  • 如果带有转速回传(DroneCan/BDshot)的动力系统(电调),开启回传功能。
  • 在悬停模式下定点悬停30秒以上,然后往各个方向飞行数十秒。
  • 然后下载飞控日志并导入官方滤波分析工具,进行分析调试。

使用滤波分析工具匹配滤波器配置

  • 导入日志文件,并打开分析,选取分析飞行时间段

  • 查看IMU频谱,选取IMU轴(一般选择X轴即可),对比滤波前和预估滤波后效果。

滤波预估效果,由下方填写的滤波器参数生成

  • 我们的目标是将高于40的振幅衰减至-40dB以下,但尽可能小的影响其它信号,防止相位延迟。

  • 根据《动态陷波滤波器》设置说明配置滤波器并生成预估滤波后效果。

参数名 说明 设置方法
INS_HNTCH_ENABLE 动态谐波陷波滤波器总开关 设为 1 启用功能
INS_HNTCH_MODE 陷波频率跟踪模式 无ESC遥测时选 1:Throttle(油门模式);支持ESC遥测时推荐选 3:ESC遥测
INS_HNTCH_FREQ 悬停工况下的陷波中心基准频率 通过IMU频谱图分析悬停时的电机基频振动峰值或根据转速确定
INS_HNTCH_BW 陷波滤波器的带宽 设为 INS_HNTCH_FREQ 1/4到1/2;开启多源滤波时,不高于1/4
INS_HNTCH_ATT 陷波滤波器的衰减强度 衰减值控制在-40dB 以下即可,数值不宜设置过高
INS_HNTCH_REF 油门模式下的参考基准油门值 等于悬停学习油门MOT_THST_HOVER或ESC遥测模式时设置为1
INS_HNTCH_FM_RAT 陷波频率的最小缩放比例,限制低油门时的最低频率 默认1;低油门振动明显可小幅下调,严禁低于陀螺仪截止频率
INS_HNTCH_HMNCS 谐波阶数位掩码,选择需要抑制的电机谐波次数 根据谐波阶数说明设置
INS_HNTCH_OPTS 陷波附加功能选项(多源模式等) 多电机时Multi-Source/update at loop rate项必选
  • IMU 频谱图:用于分析诊断无人机振动问题;定位振动源与查看谐波与振动的匹配度。

谐波/噪声阶数 频率关系 注释 设置建议
1次谐波(1阶噪声/基频) 基频(1×电机转速频率) 由电机机械旋转不平衡产生的振动噪声。 必须开启
2次谐波(2阶噪声) 2×基频 主要由2叶螺旋桨的周期性扰动产生,
振动频率为基频的2倍。
4旋翼:1+2阶;3阶依频谱定;
3次谐波(3阶噪声) 3×基频 主要由3叶螺旋桨的周期性扰动产生,
振动频率为基频的3倍。
6-8旋翼开启1+2+3阶
4次谐波(4阶噪声) 4×基频 由桨叶、电机或结构振动的高阶耦合效应产生,
振动频率为基频的4倍。
依频谱定
…(中间谐波) N×基频(5~15倍) 由桨叶尾流、电机齿槽效应、机架共振等
复杂耦合振动产生,能量通常较弱。
一般不需要
16次谐波(16阶噪声) 16×基频 电机/桨叶系统产生的高阶耦合振动噪声,
振动频率为基频的16倍,属于极高阶谐波。
-

[!NOTE] 有需要的谐波阶数再开启,比如图中的3阶谐波强度不高;在接受范围内可以开启1+2+4阶谐波。

[!WARNING] 在保证滤波效果的前提下,尽量减小带宽、降低衰减强度、减少陷波器数量。滤波器会占用大量的 CPU 线程;不宜开启过多的滤波器;否则会导致 CPU 占用率过高,导致系统异常。对于 STM32H7 处理器的控制器,在八旋翼上启用 3 个阶数滤波器是安全的。

多源陷波设置INS_HNTCH_OPTS

单独根据每个电机平均油门/转速匹配一个陷波滤波器;对于多电机飞行器上,尤其是电机转速差异大的机型上,各电机振动频率存在一定偏差;多源陷波设置能够精准滤除各个电机造成的噪声;但会增加CPU负载。

  • 假设机体是四旋翼,INS_HNTCH_HMNCS = 3(开启1阶+2阶噪声滤波),那么在Ardupilot软件里面就会开启4轴 * 2 = 8个陷波滤波器。
  • 假设机体是八旋翼,INS_HNTCH_HMNCS = 7(开启1阶+2阶+3阶噪声滤波),那么在Ardupilot软件里面就会开启8轴 * 3 = 24个陷波滤波器。

动态陷波滤波器

无人机绝大多数振动来自电机与螺旋桨的旋转,其频率随转速线性变化。动态陷波滤波器会实时跟随油门或电机转速调整中心频率,始终对准振动峰值,实现 “噪声在哪,就抑制到哪” 的效果。

基于ESC转速回传的陷波滤波器设置(推荐)

如果使用带遥测的电调(比如DroneCAN或Dshot动力系统),那么谐波陷波参考频率可以通过ESC遥测动态设置。这种动态陷波滤波器设置简单效果最好。

基频的计算

  • 查看飞行日志,通过日志的ESC->X(为电机序号)->RPM项(转速)

基频=悬停时电机平均转速/60

以上图为例:

基频=(2500+2900+3000+3200)➗4➗60=48.3;约等于48。

陷波滤波器设置

INS_HNTCH_ENABLE=1                     //启用陷波滤波器。
INS_HNTCH_MODE=3                      //陷波滤波器模式ESC遥测。
INS_HNTCH_FREQ=48                    //根据转速算出的基频,可以通过IMU频谱图确认。
INS_HNTCH_BW=10                      //若开启了多源,设置为低于基频的1/4。
INS_HNTCH_ATT=8                     //根据IMU频谱分析强度设置,只要低于-40dB则认为是可以接受的。
INS_HNTCH_REF=1                     //ESC遥测模式时,缩放设为1
INS_HNTCH_FM_RAT=1                   //设为1
INS_HNTCH_HMNCS=11                   //四旋翼1阶和2阶必选,3阶和4阶根据频谱图的振动噪声设置;这里案例4阶存在较强噪声。
INS_HNTCH_OPTS=6                     //Multi-Source/update at loop rate项必选
  • 生成预估陷波滤波效果频谱曲线

  • 调整参数值匹配到理想的滤波效果;查看IMU频谱图查看谐波是否准确追踪高幅的振动频率。

  • 将控制器连接至地面站,在全部参数表中将陷波滤波器分析匹配的参数写入控制器中。

基于油门的陷波滤波器设置

对于没有电调信息回传的无人机,可以使用基于油门驱动的陷波滤波器设置。

基频的确定

以Raefly CP900四旋翼无人机为例。

  • 从从上图可以看到50hZ左右出现第一条高于低通滤波器截止频率的振动噪声曲线,上方也呈现了以50Hz左右的倍数频率的多阶噪声。
  • 所以我们选取50Hz左右为陷波滤波器为基准频率,我们选择了48Hz。
  • 调整陷波滤波器设置,使预估陷波滤波器达到较为理想的效果。
INS_HNTCH_ENABLE=1                     //启用陷波滤波器。
INS_HNTCH_MODE=1                       //陷波滤波器模式为油门。
INS_HNTCH_FREQ=48                    //根据转速算出的基频,可以通过IMU频谱图确认。
INS_HNTCH_BW=10                      //若开启了多源,设置为低于基频的1/4。
INS_HNTCH_ATT=10                     //根据IMU频谱分析强度设置,只要低于-40dB则认为是可以接受的。
INS_HNTCH_REF=MOT_THST_HOVER         //等于悬停时的油门值
INS_HNTCH_FM_RAT=0.8                 //低于悬停油门20%时开启驱动滤波器;如果低油门时振动比较大,可以调低,但不要低于截止频率
INS_HNTCH_HMNCS=11                   //四旋翼1阶和2阶必选,3阶和4阶根据频谱图的振动噪声设置;这里案例4阶存在较强噪声。
INS_HNTCH_OPTS=6                     //Multi-Source/update at loop rate项必选

  • 将控制器连接至地面站,在全部参数表中将陷波滤波器分析匹配的参数写入控制器中。

查看陷波滤波器效果

当设置好陷波滤波器后,进行一次不低于30S的飞行;导入日志进行分析。当高于低通滤波器截止频率时的振幅均低于-40dB就可以接受。

第二陷波滤波器

若存在多路振动源,使用单路陷波滤波器,无法达到理想的效果。可以开启第二路陷波滤波器(INS_HNTCH2)。 对于第二个陷波滤波器根据需求配置,一般建议设为固定频率陷波(INS_HNTCH_MODE=0)。

results matching ""

    No results matching ""