1. PWM调制基础:什么是PWM、PWM参数、电机驱动中的PWM应用
各位同学好,我是老张。做电机控制这些年,我最大的感触就是——PWM这东西,看着简单,用好了是神器,用不好就是电磁干扰的源头。今天咱们就从头捋一捋PWM的基础,把底子打扎实了。
1.1 什么是PWM?说白了就是“开关的艺术”
PWM,全称Pulse Width Modulation,脉冲宽度调制。你想想看,数字电路只能输出0和1,对吧?那怎么让电机转得快一点、慢一点呢?总不能一直给5V、一直给0V吧?
PWM的思路很巧妙:用高速开关,让电压在“通”和“断”之间快速切换。通过调节“通”的时间比例,来模拟出一个连续的平均电压。说白了,就是“骗”电机。
核心公式:平均电压 = 电源电压 × 占空比
比如5V电源,占空比50%,平均电压就是2.5V。电机感受到的就是2.5V的效果。
我个人习惯把PWM比作“水龙头”。你快速开关水龙头,水流一会儿大一会儿小,但桶里的水位变化是平滑的。电机也一样,它的机械惯性会滤掉高频开关的波动,只响应平均值。
我的经验:刚入行时我总觉得PWM频率越高越好,后来发现不是这么回事。频率高了,开关损耗大;频率低了,电机嗡嗡响。这里有个平衡点,后面我会细说。
1.2 PWM的三个核心参数
做电机控制,你绕不开这三个参数:频率、占空比、分辨率。我一个个讲。
1.2.1 频率(Frequency)
频率就是PWM信号每秒钟开关多少次,单位Hz。比如20kHz,就是一秒钟开关两万次。
频率怎么选?我遇到过不少新手上来就问“用多少Hz合适”。其实没有标准答案,得看你的应用场景:
- 电机控制:通常用10kHz~50kHz。太低(<5kHz)电机会发出人耳可闻的啸叫,太高(>100kHz)开关损耗剧增。
- 音频应用:一般>20kHz,避免人耳听到。
- 电源转换:几十kHz到几MHz都有。
注意:频率越高,电磁噪声越难抑制。我曾经在一个项目中把PWM从20kHz提到40kHz,结果EMC测试直接超标了8dB。后来不得不加磁环、改布局,折腾了两周。
1.2.2 占空比(Duty Cycle)
占空比就是高电平时间占整个周期的比例,用百分比表示。0%就是一直关,100%就是一直开。
在电机控制里,占空比直接决定电机的转速和转矩:
- 占空比越大,平均电压越高,电机转得越快
- 占空比越小,平均电压越低,电机转得越慢
- 占空比50%时,电机理论上在半速运行
嗯,这里要注意一点:占空比不是线性对应转速的。因为电机有死区电压、摩擦阻力,占空比太低时电机可能根本不转。我调试过一台直流无刷电机,占空比低于15%时电机纹丝不动,这就是所谓的“死区效应”。
1.2.3 分辨率(Resolution)
分辨率就是占空比能精细到什么程度。比如8位PWM,分辨率就是1/256 ≈ 0.39%。16位PWM,分辨率是1/65536 ≈ 0.0015%。
分辨率越高,电机控制越平滑。但代价是:
- 需要更高的时钟频率
- MCU的定时器资源占用更多
- 对电磁噪声的敏感度也更高
| 分辨率 | 占空比步进 | 适用场景 |
|---|---|---|
| 8位 | 0.39% | 简单调速、风扇 |
| 10位 | 0.098% | 普通电机控制 |
| 12位 | 0.024% | 精密伺服 |
| 16位 | 0.0015% | 高精度位置控制 |
避坑指南:我曾经为了追求高分辨率,把PWM设成了16位、50kHz。结果MCU的定时器中断频繁触发,CPU负载飙到80%,其他任务全卡死了。后来降到12位,效果差不多,CPU负载降到20%。
1.3 电机驱动中的PWM应用
PWM在电机驱动里到底怎么用?我画了一张图,帮你理清思路。
从这张图你能看到,PWM信号从MCU生成,经过驱动电路放大,最后驱动电机。而PWM的三个参数——频率、占空比、分辨率——就像三个旋钮,你调任何一个,都会影响电机的表现和电磁噪声。
在实际项目中,我一般这样配置:
- 先定频率:根据电机类型和噪声要求选一个基准频率。BLDC电机我常用16kHz~20kHz,避开人耳敏感区。
- 再调占空比:根据转速/转矩需求调节。注意留出死区余量,别踩到0%或100%的边界。
- 最后定分辨率:够用就行,别盲目追求高精度。8位~12位对大多数电机控制足够了。
关键认知:PWM不是孤立存在的。它的每一个参数都会影响电磁噪声的频谱分布。频率决定了噪声的基频,占空比影响谐波幅度,分辨率决定了噪声的精细结构。后面几章我们会深入分析这些影响。
好了,PWM的基础就讲到这里。记住一句话:PWM是电机控制的核心,也是电磁噪声的源头。理解它,你才能驾驭它。
公众号:蓝海资料掘金营,微信deep3321