Betaflight 4.1 调校说明
- 更简化的 RPM 滤波配置
- 改进后的默认低通滤波设置
- 动态陷波滤波器的变更
- 前馈插值:降低前馈信号的尖峰特性
- 前馈增强:改善瞬态摇杆响应并减小超调
- 前馈限幅:在摇杆以最大速率向外运动时抑制超调
- 动态怠速:改善低转速时的操控表现
- 优化的 PID 与 TPA 默认值,以及新版 Configurator 中的调节滑块
Betaflight 4.1 显著改进了默认滤波器和 PID,并增强了前馈能力;这些改动可让四轴飞行器在保持默认设置的情况下获得比以往更好的飞行表现。
同时,我们还推出了全新改进的 Configurator 10.6!
默认设置应能在绝大多数机架上良好工作,包括曾在 4.0.x 中遇到问题的机架。小型涵道机和 7 英寸或更大的四轴飞行器可能需要重新调校,但仍强烈建议先在大多数机架上试飞原厂默认值。
切勿将任何旧版本软件的 diff 粘贴到 4.1 CLI 中,甚至不应使用 4.0.x 的 diff。这样做必然会带入不适用的设置!
请从默认滤波器和 PID 开始,除非你十分确定自己的四轴飞行器确实需要非标准设置。默认 PID 的表现非常出色。
4.1 的低通滤波器现全部采用 PT1。它们经过配置,可减小延迟并降低解锁后失控飞走的概率。虽然滤波效果很强,但对多数装配良好的机架而言可能强于实际所需。Configurator 10.6 提供了一种简单方式来降低滤波延迟。
我们强烈建议启用基于 RPM 的滤波。现在的配置方式比以往更简单。RPM 滤波几乎可以完全从 PID 环路中移除与电机相关的噪声;动态陷波滤波器随后可定位并消除残余的谐振噪声峰值。这样低通滤波器的工作量就很小,通常可整体将截止频率提高到常规值的 1.5 至 2 倍,以相同比例降低滤波延迟,并获得前所未有的螺旋桨扰流(propwash)抑制效果。后文会详细说明新的前馈功能;其默认值已经非常可靠,通常无需调校。
大多数情况下,4.1 可直接刷写后起飞,默认设置在各方面都非常出色。
若要由 Betaflight 控制 VTX,用户必须按当地法规配置适用的 VTX 表。
Bitbang DShot 仍是很新的功能;请在 RC 阶段将问题报告到 GitHub。若 ESC 出现问题,请尝试 set dshot_bitbang = OFF,而非使用 dshot_bitbang = AUTO。更多信息请参阅 RPM 遥测页面。
更简化的 RPM 滤波配置
启用基于 RPM 的滤波现在比以前更简单。使用默认设置 dshot_bitbang = AUTO 时,F4 和 F7 飞控无需再自定义定时器和 DMA 配置。启用 dshot_bidir 后会自动激活 RPM 遥测,也可在 Configurator 10.6 中完成此设置。设为 dshot_bitbang = OFF 时仍使用旧方法。更多信息请查阅更新后的 rpm_telemetry 页面。
即使启用了 RPM 滤波,我们仍建议保持动态陷波滤波器开启。如何在启用 RPM 滤波后调整滤波器,请参阅下一节。
改进后的默认低通滤波设置
Betaflight 4.1 回归到 3.5.x 已验证有效的滤波架构:陀螺仪采用双 PT1 低通滤波,D 项也采用双 PT1 低通滤波。
陀螺仪的默认滤波相对较轻:Gyro Lowpass 1 为动态滤波,范围是 200 至 500 Hz;Gyro Lowpass 2 为 250 Hz 的静态滤波。
相比之下,D 项滤波较强:D Lowpass 1 为动态滤波,范围是 70 至 170 Hz;D Lowpass 2 为 150 Hz 的静态滤波。
低油门时采用较强 D 项低通滤波,是为了避免 4.0.x 中偶尔出现的、由 D 项谐振引发的“直冲云霄”事件。这类问题主要发生在特别容易出现 D 项谐振的四轴飞行器上;采用 4.1 滤波器后,发生概率应大幅降低。
尽管默认滤波较强,在任何合理装配的机架上都应能使电机保持较低温度,螺旋桨扰流抑制仍应不错,尤其是在转弯时保持油门的情况下。这是因为在相同截止频率下,PT1 滤波器的延迟低于双二阶(biquad)滤波器,而且滤波器截止频率会随油门升高而快速上升。
如果四轴飞行器在默认滤波设置下飞行良好且电机温度较低,可以通过提高低通滤波截止频率来减小螺旋桨扰流。
Configurator 10.6 使此操作非常简单:只需将两个滤波滑块向右移动,截止频率就会提高,从而减小延迟并改善螺旋桨扰流。
不建议为了减小滤波延迟而关闭整个滤波器。强烈建议使用滑块进行调节,并始终保持四个滤波器全部开启。
未使用 RPM 滤波时,应谨慎提高低通滤波截止频率。多数装配良好的四轴飞行器在常规值的 1.5 倍以内仍应飞行良好且电机温度较低;除非启用 RPM 滤波,否则只有噪声非常干净的机架才可能适应 2 倍设置。
使用 RPM 滤波时,多数四轴飞行器即使将滤波器提高到常规值的 2 倍,电机温度仍会较低。在保持动态滤波开启的前提下(见下文),2 倍设置下低通滤波造成的延迟仅为常规设置的一半,螺旋桨扰流也会比默认值明显改善。一些噪声很干净的机架在动态滤波和 RPM 滤波都启用时可承受最高 3 倍的滤波设置。滑块上限为 2 倍;要继续提高,必须手动输入数值。
要恢复默认滤波,只需将滤波滑块移回中间位置。
动态陷波滤波器的变更
动态陷波滤波器现在默认使用 MEDIUM 范围。
启用 RPM 滤波后,动态陷波滤波器承担的职责不同:它不再需要追踪和消除电机频率峰值,因为 RPM 滤波会负责这一任务;相反,它可专注于机架中仍存在的谐振峰值。并非所有四轴飞行器都有谐振问题,但许多机架确实存在。
我们建议所有四轴飞行器都保持动态陷波滤波器开启,即使已经使用 RPM 滤波也一样。
启用 RPM 滤波时,动态陷波可使用单个较窄的陷波,而无需采用未启用 RPM 滤波时通常需要的较宽双陷波。以下配置可实现这些变更,并将动态陷波带来的延迟降至常规值约 1.4 倍;使用 RPM 滤波时应应用此配置:
set dyn_notch_width_percent = 0
set dyn_notch_q = 250
以下配置恢复未使用 RPM 滤波时的默认值:
set dyn_notch_width_percent = 8
set dyn_notch_q = 120
如果正在使用 RPM 滤波,且较窄的陷波在电机不发热的情况下工作良好,可以尝试将动态陷波完全关闭。务必谨慎试飞并检查电机温度!若之后因碳板弯曲、柔软或变形的桨叶而产生机架谐振,在动态滤波器完全关闭的情况下可能烧毁电机。除非你对机架完整性有信心,并确定 RPM 滤波工作正常,否则不要这样做。
如果具备日志记录能力,对比动态陷波开启和关闭时的日志,可判断它是否确实有助于整体噪声控制。
为了减小延迟或聚焦特定谐振频段,可以将动态陷波配置为仅在有限的频率范围内工作。可选范围有三种:LOW、MEDIUM 和 HIGH。在 4.0.x 中,默认范围为 AUTO,代码会根据用户配置的 dyn_lpf_gyro_max_hz 值选择范围。其原理是假定较高的最大值只会用于高转速四轴飞行器;但现在例如上调滑块后,普通四轴飞行器也可能使用较高的最大值。
在 4.1 中,动态陷波默认采用 MEDIUM 模式,且不再受 dyn_lpf_gyro_max_hz 影响。在 MEDIUM 模式下,它可处理约 140 Hz 至约 600 Hz 的谐振频段,适合大多数常规四轴飞行器。
对于 7 英寸或更大的大型四轴飞行器,若谐振频率低于 150 Hz,LOW 可能更适合。HIGH 可用于高转速四轴飞行器;将其与高于常规值的 dyn_notch_min_hz 配合使用,可使动态陷波追踪特定且相对较高的谐振峰,而不会向下追踪到不需要的频率,从而降低其延迟贡献。
前馈插值
此前,前馈系数取自设定点曲线的斜率。每次新的 RC 阶跃都会使设定点急剧变化,从而产生更尖锐的前馈尖峰。为衰减这些尖峰,先使用 rc_smoothing_input_hz 对输入设定点数据进行精心调节的低通滤波,再使用 rc_smoothing_derivative_hz 对前馈值进行第二次低通滤波。
在 4.0.x 中,当 rc_smoothing 使用自动模式(set rc_smoothing_input_hz = 0 和 set rc_smoothing_derivative_hz = 0)时,这些滤波器数值会根据连续接收的 RC 数据点之间的阶跃间隔动态设置。
在 4.1 中,前馈量使用插值方法,依据连续设定点值的变化计算;输出的前馈阶跃更干净且没有尖峰,因此不需要大量滤波。
新增命令 ff_interpolate_sp,有三个选项:
OFF:常规 4.0.x 低通 RC 滤波ON:新的 4.1 插值前馈,设定点仍采用 4.0 风格低通滤波AVERAGED:与ON相同,但对前馈信号采用两点移动平均;这是新的默认值。
对于不使用 OpenTx 的遥控器,或使用 OpenTx 2.3 及更高版本且传输速率不会动态变化的系统,4.1 的插值前馈可使用以下低延迟 RC 平滑设置:
set rc_smoothing_input_hz = 40
set rc_smoothing_derivative_hz = 100
set rc_smoothing_input_type = PT1
set rc_smoothing_derivative_type = PT1
在使用 OpenTx 遥控器搭配 TBS Crossfire 或 FrSky R9 时,以下设置可衰减这些系统当前出现的混叠伪影(以及可能在 OpenTx 遥控器上使用任意外置模块时出现的同类问题):
set rc_smoothing_derivative_hz = 20
set rc_smoothing_derivative_type = PT1
以下设置可恢复默认的 4.0 自动低通配置:
set rc_smoothing_input_hz = 0
set rc_smoothing_derivative_hz = 0
set rc_smoothing_input_type = BIQUAD
set rc_smoothing_derivative_type = BIQUAD
这些变更最初发表于 Feedforward 2.0 文档,其中说明了前馈和 ff_boost 的基本概念。
前馈插值平均
对于 RC 轨迹不稳定的情况,对整个前馈信号应用简单的两点移动平均是一种非常有效的平滑方法。它尤其能减小漏掉单个 RC 阶跃时出现的突然上、下运动。默认已通过以下设置启用 FF 平均:
set ff_interpolate_sp = AVERAGED
平均会将单个尖峰衰减约一半,并消除交替漏步造成的尖峰;但它也会给 FF 信号增加相当于当前 RC 阶跃间隔一半的延迟。这一额外延迟很小,通常只有在极快的反向操作中才会察觉。
虽然部分接收机系统优于其他系统,但大多数都会频繁丢失数据包。此类不稳定的 Rx 信号会造成严重 FF 抖动,因此强烈建议保持平均功能开启。
如果确认 Rx 信号稳定且很少丢包,可通过以下设置关闭平均,避免其延迟:
set ff_interpolate_sp = ON
要恢复旧的前馈低通滤波平滑方式,请使用:
set ff_interpolate_sp = OFF
前馈增强
此功能提供基于摇杆加速度的额外前馈分量,可在改变摇杆速度的瞬间帮助电机更快加速。
开始动作时,摇杆加速度为正。系统会提供与该加速度成正比的正向“增强”(boost),并将其叠加到前馈信号上。动作结束时,只要摇杆开始减速,系统便会主动降低前馈量,以减小超调。
默认 ff_boost 值为 15。它会整体增强常规前馈的强度,特别是在动作初期,从而减少快速转向时的滞后;在摇杆减速时则降低前馈,减少超调。总体效果是快速改变方向时的准确性更高。
若四轴飞行器整体跟踪良好,但快速输入开始时仍略有滞后,并且 RC 信号质量较好,可将 ff_boost 提高到最高 30。
前馈增强的主要限制来自 RC 输入数据包延迟、缺失或过早到达。这会使 RC 设定点产生大阶跃,进而使 FF 增强分量出现更大的阶跃。系统提供两种衰减这些尖峰的方法。
第一种是非常有效且不增加延迟的衰减方式:它会抑制由尖峰产生的峰值增强,同时允许较小的、真实摇杆动作造成的增强通过。只要增强分量明显低于 ff_spike_limit 阈值,它就基本不受影响;由尖峰造成的较大增强信号则会被强力衰减。
默认 ff_spike_limit 阈值为 50,在多数情况下表现良好。
如果 Rx 轨迹干净且阶跃大多规律,使用更高阈值(例如 60 至 80)可更快响应快速摇杆输入。但若 Rx 信号包含许多异常阶跃,提高阈值可能导致 FF 和/或电机轨迹噪声无法接受。
第二种方法是对连续前馈数据点进行平均,已在上文“前馈插值”部分说明。它会增加相当于常规 RC 间隔一半的延迟。
前馈限幅
ff_max_rate_limit 是一个 CLI 变量,默认以 100 启用。当摇杆向外运动的速度可能达到行程的机械极限时,它会削减前馈,从而尽量减小翻滚开始时常见的超调。
默认值 100 的效果良好。
该值可以继续微调。请先将四轴飞行器正确调校到位,并使用最适合的 FF 与增强设置。然后在 Blackbox Explorer 中检查激烈翻滚开始时是否有超调:若 ff_max_rate_limit = 100 下仍有过多超调,可尝试 ff_max_rate_limit = 95;若超调抑制过强,可尝试 105 至 110。其可调范围相当窄。
ff_max_rate_limit 不会处理摇杆回到中位时的超调。
它对速率设置很低、因此在紧凑转弯时常常打到最大行程的竞速飞手可能有用。
优化的 PID 与 TPA 默认值
主要 PID 相较 4.0.x 基本未变。俯仰和横滚的默认 I 值及前馈(FF)值略有提高,摇杆响应性得到改善。ff_boost 默认启用;配合更高的默认前馈值和前馈插值带来的低延迟,摇杆响应应会显著增强。若四轴飞行器显得过于灵敏,可使用“摇杆响应性”滑块降低 FF。
**油门 PID 衰减(TPA)**现在默认值为 0.65,并从 1250 油门单位开始生效。这意味着全油门时 TPA 更强,同时 D 项的降低范围更平滑。结合 PT1 滤波的变更,在多数情况下它似乎可比 4.0.x 更好地改善中油门振荡。
最大的变化是引入了简化 PID 数值调节的滑块。
控制裕量较低的机型(例如沉重的 4S GoPro 机型,或桨叶负载略高的 7 英寸机型)通常可将主 PID 滑块稍向右移,最高约至 1.5 倍。控制裕量较高的机型,例如轻量化目视飞行(LOS)四轴飞行器,通常将主 PID 滑块向左移至约 0.7 至 0.8 会更好。
前馈量可使用“摇杆响应性”滑块轻松调节。电影级 HD 四轴飞行器可能更适合较低的前馈量,尤其是在其长距离遥控链路经常出现较大异常跳变时;竞速飞手可能更偏好较高的前馈量。
若想让 D 项对 P 项提供更强阻尼,可将 PD 平衡滑块向左移动。若紧凑转弯时出现 P 项摆振,可尝试此设置。除非常规情况外,一般不建议改动它;默认值通常最好。
6S 竞速四轴飞行器通常需要默认的 I 和 FF 数值,唯一需要的滑块调整通常是将 P 和 D 增益滑块降至 0.7。
4S 竞速四轴飞行器在主滑块设为 1.2、P 和 D 增益滑块设为 0.7 时,可能表现相当不错。
这些滑块大幅简化了 PID 调校。要恢复默认值,只需将所有滑块移回中间位置。
不要把它们全部推到最右侧来测试飞行表现,否则很可能会熔毁电机 :-)
致谢:
大量改进、修复、建议及所有底层代码:mikeller、eTracer 和多位贡献者
动态怠速、RPM 遥测、Bitbang DShot、前馈限幅:JoeLucid
Configurator 滑块:IvoFPV
前馈增强、滤波器和 PID 变更:ctzsnooze