直流电机刹车信号输出
项目背景
在电动牙刷项目的开发调试中,我们采用经典的“两路互补PWM波形加死区时间控制”方案驱动直流电机。然而,在实测电机两端电压时发现,每当电机切换转向时,会产生明显的电压过冲与电流尖峰。

(实拍图丢失,此图来源于网络)
与客户样机相比,我们的产品电压过冲现象较为显著,引发了客户对产品稳定性和可靠性的担忧。
我们曾尝试调整PWM占空比与死区时间,但过冲问题并未得到解决。通过技术论坛和文献检索,短期内也未找到相关的案例分析或解决方案。
在缺乏进展的情况下,团队对当前采用的电机本体及驱动芯片(如LN8503ER)产生了疑虑。
现有方案的基本架构如下:

突破与新问题
重新审视电机驱动芯片数据手册时,我们发现LN8503ER的输入信号逻辑定义了四种状态。


待机
正转
反转
刹车(两路输入均为高电平)
待机、正转、反转的功能明确易懂,但“刹车”模式是否可用于抑制转向切换时的电压过冲?如果可行,又该如何在每一组PWM脉冲结束时自动插入刹车信号?
原方案的互补PWM波形示意图如下:
(此图来源于网络)
若要在每组脉冲末尾加入刹车信号,波形示意如下:
原PWM波形由MCU的硬件定时器/外设自动生成,其互补输出模式通常为固定逻辑绑定,无法在单个PWM周期内由CPU实时插入非标准的“刹车”电平状态。若采用软件方案,如通过定时器中断或输入捕获来动态改写输出寄存器,将面临严峻挑战:
时序精度难保证:软件介入将引入不可预测的中断延迟,可能导致刹车窗口位置漂移或宽窄不一,影响控制稳定性。
系统负担加重:高频率PWM下(如数十kHz),频繁中断将严重消耗CPU资源,影响其他任务实时性。
代码复杂性激增:需精细管理PWM外设、定时器与中断服务程序间的协同,鲁棒性设计难度大,且可移植性差。
面对上述限制,不得不转换思路,不再尝试“插入”,而是对PWM波形本身进行结构性重构。通过精密调整两路PWM信号的相对相位(移相)与各自占空比,成功在其高电平周期内,创造出一个自然重叠的时间窗口。根据驱动芯片LN8503ER的真值表,当两路输入均为高电平时,电机进入刹车状态。因此,这个重叠窗口本质上就是一个周期性自动插入的硬件刹车信号。
这一方法在电力电子学中对应于经典的移相控制。然而,其实施高度依赖于MCU的PWM外设能力。理想的实现需要外设支持:
两路PWM独立且相位可自由配置
高精度的相位延迟/提前控制寄存器
经查证,当前项目所选用的MCU,其PWM模块虽然功能强大,但在硬件层面未提供便捷的、可动态调整的“移相”专用控制位或寄存器。官方数据手册及相关应用笔记中,也未提供此类非标准波形生成的明确指导,缺乏直接的技术文档支持。
在参数化推导完整波形序列时,遭遇了一个根本性矛盾:期望的稳态波形(中间段包含刹车窗口)与系统启动时的初始状态无法自洽。

(草图丢失,此图来源于最终调制的PWM波形图)
问题描述:设定了能产生理想刹车窗口的一组固定参数(周期T、占空比D_A、D_B、相位差Φ)。但当PWM外设从空闲状态首次使能时,其计数器从0开始计数,生成的第一个脉冲波形必然不完整,无法形成预设的相位关系与刹车窗口。这导致启动瞬间或方向切换后的首个周期出现控制“盲区”。
矛盾本质:这揭示了使用固定参数、期望所有PWM周期(包括起始周期)都完美的方案是不可实现的。PWM硬件在初始化阶段的输出序列存在固有的瞬态过程。
聚焦中段
既然从起点推导无法实现,转而聚焦于波形中间段的设计。

(草图丢失,此图来源于最终调制的PWM波形图)
在上图的波形设定中,我们定义:PWM周期为 T,有效占空比为 D,正转有效占空比为 D_A,反转有效占空比为 D_B,刹车窗口时间为 T_brake,PWM定时器的重载最大值(ARR值)为 ARR_max。
根据电机控制需求,为实现正反转的对称驱动,两路占空比应相等:
D_A = D_B = D / 2
在PWM配置上,采用极性互补的模式组合:
A路使用 PWM Mode 1,B路使用 PWM Mode 2
A路PWM的比较值应设置为:
CCR_A = ARR_max × (D / 2)
B路PWM的比较值则设置为:
CCR_B = ARR_max - CCR_A
此时,在 CCR_A 至 CCR_B 的时间区间内,两路PWM输出同时为高,正好形成我们设计所需的 刹车窗口。其持续时间为:
T_brake = (CCR_B - CCR_A) × T_cycle (其中,T_cycle 为定时器计数周期。)
PWM模式定义了比较匹配时输出电平的行为。这两种模式是生成互补带死区波形的关键。
最终修改配置后的两路PWM波形实测情况:

