Betaflight 4.1

Betaflight 4.1带来了

Beatflight 4.1显著改善了滤波器默认参数、PID和前馈功能,所有这些改动都有助于令你的飞机表现得比以往更好,并且开箱即用。我们还有一个全新的10.6配置器!

默认设置可以在绝大多数飞机上表现得十分优秀,包括那些刷4.0.x固件之后出现问题了的飞机。在小无刷和7寸甚至更大的飞机上,可能需要对默认参数做一些调整,但我们强烈建议绝大多数飞机首先尝试使用默认参数进行飞行。

注意1:请勿将先前任何版本的diff内容粘贴到4.1的CLI中。4.0.x的diff也不行!这样会带来非常不合适的设置!

注意2:请先从默认滤波器和PID开始,除非您十分确定您的飞行器确实需要一些并不常见的设置。默认PID真的非常非常优秀!

现在,4.1中的低通滤波器类型全部都是PT1。它们已经针对低延迟方向进行了配置优化,并降低起飞暴走的概率。它们非常有效,但对于部分情况较好的飞机来说,滤波强度可能过高了。配置程序10.6.0中提供了一种较为简单的降低滤波延迟的手段。

我们强烈建议启用RPM滤波器。现在它比之前更易使用了。RPM滤波几乎完全消除了PID回路中由电机产生的噪声。然后,动态陷波器寻找并去除剩余的任何共振噪声。然后,低通滤波器则只剩下很少的工作了。作为一组截止频率可以移动提升至1.5-2倍于正常截止频率的滤波器,它可以以相同的比例来减少滤波器延迟,从而比以往更好地处理洗桨。新的前馈功能将在后面 做详细介绍,但默认值非常稳定,不需要任何调整。

在大多数情况下,4.1应该是一个“刷完就去飞”的版本,默认参数在各种情况下工作十分良好。

如果您的图传受飞控控制,那么您需要自行配置一个合适的图传表,以符合当地的法律法规。

Bitbanged Dshot仍然是一种较新的协议,请在RC阶段到GitHub代码仓库汇报错误。如果你的电调出现了一点小问题,请尝试使用set dshot_bitbang = OFF 而不是保持默认设置。更多信息请参阅《双向Dshot和RPM滤波》。

进一步简化的RPM滤波配置

现在,启用基于RPM回传数据的陷波滤波器(组)比以往更容易了。默认情况下dshot_bitbang= AUTO,无需再在部分F4和F7飞控上自行修改定时器和DMA资源。当双向Dshot启用后,RPM回传将被自动激活,这可以在10.6配置器中手动完成。旧的电调固件则需要关闭dshot_bitbangset dshot_bitbang = OFF。更多相关信息,请参阅最新的《双向Dshot和RPM滤波》。

我们建议在启用RPM滤波器之后仍启用动态陷波滤波器。有关如何在激活RPM滤波器之后调整其余滤波器,请参阅下一节。

新的滤波器设置

Betaflight 4.1重新回归到3.5.x版本时,在陀螺仪和Dterm上全部启用两个PT1滤波器。

在陀螺仪上,默认滤波可能相对较轻。陀螺仪低通滤波器1是动态的,范围是200-500Hz。陀螺仪低通滤波器2是静态的,截止频率是250Hz。

相比之下,Dterm滤波强度则较高。Dterm低通滤波器1是动态的,范围是70-170Hz。Dterm低通滤波器2是静态的,截止频率是150Hz

对低油门段使用较高强度的Dterm滤波的原因,是为了防止在4.0.x中偶尔出现过的,由D相关参数导致的“自旋到月球”(也称“起飞糊脸”)事件再次发生。这是因为飞行器极容易受到Dterm共振的影响。当使用4.1的默认滤波参数时,发生这种情况的概率非常小。

即便滤波器默认参数非常强大,能降低各种高共振飞机的电机温度,洗桨抑制也仍然不会有任何问题,特别是如果在转弯时保持油门的话。这是因为PT1滤波器在相同的截止频率下具有比Biquad滤波器更小的延迟,并且随着油门增加,滤波器截止频率也会上升。

如果您的飞行器在滤波器默认参数下飞行得很好,电机很凉,则可以通过提高低通滤波器的截止频率来获得更好的洗桨抑制能力。

滤波器在10.6版配置器中非常易于调整。只需要向右移动两个过滤器滑块,截止频率就会变得更高,这将降低延迟,并改善洗桨抑制能力。

注意:我们不建议关闭所有滤波器以降低滤波器延迟。我们强烈建议您使用滑块调整,并始终打开所有四个滤波器。

如果没有使用RPM滤波器,则应谨慎地调整低通滤波器。大多数情况良好的飞机应该使用最高至1.5倍的滤波器设定,在这种情况下它们可以飞得很好,电机温凉。除非使用RPM滤波,否则只有非常新的飞机才可以使用2倍的滤波器设定。

