直流电机控制电路设计全攻略:从PWM调速到H桥驱动
2026/9/19 12:38:15 网站建设 项目流程

简介:直流电机控制电路设计是电机驱动领域的核心内容之一,这份PPT学习教案正是围绕该主题编写,适合电力电子、电气自动化专业的本科生、研究生以及从事电机驱动的工程师使用。教案从永磁、串励、并励等常用直流电动机类型入手,对比单极性驱动与双极性H桥驱动在正反转、制动、续流损耗方面的适用场景;同时梳理Semiconductors、Allegro、ST、Fairchild等厂家的数十款驱动IC,涵盖CS7054、NCV7701、L298等典型型号的电压、电流与封装参数,并进一步归纳了设计中的关键考虑:根据电机特性与工况选择驱动方式,优化电路效率,完善过压、过流、欠压保护,借助PWM实现速度与扭矩的精确调节,以及合理选用集成电路封装以利系统集成。资源包内共1个pptx演示文稿,约34页,压缩包大小529KB,目前已有92人学习浏览,是一份内容系统、便于课堂讲解或自主复习的参考材料。

1. 直流电机控制电路设计:看似两根线,难点全在中间

直流电机大概是工业控制里最“亲民”的执行机构:两根电源线一接,转;反接,反转。但这个标题里的“控制电路设计”之所以能被单独拿出来做一份学习教案,是因为真正落到驱动层面时,问题远不止通断那么简单。你要处理的是三个核心矛盾:调速不能靠调电压,因为带载后转速会随负载漂移;换向不能靠继电器,因为频繁切换触点寿命和电弧都撑不住;功率不能靠单片机的引脚直接给,因为一个几十瓦的电机启动电流就能把弱电系统拉崩。

这篇文章的价值不是让你背会某个芯片的 datasheet,而是帮你建立一条完整的设计链路:从 PWM 调速和 H 桥换向的原理,到驱动芯片与分立 MOSFET 方案的取舍,再到保护电路、PCB 布局和示波器验证。适合正在做课程设计、准备电赛,或者第一次把电机驱动放进产品里的嵌入式工程师。读完你能照着搭出一块能稳定跑的直流电机控制电路,也知道调试时该先看哪个波形。

2. PWM调速与H桥换向:控制电路设计的两条主线

2.1 从占空比到平均电压:PWM控制直流电机转速的本质

直流电机的转速近似正比于电枢两端平均电压。最简单的调速手段是串联电阻,但电阻上消耗的功率和电机是同一数量级,效率低且转速随负载波动明显。PWM 调速的核心是用高频开关斩断电源电压,通过调节占空比改变平均电压,功率管只工作在饱和导通和完全截止两个状态,损耗远小于线性调压。

计算平均电压的公式很简单:V_avg = V_supply × DutyCycle。但工程上要注意一个容易被忽略的约束——PWM 频率的选择。频率太低,电机会发出人耳可闻的啸叫,转速也会出现明显脉动;频率太高,MOSFET 的开关损耗会随频率线性上升,驱动芯片的功耗也可能撑不住。

# 计算不同占空比下的电机平均电压和占空比对应的转速估算 supply_voltage = 12.0 # 电源电压 12V duty_cycle = 0.65 # 占空比 65% rpm_per_volt = 200.0 # 电机 KV 值,每伏特对应的空载转速 avg_voltage = supply_voltage * duty_cycle estimated_rpm = avg_voltage * rpm_per_volt print(f"平均电压: {avg_voltage:.1f}V") print(f"估算空载转速: {estimated_rpm:.0f} RPM")

这段代码只做设计初期的估算用。实际转速还会受负载转矩、电枢内阻压降和换向器损耗影响,空载估算值一般会比实测偏高 10% 到 20%。PWM 频率的选择,常见做法是:有刷直流电机取 10 kHz 到 20 kHz,避开人耳听觉范围,同时低于开关电源的常见纹波频段;如果电机带有减速箱,还要避免 PWM 频率与齿轮啮合频率产生共振。

2.2 H桥的四个开关管与换向逻辑

调速解决了,方向怎么换?单管斩波只能单向转,要实现正反转,标准拓扑是 H 桥。四个开关管组成桥臂,电机接在桥臂中点之间。正转时 Q1 和 Q4 导通,电流从电源经 Q1 流入电机正极,再从电机负极经 Q4 回地;反转时 Q2 和 Q3 导通,电流方向完全反过来。

工作模式Q1(左上)Q2(右上)Q3(左下)Q4(右下)电机状态
正转导通/PWM关断关断导通正转,Q1 做 PWM 斩波
反转关断导通/PWM导通关断反转,Q2 做 PWM 斩波
刹车(能耗制动)关断关断导通导通电枢被短接,快速停转
滑行关断关断关断关断电机惯性运转
禁止导通导通关断/导通关断/导通电源直通短路,严禁

