跳到主要内容

最小 DM

:::警告 已存档 — Betaflight 2025.12 及更高版本

当前固件中不再存在本文档中描述的 d_min_* CLI 变量。该概念被重新命名和重组:

  • d_min_roll / d_min_pitch / d_min_yawd_roll / d_pitch / d_yaw (基地 D,平静飞行时活跃)
  • d_max_roll / d_max_pitch / d_max_yaw(峰值 D,在快速移动和螺旋桨清洗期间激活)
  • d_min_boost_gaind_max_gain
  • d_min_advanced_max_advance

有关当前调整指南,请参阅 动态 D 指南(或 PID 调整指南 了解更广泛的调整上下文)。

:::

Dmin 允许我们根据四边形当时正在做什么而拥有不同数量的 D。

启用后,我们可以在正常飞行中使用较低的 D 量(Dmin 值),而在快速机动(如翻转或翻滚)以及在螺旋桨清洗类型事件期间使用较高的量(Dmax 值)。

D_min 通常用于:

  • 减少正常飞行中的 D,以提高对弯曲螺旋桨的耐受性,保持电机冷却并减少响应延迟(典型的“赛车”场景),或

  • 暂时将 D 提高到正常值以上,以帮助控制翻转和滚转期间的超调并改善螺旋桨清洗控制。

当 D_min 启用时,通过地面站中的开关,正常 D 值将重命名为 Dmax 值,并出现 Dmin 列。 Dmin 值成为“正常”值,在正常直线飞行和平缓转弯中有效。 Dmax 变为“高”值,仅在快速移动或螺旋桨洗事件期间短暂激活。

Dmin 值与 D/Dmax 值一样,按配置文件保存。

在 OSD 中,它们位于 PID 整定设置中。

d_min_boost_gain CLI 参数控制增强效果的灵敏度。值越高,四边形就越快地接近 Dmax。

应用

D_min 允许飞行员在大部分时间使用较低的 D,从而减少 D 延迟、冷却电机和更快的操纵杆响应能力,同时在需要时允许更多的 D,以在快速移动和螺旋桨清洗期间提供更强的控制超调。

自由泳爱好者通常会将 Dmin 设置为接近“正常”或默认 D 值,并将 Dmax 设置为高 20-30%,以帮助控制螺旋洗流和过冲。

赛车手通常会保留 Dmin 与 Dmax 的默认比例。

电影高清试播集始终需要高 P 和高 D 值,因此 Dmin 应为较高的正常值。 7 英寸或更大的电影穿越机通常具有最小的背景巡航摆动,且 D 相对较高,通常 Dmin 比 P 高约 10%。Dmax 可以再次更高,但应谨慎应用,并且仅在需要时才应用。使用高 D 时,应始终使用更强的整体 D 滤波来控制 D 噪声(D 滤波器滑块最左)。

陀螺仪运动本身就是代码如何将 Dmin 提升至 Dmax 的方式。更强的陀螺仪运动,包括翻转和翻滚、螺旋桨洗晃以及弯曲桨叶的晃动,将导致应用到四边形上的 D 量增加。

只要设定点快速变化,Dmin 提前就会将 D 推向 Dmax,并且由于设定点变化早于陀螺仪变化发生,这会导致 D 更早地向 Dmax 提升。通常不需要这样做,除非是针对非常高的最大滚转速率的四轮驱动,需要大量 D 并且可以容忍一些延迟。

