第8章 PWM 波与电机驱动
8 第八章 - PWM 波与电机驱动¶
8.1 PWM 波形简介¶
PWM(Pulse Width Modulation,脉宽调制)是一种通过改变脉冲占空比来调控平均功率或电压的技术。保持固定频率下,改变高电平持续时间(占空比)即可改变负载上的平均电压,从而控制电机转速或 LED 亮度等。
8.2 PWM 的等效原理¶
- 平均值模型:对低通响应慢的负载(如电机转子和惯性系统),PWM 在周期内的快速开关相当于一个等效直流电平,其平均值为 Vavg = Vcc * DutyCycle。
- 低通滤波器视角:在频率远高于机械或电气系统带宽时,负载+滤波元件(电感、电容)把 PWM 的高频分量滤除,只响应平均分量。
- 等效功率与 RMS:在功率计算或发热评估时,用有效值(RMS)比平均值更合适,特别在电感较小时需注意谐波导致的附加损耗。
8.3 如何产生 PWM 波¶
- 硬件定时器输出(推荐):微控制器(如 STM32)定时器的 PWM 模式,硬件直接产生高精度、稳定的 PWM 并可配合 DMA/中断。优点是精度高、占用 CPU 少。
- 软件 PWM(软 PWM):通过周期性中断或轮询翻转 IO 引脚实现。适用于简单或低频场景,但精度、抖动和 CPU 占用较差。
- 高级协议:针对无刷电机(BLDC),存在 DShot、OneShot、Multishot 等高速数字协议,替代传统 50Hz 或 400Hz 的伺服 PWM,提供更低延迟与更高分辨率。
示例(STM32 HAL 伪代码,生成 TIMx PWM):
// TIM 初始化略,确保计数频率与周期设定满足目标 PWM 频率
htim.Instance = TIM3;
htim.Init.Prescaler = 79; // 例如 80MHz -> 1MHz
htim.Init.Period = 999; // 1kHz PWM
HAL_TIM_PWM_Init(&htim);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 250; // 25% duty
HAL_TIM_PWM_ConfigChannel(&htim, &sConfigOC, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim, TIM_CHANNEL_1);
8.4 电机分类与驱动方式¶
- 有刷直流电机(Brushed DC Motor)
- 驱动方法:常用 H 桥(H-bridge)进行方向控制与 PWM 调速;PWM 控制电压,配合电流检测与限流保护。开关 MOSFET/晶体管需加续流二极管或使用带续流路径的桥堆。
- 优点:驱动简单、成本低;缺点:有刷部件易磨损、寿命受限。
- 无刷直流电机(BLDC / Brushless Motor)
- 驱动方法:三相逆变器(电子换向器),通常使用外部 ESC(电调)或 MCU+驱动器实现六步/FOC 控制。输入信号可以是标准伺服 PWM(1-2ms)、OneShot/DShot 等。
- FOC(Field-Oriented Control)可获得更高效率、更平稳的转矩输出。
- 步进电机(Stepper Motor)
- 驱动方法:步进驱动器(如 A4988、DRV8825、TMC 系列),通过细分步进与电流限制实现精确位置控制。驱动器通常接收 STEP/ DIR 信号或 SPI 控制(高级驱动器)。
- 舵机(Servo)
- 驱动方法:典型舵机内部集成直流电机与减速箱,外部通过 50Hz PWM(1~2ms)控制角度;现代数字舵机也支持高速信号或串行协议。
8.5 行星(Y)电机及其驱动注意事项¶
- 行星(Y 或 Wye)连接常见于三相电机:三相绕组一端并联为公共点(中性点),另一端接三相电源或逆变器相输出。
- 与三角形(Δ)连接对比:行星在相电压更低(相电压 = 线电压 / √3),适合高压或需要较低相电流的场景;三角形更适合低压高电流场景。
- 驱动要点:三相逆变器需对三相绕组做 PWM 调制(正弦 PWM 或空间矢量 PWM),并处理换向、过流保护、死区时间等问题。带中性点的测量/监控可用于故障检测与更多控制策略。
8.6 驱动器硬件设计要点¶
- MOSFET/IGBT 选择:注意导通损耗与开关损耗、门极驱动能力、耐压与电流余量。
- 死区时间(Dead-time):防止高低侧同时导通造成直通短路,特别在半桥或逆变器设计中必不可少。
- 续流/自由轮路径:电机感性负载需要合适续流路径,或在硬件上配置续流二极管/同步整流 MOSFET。
- 电流检测与限流:使用电阻/霍尔/专用放大器进行闭环电流控制与过流保护。
- EMI/滤波:PWM 切换引入高频噪声,需要布局、滤波(LC)与共模抑制设计。
8.7 工程例子:轮式机器人驱动电机¶
- 场景:差速驱动的两轮或四轮机器人,使用有刷直流电机或无刷直流电机。
- 常见做法(有刷 DC):
- 硬件:电机 + H 桥驱动器(L298、DRV8871、TB6612、或 MOSFET H 桥)。
- 控制:主控通过 PWM 控制占空比以调速,通过 DIR/EN 或 H 桥控制方向。编码器用于闭环速度/位置控制(PID)。
- 保护:加速度限制、过流检测、欠压锁定(UVLO)与反接保护。
示例控制伪代码:
// 设置目标速度 -> 根据 PID 输出得出 PWM 占空比与方向
if (pid_output >= 0) {
set_dir_forward();
set_pwm(pid_output);
} else {
set_dir_backward();
set_pwm(-pid_output);
}
- 无刷 BLDC 作差速驱动时通常使用小型 ESC 或专用三相驱动器,若自己实现需注意电子换向与闭环速度控制。
8.8 工程例子:多旋翼(无人机)驱动¶
- 场景:多旋翼(四轴、六轴等)使用小型高转速 BLDC 电机与外置 ESC。
- 驱动方式:飞控通过 PWM(或更高速的数字协议如 DShot)向 ESC 发送油门信号,ESC 负责电机的换向、转速控制与低层闭环(基于背 EMF 或霍尔/传感器)。
- 特点与要求:高响应、低延迟的信号更利于飞控稳定;电调需支持足够的电流与功率(关注持续电流与峰值电流);电源与电调需合理布局以降低干扰。
示例:ESC 控制信号 - 传统伺服 PWM:1ms(停止) ~ 2ms(全油门),频率约 50Hz 到 400Hz(取决于 ESC)。 - DShot:数字协议,无需模拟 PWM,误差低且延迟小,广泛用于竞速与现代飞控系统。
工程注意事项: - 电调校准、动力匹配(电机-螺旋桨-电调-电池)是保证飞行安全的关键。 - 电源布线、滤波与 BEC(如需)设计也影响系统可靠性。
8.9 实验与练习建议¶
- 使用单片机定时器生成 PWM,控制直流电机的转速并通过编码器实现速度闭环(PID)。
- 使用三相逆变器或 ESC 控制小型 BLDC,尝试观察不同 PWM 协议(PWM/OneShot/DShot)的响应差异。
- 设计并测试 H 桥的热耗、开关损耗与加装电流限流保护。
- 对比行星与三角形连接电机的相电压与性能差异(在安全范围内实验)。
8.10 参考资料¶
- 电力电子、功率半导体与电机驱动相关书籍与资料
- 各类电机驱动器与 ESC 的数据手册
- STM32、Arduino 等平台 PWM 与定时器应用示例
8.11 本章测验¶
Quiz results are saved to your browser's local storage and will persist between sessions.
1) PWM(脉宽调制)的等效平均电压计算公式是:
2) 在电机驱动中,"低通响应"视角下 PWM 能等效为直流电平的原因是:
3) 有刷直流电机最常用的驱动电路是:
4) 无刷直流电机(BLDC)的驱动方式通常使用:
5) 舵机(Servo)的典型控制信号是:
6) 在半桥或全桥驱动电路中,死区时间(Dead-time)的作用是:
7) 步进电机的驱动通常需要:
8) 以下关于行星(Y)连接电机的描述,正确的是:
9) 多旋翼无人机的电调(ESC)通常使用什么信号接收油门指令?
10) 对于电机感性负载,续流路径(Freewheeling Path)的作用是:
Quiz Progress
0 / 0 questions answered (0%)
0 correct
(本章为综合性工程级概述,具体项目请结合目标电机、电源与驱动器手册进行设计与验证。)