通过使用RPM滤波器,大多数飞机可以在使用2倍滤波器设定的情况下,保持电机仍然温凉。在2倍时,与正常情况相比,低通滤波器的延迟减半。只要开启动态怠速(见下文),与默认值相比,洗桨情况将明显更轻。一些非常新的飞机可以在同时开启RPM滤波与动态怠速的情况下,容忍3倍的滤波器设定。滑块将停止在2x处,所以要使用更高的数值,您必须手动输入数值。

要恢复滤波器默认参数,只需将滤波器滑块放回中心即可。

对动态陷波滤波器的更改

动态陷波滤波器现在默认范围为MEDIUM。

启用RPM滤波后,动态陷波滤波器将具有与以往不同的作用。它不再需要跟踪和移除电机噪声峰值——而RPM滤波的工作正在于此。相反,它可以专注于残存于飞机上的其他共振噪声。并非所有的飞机都有共振问题,但共振普遍存在。

我们建议在所有的飞机上启用动态陷波滤波器,即便是那些开启了RPM滤波的飞机。

当使用RPM滤波器时,动态陷波器可以配置为单个较窄的槽口,而不是RPM滤波未激活之前所使用的较宽双槽口配置。以下片段进行了这些更改,并将动态陷波引起的延迟,降低至正常值的5/7左右。

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工作良好,否则不建议您这样做。

如果您具有记录黑盒日志的能力,则建议使用RPM滤波开启前后的日志来进行进行对比,以显示它是否对噪声的整体控制起了作用。

为了减少延迟或专注于特定的共振频带,动态陷波器可以配置为在有限的频率范围内工作。有三个范围可选:LOW、MEDIUM和HIGH。在4.0.x中,默认范围为AUTO,其中代码根据用户配置的陀螺仪动态低通滤波器最大截止频率来选择工作范围。这个想法是,更高的最大值只能用于高KV飞机。但是,例如向上移动滑块,更高的最大值便可用于普通飞机(KV并没有那么高。例如2400kv@4s)。

在4.1中,动态陷波滤波器范围默认为MEDIUM,无论陀螺仪动态低通滤波器最高截止频率如何,它都会保持固定的工作范围。在MEDIUM模式下,它可以处理大约从140Hz至600Hz的共振噪声。这适用于大多数普通飞机。

对于大轴距飞机 - 7寸以上 - 由于共振噪声通常低于150Hz,使用LOW可能更合适。

HIGH在高KV飞机上十分有效,与正常的陀螺仪动态低通滤波器最低截止频率相结合,可以保持动态陷波滤波器跟踪特定切相对较高的共振噪声峰值,并且中心频率不会低于实际所需要的值。这有助于降低延迟。

前馈插值

到目前为止,前馈因子来自于计算设定点的导数。每个新的RC数据帧都会导致设定点急剧上升,从而导致前馈出现更加尖锐的峰。为了衰减这些尖峰,首先对输入的设定点数据进行精调的低通滤波(rc_smoothing_input_hz),之后,再在前馈值上进行第二次低通滤波(rc_smoothing_derivative_hz)。

在4.0.x中,当RC信号平滑为自动模式时(set rc_smoothing_input_hz = AUTOset rc_smoothing_derivative_hz = 0),这些滤波器的值将根据RC数据帧之间的步长动态设置截止频率。

在4.1中,根据设定值的变化量,我们使用插值的方法来计算前馈,并输出没有尖峰的前馈信号。这并不需要使用很多滤波。

新的命令是ff_interpolate_sp,它有三个选项:

  • OFF:普通的4.0.x算法,对RC信号进行低通滤波处理。

  • ON:对前馈使用4.1的新插值算法,对setpoint使用4.0.x的旧低通滤波算法。

  • 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(甚至可能使用任何外置高频头模块)时,下面这些设置将能够降低当前在这些系统上存在的混叠效果:

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

这些更改的原始描述在《前馈2.0》的文档中。在那里我们解释了前馈与前馈增压的基本原理。

前馈插值平均

在不稳定的RC信号轨迹上平滑前馈值的一种有效方法是,在整个前馈信号上使用两点移动平均算法。当单个RC数据帧突然消失时,这对于减少突然的移动非常有效。前馈插值平均默认启用,在别的情况下,要重新启用这个命令,请输入: set ff_interpolate_sp = AVERAGED

虽然平均算法可以将单个尖峰的峰值衰减值一般,并且可以消除丢帧导致的尖峰,但它相当于对FF信号增加了当前RC数据包步长一半的延迟。

虽然一些RX系统比其他系统更好,但大多数RX系统都会经常丢失数据包。这些不稳定的RX信号会导致前馈信号抖动量非常大,所以我们建议保持AVERAGED开启。

如果你知道你的RX信号是非常稳定的,几乎不会发生数据丢失情况,那么可以通过以下命令来禁用它,以避免平均算法带来的延迟: set ff_interpolate_sp = ON

若要返回到旧的基于滤波器的前馈平滑方式,请输入:set ff_interpolate_sp = OFF

前馈增压

