ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

H桥驱动直流电机:快衰减与慢衰减模式性能对比与选型指南

H桥驱动直流电机:快衰减与慢衰减模式性能对比与选型指南 直流电机调速这件事说简单也简单一个H桥加一路PWM就能转起来说讲究也是真讲究同样一套硬件有人做出来电机响应干脆利落、MOS管温温的有人做出来电机发烫、管子烫手、低速还一顿一顿。这中间的差别很大一部分就藏在衰减模式这四个字里。快衰减和慢衰减听起来像是教科书上的两个名词但实际调车、调云台、调机械臂的时候它直接决定了电流纹波大小、续流路径、开关损耗甚至决定了你的驱动板会不会在堵转瞬间冒烟。这篇内容围绕H桥驱动直流电机时快衰减与慢衰减两种模式的性能差异展开把原理、波形、实测数据和选型逻辑一次讲透。不管你是刚画完第一块H桥驱动板的学生还是在做量产电机控制器、被EMI和温升折磨的工程师都能从里面找到能直接抄作业的结论。我会先讲清楚衰减模式到底在衰减什么再拆解两种模式的电流回路然后给出实测对比数据最后落到具体场景怎么选、怎么调。全程按我实际调试的经验来讲不堆公式但关键的地方一定给你算明白。1. 衰减模式到底在衰减什么从H桥的四种开关状态说起很多人第一次接触快衰减慢衰减会懵觉得电机都已经在转了衰减是衰减个啥。要理解这个得先把H桥的开关状态和电机绕组的电感特性摆到一起看。1.1 电机绕组是个大电感电流不能突变直流电机的等效模型核心就是一个电阻串一个大电感再加上旋转产生的反电动势。电感这个东西有个脾气流过它的电流不能瞬间改变。你给它加电压电流按指数规律往上爬你把电压撤了它也不会立刻归零而是要想办法维持原来的电流方向。这个维持电流的需求就是所有衰减模式讨论的起点。在PWM调速里我们并不是一直给电机通电而是快速地开、关。开关关断的那一瞬间绕组电感里还存着能量这股电流必须有个地方流走否则就会在开关器件上产生极高的电压尖峰把管子打穿。所以H桥设计里必须有续流路径而电流走哪条续流路径就区分出了快衰减和慢衰减。1.2 H桥的四个开关与三种基本回路一个标准H桥有四个开关管习惯上叫它们左上、左下、右上、右下。电机接在左右两个桥臂的中点之间。通过组合这四个管子的通断能得到几种典型状态正转驱动左上和右下导通电流从左到右穿过电机。反转驱动右上和左下导通电流从右到左。续流慢衰减把下桥臂两个管子都导通或者上桥臂两个都导通电机两端被短接电流在电机内部和这两个管子之间打转。快衰减四个管子全关电流被迫通过四个体二极管回流到电源能量回灌给母线。这里有个关键点慢衰减时电机两端电压接近零电流靠自身电阻慢慢消耗快衰减时电机两端被施加了反向电压电流被强行拉下来。这就是快和慢的字面来源。1.3 为什么PWM调速一定会遇到衰减问题假设你用PWM驱动电机正转占空比50%。在一个周期里前半段左上和右下导通电机通电电流上升后半段如果直接把四个管子全关那就是快衰减电流快速下降。如果后半段改成左下和右下导通或者左上和右上导通电机两端被短接那就是慢衰减电流缓慢下降。所以衰减模式不是可选项而是PWM驱动里必然存在的阶段。你选择让关断期间电流怎么走就等于选择了电流纹波的形状、平均值的大小、以及开关器件的应力。这也是为什么同样50%占空比快衰减和慢衰减下电机的实际转速和扭矩会不一样。提示很多初学者以为占空比直接决定转速其实在轻载和低速时衰减模式对平均电流的影响非常大进而影响转速。调参时如果忽略这一点会出现占空比一样但转速对不上的困惑。2. 快衰减与慢衰减的电流回路拆解一张图看懂能量去哪了理解了衰减的由来接下来把两种模式的电流路径彻底拆开。这部分是后面所有实测数据的理论依据值得慢慢看。2.1 慢衰减电机被短接电流原地打转慢衰减的典型做法是关断上桥臂、导通下桥臂。以正转为例原本是左上右下导通进入慢衰减时左上关断左下导通右下保持导通。此时电流路径变成电机绕组→右下管→左下管→回到电机绕组。电机两端被两个下管短接端电压近似为零。这个回路里电流的衰减只靠绕组电阻和管子的导通电阻来消耗能量。因为电阻通常很小几欧姆甚至更小所以电流下降得很慢这就是慢衰减名字的由来。它的好处是电流纹波小、转矩平稳、续流损耗低坏处是电流下降慢在需要快速换向或快速降速时响应跟不上。2.2 快衰减电流被逼回电源能量回灌快衰减的做法是四个管子全关。电机电感里的电流不会消失它会寻找阻力最小的路径于是通过另外两个体二极管流回电源母线。以正转关断为例电流从电机左端出来经过左下的体二极管流到地再从电源正极经过右上的体二极管回到电机右端形成一条反向电压回路。此时电机两端承受的是接近母线电压的反向电压电流被强行拉低下降速度非常快。代价是这部分能量回灌到母线会在母线上产生电压泵升对电源和电容提出更高要求同时体二极管导通压降带来的损耗也不小。2.3 两种模式的电流波形对比把两种模式在一个PWM周期内的电流波形画出来这里用文字描述差异非常直观对比项慢衰减快衰减关断期间电机端电压近似0V近似-母线电压电流下降斜率平缓陡峭电流纹波小大平均电流同占空比偏高偏低续流损耗低导通损耗高二极管损耗母线电压泵升小大低速平稳性好一般快速降速能力弱强这张表是后面所有结论的浓缩版。你可以看到两种模式没有绝对的好坏只有适不适合当前场景。慢衰减适合追求平稳、低损耗的场合快衰减适合需要快速响应、快速制动的场合。2.4 一个容易被忽略的细节死区时间的影响实际H桥驱动里上下管不能同时导通否则会直通短路。所以换向时一定要插入死区时间。死区期间四个管子都不导通电流只能走体二极管这实际上是一段被动快衰减。如果死区时间设得太长即使你本意是慢衰减实际波形里也会混入快衰减的成分导致电流纹波比理论值大。我实测过死区从500ns加到2us慢衰减模式下的电流纹波能增大30%以上。所以调慢衰减时死区时间要尽量贴着驱动芯片和管子的安全下限来设别图省事设一大坨。3. 实测平台搭建怎么把两种模式测出可比性光讲原理不够得有数据。这一节讲我怎么搭的测试平台以及为了保证快慢衰减可比做了哪些控制变量。3.1 硬件配置清单测试用的是一块自己画的H桥驱动板核心参数如下电机24V永磁有刷直流电机额定电流3A堵转电流约12A绕组电感实测约0.8mH电阻约1.2Ω。H桥四个N沟道MOS管导通电阻约8mΩ体二极管压降约0.8V。驱动芯片半桥栅极驱动支持可调死区。控制器STM32F103用高级定时器输出互补PWM死区可编程。电源24V/10A可调直流电源母线并了470uF电解加10uF陶瓷。测量电流用串联采样电阻加示波器差分探头电压用高压差分探头转速用编码器。选STM32F103是因为它的高级定时器天然支持互补输出和死区插入调起来方便这也是很多电机控制入门的首选。MOS管选低导通电阻的是为了让导通损耗不干扰衰减模式的对比。3.2 控制变量的设定要让快慢衰减可比必须固定其他条件PWM频率固定20kHz。太低会有音频噪声太高开关损耗大20kHz是常见折中。占空比固定50%。这样两种模式的导通时间一样差异只来自关断期间。死区固定1us。两种模式用同一个死区保证被动快衰减成分一致。负载固定。用同一套测功机加载保证反电动势和负载电流一致。母线电压固定24V。避免电压波动影响电流斜率。这里要强调测功机加载很关键。空载测出来的数据没有意义因为空载时电流很小衰减模式的差异被淹没在噪声里。我一开始就是空载测的两条曲线几乎重合差点得出两种模式没区别的错误结论。加上额定负载后差异立刻显现。3.3 数据采集方法电流波形用采样电阻加差分探头抓采样率设到100MSa/s以上保证能看清20kHz周期内的细节。每个工况连续抓100个周期做平均避免单次采样的偶然性。转速用编码器计数取稳定后的平均值。温度用红外测温枪测MOS管壳温测之前让板子跑10分钟达到热平衡。注意测电流时采样电阻的阻值要小我用的是10mΩ太大压降会影响电机实际得到的电压太小信号又淹没在噪声里。10mΩ在3A时压降30mV配合差分探头刚好。4. 实测数据对比快衰减和慢衰减到底差多少数据来了。这一节是全文的核心我把关键指标一项项列出来并解释每个数字背后的原因。4.1 电流纹波对比在50%占空比、额定负载下两种模式的电流纹波实测如下模式电流峰峰值纹波平均电流慢衰减约0.35A约2.9A快衰减约1.1A约2.4A慢衰减的纹波只有快衰减的三分之一左右平均电流反而更高。这完全符合理论慢衰减电流下降慢谷值高所以纹波小、平均值大快衰减电流下降快谷值低纹波大、平均值小。这个差异直接导致一个现象同样50%占空比慢衰减下电机转速比快衰减高约8%。如果你在做速度闭环这个差异会被控制器自动补偿掉但如果是开环调速就会明显感觉到换了个模式转速就变了。4.2 开关器件温升对比跑10分钟热平衡后测MOS管壳温模式上管壳温下管壳温体二极管所在管壳温慢衰减约42度约48度约45度快衰减约40度约41度约58度慢衰减下续流走的是下管的沟道导通损耗是I²R比较小快衰减下续流走体二极管压降约0.8V损耗是I×Vf明显更大。所以快衰减时体二极管所在的那两个管子温度最高比慢衰减高出十几度。这个温升差异在低压大电流场合尤其明显。如果你的电机是12V、10A级别快衰减下体二极管的损耗能到8W不加散热片很快就过热保护了。这也是为什么很多大电流驱动方案宁愿用同步整流做慢衰减也不愿意让体二极管长时间续流。4.3 低速平稳性对比把占空比降到10%让电机低速运行观察转速波动慢衰减转速波动约±2%运行平稳听不到明显异响。快衰减转速波动约±7%能听到轻微的哒哒声低速时有顿挫感。原因还是电流纹波。低速时反电动势小电流纹波占平均电流的比例更大快衰减的大纹波导致转矩脉动明显表现出来就是转速不稳。如果你做的是云台、机械臂这类低速精密控制慢衰减几乎是必选项。4.4 快速降速响应对比反过来测从满速降到半速的响应时间慢衰减约120ms快衰减约45ms快衰减在降速时优势明显因为它能把电流快速拉低电机迅速减速。慢衰减因为电流下降慢减速过程拖沓。这也是为什么很多需要快速制动的场合会用快衰减甚至专门做制动状态。4.5 母线电压泵升对比用示波器看母线电压在关断瞬间的泵升慢衰减泵升约1V几乎可以忽略。快衰减泵升约4V如果母线电容不够可能触发过压保护。快衰减把能量回灌母线这是它的固有特性。母线电容要选够大或者加TVS钳位。我测试时母线470uF泵升4V还在安全范围如果把电容降到100uF泵升能到8V以上接近MOS管的耐压余量了。5. 什么场景选什么模式一张决策表加几个真实案例数据摆完了落到实际选型。这一节给你可以直接对照的决策逻辑。5.1 选型决策表应用场景推荐模式理由低速精密控制云台、机械臂慢衰减纹波小平稳大电流持续运行慢衰减续流损耗低温升小需要快速制动快衰减电流下降快高频换向如步进细分快衰减快速建立反向电流电池供电、在意续航慢衰减损耗低效率高母线电容受限慢衰减泵升小需要快速降速的伺服快衰减响应快5.2 混合模式很多成熟方案的真实做法实际产品里纯快或纯慢都少见更多是混合。比如驱动阶段用慢衰减制动阶段用快衰减。这样正常运行时平稳高效需要停的时候又能快速响应。根据占空比动态切换。低速时用慢衰减保平稳高速时用快衰减保响应。根据电流大小切换。小电流慢衰减大电流时快衰减避免续流损耗过大。我做过一个云台项目就是低速慢衰减、高速快衰减切换点设在30%占空比实测下来既平稳又跟手。切换点怎么定我的经验是看电流纹波占平均电流的比例超过20%就切快衰减否则慢衰减。5.3 一个踩坑案例慢衰减导致的换向延迟有次做一个需要频繁正反转的小车一开始全用慢衰减结果发现换向时电机要愣一下才反向。查波形发现慢衰减下电流从正向降到零再建立反向中间拖了很长时间。后来改成换向瞬间用快衰减正常驱动用慢衰减问题解决。这个坑的教训是慢衰减的慢在换向时是缺点。凡是涉及电流方向改变的场合都要考虑快衰减。6. 调试实操怎么在代码里实现两种模式切换原理和数据都清楚了最后落到代码。以STM32F103的高级定时器为例讲怎么配置互补PWM和死区以及怎么切换衰减模式。6.1 定时器互补PWM配置要点STM32F103的高级定时器TIM1或TIM8支持三对互补输出正好驱动H桥的三个半桥用两对即可。关键配置// 时基配置20kHz PWM TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period 3600 - 1; // 72MHz/3600 20kHz TIM_TimeBaseStructure.TIM_Prescaler 0; TIM_TimeBaseStructure.TIM_ClockDivision 0; TIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, TIM_TimeBaseStructure); // 死区配置1us TIM_BDTRInitTypeDef TIM_BDTRInitStructure; TIM_BDTRInitStructure.TIM_OSSRState TIM_OSSRState_Enable; TIM_BDTRInitStructure.TIM_OSSIState TIM_OSSIState_Enable; TIM_BDTRInitStructure.TIM_LOCKLevel TIM_LOCKLevel_1; TIM_BDTRInitStructure.TIM_DeadTime 72; // 72/72MHz 1us TIM_BDTRInitStructure.TIM_Break TIM_Break_Disable; TIM_BDTRInitStructure.TIM_BreakPolarity TIM_BreakPolarity_High; TIM_BDTRInitStructure.TIM_AutomaticOutput TIM_AutomaticOutput_Enable; TIM_BDTRConfig(TIM1, TIM_BDTRInitStructure);死区时间按驱动芯片和MOS管的开关时间算一般取开关时间的2到3倍。我用的管子开关时间约200ns死区设1us留足余量。6.2 慢衰减模式的实现慢衰减的关键是关断期间让下桥臂导通。以正转为例用两路PWM左桥臂上管PWM下管互补。右桥臂上管常关下管常开。这样在PWM关断期间左桥臂下管导通右桥臂下管也导通电机被短接实现慢衰减。// 正转慢衰减 // 左桥臂CH1上管PWMCH1N下管互补 // 右桥臂CH2上管常关CH2N下管常开 TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCInitStructure.TIM_OCMode TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_Pulse 1800; // 50%占空比 TIM_OCInitStructure.TIM_OCPolarity TIM_OCPolarity_High; TIM_OCInitStructure.TIM_OCNPolarity TIM_OCNPolarity_High; TIM_OCInitStructure.TIM_OCIdleState TIM_OCIdleState_Reset; TIM_OCInitStructure.TIM_OCNIdleState TIM_OCNIdleState_Reset; TIM_OC1Init(TIM1, TIM_OCInitStructure); // 右桥臂下管常开上管常关 TIM_OCInitStructure.TIM_Pulse 0; // 上管占空比0常关 TIM_OC2Init(TIM1, TIM_OCInitStructure);6.3 快衰减模式的实现快衰减的关键是关断期间四个管子全关。还是正转左桥臂上管PWM下管互补但关断期间不导通。右桥臂上管常关下管常开。等等这样右桥臂下管常开关断期间电流还是会走右桥臂下管和左桥臂下管变成慢衰减。要实现快衰减右桥臂下管在关断期间也必须关断。所以快衰减的配置是左桥臂上管PWM、下管互补右桥臂上管常关、下管也用PWM同步关断。这样关断期间四个管子全关电流走体二极管实现快衰减。// 正转快衰减 // 左桥臂CH1上管PWMCH1N下管互补 // 右桥臂CH2上管常关CH2N下管与CH1同步 TIM_OCInitStructure.TIM_Pulse 1800; TIM_OC1Init(TIM1, TIM_OCInitStructure); // 右桥臂下管用同样的PWM保证关断期间也关断 TIM_OCInitStructure.TIM_Pulse 1800; TIM_OC2Init(TIM1, TIM_OCInitStructure);实际实现时右桥臂下管的PWM要和左桥臂上管同相这样导通期间右桥臂下管开关断期间右桥臂下管也关形成快衰减。6.4 模式切换的注意事项切换快慢衰减时不能直接改寄存器否则可能出现瞬间直通。正确做法是先关断所有PWM输出改配置再重新使能。切换过程会有短暂的空档对大多数应用没问题但对高动态场合要评估影响。提示切换模式时最好在PWM周期边界进行避免周期中间切换导致波形异常。STM32可以用更新事件中断来做同步切换。7. 几个容易翻车的细节和我的经验总结最后聊几个实际调试中容易翻车的地方都是踩过坑才明白的。7.1 体二极管不是理想器件快衰减依赖体二极管续流但体二极管的反向恢复特性可能带来问题。在高频下体二极管反向恢复会产生额外的电流尖峰和损耗。如果PWM频率超过50kHz快衰减的体二极管损耗会急剧上升这时候要考虑用同步整流替代。7.2 慢衰减的直通风险慢衰减要求下桥臂两个管子同时导通如果驱动逻辑有bug导致某个上管也导通就会直通短路。所以慢衰减模式下上管的关断要格外可靠。我习惯在软件里加一层互锁确保上下管不会同时给导通信号。7.3 电流采样时机如果你用采样电阻做电流环采样时机要避开开关瞬间。快衰减下电流下降快采样点稍微偏一点测到的电流就差很多。我的做法是在PWM导通期的中点采样这时候电流最稳定。7.4 我的经验总结调了这么多电机我的体会是慢衰减是默认选项快衰减是特殊需求。大多数场合慢衰减都能满足而且效率高、温升低、平稳。只有在需要快速制动、快速换向、或者高频运行时才切到快衰减。混合模式是成熟方案的主流别一根筋只用一种。另外衰减模式的选择要和PWM频率、死区时间、母线电容一起考虑它们是相互影响的。单独调一个参数往往按下葫芦浮起瓢。我一般先把死区和频率定死再调衰减模式最后根据泵升调母线电容。如果你也在调H桥驱动建议先用示波器把两种模式的电流波形抓出来对比一下亲眼看到差异比看十篇文章都管用。数据不会骗人波形也不会。
返回列表