利用动态谐波带阻滤波器管理陀螺仪噪声¶
正如在 振动阻尼 主题,ArduPilot (飞行)控制器装置中的振动管理对于实现可预测的飞机控制极为重要。通常情况下,(飞行)控制器安装采用内部或外部机械振动阻尼,以消除最严重的振动。然而,机械阻尼只能起到这样的作用,还必须使用软件滤波来消除更多噪音。
对于(飞行)控制器来说,振动噪声就像任何其他干扰(如风、湍流、控制链路倾斜等)一样,(飞行)控制器必须对其进行补偿才能控制飞机。这妨碍了姿态控制回路的最佳调整,并降低了性能。
ArduPilot 提供两种噪音过滤机制。加速度计信号的低通滤波器由 ins_accel_filter和陀螺仪信号,由 ins_gyro_filter和谐波带阻滤波器对陀螺仪信号进行处理。
正如 测量振动 部分,基本上有两类噪声/振动:在陀螺仪/加速度计采样带宽内产生的噪声和高于这些频率的噪声,它们被 "混叠 "到该带宽内,并可能导致 "倾斜"。必须通过提高安装或机架的刚性从源头上消除混叠噪声,但上述滤波器可以处理其他来源的噪声,这些噪声通常来自电机/螺旋桨的旋转频率及其谐波。
对于多旋翼飞机和四旋翼飞机,几乎所有的振动都源于电机的旋转频率。对于旋翼飞行器和飞机,振动与主旋翼/螺旋桨速度有关。
ArduPilot 支持两个带阻滤波器,其滤波器频率可与电机的旋转频率或旋翼飞行器的旋翼速度相关联,并提供主频及其谐波的带阻滤波。
虽然低通滤波器可以有效降低噪音的影响,但低频设置点会产生很大的相位滞后,因此会降低振荡发生前飞行稳定调整的强度,从而导致飞行稳定调整效果变差。
对于基于陀螺仪的速率控制器来说,这会降低其对快速干扰做出反应的能力。如果陀螺仪的低通滤波器可以设置得更高,那么引起的相位滞后就会更低,调整也会更积极。但这会产生更多噪音和振动,从而有效抵消增益。启用一个或两个谐波带阻滤波器后,就可以针对电机产生的噪音进行调整,从而可以设置更高频率的低通滤波器,从而实现更严格的调整。
带阻滤波器设置概述¶
选择如何控制带阻滤波中心频率。参见 带阻滤波器控制类型.
如果有静态凹槽(通常不建议使用),或 节流 如果使用"...... "控制,则需要确定主要噪声频率,以便设置带阻滤波。参见 确定带阻滤波器中心频率.
使用 INS_HNTCH_MODE.然后通过阅读本节链接的相关页面设置其相关参数 带阻滤波器控制类型.
在启用凹口进行试飞和日志分析后(见 检查带阻滤波器的有效性)、 可调整高次谐波滤波器的数量和位置使用 多级选择甚至是二次谐波带阻滤波组 (ins_hntc2_enable)进行配置,以提高降噪效果。基于网络的 过滤器审查工具 可用于根据试飞日志试验参数变化,以确定最佳配置,而无需进行反复试飞。
启用带阻滤波器¶
通过设置 ins_hntch_enable = 1 为第一个凹槽,如果需要,使用 ins_hntc2_enable = 1.重启后,将显示所有相关参数。
提供了各种动态调整带阻滤波中心频率的方法,以跟踪不同推力条件下的电机速度,即动态谐波带阻滤波滤波。
带阻滤波器控制类型¶
动态带阻滤波器工作的关键是控制其中心频率。有五种方法可以实现这一目的:
INS_HNTCH_MODE = 0. 静态中心频率.动态带阻滤波频率控制被禁用。中心频率固定不变。通常在传统旋翼飞行器中使用,带有用于转子速度的外部调速器,可以集成在电调中,也可以单独用于内燃机电机。
INS_HNTCH_MODE = 1.(默认值) 基于节气门位置通过分析日志确定悬停节流阀时的频率,然后通过节流阀位置的变化来跟踪噪声频率的增加。请注意,油门参考仅适用于垂直起降固定翼飞行器中的 VTOL 发动机,不适用于前进发动机,并且在固定翼飞行模式中无效。请参见 节流 了解更多设置详情。
INS_HNTCH_MODE = 2(转速传感器 1)或 5(转速传感器 2)。 基于转速传感器,其中外部 转速传感器 用于确定电机频率,从而确定缺口的主振动源频率。通常用于传统旋翼飞行器(见 旋翼飞行器)使用 ArduPilot 云台调速器功能。参见 转速传感器 以获取进一步的设置说明。
INS_HNTCH_MODE = 3. 基于电调遥测在这种情况下,电调会提供用于设置中心频率的发动机转速信息。在固定翼飞行中,如果前向电机的电调报告转速,也可将此用于前向电机。这需要正确配置您的电调,以便通过以下方式支持 BLHeli 遥测功能 串口.湖泊 电调遥测 以获取进一步的设置说明。如果 INS_HNTCH_OPTS或 INS_HNTC2_OPTS 如果启用了第二组凹槽,并设置了第 1 位,则将为每个电机创建一组凹槽,跟踪其转速遥测数据,否则将以所有电机的平均频率设置中心频率。
INS_HNTCH_MODE = 4. 基于飞行中 FFT在这种模式下,飞行中会进行一次运行 FFT,以确定主要噪声频率,并调整凹口的中心频率使其与之匹配。如果(飞行)控制器能够运行该功能,这可能是最好的模式。它要求(飞行)控制器固件支持该功能(请参阅 (飞行)控制器硬件固件限制 GyroFFT功能),并有足够的 CPU 能力(F7/H7 (飞行)控制器)。该模式也适用于固定翼飞机。参见 飞行中的 FFT 以获取进一步的设置说明。
以上所有内容在第二个凹槽中都会单独重复,并在前面加上 INS_HNTC2_
而不是 INS_HNTCH_
.下面将解释第一组凹槽的设置。
备注
只有一个滤波器可以是模式 4(FFT)。
确定带阻滤波器中心频率¶
在实际安装动态带阻滤波器之前,必须首先确定需要滤除的频率。如果采用静态带阻滤波或动态带阻滤波器,这一点至关重要。 基于节流阀的动态凹槽设置 使用。虽然其他方法在设置参数前不需要了解这些知识,但作为滤波器激活后分析滤波器效果的比较点,这一点还是很有价值的。
噪声频率确定后,就可以进一步设置带阻滤波器。历史上 利用 IMU 批量采样器测量振动 也可用于速度较慢的 CPU,如基于 F4 的(飞行)控制器),记录短暂的 IMU 原始数据以进行频谱分析。
从固件 4.5 版及更高版本开始,如果(飞行)控制器是基于 H7 的,则可以使用连续的原始 IMU 数据,并使用新的网络工具,开发出一种更好的方法。 这种方法现在更受欢迎.
备注
如果您看到两个噪音峰值相距很近,则可能是您的旋翼飞行器存在严重的偏航不平衡。请参阅 偏航失衡部分.
滤波谐波数¶
设置 ins_hntch_hmncs 以启用多谐波滤波器,其中心频率最高可达基频凹口的 16 倍(中心频率的倍数)。对于电调 INS_HNTCH_MODE 跟踪时,每个电机都会有一组这样的凹槽。如果八旋翼飞行器设置了三个谐波,则会产生 8 x 3 = 24 个带阻滤波器。启用三重凹槽(见下文)将会产生 72 个滤波器!这肯定会导致过多的 CPU 负载和性能问题。其他模式只提供单组谐波凹口。
始终只启用实际需要的谐波带阻滤波器数量,如果使用 ESC (INS_HNTCH_MODE = 3)跟踪模式。启用过多谐波会导致 CPU 周期耗尽,产生不可预知的结果。三次谐波通常是安全的。
检查带阻滤波器的有效性¶
设置好带阻滤波器后,可以通过再次测量滤波器输出(即 IMU 传感器的新输入)的频谱来检查其有效性。请参考 利用 IMU 批量采样器测量振动 或 用于 FFT 分析的 IMU 原始记录 页面。
多凹槽¶
所使用的软件带阻滤波器非常 "尖锐",相对较窄,但中心衰减能力强。在较大型的旋翼飞行器上,电机的噪声曲线非常脏,覆盖的频率范围比单个带阻滤波器所能覆盖的范围更广。为了解决这种情况,可以将谐波带阻滤波器配置为多个带阻滤波器,以提供更广泛的显著衰减。配置由 INS_HNTCH_OPTS 参数。这是一个位掩码参数,可以同时使用多个选项,但应避免同时使用第 0、1 和 4 位。在给定配置中只能使用其中一个。
行动 |
|
---|---|
0 |
双重叠凹槽 |
1 |
多信号源:如果使用 FFT 模式,则将为三个最大的噪声源分配一个凹口。如果使用电调遥测模式,则每个电机的转速都将分配一个凹口。 |
2 |
以循环速率更新滤波器。这需要大量 CPU,但能更快地跟踪噪声变化。只有当频率源以环路速率更新时才有效,即双向 DShot 遥测。 |
3 |
启用每个 IMU 上的凹槽,而不仅仅是主 IMU。这需要耗费大量 CPU,但可以在嘈杂环境和调试时做出更好的车道切换决策。不建议用于 F4 电路板。 |
4 |
三层重叠凹槽 |
备注
由于增加了三凹槽选项,因此不再推荐使用双凹槽选项。使用双凹槽时,最大衰减位于中心频率的两侧,因此在峰值非常明显的小型飞机上使用双凹槽通常会适得其反。
备注
每个槽口都会占用一定的 CPU 资源,因此如果配置多个槽口,飞机上就会出现很多槽口。例如,使用电调遥测功能的三重单一(无谐波)凹槽将导致每个电机产生 3 个凹槽或总共产生 12 个凹槽。例如,使用 F4 cpus 时,这应该是可以接受的,但使用电调遥测功能启用第二组三重凹口时,就会出现以下情况 ins_hntc2_enable 或多个谐波凹槽,可能会造成问题。