# 多旋翼 滤波器调整参数与amp; 控制延迟

过滤器可用于权衡 控制滞迟时长影响飞行性能的噪声滤波和影响飞行性能和发动机健康的噪声滤波。

本主题概述了控制延迟和 PX4 滤波器调整。

备注

在滤波器调整参数之前,您应该先在 基本 多旋翼 PID 调节.载具需要进行适当的调试 PD 增益不应设置过低),这样控制器就不会产生可被理解为噪音的振荡(默认增益可能就足够了)。

# 控制延迟

控制滞迟时长 是指从载具受到物理干扰到电机对变化做出反应的延迟时间。

TIP

降低延迟可以提高传输速率 P 从而提高飞行性能。即使延迟时间相差一毫秒,也会产生重大影响。

以下因素会影响控制延迟:

  • 软机身或软振动安装会增加延迟(它们起到过滤作用)。
  • 软件和传感器芯片上的低通滤波器以增加的延迟换取噪声过滤的改进。
  • PX4 软件内部结构:传感器信号需要在驱动器中读取,然后通过控制器到达输出驱动器。
  • 陀螺仪的最大输出频率(用 imu_gyro_ratemax).更高的频率可减少延迟,但计算量大/会使其他进程处于空闲不足状态。只有配备 STM32H7 或更新处理器的控制器才建议使用 4 kHz 或更高的频率(对于性能较差的处理器,2 kHz 值已接近极限)。
  • 与使用 AUX 引脚相比,IO 芯片(MAIN 引脚)增加了大约 5.4 毫秒的延迟(这不适用于 Pixracer总括 F4但确实适用于 Pixhawk)。要避免输入输出延迟,请禁用 SYS_USE_IO 并将电机连接到 AUX 引脚上。
  • PWM 输出信号:启用 Dshot 或单发 (PWM_AUX_RATE=0pwm_main_rate=0) 以减少延迟。

下面我们来看看低通滤波器的影响。

# 过滤器

这是 PX4 中控制器的过滤管道:

  • 陀螺仪传感器的片上 DLPF。在所有可以禁用该功能的芯片上,该功能都会被禁用(如果不能禁用,截止频率会设置为芯片的最高级别)。
  • 陀螺仪传感器数据的带阻滤波器,用于滤除窄带噪声,例如转子叶片通过频率的谐波。该滤波器可通过以下方式配置 imu_gyro_nf0_bwimu_gyro_nf0_frq.
  • 陀螺仪传感器数据的低通滤波器。它可以通过 imu_gyro_cutoff 参数。

    备注

    采样和滤波始终以传感器的全原始速率(通常为 8kHz,取决于 IMU)进行。

  • D 项上有一个独立的低通滤波器。D 项最容易受到噪声的影响,而稍稍增加的延迟不会对性能产生负面影响。因此,D 端有一个可单独配置的低通滤波器、 imu_dgyro_cutoff.
  • 在电机输出端 (MOT_SLEW_MAX).一般不使用。

为了减少控制延迟,我们希望提高低通滤波器的截止频率。提高 imu_gyro_cutoff 的近似值如下。

截止频率(赫兹) 延迟约(毫秒)
30 8
60 3.8
120 1.9

不过,这也是一种权衡,因为增加 imu_gyro_cutoff 同时也会增加电机信号的噪音。电机噪音会产生以下后果:

  • 电机和电调可能会发热,以至于损坏。
  • 由于电机不断改变速度,飞行时间缩短。
  • 明显的随机小抽搐。

如果设置有明显的低频噪声尖峰(例如,由于转子叶片通频处的谐波),则可以使用带阻滤波器在信号进入低通滤波器之前对其进行净化(这些谐波与其他噪声源一样,对电机具有类似的有害影响)。如果不使用带阻滤波器,则必须将低通滤波器的截止点设置得更低(增加延迟),以避免将这些噪声传递给电机。

备注

只提供一个带阻滤波器。有一个以上低频噪声尖峰的飞机通常使用带阻滤波器清除第一个尖峰,然后使用低通滤波器清除随后的尖峰。

最佳过滤器设置取决于载具。默认设置比较保守,因此也适用于质量较差的设置。

# 滤波器调整参数

首先确保已激活高速率日志记录配置文件 (SDLOG_PROFILE 参数)。 飞行回顾 然后将显示滚动、俯仰和偏航控制的 FFT 图。

警告

  • 不要试图用滤清器调校来解决载具振动大的问题!而是要修复载具的硬件设置。
  • 确认 PID 增益,特别是 D,不要设置过高,否则会出现振动。

过滤器的调整最好通过查看飞行日志来完成。您可以使用不同的参数进行多次飞行,然后检查所有日志,但要确保在两次飞行之间撤膛,以便创建单独的日志文件。

执行的飞行动作可以是简单地悬停在 手动/稳定模式 有一些向各个方向的滚动和俯仰,有一些加大油门的时间。总时间不需要超过 30 秒。为了更好地进行比较,所有测试中的动作都应相似。

首先调整陀螺滤波器 imu_gyro_cutoff 在使用低 D 项滤波器值 (imu_dgyro_cutoff = 30).将日志上传到 飞行回顾 (打开新窗口) 并比较 执行器控制 FFT 情节。将截止频率设置为噪声开始明显增大之前的某个值(频率在 60 赫兹左右或以上)。

然后调整 D 项滤波器 (imu_dgyro_cutoff) 的方式相同。请注意,如果出现以下情况,可能会对性能产生负面影响 imu_gyro_cutoffimu_dgyro_cutoff 相差太远(但必须有显著差异,例如 D=15,陀螺仪=80)。

下面是三个不同 imu_dgyro_cutoff 滤波器值(40Hz、70Hz、90Hz)。90 Hz 时,总体噪音水平开始上升(尤其是滚动噪音),因此 70 Hz 的截止频率是一个安全的设置。 imu_dgyro_cutoff=40 imu_dgyro_cutoff=70 imu_dgyro_cutoff=90

备注

由于 y 轴刻度可能不同,因此无法在不同飞行器之间进行比较。在同一飞行器上,它是一致的,与飞行时间长短无关。

如果飞行图显示出明显的低频尖峰,如下图所示,您可以使用带阻滤波器将其去除。在这种情况下,您可以使用以下设置 imu_gyro_nf0_frq=32imu_gyro_nf0_bw=5 (注意,这个尖峰比通常要窄)。低通滤波器和带阻滤波器可以独立调整(也就是说,在收集用于调整低通滤波器的数据之前,不需要先设置带阻滤波器)。

IMU_GYRO_NF0_FRQ=32 IMU_GYRO_NF0_BW=5

# 其他提示

  1. 可接受的延迟取决于载具大小和期望值。FPV 竞赛手通常会调整到绝对最小的延迟(作为一个参考值 imu_gyro_cutoff 120 左右、 imu_dgyro_cutoff 50至80)。对于大型载具来说,延时并不那么重要,而 imu_gyro_cutoff 80 左右可能是可以接受的。

  2. 您可以从较高的 imu_gyro_cutoff 值(例如 100Hz),这可能是可取的,因为默认的 imu_gyro_cutoff 设置得非常低(30 赫兹)。唯一需要注意的是,您必须意识到风险:

    • 飞行时间不要超过 20-30 秒
    • 检查电机是否过热
    • 如上所述,听一听是否有奇怪的声音和噪音过大的症状。