3、PWM调速原理:信号生成、占空比与平均电压、频率影响

说到电机调速,PWM(脉宽调制)是绕不开的核心技术。说白了,它就是通过快速开关电源,让电机“感觉”到的是一个可调的平均电压。我刚开始接触电机控制时,总觉得这玩意儿有点玄乎——明明是一串方波,怎么就能让电机转得又快又稳?后来亲手搭了几个电路,才真正理解了它的精髓。

核心一句话:PWM不是直接改变电压大小,而是通过调节“开”的时间比例,来等效地改变电机两端的平均电压。

3.1 PWM信号是怎么生成的?

生成PWM信号,最常用的方法是载波比较法。你想象一下:有一个高频的三角波(载波),和一个可调的直流电平(调制波)。当调制波高于三角波时,输出高电平;低于三角波时,输出低电平。就这么简单。

在实际的MCU里,这个过程由硬件定时器自动完成。我们只需要配置几个寄存器:

// 以STM32定时器为例,生成20kHz PWM
TIM_HandleTypeDef htim2;
htim2.Instance = TIM2;
htim2.Init.Prescaler = 84-1;        // 84MHz / 84 = 1MHz
htim2.Init.Period = 50-1;           // 1MHz / 50 = 20kHz
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
HAL_TIM_PWM_Init(&htim2);

// 设置占空比为50%
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 25);

这里的关键参数有两个:Period(周期)和Compare(比较值)。Period决定了PWM的频率,Compare决定了占空比。我个人习惯把Period设成整数,这样计算占空比时不容易出错。

我的经验:在项目初期,先用示波器看PWM输出波形,确认频率和占空比都对了,再连电机。我曾经因为定时器时钟源选错,PWM频率差了10倍,电机嗡嗡响就是不转,查了半天才发现是时钟树配错了。

3.2 占空比与平均电压的关系

占空比(Duty Cycle)就是高电平时间占整个周期的比例。比如50%占空比,就是一半时间开,一半时间关。平均电压的计算公式很简单:

Vavg = Vcc × Duty Cycle

举个例子:电源电压12V,占空比75%,平均电压就是9V。但要注意,这个“平均”是时间上的平均,不是空间上的平均。电机线圈有电感,它会平滑电流,所以电机感受到的确实是这个平均电压。

占空比 平均电压(12V供电) 电机状态
0% 0V 停止
25% 3V 低速转动
50% 6V 中速转动
75% 9V 高速转动
100% 12V 全速转动

你想想看,如果直接用线性调压,比如用可调电阻,那能量全耗在电阻上发热了。PWM的好处是开关管要么全开(导通电阻极小),要么全关(电流为零),所以效率极高,通常能到90%以上。

注意:占空比不能从0%直接跳到100%,要加软启动。我曾经在一个项目中直接给电机100%占空比,结果电流冲击太大,把MOSFET的驱动芯片烧了。从那以后,我所有项目都加了启动斜坡,哪怕只有50ms的渐变时间。

3.3 PWM频率对电机性能的影响

频率选多少合适?这个问题我当年纠结了很久。频率太低,电机会发出刺耳的噪音;频率太高,开关损耗又上去了。这里有几个关键因素:

  • 人耳听觉范围(20Hz-20kHz):如果PWM频率落在这个区间,电机线圈会发出可听见的啸叫声。我一般选20kHz以上,人耳听不到,安静很多。
  • 电机电感特性:频率越高,电流纹波越小,电机运行越平滑。但频率太高,开关管的开关损耗会显著增加。
  • MCU性能限制:频率越高,定时器中断越频繁,会占用CPU资源。对于简单的BLDC控制,20kHz-50kHz是比较常见的范围。

下面这张图能帮你理解频率对电流纹波的影响:

PWM频率对电机电流纹波的影响 低频PWM(1kHz) PWM信号 电机电流 纹波大 → 电机抖动、噪音大 频率升高 高频PWM(20kHz) PWM信号 电机电流 纹波小 → 电机运行平滑 频率选择建议 低频(1-5kHz):适合大电感电机,但噪音大 高频(16-40kHz):适合小电感电机,运行安静,但开关损耗增加

频率的选择其实是个权衡。我一般遵循这个原则:

  1. 先看电机规格书:有些电机厂家会推荐PWM频率范围,直接拿来用最省事。
  2. 听声音:如果电机有啸叫,试着提高频率,直到听不到为止。
  3. 测温升:频率太高,MOSFET和电机都会发热。用手摸一下散热片,如果烫手,就降一点频率。

避坑指南:我曾经在一个无人机项目中,把PWM频率设到了50kHz,结果电机飞了3分钟就过热保护了。后来发现是频率太高,MOSFET的开关损耗占了总损耗的40%。降到25kHz后,温度降了15度,飞行时间反而长了。所以,不是频率越高越好,够用就行。

3.4 总结一下关键点

  • PWM通过调节占空比来改变平均电压,效率远高于线性调压。
  • 占空比与平均电压是线性关系:Vavg = Vcc × Duty。
  • 频率选择要平衡噪音、电流纹波和开关损耗,20kHz是个不错的起点。
  • 实际调试时,先用示波器看波形,再连电机,能省很多排查时间。