无人机FOC电流环PID调参,从震荡到收敛的完整调试路径
电机发出刺耳尖叫的那一刻,你就知道参数过头了。电流环调参是FOC系统里最考验功力的环节——调轻了响应迟钝,调重了高频震荡,而无人机电调容不得半点侥幸。这条从震荡到收敛的路,每一步都有明确的工程逻辑。
一、程序说明:电流环PI控制器的核心实现
FOC电流环用的是PI而非PID。原因很简单:电流采样频率高达10~20kHz,微分项会把采样噪声放大成机械振动,得不偿失。
typedef struct {
float kp;
float ki;
float integral;
float limit; // 积分限幅,防windup
} PI_Controller;
float PI_Update(PI_Controller *pi, float error) {
// 积分项带限幅,这是防震荡的第一道防线
pi->integral += error * pi->ki;
if (pi->integral > pi->limit) pi->integral = pi->limit;
else if (pi->integral < -pi->limit) pi->integral = -pi->limit;
return error * pi->kp + pi->integral;
}
关键约束:积分限幅必须设。没有它,误差持续存在时积分项会无限累积,等负载一变,控制器直接饱和输出,电机瞬间失控。限幅值一般设为输出范围的60%~80%。
二、算法对比:三种调参方法的优劣与适用场景
方法核心思路优点缺点适用场景
阶跃响应法给电流环施加10%额定电流阶跃,观察超调直观,不需要模型依赖经验判断临界点现场调试首选
Ziegler-Nichols法增大Kp至等幅振荡,记Ku和Tu,查表计算有公式可循,可重复超调偏大,需回退30%~40%工业量产自整定
基于模型法Kp=L×2πB,Ki=R×2πB,B取开关频率1/5参数精确,一步到位依赖准确的L、R值电机参数已知时最优
以6010无人机电机为例(Rs=0.55Ω,Lq=0.83mH,开关频率16kHz):
模型法:B=3.2kHz,Kp=0.83e-3×2π×3200≈16.7,Ki=0.55×2π×3200≈11058
实际调试后收敛值:Kp≈8.5,Ki≈4.2(约为模型值的50%)
模型法给出的是理论上限,实际必须打折——因为数字控制存在1.5个周期的有效延迟,相位裕度被吃掉一大截。
工程实战最推荐的是"经验公式起步+阶跃响应微调"的组合拳。 经验公式"P加大到有电流尖叫再减半,I=P/2"之所以有效,是因为它本质上就是在找临界增益的50%回退点,与Ziegler-Nichols的0.6Ku高度吻合。
三、程序框架分析:三环级联的调试顺序
┌─────────────────────────────────────────────┐
│ 位置环(最外层,~100Hz) │
│ 输出 → 速度目标 │
├─────────────────────────────────────────────┤
│ 速度环(中间层,~1kHz) │
│ 输出 → Iq电流目标(即扭矩指令) │
├─────────────────────────────────────────────┤
│ 电流环(最内层,~16kHz)← 先调这里 │
│ 输入:Iq_ref, Id_ref(Id_ref通常为0) │
│ 输出:Vd, Vq → 反Park → SVPWM → 六路PWM │
└─────────────────────────────────────────────┘
铁律:先调内环,再调外环,绝不可逆序。 电流环没稳就调速度环,等于在流沙上盖楼。
电流环调试四步走:
第一步,清零Ki,只留Kp。从0.5开始逐步加大,直到电流指令出现轻微超调(约5%)或电机开始啸叫——这就是临界点。
第二步,Kp回退到临界值的50%~60%。比如临界Kp=18,回退到9~10。这一步给系统留出稳定裕度,是新手最容易跳过、也最容易翻车的地方。
第三步,加入Ki。从Kp的1/10开始,逐步增大直到稳态误差消失。典型收敛值Ki≈Kp/2。如果加入后出现低频缓慢震荡,说明Ki过大,立即回退。
第四步,验证带宽。电流环-3dB带宽应达到开关频率的1/5。16kHz开关频率下,带宽目标约3.2kHz。用扫频信号注入,观察伯德图,相位裕度必须大于45°。
速度环紧跟其后: 速度环带宽应为电流环的1/5(约600Hz),速度环积分时间常数为电流环的3~5倍。速度环输出直接作为Iq_ref,天然带电流限幅保护。
收敛的标志
调到什么程度算"好了"?三个硬指标:阶跃响应超调5%~15%,调节时间小于1ms,稳态误差为零。更直观的验证:给Iq_ref一个阶跃,用手堵住电机,电流应在200μs内收敛到设定值,无持续振荡。
从尖叫到静默,从震荡到收敛——FOC电流环调参的本质不是找最优解,而是在稳定性和响应速度之间找到那条最窄的安全通道。参数不是调出来的,是逼出来的。





