1、电机控制基础:直流电机工作原理、PWM调速原理、H桥驱动电路解析

各位同学,咱们今天正式进入电机控制的世界。说实话,我做了十几年电机驱动,每次回头看直流电机,都觉得它是最朴实、最讲道理的一个家伙。你搞懂了它,后面那些交流电机、永磁同步电机,理解起来就顺多了。

1.1 直流电机工作原理——它凭什么转?

直流电机,说白了就是「电生磁,磁生力」。你给它通上电,它就能转。但为什么转?我简单讲一下。

电机内部有个转子,上面绕了线圈。外面是定子,通常是永磁体或者电磁铁。当你给线圈通电,电流在磁场里就会受到一个力——这就是安培力。力拉着转子转起来,电机就动了。

这里有个关键点:换向器。转子每转半圈,电流方向就得换一次。不然力矩方向反了,电机就卡住了。换向器就是干这个活的——机械式地切换电流方向。

核心公式:

  • 电磁转矩:T = KT · Ia(转矩和电枢电流成正比)
  • 反电动势:E = KE · ω(转速越高,反电动势越大)

我在项目中遇到过一件事。有次调试一个直流有刷电机,电机死活不转,嗡嗡响。查了半天,发现是换向器碳刷磨损了,接触不良。嗯,这种机械结构的问题,有时候比电路还难排查。

1.2 PWM调速原理——怎么让电机跑得稳?

直流电机调速,最常用的方法就是PWM——脉冲宽度调制。你想想看,电机两端电压直接决定了转速。但如果我们用开关管快速通断,让平均电压变化,转速也就跟着变了。

PWM有三个关键参数:

  • 频率:开关管通断的快慢。我一般选10kHz~20kHz,人耳听不到就行。太低会有啸叫声,太高开关损耗大。
  • 占空比:高电平时间占整个周期的比例。占空比50%,平均电压就是电源电压的一半。
  • 幅值:电源电压本身。这个一般固定。

举个例子:

// 伪代码:PWM生成逻辑
while(1) {
    GPIO_HIGH();          // 开
    delay_us(ON_TIME);    // 保持高电平
    GPIO_LOW();           // 关
    delay_us(OFF_TIME);   // 保持低电平
}
// ON_TIME / (ON_TIME + OFF_TIME) = 占空比

我曾经踩过一个坑。有次做项目,PWM频率设了1kHz,结果电机低速运行时嗡嗡响,客户投诉说噪音大。后来我把频率提到16kHz,问题就解决了。人耳听不到,电机也安静了。

我的习惯:PWM频率选在16kHz~20kHz之间。太低有噪音,太高MOS管发热严重。你根据自己用的开关管型号,折中选一个就行。

1.3 H桥驱动电路解析——正反转怎么实现?

直流电机要正反转,光靠一个开关管不行。你得用四个开关管,搭成一个「H」形状的电路——这就是H桥。

H桥的结构很简单:

  • 四个开关管:Q1、Q2(上桥臂),Q3、Q4(下桥臂)
  • 电机接在中间:一端接Q1和Q3之间,另一端接Q2和Q4之间

工作模式就四种:

模式 Q1 Q2 Q3 Q4 电机状态
正转 ON OFF OFF ON 电流从左到右
反转 OFF ON ON OFF 电流从右到左
刹车 OFF OFF ON ON 电机短路制动
滑行 OFF OFF OFF OFF 电机自由停止

⚠️ 致命陷阱:直通!

Q1和Q3绝对不能同时导通!否则电源直接短路,瞬间烧毁MOS管。我刚开始做驱动板时,就犯过这个错——程序里切换状态时没加死区时间,结果上电就冒烟了。

解决办法:在切换方向时,先关掉所有开关管,等几百纳秒(死区时间),再打开目标开关管。这个习惯我一直保持到现在。

实际项目中,我建议用集成H桥驱动芯片,比如L298N、DRV8833之类的。它们内部已经处理了死区时间和逻辑互锁,你只需要给PWM和方向信号就行。省心不少。

1.4 小结——这一章你该记住什么?

好,咱们捋一下:

  1. 直流电机靠安培力转动,换向器负责切换电流方向。
  2. PWM调速就是调平均电压,频率选16kHz左右比较合适。
  3. H桥实现正反转,但千万注意死区时间,别让上下桥臂直通。

我个人觉得,直流电机控制是所有电机控制的基础。你把这个搞透了,后面学BLDC、PMSM,很多概念都是相通的。下一章咱们聊无刷直流电机,那个更有意思——没有碳刷,没有换向器,全靠电子换相。

嗯,今天就到这儿。有问题随时找我。