ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

无刷电机驱动电路设计:三相全桥与六颗MOSFET实战指南

无刷电机驱动电路设计:三相全桥与六颗MOSFET实战指南 1. 无刷电机驱动电路的整体设计思路1.1 为什么选三相全桥加六颗MOSFET搞无刷电机驱动绕不开三相全桥这个拓扑。说白了无刷电机定子上有三组绕组每组绕组都需要能正向通电也能反向通电才能让转子持续转起来。三相全桥就是六颗MOSFET组成的开关矩阵每一相由上下两颗管子构成一个半桥三个半桥合起来就是全桥。为什么是六颗而不是三颗或者九颗三颗只能做单向驱动绕组电流没法反向电机只能抖不会转。九颗属于冗余设计成本和复杂度都上去了除非是高压大功率场景需要并联管子分担电流否则六颗是最经济的选择。我实测过用六颗IRF3205搭的三相全桥驱动一个42BLF的直流无刷电机24V供电下持续跑2A完全没问题。六颗MOSFET的布局方式直接决定了驱动板的散热效果和开关性能。常见的做法有两种一种是六颗管子一字排开另一种是三相各自成组。一字排开的好处是走线简单但缺点是三相之间的热耦合严重中间那两颗管子温度明显比边上高。三相成组的方式每相上下管紧挨着放好处是半桥的回路面积小寄生电感低开关振铃小但布局上需要更仔细地规划驱动信号的走线。我个人的经验是如果你的驱动板空间允许优先选三相成组布局。每相的上管漏极接母线正极下管源极接采样电阻再到地中间点引出接电机绕组。这样每相的功率回路最短实测开关波形的过冲能控制在母线电压的15%以内。如果是一字排开过冲经常能到30%以上长期运行对管子寿命有影响。1.2 半桥驱动芯片的选型逻辑六颗MOSFET不能直接拿单片机IO口去推原因有两个一是上管的源极电位是浮动的当上管导通时源极接近母线电压栅极需要比源极高10V左右才能完全导通单片机IO口给不出这个电压二是MOSFET的栅极电容不小典型值在1nF到5nF之间IO口的驱动电流只有几十毫安开关速度会非常慢开关损耗急剧增加。所以必须用专门的半桥驱动芯片。常见的方案有IR2104、IR2110、EG2133这几款。IR2104是单通道半桥驱动一颗芯片驱动一个半桥三相需要三颗。它自带死区时间典型值520ns省去了自己算死区的麻烦。IR2110是双通道一颗能驱动一个半桥的高低压侧但死区需要外部逻辑控制。EG2133是国产替代价格便宜性能参数和IR2104接近我最近几个项目都在用实测下来很稳。选驱动芯片的时候重点看三个参数输出驱动电流、死区时间、耐压值。输出驱动电流决定了MOSFET的开关速度IR2104的拉电流和灌电流都是130mA和270mA驱动IRF3205这种Qg在60nC左右的管子开关时间在100ns量级够用。死区时间方面IR2104内置的520ns对于大多数应用都偏保守如果你用的是低Qg的管子其实可以自己用IR2110加RC网络把死区做到200ns左右效率能提升一两个百分点。耐压值必须大于母线电压24V母线选600V的管子绰绰有余但如果是72V以上的系统建议选带自举二极管耐压更高的型号。注意IR2104的SD引脚是使能端低电平关断输出。很多人第一次用的时候忘了拉高这个脚结果驱动芯片没输出查了半天以为是MOSFET坏了。我踩过这个坑现在每次画板子都会在SD脚旁边标个高电平标记。1.3 自举电容和自举二极管的选择上管驱动靠的是自举电路核心就两个元件自举电容和自举二极管。自举电容的容值计算有个经验公式Cboot ≥ 2 × Qg / ΔV其中Qg是MOSFET的栅极电荷ΔV是允许的自举电压跌落。以IRF3205为例Qg典型值63nC如果允许跌落0.5V那Cboot至少需要252nF实际选1μF的陶瓷电容就很稳妥。自举二极管必须选快恢复管反向恢复时间在100ns以内。常用的有1N4148、UF4007。1N4148的反向恢复时间4ns电流200mA对于大多数应用够用。但如果你的开关频率超过50kHz建议用UF4007它的反向恢复时间更短损耗更低。我试过在100kHz开关频率下用1N4148二极管发热明显换成UF4007之后温度降了十几度。自举电容的耐压要大于母线电压一般选50V的X7R陶瓷电容。温度特性很重要X7R在-55°C到125°C范围内容值变化不超过15%而Y5V能变化80%以上千万别用Y5V。我见过有人用Y5V的电容做自举常温下能跑一到冬天就启动不了就是因为低温下容值掉得太厉害自举电压不够。2. 死区时间的计算与设置要点2.1 死区时间到底在防什么死区时间就是半桥上下管切换时故意插入的一段两颗管子都关断的时间。为什么要这么做因为MOSFET不是理想开关关断需要时间。如果上管还没完全关断就打开下管母线正极和地之间就通过上下管直接短路了瞬间电流能到几百安培管子直接炸。这个短路电流有多大假设母线电压24V回路总电阻0.1Ω那短路电流就是240A。IRF3205的脉冲电流额定值110A持续不了几个微秒就热击穿了。所以死区时间不是可选项是必须项。死区时间太短炸管风险高太长输出波形畸变严重电机效率下降噪音增大。我实测过死区时间从200ns增加到1μs电机空载电流从0.3A涨到0.5A效率掉了将近10%。所以死区时间要卡在“刚好够用”的范围内。2.2 死区时间的理论计算死区时间的下限由MOSFET的关断时间决定。关断时间包括两部分关断延迟时间和下降时间。以IRF3205为例关断延迟时间td(off)典型值26ns下降时间tf典型值43ns加起来69ns。但这只是管子本身的特性实际电路中驱动电阻、PCB走线电感都会影响关断速度。一个更保守的计算方法是看栅极电荷的泄放时间。假设驱动电阻Rg10ΩMOSFET的输入电容Ciss1500pF那关断时间常数τRg×Ciss15ns。一般取5倍时间常数作为完全关断时间就是75ns。再加上驱动芯片的传输延迟IR2104的传输延迟典型值680ns这个延迟在上下管切换时是共模的会互相抵消一部分但最坏情况下还是要留余量。综合下来对于IRF3205加IR2104的组合死区时间设在300ns到500ns之间比较合理。IR2104内置的520ns稍微偏大但胜在省心不用自己调。如果你用IR2110自己搭死区建议从300ns开始试用示波器看半桥中点波形确认没有直通电流再往下调。2.3 用示波器实测死区时间的方法理论算完必须实测验证。测死区时间需要同时看上下管的栅极驱动信号。把示波器两个通道分别接上管栅极和下管栅极探头地接半桥中点。触发方式选上管栅极的下降沿然后展开时间轴看从 上管栅极降到10%到 下管栅极升到10%之间的时间差这就是实际死区时间。我实测的时候发现一个现象IR2104标称520ns死区但实际测出来只有480ns左右而且上下管的死区时间不对称上管关断到下管开通的死区是480ns下管关断到上管开通的死区是550ns。这是因为自举电容充电需要时间上管开通前自举电压还没完全建立。这个不对称性在低频下影响不大但高频下会导致正负半周不对称电机有轻微抖动。提示测死区时间一定要用差分探头或者两个单端探头做数学运算直接用两个探头的地夹子夹不同位置会引入地环路波形全是干扰。我一开始不懂测出来的波形乱七八糟后来换差分探头才看到真实情况。2.4 死区时间对电机性能的实际影响死区时间设置不当最直接的表现是电机发热和噪音。死区太大输出电压损失大电机出力不足为了达到同样的转速控制器会自动加大电流铜损增加电机烫手。死区太小直通风险高管子温度飙升严重时直接炸管。我做过一组对比实验同一个电机同样负载死区时间从200ns调到1μs电机外壳温度从45°C升到62°C噪音从58分贝升到65分贝。200ns的时候效率最高但用示波器看半桥中点波形关断瞬间有轻微振铃说明裕量不够。最后定在350ns效率比200ns时低了不到2%但管子温度稳定在50°C以下可靠性有保障。还有一个容易被忽略的点死区时间会影响低速时的转矩脉动。低速时反电动势小死区导致的电压损失占比大转矩脉动明显。如果你的应用对低速平稳性要求高比如云台电机或者精密定位死区时间要尽量小同时选用Qg更小的MOSFET比如AO3400这类SOT-23封装的管子Qg只有几纳库仑死区可以做到100ns以内。3. 六颗MOSFET的布局与散热实操3.1 PCB布局的功率回路最小化原则六颗MOSFET在PCB上的布局核心原则就一条功率回路面积最小。功率回路指的是电流从母线电容正极出发经过上管、电机绕组、下管回到母线电容负极的路径。这个回路面积越大寄生电感越大开关瞬间的电压过冲越高。以A相为例母线电容放在板子一端A相上下管放在另一端那电流要走很长的路径寄生电感可能有几十纳亨。开关时di/dt很高假设100A/μs20nH的电感就能产生2V的过冲。如果回路面积缩小一半过冲也减半。具体做法母线电容紧挨着三相桥放置每相的上管漏极和下管源极之间就近放一个高频去耦电容 typically 100nF到1μF的陶瓷电容。这个电容的作用是提供开关瞬间的高频电流减少对母线电容的依赖。我习惯在每相半桥旁边放一个1μF的0805陶瓷电容实测能把过冲从5V降到2V左右。3.2 散热过孔和铜箔面积的计算MOSFET的散热主要靠PCB铜箔。IRF3205的Rds(on)是8mΩ通过2A电流时导通损耗是32mW看起来不大但如果是10A电流损耗就是800mW没有足够的铜箔散热管子温度会很高。铜箔的热阻计算有个经验值1盎司铜厚1平方英寸面积的铜箔热阻大约是50°C/W。如果MOSFET的功耗是800mW环境温度40°C那铜箔面积至少需要1平方英寸才能把结温控制在100°C以下。实际设计中我通常会在MOSFET的漏极和源极焊盘上打8到12个散热过孔过孔直径0.3mm间距1mm这样能把热量传到板子背面等效散热面积翻倍。如果是贴片MOSFET比如TO-252封装焊盘本身不大必须靠过孔和背面铜箔散热。我试过在TO-252焊盘下打9个过孔背面铺2平方厘米的铜箔10A电流下管子表面温度65°C不加过孔的话能到90°C以上。3.3 栅极驱动走线的注意事项栅极驱动走线看着简单其实坑不少。首先驱动芯片到MOSFET栅极的走线要尽量短最好控制在10mm以内。走线长了寄生电感大栅极波形振铃严重可能导致MOSFET误导通。我见过有人把驱动芯片放在板子一边MOSFET放在另一边走线20mm结果开关波形上冲下跳电机一转就炸管。其次栅极电阻要靠近MOSFET放置不能靠近驱动芯片。栅极电阻的作用是限制栅极充电电流抑制振铃。如果电阻靠近驱动芯片那电阻到MOSFET之间的走线还是会有寄生电感振铃抑制效果打折扣。正确的做法是驱动芯片输出先到电阻电阻另一端直接连MOSFET栅极走线越短越好。还有一点上下管的栅极走线不要平行走太长距离否则会通过寄生电容耦合导致上下管同时导通。如果实在避不开中间加一条地线做隔离。我画板子的时候习惯在上下管栅极走线之间铺一条地线宽度0.5mm以上实测能有效降低耦合。3.4 电流采样电阻的放置位置电流采样电阻一般放在下管源极和地之间这样采样的是下管电流也就是电机相电流。采样电阻的阻值选择要权衡阻值大采样信号强但损耗大阻值小损耗小但信号弱容易被噪声淹没。以2A相电流为例如果选0.1Ω的采样电阻采样电压是0.2V损耗是0.4W需要至少1W的电阻。如果选0.01Ω采样电压只有20mV损耗0.04W但20mV的信号在开关噪声环境下很难采准。我一般选0.05Ω采样电压100mV损耗0.2W用1206封装的合金电阻温度系数50ppm够用。采样电阻的走线要开尔文连接也就是从电阻焊盘的内侧引出两条独立的线到运放一条走电流一条走信号。这样能消除焊盘和走线电阻的影响。我试过不开尔文连接采样误差有5%左右开了之后误差降到1%以内。4. 常见问题与排查技巧实录4.1 上电就炸管的原因排查上电炸管是最让人头疼的问题一炸就是六颗管子一起炸成本不低。根据我的经验炸管原因按概率排序直通短路占60%过压击穿占25%栅极过压占10%其他占5%。直通短路的原因又分几种死区时间不够、驱动芯片故障、栅极电阻开路。排查方法先不接电机只给驱动板通电用示波器看六路驱动信号。如果某一路信号异常比如一直高电平或者一直低电平那就是驱动芯片或者单片机的问题。如果六路信号都正常但半桥中点有直通电流那就是死区时间不够需要加大死区。过压击穿通常是母线电压尖峰导致的。电机急停或者换向时绕组电感会产生反电动势叠加在母线电压上可能超过MOSFET的耐压值。解决方法是在母线加TVS管或者RC吸收电路。我习惯在母线电容旁边并一个SMBJ33A的TVS24V系统用33V的钳位电压实测能有效抑制尖峰。栅极过压比较少见但一旦发生就是灾难性的。驱动芯片输出一般是10V到15V如果自举电容失效或者驱动芯片损坏栅极电压可能超过20VMOSFET的栅极氧化层击穿管子永久短路。预防方法是栅极加一个18V的稳压二极管钳位栅极电压。4.2 电机抖动不转的调试步骤电机抖动不转说明换向逻辑有问题。无刷电机需要知道转子位置才能正确换向位置检测靠霍尔传感器或者反电动势过零检测。如果是霍尔方案先检查霍尔信号是否正常。用示波器看三个霍尔输出手动慢慢转动电机三个信号应该依次变化相位差120度。如果某个霍尔信号不变那就是霍尔坏了或者接线错了。如果是无霍尔方案靠反电动势过零检测那低速时反电动势太小检测不到电机就会抖动。解决方法是用三段式启动先强制换向把电机拖到一定转速等反电动势足够大了再切换到过零检测。我调无霍尔驱动的时候强制换向的频率从10Hz开始每100ms增加5Hz直到反电动势达到1V以上再切换成功率很高。还有一种情况是换向顺序错了。六步换向有六种状态顺序错了电机就会抖动。正确的顺序是AB、AC、BC、BA、CA、CB。用示波器看相电压波形应该是六阶梯波如果波形乱了就是换向表写错了。4.3 MOSFET发热严重的排查思路MOSFET发热严重先摸一下是哪个管子热。如果是下管热多半是导通损耗大检查Rds(on)是否选大了或者散热不够。如果是上管热可能是开关损耗大检查开关频率是否太高或者驱动电流不够。开关损耗的计算Psw 0.5 × Vds × Id × (tr tf) × fsw。假设Vds24VId2Atr100nstf100nsfsw20kHz那Psw0.5×24×2×200e-9×200000.096W很小。但如果fsw100kHzPsw就变成0.48W是导通损耗的好几倍。所以高频应用必须选低Qg的管子或者加大驱动电流缩短开关时间。还有一个隐蔽的原因自举电容失效。自举电容失效后上管驱动电压不足MOSFET工作在线性区等效为一个电阻发热急剧增加。判断方法用示波器看上管栅极波形正常应该是干净的方波如果上升沿变缓或者幅度不够就是自举电容的问题。我遇到过自举电容虚焊上管栅极电压只有5V管子烫得手摸不上去补焊之后温度正常。4.4 常见问题速查表现象可能原因排查方法解决措施上电炸管直通短路示波器看驱动信号加大死区时间上电炸管过压击穿测母线电压尖峰加TVS管电机抖动不转霍尔信号异常手动转电机看霍尔输出更换霍尔或修正接线电机抖动不转换向顺序错误看相电压波形修正换向表MOSFET发热开关损耗大测栅极波形加大驱动电流或降频MOSFET发热自举电容失效看上管栅极电压更换自举电容电机噪音大死区时间过大测死区时间减小死区时间低速转矩脉动死区时间过大测低速相电流减小死区或换低Qg管子提示排查故障时一定要先断开电机只给驱动板通电测试。带电机测试一旦炸管电机也可能被反电动势打坏。我吃过这个亏炸管的同时把电机霍尔也打坏了损失翻倍。4.5 几个容易被忽略的实操细节第一个细节母线电容的选型。很多人只关注容值忽略了ESR。电解电容的ESR在低温下会大幅增加导致开关瞬间的电压跌落。我建议母线电容用固态电容或者电解电容并联陶瓷电容。固态电容的ESR只有几十毫欧低温特性好但价格贵。电解电容并联1μF陶瓷电容成本低效果也不错。第二个细节驱动芯片的电源去耦。IR2104的VCC引脚旁边必须放一个100nF的陶瓷电容越近越好。这个电容的作用是提供驱动芯片开关瞬间的电流。如果放远了驱动芯片内部逻辑可能误动作导致输出异常。我见过有人忘了放这个电容驱动芯片工作不稳定时好时坏查了一天才发现是去耦电容的问题。第三个细节电机绕组的接线顺序。三相无刷电机的三根线没有绝对的正负但换向顺序和接线顺序有关。如果电机反转不用改程序把任意两根线对调就行。但要注意对调线之后霍尔信号的顺序也要相应调整否则换向还是错的。我一般先随便接上电看转向不对就对调两根线然后再调霍尔顺序。第四个细节死区时间的温度漂移。MOSFET的开关时间随温度变化温度越高开关越慢。常温下300ns的死区时间够用但到了80°C关断时间可能增加50%300ns就不够了。所以死区时间要留温度裕量我一般按最高工作温度下的关断时间来算再乘以1.5倍的安全系数。5. 从原理图到实物的完整调试记录5.1 原理图设计的关键检查点画完原理图不要急着投板先做几个检查。第一自举二极管的方向对不对。自举二极管是从VCC到自举电容正极方向反了自举电容充不上电上管永远打不开。第二驱动芯片的SD脚有没有拉高。第三采样电阻的走线是不是开尔文连接。第四母线电容的极性有没有接反。第五MOSFET的漏极和源极有没有搞混。我习惯在原理图上用不同颜色标注功率回路和信号回路功率回路用红色粗线信号回路用蓝色细线这样布局的时候一目了然。投板前再让同事帮忙review一遍两个人看比一个人看靠谱我至少避免了三次投板错误。5.2 焊接顺序与上电测试流程焊接顺序有讲究先焊矮的元件再焊高的元件。先焊驱动芯片和阻容再焊MOSFET最后焊母线电容和接线端子。MOSFET最后焊是因为它怕静电焊接时间也要短烙铁温度350°C每个焊点不超过3秒。上电测试分三步第一步不焊MOSFET只焊驱动芯片上电测六路驱动信号。用示波器看波形频率和占空比是否正确死区时间是否正常。第二步焊上MOSFET不接电机上电测半桥中点电压。如果某相中点电压一直是母线电压或者一直是零说明该相有问题。第三步接电机低速空载运行测相电流波形。正常应该是正弦波或者六阶梯波如果波形畸变严重检查死区时间和换向逻辑。我调试的时候习惯用可调电源从0V慢慢往上调同时看电流。如果电流异常增大立刻断电检查。这样即使有问题也不会炸管因为电压低的时候短路电流也小。等调到24V正常运行了再换固定电源。5.3 实测波形分析与参数微调正常运行的半桥中点波形应该是干净的方波上升沿和下降沿有轻微振铃但幅度不超过母线电压的20%。如果振铃幅度超过30%说明功率回路寄生电感太大需要优化布局或者加RC吸收电路。RC吸收电路的选择R10ΩC1nF串联后并在下管漏极和源极之间。我试过加RC吸收过冲从8V降到3V效果明显。相电流波形应该是平滑的如果看到尖刺说明换向时刻有电流突变。尖刺幅度和死区时间有关死区越大尖刺越明显。把死区从500ns降到300ns尖刺幅度能减小一半。但死区也不能太小要保证不直通。我一般用示波器的电流探头看母线电流如果换向瞬间有向上的尖峰说明死区不够如果有向下的凹坑说明死区太大。5.4 长时间运行的可靠性验证调试完不能就算完了必须做长时间运行测试。我一般让电机连续跑2小时每隔15分钟记录一次MOSFET表面温度和电机外壳温度。如果温度稳定在70°C以下说明散热设计合格。如果温度持续上升说明散热不够需要加散热片或者优化布局。还要做负载突变测试突然加负载看母线电压有没有跌落电机有没有失步。突然卸负载看母线电压有没有过冲。这两个测试能暴露电源和驱动的动态响应问题。我遇到过卸负载时母线电压冲到40V把MOSFET打坏的情况后来加了TVS和制动电阻才解决。注意长时间测试一定要有人值守不能开着电机去吃饭。我见过有人测试时离开电机堵转烧了驱动板差点引起火灾。安全第一测试时人不能离开。5.5 个人实操心得汇总第一死区时间不要照搬数据手册。数据手册给的死区时间是典型值实际电路中驱动电阻、PCB走线、MOSFET批次都会影响。必须实测调整用示波器看波形以不直通为前提尽量减小死区。第二MOSFET的散热比想象中重要。很多人觉得2A电流不大不用散热结果跑半小时管子就烫手。Rds(on)随温度升高而增大温度越高损耗越大形成正反馈。宁可散热过度不要散热不足。第三自举电容和自举二极管要用好料。这两个元件便宜但失效后果严重。自举电容用X7R陶瓷自举二极管用快恢复管不要用普通整流管。第四调试时用可调电源从低压开始。这个习惯救了我很多次低压下即使有问题也不会炸管排查起来安全得多。第五原理图review不能省。自己画的图自己看容易有盲区。找个人帮忙看哪怕他不懂电机驱动也能发现一些低级错误比如电源接反、元件封装画错之类的。这个驱动电路后续还可以扩展加电流环做力矩控制加霍尔做位置闭环或者换成FOC算法做正弦波驱动。但六步换向加三相全桥是基础把这个搞透了后面的扩展都是水到渠成的事。
返回列表