3. 电机控制基础:开环控制与闭环控制、PID控制原理、电流环/速度环/位置环架构

各位同学,今天我们来聊聊电机控制里最核心的几个概念。说实话,我刚入行那会儿,觉得电机控制不就是给个电压让它转吗?后来踩了不少坑才明白,这里面门道深着呢。

3.1 开环控制 vs 闭环控制

开环控制,说白了就是「只管发命令,不管结果」。你给电机一个 PWM 占空比,它就按某个速度转。负载变了?转速掉下来?对不起,系统不知道,也不管。

开环控制的典型场景:

  • 步进电机在低速、轻载下运行
  • 风扇、水泵等对精度要求不高的场合
  • 系统调试初期,先确认硬件通路是否正常

我记得有一次做项目,客户要求用直流电机驱动一个传送带。我图省事用了开环,结果负载一上来,速度直接掉了30%。客户当场就急了。嗯,从那以后我学乖了——但凡对速度或位置有要求,必须上闭环

闭环控制呢?就是「发命令,看结果,再调整」。系统会实时检测电机的实际转速或位置,跟目标值比较,有偏差就修正。你想想看,这就像你开车——眼睛看着路(反馈),手打方向盘(控制),才能走直线。

对比项 开环控制 闭环控制
反馈信号 有(编码器/霍尔/旋变)
抗干扰能力
控制精度
系统复杂度
典型应用 简单启停、风扇 伺服、机器人、数控机床

3.2 PID控制原理

说到闭环,就绕不开 PID。PID 是工业界最经典、最实用的控制算法。我个人的习惯是,先搞懂 P,再谈 I 和 D

  • P(比例):偏差越大,输出越强。但光有 P 会有静差——就是永远差那么一点点到不了目标。
  • I(积分):专门对付静差。把过去的偏差累积起来,慢慢把系统推到目标值。但 I 太强容易超调,甚至震荡。
  • D(微分):预测未来的趋势。偏差变化快了,D 就提前刹车,抑制震荡。

我的调参口诀:

先调 P 让系统动起来,再加 I 消除静差,最后加 D 抑制震荡。千万别一上来三个参数一起调,你会疯的。

下面是一个标准的数字 PID 实现,我一般用位置式写法,直观好理解:

// 位置式 PID
float pid_update(float target, float actual) {
    float error = target - actual;
    integral += error * dt;
    float derivative = (error - prev_error) / dt;
    float output = Kp * error + Ki * integral + Kd * derivative;
    prev_error = error;
    return output;
}

注意:积分饱和是个大坑。我曾经在一个项目中,电机堵转时积分项一直累加,等堵转解除后,输出直接爆表,电机飞车了。一定要加积分限幅或者抗饱和处理。

3.3 电流环 / 速度环 / 位置环架构

在伺服系统里,我们通常把控制分成三个环,从内到外分别是:电流环 → 速度环 → 位置环。你想想看,这就像三级火箭,每一级负责不同的任务。

3.3.1 电流环(最内层)

电流环是响应最快的环,通常用 PI 控制。它的任务就是让电机的实际电流快速跟上给定值。说白了,就是控制力矩。我建议电流环的带宽做到速度环的 5~10 倍,否则外环一抖,内环跟不上,系统就乱了。

3.3.2 速度环(中间层)

速度环的输出作为电流环的给定。它根据目标速度和实际速度的偏差,计算出需要的电流(力矩)。速度环一般也用 PI,但 I 的系数要小心——调太大容易引起机械共振。

3.3.3 位置环(最外层)

位置环最慢,但最重要。它决定电机最终停在哪儿。位置环的输出是速度环的给定。很多场合位置环只用 P 控制就够了,加 I 反而容易超调。

三环架构的典型参数设置(以 1kHz 速度环为例):

  • 电流环:10~20 kHz 更新率,PI 控制
  • 速度环:1~2 kHz 更新率,PI 控制
  • 位置环:0.5~1 kHz 更新率,P 控制

我曾经调试一个六轴机器人,位置环的 P 增益调得太大,结果每个轴都在抖,整台机器像在跳舞。后来把位置环增益降了一半,速度环的 I 也适当减小,才稳定下来。嗯,三环调试一定要从内往外一层层来,别跳级。

3.4 小结

这一章我们讲了开环和闭环的区别,PID 的基本原理,以及三环架构的层次关系。说白了,电机控制就是「测准、算对、控稳」这六个字。下一章我们会深入电流环的具体实现,包括 FOC 和六步换向法的对比。

课后小练习:

找一个直流电机,先用开环跑,记录不同负载下的转速变化。然后加上一个简单的 P 控制器,看看能不能稳住转速。你会发现,哪怕只有一个 P,效果也比开环好得多。


公众号:蓝海资料掘金营,微信deep3321