3. 电流环调参(二):手动调参步骤、示波器观察电流波形、避免震荡与饱和

上一节我们把电流环的理论基础过了一遍,PID 公式、带宽概念、前馈补偿,心里都有数了。但说实话,理论再漂亮,到了示波器面前,该抖还是抖,该啸叫还是啸叫。

这一节,咱们就动手。我会把我在几个量产项目里反复验证过的手动调参流程,拆成一步步讲给你听。你跟着走,大概率能一次调通。

核心原则:先 Kp,后 Ki;先低速,后高速;先空载,后带载。别跳步,跳步必翻车。

3.1 手动调参的标准步骤

我习惯把电流环调参分成四个阶段。每个阶段都有明确的观察目标和退出条件。

  1. 阶段一:Kp 粗调(找感觉)
    • 把 Ki 设为 0,Kp 从 0 开始慢慢往上加。
    • 给一个很小的 Iq 指令(比如额定电流的 5%),用手拧转子,感受电机是否“发硬”。
    • 当你能明显感觉到电机有阻力,且松开手后转子会轻微回弹,说明 Kp 已经进入有效区。
    • 继续增加 Kp,直到电机出现高频抖动或轻微啸叫,然后退回 70%。
  2. 阶段二:Ki 粗调(消静差)
    • 保持刚才的 Kp,Ki 从 0 开始增加。
    • 给一个阶跃指令(比如从 0 跳到 10% 额定电流),观察电流响应。
    • 如果电流稳态值始终追不上指令,说明 Ki 不够;如果出现低频振荡(像呼吸一样起伏),说明 Ki 过大。
    • 找到那个“刚好不振荡、稳态误差消失”的 Ki 值。
  3. 阶段三:联合微调(压极限)
    • 把电机加速到额定转速的 50%,重复给阶跃指令。
    • 此时反电动势会干扰电流环,你可能需要稍微增加 Kp 来补偿。
    • 观察电流波形是否出现“尖刺”或“塌陷”,这是饱和的前兆。
  4. 阶段四:带载验证(真功夫)
    • 加载到额定负载的 50%~100%,重复阶跃和正弦跟踪测试。
    • 如果带载后出现振荡,优先降低 Ki,而不是 Kp。
    • 记录最终参数,写入 EEPROM。

我的习惯:每个阶段调整后,我都会让系统稳定运行 30 秒以上,再观察波形。刚调完的瞬间看起来很好,但过几秒可能就抖起来了——尤其是 Ki 的积分饱和效应,有延迟。

3.2 示波器观察电流波形——看什么?怎么看?

示波器是电流环调参的眼睛。但很多人接了示波器,却不知道重点看哪里。我总结了三看:看上升沿、看稳态纹波、看交叉点。

3.2.1 看上升沿——判断带宽是否足够

给一个方波 Iq 指令,观察实际电流的上升沿。理想的电流环,上升沿应该陡峭且无过冲。如果上升沿太缓,说明 Kp 不够;如果上升沿出现“圆角”或“台阶”,说明电流环带宽受限,或者 PWM 占空比已经饱和。

3.2.2 看稳态纹波——判断 Ki 和 PWM 频率是否匹配

稳态时,电流波形上会叠加 PWM 开关频率的纹波。这个纹波是正常的。但如果纹波幅度超过额定电流的 5%,或者出现低频包络(纹波忽大忽小),说明 Ki 可能偏大,或者电流采样存在噪声。

3.2.3 看交叉点——判断 Id/Iq 解耦是否良好

同时观察 Id 和 Iq 波形。当 Iq 阶跃时,Id 应该保持稳定。如果 Id 出现明显的“凹陷”或“凸起”,说明解耦补偿没做好,或者 Kp 太大导致交叉耦合。