这里有个初学者最容易踩的坑:从正转到反转如果直接切换对角管,在“Q1、Q4 导通”和“Q2、Q3 导通”的瞬间会存在一个状态窗口,上管和下管同时导通,电源被直接短路。MOSFET 的导通和关断都有延迟,哪怕只有几十纳秒的重叠,母线电容释放的短路电流也可能瞬间炸管。解决手段就是死区时间。

2.3 死区时间不是软件修修补补,而是硬性要求

死区时间(Dead Time)指互补驱动的上下管之间,插入的一段“都不导通”的时间间隔。常见做法是在 PWM 定时器配置里直接设置,也可以在外部逻辑电路上加 RC 延时。对于驱动芯片,很多集成方案自带死区生成电路,比如 IR2104 这类半桥驱动,输入一个 PWM 信号,芯片内部自动插入死区后输出互补的 HO 和 LO。

// STM32 TIM1 高级定时器互补 PWM 输出,配置死区时间 // 设 ARR = 999,PSC = 71,则 PWM 频率 = 84MHz / (72 * 1000) = 1.166kHz TIM_TimeBaseInitTypeDef timeBase; TIM_OCInitTypeDef oc; TIM_BDTRInitTypeDef bdtr; timeBase.TIM_Period = 999; timeBase.TIM_Prescaler = 71; timeBase.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &timeBase); oc.TIM_OCMode = TIM_OCMode_PWM1; oc.TIM_OutputState = TIM_OutputState_Enable; oc.TIM_OutputNState = TIM_OutputNState_Enable; oc.TIM_Pulse = 500; // 50% 占空比 oc.TIM_OCPolarity = TIM_OCPolarity_High; oc.TIM_OCNPolarity = TIM_OCNPolarity_High; TIM_OC1Init(TIM1, &oc); bdtr.TIM_DeadTime = 72; // 死区时间 = 72 / 84MHz = 0.857us TIM_BDTRInit(TIM1, &bdtr); TIM_CtrlPWMOutputs(TIM1, ENABLE);

死区时间设多长?取决于功率管的关断延迟和驱动芯片的传输延迟。大功率 MOSFET 因为栅极电荷大,关断慢,死区要加长;小功率管可以收短。太小会直通炸管,太大则会造成输出波形畸变、电流谐波增加。一般从功率管 datasheet 里查 t_off_max(最大关断延迟),加上驱动芯片的传输延迟,再留 1.5 到 2 倍裕量起步,然后用示波器观察上下管栅极波形确认没有交叠。

3. 从驱动芯片到分立MOSFET:直流电机驱动电路的搭建路径

3.1 集成驱动芯片的选型边界与替换逻辑

如果只需要驱动一个小功率直流电机,最快的路径是选一颗集成 H 桥驱动芯片。这类芯片内部集成了 MOSFET、死区控制、电流采样和过热保护,外围只需接几个电容和电阻。常见方案对比:

芯片/模块最大持续电流逻辑电压特点适用场景
L298N2A(实际建议 1A 以下)5V压降大,发热严重,封装老教学演示、低要求小电机
TB6612FNG3.2A 峰值2.7V~5.5V低导通电阻,MOSFET 架构玩具、小型机器人
DRV88713.6A6.5V~45V集成电流调节、PWM 接口12V/24V 直流电机

集成芯片不是万能的。L298N 用的还是达林顿管结构,饱和压降高达 1.5V 以上,当电机电流做到 1.5A 时,芯片自身的功耗就会超过 4W,不加散热片根本扛不住。如果你在设计一个 24V、3A 以上的直流电机控制电路,集成芯片的选型范围会迅速变窄,价格也会跳一个台阶。这时就该转向分立 MOSFET 方案。

3.2 半桥驱动加 N-MOSFET:分立方案的经典组合

分立方案的经典组合是“栅极驱动芯片 + 四个 N-MOSFET”。为什么用 N-MOSFET 而不是 P-MOSFET?N 管的导通电阻更低、成本更低、同封装下电流能力更大。但 N 管在上桥臂位置会遇到一个麻烦:源极接电机,电机通电后源极电压接近母线电压,此时栅极需要有比母线电压更高的驱动电压才能完全导通,这就是自举电路要解决的事。

半桥驱动芯片如 IR2104 内部集成了自举二极管,外部只需在 VB 和 VS 之间接一个自举电容。电容的容量按经验取 0.1uF 到 1uF 之间,具体取决于上管栅极电荷和开关频率。电容太小,上管导通时栅极电压跌落过大;电容太大,自举充电时间过长,高频工作时上管可能来不及补电。