`dmin_gain

背景

正常飞行中低于平常的 D 量具有以下优点:

  • 噪音更低,电机温度更低
  • 全油门时电机痕迹更清晰
  • 陀螺仪对快速输入的响应更快
  • 与 D 相关的武装振荡或磨削的可能性较小

然而,低 D 也有缺点:

  • 更大的支柱清洗
  • 更大的超调和反弹
  • 由于 P 高时缺乏阻尼,P 在快速移动时振荡
  • 平稳向前飞行时的低水平缓慢振荡

d_min 的目的是两全其美,即在平稳飞行和低速转弯时使用低 D,在需要抑制超调或处理螺旋桨清洗时使用较高 D。

我的穿越机已经飞得很好了,d_min 会改进它吗?

也许吧。如果穿越机飞行良好,没有超调,没有振荡,没有过热的电机,并且没有太多的螺旋桨洗流,那么启用 d_min 可能不会有太大好处。

如果穿越机的电机由热到热,并且您会撞到物体,有时需要使用弯曲的螺旋桨飞行,或者如果您是一名赛车手,那么低于“正常”D 的 Dmin 值通常非常有帮助,可以提高转向响应能力、弯曲螺旋桨耐受性并减少电机发热。

出于自由泳的目的,如果穿越机飞行良好并且具有很酷的电机,但有螺旋桨洗流或一些 P 摆动,则将 Dmin 设置为“正常”D 值并使用 Dmax 作为螺旋桨洗流的“增强”,通过将 Dmax 设置为比 Dmin 高 20-40%,可能有助于减弱螺旋桨洗流。

有时,具有“边缘”调谐且具有相对较高 P 值的穿越机系统会在紧张的开机转动过程中出现明显的、可听到的 P 值振荡。使用 Dmax 作为 D 增强将会在这些时候给你更多的 D。这可以帮助更好地控制这些类型的 P 振荡,从而实现更高的总体 P 值。

如何禁用 d_min?

在地面站中将其关闭。

也可以在 CLI 中通过设置 d_min = 0 或将 d_min 错误配置为大于 D 来禁用 D_min。

禁用后,用户 Dmax 值将变为 D 值,并且 D 始终保持该值。

我应该如何为我的第一趟航班进行设置?

横滚、俯仰和偏航的默认 Dmin 值为 23、25 和 0。对于大多数四边形来说,这些都是良好、安全的起点。

对于高性能构建和所有新构建,第一次飞行应该通过主 P 和 D 滑块左击几下来完成,以防 PID 有点高。

当在 Dmin 处于活动状态的情况下调整 P 和 D 时,请务必注意 Dmax 值在快速翻转和翻滚期间处于活动状态,而 Dmin 值在稳定飞行期间和较小移动期间处于活动状态。

有些人主张在关闭 Dmin 的情况下调整 P 和 D。这个想法是确定引起振荡的 P 值,然后确定控制振荡所需的 D 量。

飞行员应首先将 D 设置为 P 的大约三分之一,逐步向上推动直到发生 P 振荡,例如在急速快速转弯期间,然后将 P 和 D 都后退,直到只剩下一点点 P 振荡。然后可以将 D 提高到控制它的值,该值通常约为接近或略低于 P 值的数字。自由泳选手应使用此值作为 Dmin。然后,他们可以将 P 驱动得更高,直到 P 振荡重新出现,并使用更高值的 Dmax 来控制它。这也应该能提供最佳的螺旋桨清洗处理。

添加 D_min 会改善桨叶洗流处理吗?

如果将 Dmin 值设置为最佳 D 值,并将 Dmax 设置为更高的值,则可能会改善螺旋桨洗流。

如果将 Dmin 值设置为低于最佳 D 值,以保持电机冷却/使穿越机更加灵敏/提高弯曲支柱耐受性(例如用于赛车),则螺旋桨洗流可能会更糟。

在螺旋桨洗流事件期间,D 通常仅爬升至 Dmax 值的一半左右。 Dmin 代码对螺旋桨清洗的“敏感性”受 d_min_boost_gain 参数的影响。更高的增益将更快、更积极地推动 D 上升。默认是保守的。在最合理的四边形上可以将其设置为 30-35,在真正干净的自由泳构建上可以设置为 40-45。

如果螺旋桨洗流是主要问题,并且电机温度较低,则调高 d_max 值,并调高 d_min_boost_gain

对于此类微调,最好将调试模式设置为 D_MIN 来制作 Blackbox 日志。这将显示您在飞行中不同时间实际获得的 D 量。

添加 d_min 会改善超调控制吗?

是的,只要它的总体效果是提供比您原本获得的更多的 D。 d_min 提升效果带来的 D 增加定时在最佳时间起作用,以帮助控制过冲。

“d_min_advance”参数怎么样?

D_min_advance 通过在设定点变化时(以及陀螺仪变化时)增强 D 来加速增强效果的发生。在穿越机开始移动之前以及陀螺仪检测到任何变化之前,设定值的变化会在您移动摇杆后立即发生。默认为 20,这个值非常小。

零前进对于赛车手来说是最好的,可能对于大多数穿越机来说也是如此。

更强的前进(例如,高达 100)将很早就将 D 推高,这可能会改善某些自由泳设置和 LOS 四边形的超调控制,这些四边形的目标是极高的最大侧倾率,并且非常容易受到超调的影响。

由于强提前会增加延迟,因此请尝试使用尽可能低的值。始终在零处尝试,如果四边形的处理没有明显变化,则使用零。

如果提前量为零,则直到电机开始转动穿越机时,D 升压才会启动,这将在操纵杆移动一段时间后发生。这使得 FF 和 P 能够尽早“开始”转动穿越机,并且不受 D 的任何抑制,从而最大化初始转动响应能力。但对于响应非常灵敏的穿越机来说,陀螺仪衍生的增强信号可能出现得有点晚了。增加一些提前量将在摇杆移动时启动升压 D,而无需等待电机旋转。

d_min_boost_gain 参数怎么样?

d_min_boost_gain 决定 D 响应翻转、滚转和螺旋桨洗流而增强的速度和强度。

默认值 20 对于大多数四边形来说是安全的。 30-35 对于干净的自由式四边形来说是一个很好的价值。一些极其无噪音的四通道可以使用 40-45 的增益。

默认值 20 的 Dmin 增益对于赛车手来说是最佳选择。大部分时间它都会将 D 保持在 Dmin 值,只有在采取更强的动作时才会出现,以防止超调。它对于像这样的螺旋桨洗流没有多大帮助,但为赛车手提供了所有的响应能力和超调控制优势。

一般来说,35 的 Dmin 增益适合自由泳。在非常干净的四边形上可以使用大约 40-45 的较高值,但最好通过将调试设置为 D_MIN 进行日志记录来检查到底发生了什么。

理想的增益值应该在温和的向前飞行中产生很少的助推力或没有助推力,但在螺旋桨洗流中产生快速且显着的助推效果。

请注意,只要四边形快速移动或晃动,高 Dmin 增益就会使 Dmin 增强出现。如果设置得高,弯曲的支柱或任何其他摇动过程可能会导致 D 达到 Dmax 值,然后您可能会得到大量 D 介导的电机发热。因此,除非构建干净且无抖动,否则不要使用高增益和高 Dmax 值非常重要。

高 Dmin 增益只应用于真正干净的构建,不会使用劣质桨叶飞行。

如果可以记录穿越机,则一般用途的理想增益值是正常飞行中实时 D 值处于最小值的情况(并非完全位于最小值,而是有时会上升一点点),并且在螺旋桨洗涤中升至最大值的大约一半,并在翻转和滚转时升至 Dmax。记录对于正确优化增益值确实很有帮助。

我如何知道在飞行期间获得的 D 的实际值是多少?

  1. 使用 OSD:在 CLI 中输入 set debug_mode = D_MIN,然后将 OSD 设置为在屏幕上显示 debug2。你看到的数字是掷 D 乘以 10。如果它显示 350,则此时您的 D 为 35。

  2. 创建日志:在 CLI 中输入 set debug_mode = D_MIN。 blackbox explorer 中的 Debug2 将在滚动时显示瞬时 D,而 debug3 将在俯仰上显示 D(注意数值表示为 D*10)。

调试 2 显示 D 滚动,调试 3 显示 D 俯仰。两者都是 TPA 衰减之前的数据。 调试 0 显示陀螺仪的贡献,调试 1 显示设定值(提前)对增强效果的贡献。

@docteh 的注释:4.0 和 4.1 中的调试 OSD 元素在一大行上显示调试 0 1 2 3。仅当启用 d_min 时,您才会在此处看到值。

这背后的技术是什么?

螺旋桨冲洗的特点是陀螺仪振荡频率在 20-60hz 范围内。快速翻转和转弯与 10-20hz 频率范围内较大的陀螺仪变化相关。

D_min 代码:

  • 获取陀螺仪的微分(其变化率),
  • 应用 80hz 双二阶低通滤波器(以抑制高频 D 噪声),
  • 得到它的绝对值,然后
  • 使用 10hz 低通滤波器平滑和延迟信号
  • 将用户指定的增益量应用于平滑信号
  • 将 D 提升至达到 Dmax 的阈值。10hz 滤波器的短延迟效果很好,因为增强更多地发生在快速翻转结束时,而不是开始时。因此,提升不会削弱四核对命令输入的初始响应能力。

d_min 是否会增加更多 CPU 负载?

是的,但只有一点点;一个双二阶滤波器和一个 PT1 滤波器,以及一些简单的数学运算。要了解有多少额外的 CPU,请暂时将所有轴上的 d_min 设置为零,然后在 CLI 中重新检查 CPU 使用情况。

将提前量调为零可减少所需的处理量。

d_min 是否适用于所有 F3 目标?

不可以。某些 F3 芯片没有足够的闪存空间用于 d_min。配备这些芯片的主板不会在 CLI 或 OSD 中显示 d_min 选项。可以通过在相关目标定义文件中重新启用 d_min 来进行特殊的 F3 构建,但需要排除其他内容以腾出空间。

另请参阅: