关于INAV地面站的PID调整功能
一、PID调整说明
在 INAV 中,飞行动态的每一个方面都由所选的 PID 控制器 来控制。PID 是一种算法,用于根据遥控器的摇杆输入,通过陀螺仪和/或加速度计(取决于飞行模式)实时调节,确保飞行器保持稳定飞行。
什么是 PIDs?
PIDs 是一组用于调整 PID 控制器行为的参数。每架飞行器的最优 PID 设置都不同,因此如果找不到与你使用的配置完全一致的分享设置,通常需要通过 反复试飞和调参 来获得最佳飞行表现。
PID 的工作原理:
PID 控制器的目标是使飞行器在 横滚(Roll)、俯仰(Pitch)、偏航(Yaw) 三个轴向的旋转速率,尽可能精确地跟随你通过摇杆设定的目标速率。
系统会计算出“误差”(即目标速率与实际速率之间的差值),然后控制器根据该误差进行调整,力求将其压缩为零,从而实现稳定控制。
对于固定翼,INAV 使用的是 PIFF 控制器,其在逻辑上与多旋翼 PID 控制器有所不同。
二、PID各项参数含义
P(比例项 / Proportional)
用于控制飞行器偏离目标角度或旋转速率时的 即时修正力度。
- P 太低:飞行器响应迟钝,操控变得“软”且不稳定。
- P 太高:飞行器会出现快速抖动或震荡现象(高频震荡)。
I(积分项 / Integral)
用于修正长时间累积的小幅误差,例如风力造成的偏移。
- I 太低:飞行器在飞行中会缓慢偏离姿态,出现“漂移”。
- I 太高:飞行器会出现低频震荡,响应变慢且发“闷”。
D(微分项 / Derivative)
通过分析误差的变化趋势, 提前抑制过冲,提升系统的整体稳定性。
- 当误差快速趋近于零时,D 项会减小控制输出,从而避免因反应过猛导致的来回震荡。
- D 项调得合适,可有效减少 P 项过高引起的震荡,但设置过高会引入噪声和延迟。
三、TPA相关说明
TPA(Throttle PID Attenuation) 是一种 随着油门升高逐步降低 PID 值 的机制,常用于对“调得较激进”的多旋翼进行高油门震荡的抑制。
当油门接近最大值时,由于气流扰动增强、响应过激,飞行器容易发生高速震荡,此时通过 TPA 自动减小 P 和 D 项可以提升稳定性。
关键参数说明:
- TPA: 表示在满油门(最大油门值)时 P/D 项要降低的比例。例如: TPA = 0.5(即 50%),代表 P/D 项在满油门时将被减少 50%。
- tpa_breakpoint: 指定从哪个油门值开始启用衰减,单位通常是 PWM(范围 1000~2000)。 比如:tpa_breakpoint = 1500,表示当油门高于 1500 时,开始逐步衰减 PID 值。
举个例子:
假设设置 TPA = 50(或在图形界面中为 0.5),tpa_breakpoint = 1500(假设油门范围为 1000 - 2000):
- 当油门通道为 1500 时,PID 参数开始被削弱。
- 当油门达到 3/4(1750)时,PID 参数大约减少了 25%(在 1500 和 2000 之间的一半位置,因此削弱程度为设置的 TPA 值的一半,即 50% 的一半 = 25%)。
- 当油门拉满(2000)时,应用全部的 TPA 削弱值(此例中为 50% 的削弱)。
注意:TPA(Throttle PID Attenuation,油门PID衰减)可能会导致在提高油门时旋转速度上升。

注意事项:
- 并非所有 PID 控制器都支持 TPA(如某些特殊 INAV PID 模式可能忽略)。
- 设置过高的 TPA 可能导致高油门时响应过于迟钝,影响飞控性能。
- TPA 主要影响 P 和 D 项,对 I 项通常无影响。
- TPA 设置在 GUI 的 PID 调参界面 或通过 CLI 命令完成(参数名:tpa 与 tpa_breakpoint)。
为什么要用 TPA?
当你的飞行器在 高油门(如 3/4 油门及以上)时出现震荡/抖动,说明 PID 控制器在高负载下对扰动反应过强,导致系统不稳定。此时使用 TPA 可以有效地抑制震荡,提升飞行稳定性。
————本文引用至INAV官网: https://github.com/iNavFlight/inav/blob/master/docs/PID%20tuning.md