视频把 FeedForward 与 D_MIN 放回 Betaflight 控制器的历史脉络中解释:当 D 项改为主要对 gyro 做微分后,它更专注于阻尼,不再像旧式 error derivative 那样在打杆初期帮助机体启动。FeedForward 依据 setpoint 的变化率提前推动响应,D_MIN 则让平稳阶段使用较低 D、需要阻尼时再提高。两者调的是“响应感”和“动态阻尼”,不能替代机械降噪、合适的基础 PD 或当前版本文档。
为什么需要把启动响应与阻尼分开
视频先画出 setpoint 与 gyro:摇杆命令先变化,飞机因惯性和控制延迟稍后才追上。早期 Betaflight 的 D 项曾对误差做微分,因此 setpoint 快速变化也会进入 D 输出,打杆初期可能出现帮助机体启动的分量;视频以 3.5 前后为历史分界,说明后来 D 更专注于对 gyro 变化提供反向阻尼。
这样分工更清楚,但也留下一个体验问题:当命令刚开始变化、gyro 还没动时,纯 gyro derivative 的 D 不会主动把飞机推向新命令,甚至在机体开始运动后会立即提供阻力。FeedForward 与 D_MIN 正是用来分别管理“怎样更快进入动作”和“什么时候需要多少 D”。当前实现细节可能已变化,应把历史图示当作概念模型。
FeedForward 从摇杆命令预测需要的推动
FeedForward 关注 setpoint 的变化率:摇杆命令变化越快,前馈输出越大;命令保持不变时,前馈趋近于零。它不等待 gyro 落后后再纠错,而是根据飞手已经发出的命令提前增加控制,因此能缩短打杆到机体响应之间的主观延迟。
更高 FeedForward 通常带来更直接、适合竞速的入弯响应,但也会把摇杆噪声、快速小动作或过于激进的 Rates 放大成突兀手感。追求平滑自由飞时,可能需要较温和的前馈。调整时应保持同一 Rates 和动作,用黑盒比较 setpoint、gyro、FeedForward、过冲与停止后的稳定,而不是只凭数值大小。
D_MIN 让 D 在需要时才升高
视频的直观模型是:平稳或动作较小时维持较低 D,减少 D 对动作启动的阻碍和持续噪声放大;当机体或命令变化明显时,再把 D 提升到能够抑制过冲、propwash 和外界扰动的水平。这样不必为了日常响应一直承担最大 D 的热量与噪声成本。
D_MIN 不是把 D 随意降到最低。基础 D 太低会削弱小扰动阻尼,动态提升设置不当也可能无法在需要时及时到达目标。视频建议把动态高端与已经验证的 PD balance 中 D 水平联系起来,再单独寻找合适的低端;具体字段、触发方式和范围必须按当前 Betaflight 版本确认。
用目标飞行风格而不是预设数值调节
竞速更看重打杆后立即进入轨迹,可在噪声和过冲受控的前提下逐步增加 FeedForward,并让动态 D 在强动作时提供足够刹车。平滑 freestyle 则可能降低前馈,避免每个细小命令都产生突然的机体加速;但不能靠整体降低 D 来换平滑,否则抗 propwash 和风扰的能力也会一起下降。
先把机架机械状态、滤波和基础 P/D 调到可靠范围,再一次只改 FeedForward 或 D_MIN。每轮使用相同的阶跃、反打和 propwash 动作,检查 gyro 追随延迟、过冲、回弹、电机温度与 D-term 噪声。录制于 2021 年的选项和数值不是当前版本的预设答案。
操作步骤
- 理解 D 项的历史变化
先区分旧式 error derivative 与主要基于 gyro derivative 的 D,避免把早期教程中的启动推动作用直接套到当前版本。
- 找到打杆初期的响应空档
在 setpoint 已变化而 gyro 尚未跟上的区段,观察 P、D 与实际响应,确认问题是启动迟缓而不是机械或滤波故障。
- 把 FeedForward 与 setpoint 变化率对应起来
检查快速摇杆命令时前馈峰值以及 gyro 开始跟随的时间,避免用过高前馈放大细碎输入。
- 理解 D_MIN 的动态阻尼目标
平稳阶段降低 D 负担,强动作或扰动时恢复足够阻尼;基础值和高端都需要黑盒验证。
- 按飞行风格小步调 FeedForward
竞速可追求更直接,平滑 freestyle 可更温和;每次只做小改动并复测过冲、停止和手感。
- 复核 D 噪声与电机温度
完成动态 D 调整后检查 D-term 噪声、propwash、回弹和电机热量,任何异常都应回退。
常见问题
FeedForward 和 P 的区别是什么?
FeedForward 根据 setpoint 的变化提前推动响应,P 则根据 setpoint 与 gyro 已经出现的误差纠正;两者可以协作,但来源不同。
提高 FeedForward 会不会让飞机更快?
它通常让命令响应更直接,但过高可能放大细碎摇杆输入并造成突兀或过冲;应结合 Rates、黑盒和飞行风格判断。
D_MIN 是否越低越凉?
较低基础 D 可能减少持续噪声和热量,但也会削弱小扰动阻尼。动态高端、触发和基础值都必须一起验证。
为什么不能直接复制视频中的参数?
视频基于 2021 年 Betaflight 语境;当前算法、字段、默认值以及你的机架、滤波、Rates 和电机都可能不同。
完整时间轴文字稿
文字稿按视频时间排列,便于快速定位讲解内容。文字稿语言:简体中文。
大家好我是Quarank好久不见我们上一期说到了这个PID 调参时操今天我们来看一下我们还没有说的两个很重要的东西就是这个D的大老婆和小老婆也就是FeedForward和这个D命我为什么说这个FeedForward和D命是D这个PID当中D的大老婆和小老婆呢其实是有原因的我们来看一下啊我们先来看一下这个PID的走势
假设我们这条绿线是我们摇杆的指令我们现在让它以某一个角速度开始旋转对不对但是飞机我们知道它这个反应是有延迟的对不对所以它基本上大概是这个样子一般情况下它应该就是这个样子然后终于终于在这里追到了我们的这个摇杆之类这个大熊终于追上了镜像对不对这是GY
计外就是陀螺仪了 绿线是setpoint SP我们在前几集中说到 Betaflight 里面最早的3.5
之前它是对误差作为一份的D 值。
那我们看这样做的有个什么影响呢?你看我们先来画一下之前这个D 值大概走势是什么样的,然后再来看现在对 gyro 作为分之后这个D 值的走势是怎么样我们先来看之前的我们用这个蓝色的线来拍看我们看之前是不是D 值一直在增大对不对?不不不D 值在增大,这个误差一直在增大误差增大我们在看误差增大的趋势是怎么样的刚开始这个误差是一点一点一点增大对不对?然后到这里开始
[此处语音无法可靠识别]
这个地方开始减小减小减小大概在这个中间的时候你看它几乎平行了平行那就误差没有变化对不对误差没有变化那我们的这个微分是多少斜率是多少斜率就是0对不对然后到这边几乎就是这边的这个映射过来只是现在误差开始减小了所以我们的微分也变成符号了对不对所以这个地方呢这是现在的地现在的地然后
[此处语音无法可靠识别]
[此处语音无法可靠识别]
你看我们蓝色的线是3.5之前这个D 值的变化 我这个黄色的线是3.5之后的D 值的变化 他们有什么区别 他们有很大的区别对不对 在这个3.5之前 当我摇杆波动在摇杆波动启动了那个时候 这个D 值其实是帮助我们飞机飞机来运动对不对 因为它和PID的那个方向是一样的
[此处语音无法可靠识别]
[此处语音无法可靠识别]
我们用另外一种颜色来代替用红色来代替V4我们直接看绿线的斜率刚开始是零然后增大增大增大增大增大到这里大概最大对不对然后再开始区域平缓区域平缓就变小了对不对变小变小变小变小变小
然后这就是我们FeedForward线你看它是不是虽然没有完全代替到蓝色的线但是它很好的覆盖了这一条线填补了之前的地的空白那我们接下来看一下D_MIN它是怎么减小这一段地的阻碍呢?D_MIN的意思就是说在平常飞机飞的不是特别动作不是特别大的时候我们保持一个比较低的D 值然后在飞机做比较大的动作的时候我们再把这个D 值给它提高
我们平时为什么要减小低的减小这个低值呢?你看在这一段这个飞机运动还没有太强烈的时候对不对我们就可以用一个小一点的低小一点的低的小一点的低的权重是不是就保证了这一段不会升得太高对不对然后到这一段飞机开始大动作进行运动的时候我们把D 值提高D 值提高那这一段是不是还是维持了这一段的这个高度但是呢我们相应的画出来的线我们可以用一个
偏绿的黄显,那就是更小更小更小更小更小更小更小然后到这一段突然更大因为那个时候我们把地的权重拉高了对不对然后大概就是它大概出来的线就是这样那通过这个D_MIN呢我们就能很好的减小这一段地对于这个飞机运动带来的阻碍因为我们在刚开始让飞机旋转的时候我们是想让它快点来进行旋转对不对而不是让地过早的参与来阻碍这个旋转
好 那我们理解了这个图 我们就同时理解了这个FeedForward和D_MIN他们的作用 那调整就很方便 想要这个飞机更快速的进入你的这个运动 比如说你要搞 racing 对不对做 racing 的话 你想飞机 你打赶你想飞机快点 进快点开始运动 对不对 那你就把 FeedForward 调高 然后开启D_MIN 然后这个低的这个D_MIN这个值变小一点 然后DMAX 这个值呢 你可以调整平时的这个 你找到的那个 PD balance 的那个那个D的值
这样就可以让飞机更快速的进入你想要它做的运动,然后又不至于在你停止播感的时候过冲太多。那这个 Betaflight 为什么要这么做呢?其实道理很简单,因为并不是所有的飞手都想要这一段的第一。
就是并不是所有的飞舌都想要这个地来帮助我们运动,因为比如说你是要做这种比较平滑的freestyle的话,对不对,你其实并不想要这个地过早的来推动这个飞机进入运动。
分开之后就可以调小点,但是分开之前,如果不想要Di过早的推动运动的话,就要把Di直调低。但是我们知道Di直调低了之后,你对洗脚和外界风力的干扰的抵抗能力就变弱了。一之后,分量分出来之后,我们可以单独调前溃。
来决定我想要它以多大的程度来推动我这个打感的时候这个进入运动这个这个力度好了今天的分享就到这里如果你喜欢本期的内容欢迎一键三连我是Quarank我们下期不见不散