我曾经踩过的坑:有一次调一个 2kW 的伺服电机,Iq 阶跃响应看起来完美,上升时间 50μs,无过冲。但一加载到 80% 额定转矩,电机就开始剧烈抖动。后来用示波器看 Id 波形才发现,Id 在 Iq 阶跃时出现了 2A 的瞬态波动——解耦参数没跟上。所以,永远不要只看 Iq,Id 才是解耦好坏的照妖镜。

3.3 避免震荡与饱和——实战避坑指南

震荡和饱和,是电流环调参里最常见的两个“杀手”。我见过太多工程师在这上面浪费好几天。下面是我总结的几种典型场景和应对方法。

现象 可能原因 我的处理方式
高频振荡(>1kHz) Kp 过大,或电流采样延迟太大 降低 Kp,或检查采样滤波截止频率
低频振荡(10~100Hz) Ki 过大,或积分饱和 降低 Ki,或启用抗积分饱和(Anti-Windup)
电流指令跟踪不上 Kp 太小,或母线电压不足 增加 Kp,或检查母线电压是否跌落
电流波形出现“平顶” PWM 占空比饱和 降低指令幅值,或提高母线电压
带载后突然振荡 反电动势干扰,或解耦参数不准 重新标定 Ld/Lq,或增加前馈补偿

3.3.1 抗积分饱和(Anti-Windup)——必须加

积分饱和说白了就是:积分项一直在累加,但输出已经被 PWM 限幅器卡住了,积分的误差越积越大,等指令降下来时,积分项还在往外“吐”能量,导致超调甚至振荡。

我常用的方法有两种:

  • 条件积分法:当输出达到限幅值时,停止积分累加。
  • 反馈抑制法:将实际输出与 PID 计算输出的差值,反馈回积分输入端,把多余的积分“泄掉”。
// 条件积分法示例(伪代码)
float pid_iq_pi(float err, float kp, float ki, float ts) {
    float output = kp * err + integral;
    if (output >= PWM_LIMIT || output <= -PWM_LIMIT) {
        // 输出饱和,停止积分
        integral = integral;  // 保持当前值
    } else {
        integral += ki * err * ts;
    }
    return clamp(output, -PWM_LIMIT, PWM_LIMIT);
}

一个小技巧:如果你发现电机在启动瞬间有“冲一下”的现象,多半是积分初始值太大。我习惯在电机使能前,把积分项清零,或者用一个很小的值初始化。

3.3.2 避免 PWM 饱和——留足裕量

PWM 饱和是电流环失控的前兆。当占空比达到 100% 时,电流环就失去了调节能力。我一般会留 10%~15% 的裕量。也就是说,额定工况下,最大占空比不超过 85%。

另外,高速时反电动势会吃掉一部分母线电压,导致电流环的调节范围变小。这时候如果还按低速时的 Kp/Ki 来调,很容易饱和。我的做法是:根据当前转速,动态降低电流环的指令上限。

3.4 本章知识体系

下面这张图,把电流环手动调参的核心逻辑串起来了。你可以把它当作调参时的“导航图”。

电流环手动调参知识体系 电流环手动调参知识体系 手动调参四阶段 阶段一:Kp粗调 Ki=0,找刚度感 阶段二:Ki粗调 消静差,防低频振荡 阶段三:联合微调 高速下压极限 阶段四:带载验证 真功夫,记录参数 示波器三看 ① 看上升沿 → 带宽 ② 看稳态纹波 → Ki匹配 ③ 看交叉点 → 解耦 避坑:震荡与饱和 高频振荡 → 降Kp 低频振荡 → 降Ki+Anti-Windup PWM饱和 → 留裕量+动态限幅 核心原则 先Kp后Ki 先低速后高速 先空载后带载

嗯,到这里,电流环的手动调参流程、示波器观察方法、以及常见的震荡和饱和问题,我都讲清楚了。你拿着这套方法,去调一个实际的电机,应该能少走不少弯路。记住,调参不是一次性的工作,每次换电机、换负载、甚至换一根长线缆,都可能需要重新微调。多练几次,你就能找到那种“手感”。