1. PWM基础概念

什么是PWM?

PWM,全称是脉冲宽度调制(Pulse Width Modulation)。说白了,就是用一串方波信号,去模拟一个模拟量。

我刚开始接触电机控制时,总觉得这玩意儿挺玄乎。明明只有高电平和低电平两种状态,怎么能控制电机转得快慢呢?后来才明白,关键在于“平均”二字。

你想想看,如果我们给电机通上12V,它就全速转。通上0V,它就停。那如果我们在1秒钟内,让12V通0.5秒、断0.5秒,电机感受到的平均电压就是6V。转速自然就降下来了。

这就是PWM的核心思想——通过快速开关,让负载“感觉”到的是一个连续可调的电压

关键点: PWM不是真的改变了电压大小,而是改变了“通电时间”的比例。电机因为有电感,电流不会瞬间跳变,所以能平滑响应。

占空比与频率

搞懂PWM,两个参数必须吃透:占空比和频率。

占空比(Duty Cycle)

占空比,就是高电平时间占整个周期的百分比。

公式很简单:

占空比 = (高电平时间 / 周期) × 100%

举个例子:

  • 占空比0%:一直低电平,电机停转
  • 占空比50%:一半时间通电,一半时间断电
  • 占空比100%:一直高电平,电机全速转

我在项目中遇到过一个问题:用STM32输出PWM控制直流电机,占空比设到10%时电机根本不转。后来发现是启动转矩不够。嗯,这里要注意——占空比太低时,电机可能因为静摩擦力而无法启动。我一般会设一个最小启动占空比,比如15%~20%。

频率(Frequency)

频率,就是PWM信号每秒钟开关多少次。单位是Hz。

频率的选择很讲究。太低了,电机会“一抖一抖”地转,噪音大。太高了,开关损耗增加,驱动芯片发热严重。

我个人习惯:

  • 直流有刷电机:1kHz ~ 20kHz
  • 步进电机:20kHz ~ 40kHz(避开人耳可听范围)
  • 无刷直流电机(BLDC):10kHz ~ 50kHz

我的经验: 如果电机在运行时发出“吱吱”声,多半是PWM频率落在了人耳敏感区(2kHz~5kHz)。把频率提到16kHz以上,基本就听不到了。但要注意,频率越高,MOS管的开关损耗越大,散热要跟上。

PWM在电机控制中的作用

PWM在电机控制里,可以说是“万能调节器”。它的作用主要体现在三个方面:

1. 调速控制

这是最直接的应用。通过改变占空比,就能平滑调节电机转速。我在做AGV小车项目时,就是用PWM控制两个直流电机,实现前进、后退、转弯。占空比从30%到100%,对应不同的速度档位。

2. 转矩控制

电机的转矩和电流成正比。通过PWM调节平均电压,就能控制电流大小,进而控制转矩。比如在启动时给一个较大的占空比,让电机获得足够的启动转矩。

3. 节能与效率优化

相比串联电阻调速(能量全耗在电阻上发热),PWM调速的效率高得多。MOS管要么全开、要么全关,导通损耗很小。

调速方式 效率 控制精度 成本
串联电阻 低(30%~50%)
线性稳压 中(50%~70%)
PWM调制 高(80%~95%) 中高

我曾经踩过的坑: 有一次用PWM控制大功率电机,没注意死区时间设置。结果上下桥臂同时导通,MOS管瞬间冒烟。后来我养成了习惯——任何PWM驱动电路,必须先确认死区时间是否设置正确。尤其是用分立元件搭H桥时,更要小心。

小结

PWM说白了就是“开关的艺术”。通过快速开关,用数字信号模拟出模拟效果。占空比决定“量”,频率决定“质”。搞懂这两点,电机控制就算入门了。

下一章,我会详细讲PWM的生成方式——用定时器怎么配、用软件怎么模拟。到时候我会分享一些实际项目中的配置参数,都是调过的,可以直接用。

一句话记住: PWM不是魔法,是“平均”的艺术。占空比给力,频率选对,电机就听话。