// 两个 IR2104 构建全桥的伪代码逻辑 // IN1/IN2 输入 PWM 和方向信号,IR2104 内部生成带死区的互补输出 // 正转:左半桥 IN1 = PWM,右半桥 IN2 = 0 set_pwm(TIM2_CH1, duty); // 左半桥下管 PWM 斩波 gpio_write(PIN_IN2, 0); // 右半桥下管常关 // 反转:左半桥 IN1 = 0,右半桥 IN2 = PWM set_pwm(TIM2_CH1, 0); gpio_write(PIN_IN2, 1); // 右半桥输入反相逻辑,由驱动芯片内部处理

这里注意一个细节:IR2104 的输入和输出是同相还是反相,取决于具体型号。有的芯片 IN 高电平对应 HO 高,有的对应 LO 高。设计逻辑前先查 datasheet 的逻辑真值表,别在软件里反复反转试,容易把时间浪费在无意义的排错上。

3.3 一个最小系统的搭建顺序

搭建一个 12V 直流电机驱动最小系统,常见做法是分三步走。第一步是电源和滤波:12V 电源进来先接一个大容量电解电容(470uF 到 1000uF,具体看电机功率),再并一个 0.1uF 陶瓷电容滤高频噪声。第二步是逻辑电源与信号隔离:单片机 3.3V/5V 供电单独走,PWM 信号经驱动芯片输入,不直接把电机电源的地和逻辑地彻底分开。

第三步是功率级接线顺序,这个顺序直接决定调试效率:先接电源和地,再接功率管和电机,最后才接逻辑信号。如果顺序反了,电源没接好就上逻辑信号,驱动芯片的输入悬空时输出状态不定,可能导致未知的上下管导通,一上电就烧管。芯片的所有输入引脚在单片机初始化完成前,都要通过下拉电阻确定电平。

4. 保护电路与PCB布局:直流电机控制电路寿命的隐形决定因素

4.1 续流回路:MOSFET 炸管的第一大原因

直流电机本质上是感性负载,电流不能突变。当 PWM 关断瞬间,电枢电流必须找一个回路续流,否则电感两端会产生极高的反向电动势,直接击穿 MOSFET。很多初学者的驱动电路第一次上电就烧管,不是因为过流,而是没给续流电流安排一条低阻抗路径。

有刷直流电机的续流路径有两条:同侧上下管组成的桥臂续流,以及通过电机两端反并联二极管续流。用集成驱动芯片时,MOSFET 内部体二极管可以承担续流功能,但体二极管反向恢复时间慢,高频下损耗大。功率稍大就要在每颗 MOSFET 外部再并一个快恢复二极管或肖特基二极管,位置尽量贴近 MOSFET 的漏源极。

MOSFET 型号VdsIdRds(on)推荐续流二极管适用电机功率
IRLZ44N55V47A22mΩSS34 肖特基12V/3A 以内
IRF540N100V33A44mΩMBR20100CT24V/5A 以内
IRFB4110100V120A4.5mΩ超快恢复二极管大功率/堵转高

二极管选型的硬指标不是额定电流,而是反向恢复时间。堵转工况下电机电流最大值可能达到正常工作电流的 5 到 8 倍,续流二极管必须承受这个峰值电流至少几十毫秒不炸。

4.2 母线电容与电流采样

电机 PWM 斩波时,母线电流是断续的。如果电源直接来自开关电源适配器,适配器的反馈环路跟不上电机负载的瞬态变化,母线电压会剧烈跌落甚至触发保护。解决方式是在桥路输入端加母线电容。容值估算经验值:电机额定电流每 1A,母线电容取 220uF 到 470uF,耐压为电源电压的 1.5 到 2 倍。

电流采样有两种做法:低端采样(采样电阻接在 H 桥下管和地之间)和高端采样(接在电源正端)。低端采样最简单,但下管 PWM 开关时采样电压会剧烈跳变,ADC 读数毛刺很大。改进方案是采样点靠近下管的源极,ADC 触发时刻避开 PWM 开关瞬间,缩到 PWM 周期的中间点采样。

// ADC 触发时刻与 PWM 中心对齐,避免采样到开关噪声 // 设 PWM 周期为 1000 个定时器时钟,中心对齐模式下在 CCR 值处触发 ADC TIM_SelectOCxM(TIM1, TIM_CHANNEL_1, TIM_OCM_PWM1); TIM_SelectMasterSlaveMode(TIM1, TIM_MasterSlaveMode_Enable); TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_OC1Ref); ADC_ExternalTrigConvCmd(ADC1, ENABLE); ADC_ExternalTrigConvConfig(ADC1, ADC_ExternalTrigConv_T1_CC1, ENABLE);