这为前馈提供了一个额外的组件,它基于摇杆加速度,当您更改了移动摇杆的速度时,它可以帮助电机更快地旋转。

当开始移动摇杆时,摇杆加速度为正。于是它提供正的“增压”,并被添加到前馈信号中,增压大小与加速度成正比。在将要停止移动摇杆时,一旦摇杆减速,我们将主动降低前馈量,从而减小过冲。

默认的前馈增压ff_boost值是15.这样可以放大整体的正常前馈的强度,特别是在移动的早期,可以降低快速转弯时的延迟。当摇杆减速时,它会反向作用于前馈。总体而言,效果是响应性更强。

如果飞机在总体上能够跟随设定点快速移动,但在开始时仍然有一些之后,切RC信号质量非常好,则可使用高达30的ff_boost。

限制增压的主要因素是RC数据帧的延迟、丢失或过早接受到下一帧数据。这可能会导致一个非常大的setpoint信号步长间隔。从而导致前馈的增压组件中出现更大的步长。我们有两种方法可以削弱这些尖峰。

第一种方法是一种非常有效的、零延迟衰减手段。它抑制增强信号中的尖峰,并让小的、“真实的”摇杆相关的增压值通过。只要增强因子远低于ff_spike_limit所指定的阈值,它就基本不会改变传输过的值(增压);但由尖峰造成的较大增强信号就会被强力衰减。

在大多数情况下,将ff_spike_limit设置为50可以使其很好地工作。

如果RX信号轨线基本上是干净的常见的步进信号,那么更高的阈值(例如60-80)将允许更快地响应快速摇杆输入。然而。如果RX信号有很多异常帧,那么更高的阈值将可能造成不可接受的、非常嘈杂的FF信号和/或电机信号。

第二种方法是对连续的前馈数据取点求平均值。这已在前面的前馈插值部分中描述过了。它确确实实增加了等同于正常RC数据帧一半的延迟。

前馈限制

ff_max_rate_limit是一个CLI变量,默认情况下启用,默认值为100,当摇杆可能移动到其行程的物理极限时,它会削弱前馈信号。这可以最大限度地减少我们在翻滚动作开始时经常看到的过冲。

默认值100效果很好。

但是仍可以将此值调整至完美。首先是正确调整飞机,将前馈和前馈增压调整至最好。然后在黑盒日志查看器中查看暴力翻滚的开始阶段,看看是否有任何过冲现象。如果在ff_max_rate_limit=100的情况下,仍然出现了很多过冲,请尝试降低到95。如果过冲抑制地太好,请尝试提升至105-110。调整范围非常狭窄。

ff_max_rate_limit不会处理摇杆回中时的过冲。

对于那些Rate超低的竞速飞手来説,由于他们经常使用最大行程来进行转弯,此功能非常有用。

优化的默认PID和TPA

主要的PID参数与4.0.x基本保持不变。在Pitch轴和Roll轴上,略微提高I和前馈(FF),使摇杆响应性得到改善。前馈增压ff_boost在默认情况下启用,与较高的前馈默认值和降低延迟的前馈插值相结合,可以显著增强摇杆响应性。如果您的飞机飞起来太过抽搐,请使用摇杆响应滑块来降低FF。

现在,Throttle PID Attenuation (TPA)默认值为0.65,起始点为1250油门。这意味着在满油门时,D将衰减得更多,但D衰减的范围更平滑。结合PT1滤波器的变化,在大多数情况下,与4.0.x相比,这似乎可以改善中油门震荡。

最大的变化是,提供滑块,以简化PID参数的调整

对于电机动力相对较弱的飞机(4s挂载GoPro的机器或7寸重桨飞机)来说,将PID主乘数滑块稍微向右移动一点,大概至1.5,可能效果会更好。电机动力相对较强的机器,例如超轻型目视四轴,将PID主乘数滑块往左移一些,比如0.7-0.8,可能会更好。

使用“摇杆响应增益”滑块可以轻松调整前馈量。电影式高清穿越机可能更偏爱较低的前馈,尤其是他们的RX系统经常丢包。竞速飞手可能更喜欢较高的前馈。

要获得更多的阻尼效果,请将“PD平衡”滑块向左移动。如果你在急转时出现了Pterm震荡,你可能会需要这样做。一般来说,除了特殊情况外,我们基本不会改变PD平衡,默认值是最好的。

6s竞速机通常需要使用默认的I和FF,唯一需要更改的滑块是将“P和D增益”滑块调至0.7。

4s竞速机在主乘数1.2,P和D增益0.7时,工作最佳。

滑块大大简化了PID的调整。要返回默认值,请将所有滑块放回中间位置。

请不要将所有滑块一直向右推以希求它飞得超级完美,你很有可能会烧毁你的电机!

致谢:

大量提升、修复、建议,和幕后的全部代码: mikeller,eTracer,和众多贡献者

动态怠速、RPM回传、Bitbanged Dshot、前馈限制: JoeLucid

配置程序滑块: IvoFPV

前馈增压、滤波和PID更改: ctzsnooze

最后更新于