电机两端的电压实测情况:

技术分析
1. 问题根源分析
现象:电机在转向切换瞬间,电机两端出现显著电压过冲(及伴随的电流尖峰)。
推断机理:在互补PWM控制下,H桥上下管切换时,由于MOSFET的寄生参数(如米勒电容)、回路寄生电感以及电机绕组的感性特性,会产生高频振荡和电压尖峰。死区时间的引入避免了直通,但未能抑制由电流换向和感性负载续流引起的电压应力。
结论:该问题属于典型的开关瞬态电压尖峰,根源在于能量释放路径不畅和开关动作过于“生硬”。
2. 原有方案的局限性
互补PWM+死区:仅解决了硬件直通问题,但H桥从一种导通状态(如“正转”)切换到另一种状态(如“反转”或“高阻”)时,电机绕组中的储能(电流)无处释放,只能通过MOSFET体二极管或杂散电容形成高压回路,导致电压过冲。
参数调整无效:仅调整占空比和死区时间,并未改变换向时刻的能量泄放路径,因此无法从根本上解决问题。
3. “刹车”模式的技术原理与潜力分析
刹车模式(两路输入均为高) 在H桥中通常意味着将电机绕组两端短接至地或电源。
主动刹车/能耗制动:将电机绕组通过低侧或高侧MOSFET短接,使电机的反电动势形成闭合回路,电流快速衰减,将动能转化为热能消耗掉。
在换向中应用:若能在方向切换前,先插入一个极短(如微秒级)的刹车状态,可为绕组中的残余电流提供一个低阻抗的续流通路,使其平滑衰减,从而吸收掉部分储能,大幅降低切换至高阻态或反向导通状态时的电压应力。
优势:利用芯片既有功能,不增加外部元件,理论上能有效抑制电压过冲。
4. 实现“插入刹车”的技术挑战与思路演进
初始构想(在脉冲末尾插入):受限于PWM硬件外设的自动生成机制,MCU难以在精确的时刻(每个PWM周期末尾)实时插入一个非标准状态。采用软件定时或捕获方式,会引入延迟、不可靠且复杂。
关键思路转变:
核心洞察:不再试图在硬件生成的PWM脉冲结束后添加刹车,而是通过重新规划整个PWM周期内的电平序列,将“刹车状态”作为脉冲序列中的一个固定相位。
实现方法:调整两路PWM信号的相位关系和占空比。例如,使其中一路PWM的上升沿提前或下降沿延后,从而在两路PWM均为高电平的重叠区域,自然形成“刹车”状态窗口。这个窗口恰好位于电机电流需要续流的换向准备阶段。
“中间段”的合理性:电机电流在PWM周期中间段通常处于相对稳定状态,在此处插入一个短暂刹车,对平均转矩影响最小,同时能提前泄放部分能量,为接下来的主开关动作(如反向导通)创造“软着陆”条件。
5. 方案推导与参数计算
定义理想波形:首先在时序图上画出目标波形,明确正转、刹车、反转三种状态的时序关系,以及对应的H桥开关管(A、B路)逻辑电平。
建立方程:设PWM周期为 T,正转有效占空比为 D_forward,刹车窗口时间为 T_brake,反转有效占空比为 D_reverse。根据相位原理,可建立A、B两路PWM信号占空比(D_A, D_B)与 D_forward、T_brake、D_reverse 的数学关系。
忽视起始难题:发现用一组固定参数(D_A, D_B, 相位差)无法同时完美满足波形起始和中间的要求,尤其是起始阶段第一个PWM周期难以包含完整的刹车窗口。这实际上是一个边界条件问题。
聚焦中段波形:最终方案放弃对最初1-2个PWM周期的完美控制,因为电机从静止启动或大动态切换时,电流本身处于暂态过程。只要在进入稳态PWM运行后,每个周期中间都能可靠插入刹车窗口,即可持续、有效地抑制换向过冲。起始的几个异常周期对整体性能影响甚微。
总结与评估
方案概括:通过设置非对称(或特定相位关系)的互补占空比,产生周期性的高电平重叠区间
技术可行性:该方案巧妙利用了电机驱动芯片的既有刹车功能,在软件层面实现了硬件续流路径的自动创建,是纯软件/固件层面的优化。
实用性:能有效的用于抑制开关瞬态电压尖峰。
实用性:无需更改硬件电路,仅通过优化MCU的PWM输出配置即可实现,成本为零,可靠性高。
潜在风险:
需精确计算并测试刹车窗口时间,过短可能效果不足,过长可能影响电机效率或引起额外发热。
对MCU的PWM发生器灵活性有一定要求(需支持两路独立占空比)。
需在实际负载下充分验证其对过冲的抑制效果及对电机动态响应的影响。