这段配置的作用是把 ADC 采样时刻同步到 PWM 的特定相位点上,避开 MOSFET 开关带来的电压尖峰。注意中心对齐模式下,一次完整 PWM 周期会触发两次 CC1 事件,如果不想采两次,可以用 CC1 的上升沿触发并在中断里加标志位过滤。

4.3 PCB 布局:环路面积比走线粗细更重要

直流电机控制电路的 PCB 布局,核心原则是让大电流环路的面积最小。功率环路由四条路径组成:母线电容正极到上管漏极、上管源极到电机正极、电机负极到下管漏极、下管源极到母线电容负极。这个环路就是 PWM 开关时高频电流流动的路径,环路面积极大,寄生电感越大,关断时的电压尖峰就越高。

常见做法是把每个半桥的上下管尽量靠近,源极引脚直连面积大地铜皮,母线电容放在两个半桥之间而不是板边。如果条件允许,在上下管之间留出足够铜皮并打一组过孔连接背面地层。驱动芯片要靠近对应的 MOSFET 栅极,栅极走线绕过功率区和电流采样电阻,避免功率噪声串入驱动信号。

对于 4A 以上的电机,散热设计要提前算。MOSFET 的导通损耗是 I²R,开关损耗是 ½V·I·(t_rise+t_fall)·f。这两部分加起来乘以热阻 RθJA,看结温是否超过 125°C 的绝对上限。超过了就要换更低导通电阻的管子,或增加铜箔面积辅助散热。

5. 从有刷到无刷直流电机:直流电机控制电路设计的进阶扩展

5.1 无刷直流电机的换相逻辑与霍尔信号

有刷电机靠机械换向器完成电流换相,无刷直流电机把换向器搬到了控制器里。BLDC 电机通常有三相绕组和若干对磁极,转子上贴永磁体,定子绕组需要按一定顺序通电才能持续旋转。换向的依据来自霍尔传感器:三个霍尔元件输出 120° 电角度间隔的方波信号,组合起来就是转子的位置信息。

霍尔状态 (H1,H2,H3)导通相(A+→B- 表示 A 相上管 + B 相下管导通)
101A+ → C-
100A+ → B-
110B+ → A-
010B+ → C-
011C+ → B-
001C+ → A-

查表换相是 BLDC 控制的基础。霍尔信号每变化一次,软件就切换一次导通组合,每次切换间隔对应 60° 电角度。要实现这个控制,你需要把上一章的半桥方案扩展成三相全桥,也就是三个半桥共六个开关管。PWM 策略可以只用上管斩波、下管恒通的方式,俗称“梯形波驱动”。

5.2 梯形波六步换向的示波器验证技巧

用示波器验证 BLDC 换向是否正确,最容易观测的是电机三根相线的反电动势波形。正常状态下,反电动势应为梯形波,平台部分的高度对应未导通相在悬浮期间感应的电动势。如果波形出现明显畸变或平台不对称,优先检查霍尔信号的时序:把三路霍尔信号接到示波器上,看每个组合持续的电角度是否都接近 60°。

// 六步换向查表驱动的核心状态切换示例 const uint8_t commutation_table[6][3] = { // 数组内容依次为:A相上管、B相上管、C相上管 的 PWM 模式 // 下管由逻辑直接控制,导通时为高电平 {PWM_A_HIGH, PWM_B_OFF, PWM_C_LOW}, {PWM_A_HIGH, PWM_B_LOW, PWM_C_OFF}, {PWM_A_OFF, PWM_B_HIGH, PWM_C_LOW}, {PWM_A_LOW, PWM_B_HIGH, PWM_C_OFF}, {PWM_A_LOW, PWM_B_OFF, PWM_C_HIGH}, {PWM_A_OFF, PWM_B_LOW, PWM_C_HIGH} }; // 每次霍尔中断时根据当前状态查表 if (hall_status >= 1 && hall_status <= 6) { apply_commutation(commutation_table[hall_status - 1]); } // 电机低速启动时用强制换相,霍尔信号有效后再切回闭环

换相失败最常见的现象是电机振动或卡死、电流飙升却不转。这时先不要调 PID 参数,把 PWM 占空比固定在 10% 附近,用示波器逐相检查栅极波形和霍尔时序是否匹配。如果霍尔信号和换相表不匹配,对调任意两相霍尔线,或者把换相表按检测到的顺序重排,问题就能得到定位。

把这套无刷扩展当作对直流电机控制电路设计能力的验收:你会写 PWM、会搭 H 桥、会做保护电路、会看波形,那么从有刷到无刷的跨越就只是换相逻辑上的增量,剩下的电源、地线、采样和死区设计,全是从有刷阶段迁移过来的基本功。调试 BLDC 时留意换相瞬间母线电压的跌落幅度,如果跌落超过 10%,说明母线电容容量不足或续流路径阻抗偏高,这恰恰是回头检验第四章设计质量的最好切入点。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询