ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

无刷电机驱动中的半桥与全桥:从原理到实战选型避坑指南

无刷电机驱动中的半桥与全桥:从原理到实战选型避坑指南 做电机驱动的朋友应该都经历过这种迷茫翻开一块无刷电机驱动板六个MOS管整齐排列有人叫它“三相全桥”有人叫它“三个半桥”再翻数据手册看到IR2104这种“半桥驱动芯片”又看到DRV8870这种“全桥驱动芯片”整个人直接懵掉。更别提网上一搜“半桥”和“全桥”跳出来的全是LLC半桥电源、移相全桥开关电源一类的电路和电机驱动看着像亲戚实际上根本不是一回事。这篇文章我就把无刷电机里半桥和全桥的差别一次性讲透。我会从最底层的电路拓扑说起画一张不算美观但绝对管用的对比图然后结合STM32F103RCT6这类常用主控、FOC和六步换向的实际工程场景把选型逻辑和踩坑经验一并倒出来。不管你是刚接触无刷电机驱动的新手还是正在调FOC代码但被死区、自举电容折磨的工程师这篇都值得看完。1. 先搞清楚桥到底是怎么定义的半桥和全桥的根本差别半桥和全桥的概念其实不复杂但很多人一开始就被“桥”这个字带偏了。桥不是说长得像桥而是指开关管的连接方式像桥臂一样一个管子上、一个管子下中间引出输出点。1.1 一个桥臂看半桥只能推不能拉半桥电路就是由两个开关管串联组成的一个桥臂上管接正电源下管接地或者负电源中间点作为输出。两个管子交替导通输出端就能在“高电平”和“低电平”之间切换。这里有个关键特性半桥的输出只能把负载的一端接到电源正极或者地它不能自己形成电流回路。什么意思就是半桥单独用的时候负载必须有一端接在某个固定电位上比如电机绕组一端接半桥中点、另一端接电源中点或者公共端电流才能流起来。用一个生活类比来理解。半桥就像一个单刀双掷开关它能把水管接到“高压水龙头”或者“排水口”但整个管路系统必须另一端已经接好。你只靠一个半桥没法让负载两端电压反向自然也没法让电流反向。正因如此半桥经常被用在需要单向驱动、但又要频繁开关的场合。在电机驱动里半桥通常是作为“一相”的驱动单元存在的三个半桥凑在一起才能让三相无刷电机的三根引线分别接通或者断开。1.2 两个桥臂看全桥既能推又能拉全桥电路本质上就是两个半桥组合在一起四个开关管接成H形状所以它也叫H桥。负载接在两个半桥的中点之间。相比半桥全桥最大的优势是可以让负载两端电压反向从而实现电流双向流动。继续用刚才的水管类比。两个半桥等于两组单刀双掷开关分别接在负载水管的两端。一组开关把左端接到高压水龙头另一组把右端接到排水口水从左往右流反过来操作水就从右往左流。这样负载上的电压方向就可以完全反转。这种能力意味着用一个全桥就能让一个电机正转、反转、刹车正因如此全桥是直流有刷电机驱动的标准方案也是单相无刷电机驱动的常见方案。1.3 三相无刷电机驱动板上的“三相全桥”到底算什么现在回到开头的困惑一块三相无刷驱动板上六个MOS管为什么既有人叫三相全桥又有人说三个半桥其实两种说法都对但描述的层次不同。六个MOS管按三组排列每一组就是“一个半桥”负责驱动电机的一相绕组三个半桥组合在一起构成一个完整的三相桥式逆变电路这个整体被叫做“三相全桥”。核心点在于三相无刷电机的驱动既不是用一个“全桥H桥”去驱动也不是用一个“半桥”去驱动而是用三个半桥构成的“三相全桥电路”来驱动。这里的一个“全桥”指的是三相桥式逆变器而不是单相的那种H桥。单相无刷电机才习惯用一个H桥也就是一个由两个半桥组成的全桥来驱动。两相无刷电机则通常需要两个半桥来驱动两组绕组。一句话记住半桥是“一相的驱动单元”全桥是“完整驱动一个负载单相电机或一路绕组的单元”。电机相数越多需要的半桥数量就越多单个半桥不能独立完成双向驱动但多个半桥组合可以。2. 一张图对比半桥和全桥的驱动逻辑与应用场景如果非要用一张图来总结两种方案的差异其实可以归结为一句话半桥决定“这一相通不通电”全桥决定“负载两端电压往哪边加”。我画不了复杂的电路仿真截图但可以用文字把这张“图”的结构说清楚。2.1 半桥三路方案三相无刷电机的主力军三相无刷电机三根引线U、V、W每一根引线接一个半桥的中点三个半桥的高端分别接母线正极低端接母线负极。控制上同一时刻只让三个半桥中特定的上下管导通形成电流路径。比如最常见的六步换向120°导通方式每一步都有一个半桥上管导通、另一个半桥下管导通、第三个半桥全部关断。电流从母线正极流入某相绕组再从另一相绕组流出回到地形成通路。第三个半桥处于高阻状态其对应的相绕组没有电流用来检测反电动势实现无感换向。这就是为什么三相无刷电机驱动要六个MOS管而不能少。每相都需要独立控制接入正极还是地少一个管子这相就废了。也正因如此市面上几乎所有的三相无刷驱动专用芯片比如DRV8301、DRV8353、MTI公司的那些集成方案内部都是“三个半桥”的结构。ST官方在STM32F103RCT6上做FOC驱动的参考方案也是基于三相半桥逆变器来设计的。CubeMX里配置TIM1产生三对互补PWM输出到六个MOS管的栅极驱动芯片这六个PWM对应的物理结构就是三个半桥。2.2 全桥方案单相无刷和两相无刷的主场如果是驱动单相无刷电机比如很多风扇、水泵里用的那种绕组通常只有一组或者两组用一个全桥H桥就够了。四个管子Q1和Q4导通时电流正方向Q2和Q3导通时电流反方向Q1和Q3同时导通或者Q2和Q4同时导通时实现制动。两相无刷电机比如某些硬盘主轴电机模型或者小型无人机云台电机定子有两组绕组这时候需要两个半桥、总共四个MOS管来分别驱动两组绕组。这种接法从拓扑上看可以理解为每个绕组各占一个半桥四个管子在整个电路里又呈现两个全桥的形态。全桥方案最大的好处是对单绕组负载的控制极其灵活。正反转切换不需要换接任何线全部由PWM逻辑完成。因此但凡电机只有一根绕组的场景全桥基本是唯一选择。2.3 半桥与全桥核心差异对照表对比维度半桥一个桥臂全桥H桥 / 两个半桥开关管数量2个4个输出电压方向只能输出高或低不能反向可以正向、反向、零电压电流方向控制单向依赖外部回路双向独立控制负载两端典型应用三相无刷电机的一相驱动、同步Buck电源的功率级单相无刷电机、有刷电机、步进电机绕组能不能单独驱动一台电机不能至少需要两个半桥或配合其他结构能驱动单绕组电机正反转驱动芯片示例IR2104、EG2134、DRV8301内部的三相半桥DRV8870、L298N、BTN7971内部全桥PWM控制复杂度需要互补PWM上下管需要两组互补PWM或四路独立PWM母线利用率半桥作为一相使用时绕组端电压峰值等于母线电压全桥驱动时绕组两端电压峰值可以等于母线全压这张表基本覆盖了所有关键差异。实际项目中你不需要纠结“半桥好还是全桥好”先看电机有几相、几根引出线然后反过来数需要几个桥臂才是正确的思考顺序。3. 别把电机驱动桥和电源拓扑里的半桥全桥搞混我相信你在搜索“半桥”“全桥”的时候一定被电源电路的知识淹没过。什么LLC半桥、移相全桥、半桥逆变电路、全桥整流电路这些术语和无刷电机驱动的“桥”经常被混在一块。这里我专门花一章扯清楚免得再有人走弯路。3.1 电机驱动桥输出的是换相逻辑不是电压变换无刷电机驱动中的半桥/全桥电路作用是把直流母线电压按照换相逻辑分配到电机各相绕组上。它的输出是特定时刻特定相位的电压组合形成旋转磁场。本质上是DC-AC逆变器只是它逆变出来的频率是电机的电频率这个频率跟着转速变。所以电机驱动桥关心的是“什么时候让哪相管子导通”核心指标是换相时序、死区时间、峰值电流能力。它不需要像电源那样稳压、稳流、隔离。很多朋友在调无刷电机时会习惯性套用电源电路里半桥的经验比如想着用“软开关”来降低开关损耗。无刷电机的三相半桥逆变器绝大多数情况下就是硬开关工作状态完全由控制算法决定不存在所谓的谐振。这两者不能混为一谈。3.2 LLC半桥、移相全桥是电源电路和电机驱动桥是两码事LLC半桥和移相全桥属于开关电源拓扑它们要解决的核心问题是“高效率地进行DC-DC或AC-DC电压变换”。它们的桥臂结构虽然看上去也是“两个管子加中点”但工作方式完全不同电源拓扑中的桥臂通过PWM占空比或者频率调节控制能量传输的大小电机驱动中的桥臂则是根据转速位置决定通断的换向逻辑。更明显的区别是负载性质。LLC半桥后面接的是谐振腔和变压器移相全桥后面接的是变压器和输出整流。负载网络是精心设计的LC谐振网络参数一旦偏离效率和波形就会明显恶化。而电机驱动桥后面接的是定子绕组绕组本身的电感和电阻构成负载不需要外接谐振元件。如果你在做无刷电机FOC驱动时突然看到某篇教程用“LLC半桥”来解释MOS管开关状态直接关掉。那是电源工程师的内容放电机驱动场景里是错的。3.3 为什么网上一搜“半桥”出来全是电源电路原因很简单电源电路也是半桥和全桥的重要应用场景而且电源工业积累的技术资料更多。LLC半桥电源、移相全桥电源、全桥整流电路这些都是电力电子里的经典内容搜索结果自然占大头。但这不代表电机驱动里的“半桥全桥”就低人一等。恰恰相反无刷电机驱动用的是最基础、最直接的桥式逆变结构理解了电机驱动里的桥再去看电源里的桥会省力很多。两者的开关管驱动方法是相通的比如都需要死区、都需要高端驱动自举或者隔离驱动。只是控制目的不同一个要波形、一个要时序。所以我的建议是查资料的时候加限定词搜“无刷电机 半桥 驱动原理”“三相全桥 逆变器 FOC”把电机驱动场景锁死不要被电源电路的资料带偏。等把电机驱动的桥彻底吃透再回头看LLC半桥、移相全桥你会发现仿佛打开了另一扇门但那是后话。4. 选型避坑高压、功率、控制算法怎么决定桥的选择搞清楚了原理进入实战环节。这一章讲的是选型逻辑——你怎么根据手上的电机和项目要求确定到底要几个桥臂、管子选多大、驱动芯片选哪类。4.1 根据电机相数决定桥臂数量这是第一个要明确的点。多相电机就要多个桥臂计算规则是桥臂数等于电机相数每个桥臂的开关管数量是2所以三相无刷电机需要6个开关管单相无刷电机需要2个开关管配合电容裂相或者接成H桥用4个开关管。单相电机为什么会有2管和4管两种方案这里稍微展开说。有些单相无刷电机采用“单绕组电容移相”的方式绕组只有一个通过电容让主副绕组产生相位差这种电机不能正反转反转调速驱动用两个管子的半桥结构就够。但大多数需要正反转、需要调速的单相无刷电机比如电子水泵、散热风扇的高端型号用的是双绕组结构这时候两个半桥组成一个全桥才能灵活控制。三相无刷电机则永远都是三个半桥的结构。哪怕是那种“无感”方案电机内部没有霍尔传感器也一样需要三个半桥来逆变供电只是换相位置通过反电动势检测来获取。4.2 功率大小决定MOSFET和驱动芯片的选型电机功率等级直接决定桥臂上的管子选型。功率和母线电压决定了电流峰值MOS管的耐压必须大于母线电压加上尖峰余量通常至少是母线电压的1.5倍。小于36V的低压场合比如航模电机、电动工具MOS管耐压40V到60V就够了220V交流整流后母线约310VMOS管就得选600V甚至650V的。额定电流则根据电机堵转电流来算。理论上MOS管的漏极电流要大于电机最大峰值电流实际工程上要留到1.5到2倍。我曾见过有人选管时只看额定电流“差不多”结果电机一堵转管子直接击穿因为堵转电流是额定电流的好几倍。驱动芯片的选择同样由功率决定。低压小功率场景用带自举的半桥驱动芯片IR2104、EG2134等就够了便宜、外围简单。中高压场景比如电动车控制器就必须用带隔离栅极驱动的方案或者自举驱动加高压电平位移电路比如IR2110、IRS21867等还要特别注意VS引脚上负压尖峰的问题。4.3 方波控制与FOC对桥路的要求不同同样是三个半桥方波控制和FOC控制对电路的要求略有区别。方波控制六步换向只需要同一时刻最多两个桥臂工作第三个桥臂关断用来检测反电动势。它对电流的连续性要求不高对PWM频率也不敏感十几千赫兹的开关频率就能跑。FOC控制则要求三相同时进行SVPWM调制三个半桥的六个管子都在高频开关同一个桥臂上下管必须严格互补否则直通炸管。开关频率通常选在15kHz到20kHz以上要求驱动芯片的传输延迟尽量一致、死区时间可以精确配置。这带来的硬件选型差异是方波控制可以用很普通的半桥驱动芯片甚至某些超低压小功率场景直接用分立三极管搭FOC控制则建议选择专门的电机驱动集成芯片比如DRV8301内部集成了三个半桥驱动、电流放大器和降压BuckMCU只需输出6路PWM和使能信号省掉大量分立元件。4.4 成本权衡不要为了“全桥”而全桥有个朋友做一个小功率风扇项目用的是单相无刷电机绕组装在定子上转速要求不高只要求一个方向转。他上来就要用全桥方案理由是“全桥高级、灵活”。我问他为什么不用半桥加电容裂相他说怕电容移相启动不可靠。最后我帮他算了一笔账全桥方案需要4个MOS管、一个栅极驱动芯片至少两路、足够面积的PCB走线BOM成本比半桥方案高出一大截。而半桥加电容的方案管子数量减半驱动用一个半桥芯片成本只有对方的六成。转速不需要反向也没有堵转需求电容移相完全够用。这个例子说明选桥不是越复杂越好而是越匹配越好。单方向、恒定负载的场景优先考虑半桥需要正反转、制动或者精确控制的场景才需要上全桥。多花出去的成本要换来实实在在的功能才行。5. 实测踩坑记录半桥驱动中最容易出的五个问题“避坑指南”是这篇的重头戏。下面这些坑每一个我都在实际项目中踩过或者帮忙修复过不是从书上看来的理论写出来帮你省时间。5.1 死区时间没配好上下管直通炸管半桥驱动上下管互补导通如果上管还没完全关断、下管就已经导通母线正极和地之间就形成一条直通路径瞬间电流巨大MOS管温度飙升轻则发热严重重则直接炸管。这个问题在方波控制里还好些因为很多半桥驱动芯片内部自带了死区时间比如IR2104的典型死区约几百纳秒基本够用。但FOC控制用SVPWM时MCU输出的6路PWM必须自己配置死区。STM32F103RCT6的TIM1高级定时器里有专门的死区发生器你需要在CubeMX里把死区时间设到1微秒级别具体值根据MOS管的关断延迟来定。我的调试经验是先用示波器同时看同一桥臂上下管的VGS波形确保不存在交叠导通。如果没有示波器那就先串一个小阻值的限流电阻或者把母线电压调低到十几伏来验证确认不炸管了再升压。5.2 自举电容容量与充电时间高端MOS管动不了的真相半桥驱动芯片驱动高端MOS管用的都是自举供电方式。芯片内部有一个电平位移电路通过自举电容把高端栅极电压顶到母线电压以上。如果自举电容容量太小或者充电不足高端MOS管就会出现“偶尔能开、转速一高就开不了”的现象。很多初学者遇到的“电机低速正常、高速突然丢步”的诡异故障罪魁祸首往往就是自举电容。解决办法是保证电容容量足够且每个PWM周期的低电平时间内能充分充电。电容取值通常在100nF到1uF之间频率越高电容可以越小但如果PWM占空比接近100%低电平时间太短导致电容充不上电高端管就会关闭。实测中我遇到过一个案例FOC高速空载时相电流波形出现周期性毛刺排查半天发现是自举电容充电时间不够后来把PWM频率从20kHz改到16kHz同时增大死区时间故障消失。这个坑很隐蔽排查时不要忽略驱动芯片的供电电流。5.3 检流电阻位置不对电流波形全乱FOC需要采集相电流最常用的方法是在三个半桥的低端公共端串联采样电阻或者每相低端单独接采样电阻。采样电阻的位置和布局直接决定电流波形的干净程度。低端采样最大的问题是地弹噪声。MOS管开关瞬间寄生电感和采样电阻上会产生很高的dV/dt和di/dt干扰如果你把采样电阻的地走线又细又长放大器的地就不干净采出来的电流波形全是毛刺FOC电流环根本稳不住。我的经验是采样电阻用四线开尔文接法从电阻两端独立引线到运放信号地单点连接绝对不能让大电流地线和小信号地线共用一段走线。另外在运放输入端加RC低通滤波截止频率设为开关频率的十分之一左右比如20kHz的开关频率滤波截止频率约2kHz到5kHz比较合适。5.4 三相无刷换相时序错误电机像刹车一样卡顿无论是方波控制还是FOC换相时序出错是新手最常见的问题。方波控制里六个MOS管的导通组合必须严格按照Hall传感器或者反电动势过零点的顺序来搞错一步电机就会卡顿、抖动、发热像刹车一样。如果你用的是带霍尔的三相无刷调试第一步应该是先手动转动电机用示波器同时捕捉三路霍尔信号和电机三相反电动势把霍尔状态和反电动势相位对应关系理清再写换向真值表。不要上来就照抄别人的代码因为霍尔安装角度不同换向表可能完全不同。无感方案更讲究反电动势过零点检测电路的低通滤波会带来相位延迟转速越高延迟越大所以必须在软件里做相位补偿。ST的FOC库里有专门的滑模观测器来处理这个问题自己写代码的话要特别留意滤波电容对过零点的移相影响。5.5 散热和布局MOS管栅极振铃怎么压桥臂上的MOS管高速开关时栅极回路和PCB寄生电感会产生振铃。栅极振铃严重时会导致MOS管误开通、关断震荡甚至造成电磁干扰超标。解决栅极振铃最有效的办法就是在栅极串联一个电阻通常叫栅极电阻或者驱动电阻。阻值太小开关速度快但振铃大阻值太大开关损耗增加。我一般是从10欧起步用示波器观察VGS波形看振铃情况逐步调整通常10到47欧之间能找到一个比较舒服的折中点。PCB布局方面MOS管栅极驱动回路要尽量短粗驱动芯片到MOS管栅极的走线越短越好而且源极和功率地之间不要有细长走线。三个半桥的布局如果空间允许最好按“上管下管驱动芯片”一组一组分区排列这样主功率回路形成一个个小环路干扰明显降低。6. 最后分享一点个人经验桥这个东西单看原理图觉得很简单真正上手调驱动才明白里面的门道有多深。我个人体会比较深的有几点第一不管做什么方案先用一个小的三相无刷电机和一套开发板把六步换向跑通再考虑FOC直接跳级容易把自己绕晕第二手边一定要有示波器调试半桥驱动没有示波器等于盲人摸象很多问题靠猜效率极低第三datasheet里的死区时间、自举电容推荐值、栅极电荷参数都是前人经验和测试结果别自己拍脑袋改实测数据和手册匹配才能走稳。最后再分享一个小技巧如果你用STM32F103RCT6做FOC驱动先在CubeMX里把定时器的PWM和死区配置仔细设好生成代码后先用示波器看PWM波形确认六个通道都是频率一致、相位正确的互补波形再接电机。这一步能避免大半“一上电就炸管”的惨剧。希望这篇能让你看完之后脑子里的桥不再是一团浆糊顺着自己的电机需求一步步把驱动方案选对、调稳。
返回列表