ARTICLE DETAIL

资讯详情

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

IGBT死区时间与自然换流、强迫换流详解及补偿实践

IGBT死区时间与自然换流、强迫换流详解及补偿实践 干这行久了你会发现一个有意思的现象很多工程师对死区时间这四个字并不陌生真到了调机、炸管、波形畸变找原因的时候能一次说清楚它到底怎么取值、为什么会有自然换流和强迫换流之分的人其实并不多。死区时间这个参数在IGBT应用里看着只是PWM波形里那不起眼的几微秒缝隙但它直接决定了逆变桥是否直通、电流过零时波形是否畸变、电机低速时会不会抖甚至决定了你的功率模块在满载工况下的使用寿命。这篇文章我想把死区时间和IGBT换流这堆事从头到尾捋一遍包括它是什么、为什么要设、设多少合适、怎么根据电流方向做补偿以及我在实际项目中踩过的那些和死区相关的坑。1. 死区时间到底是什么从半桥直通说起1.1 一个IGBT关断后到底要多久才能彻底“绝缘”想理解死区时间得先回到IGBT实际关断的物理过程。你给IGBT一个关断信号发射极电流不会立刻变成零它要先经历关断延迟时间td(off)、电流下降时间tf然后还有一个非常特殊的IGBT“拖尾电流”阶段。双极性器件的少数载流子存储效应决定了关断后那段时间里管子内部还有大量载流子在复合电流会拖着一条长长的尾巴慢慢消失。这个拖尾时间不同厂商不同型号差异很大。同规格的IGBT有的拖尾可能只有几十纳秒有的却要几百纳秒甚至超过一微秒。更麻烦的是拖尾电流时间还跟温度有直接关系——结温升高载流子寿命变长拖尾时间也跟着变长。这也是为什么你不看datasheet查这些参数直接用计数器随便填一个死区值夏天可能没事冬天一上冷机反而炸管率飙升。1.2 桥臂直通死区存在的根本理由IGBT在逆变电路里基本都是半桥或者全桥结构。以最典型的半桥为例上管VT1和下管VT2串联在直流母线上。如果VT1还没完全关断、VT2就被拉开直流母线正负极之间等于直接短路这个状态叫“桥臂直通”。直通的后果不必多说电流瞬间飙高IGBT跟着那个大电流在微秒级时间内烧毁甚至炸开模块封装。死区时间dead time就是你在互补PWM波形里故意插入的那段时间让上管的关断和下管的开通之间留一段“空窗期”确保先关闭的管子真正关断之后另一只管子才允许导通。硬件上可以用专用的死区时间生成电路也可以用CPU/FPGA在PWM比较寄存器里填数值实现。标准做法是在下降沿触发后延迟Td_e再由对管的上升沿开始。1.3 衡量与单位死区时间常用单位是微秒μs小功率IGBT驱动一般设置在1μs到3μs之间超大功率模块比如3300V以上压接式IGBT有的要设置到10μs甚至更长。曾经有同事问那我直接把死区时间设成0.5μs让系统跑得“更顺滑”不行吗答案是不行。死区时间不是随意加点延迟就完事它是你在“桥臂直通风险”和“波形失真代价”之间走钢丝的结果。取值太小会炸管取值太大电压利用率下降、波形畸变电机电流谐波急剧增加。2. 自然换流和强迫换流两个被混为一谈的换流概念2.1 先搞明白换流到底换的是什么换流简单说就是电流从一个导通支路“挪”到另一个支路的过程。在电力电子电路里绕组电流不会凭空消失它总得有个回路。比如逆变器同一相桥臂上上半部分导通时电流从母线正极流过负载移相到下一阶段后上半部分关断、下半部分或二极管接过电流——这个交接过程就是换流。很多人把自然换流、强迫换流这几个词归到晶闸管SCR时代去觉得现在全是IGBT了换流方式早不重要了。这个理解不太对。换流概念不仅没有过时反而是理解IGBT死区效应的一把钥匙。2.2 自然换流靠外部电压自然地“逼”走电流自然换流natural commutation指的是电流转移并不依赖额外辅助电路而是靠电网电压或者负载电压本身的极性变化让正在导通的器件自动受到反向电压而关断。最典型的场景是电网换流的晶闸管整流器。当三相交流电的线电压反向时当前导通的晶闸管承受反向电压电流自然转移到下一相晶闸管自己就关断了。整个过程不需要额外触发关断电路所以叫“自然换流”。这类电路天然有一个特点换流点完全由交流电网相位决定可控性有限适合低频、大功率的工频整流场景比如电解整流、直流电机调速。2.3 强迫换流由驱动信号强制“切换”电流强迫换流forced commutation则是在需要关断时通过外部电路或门极驱动电压主动“压掉”电流。IGBT之所以能广泛应用在逆变器里核心就在于它是自关断器件——你给它门极一个低电平它就强行切断电流通路不管外部电压极性如何都照做不误。在自关断器件时代所谓强迫换流在IGBT桥臂里的体现是:控制级主动关断上管同时把电流迫移到下管或续流二极管上。硬开关逆变器的每次开关本质上都是一次强迫换流。正是因为IGBT具备强迫换流能力我们才可能在中高频PWM下自由调压调频。2.4 两种换流一字之差应用逻辑完全不同特性自然换流强迫换流关断触发源外部电压电网/负载反压门极驱动信号主动控制典型器件晶闸管、整流二极管IGBT、MOSFET换流时刻由外部电压相位决定由PWM调制决定实时可控电路复杂度无需辅助换流电路需可靠驱动和保护IGBT场景电机定子反电势辅助换流、二极管续流换流逆变桥桥臂开管关管、PWM斩波3. IGBT桥臂里自然换流和强迫换流其实同时存在3.1 死区时间内发生的其实是“自然换流”这点非常关键看起来很简单但真有人理解反了。在IGBT逆变器中当你在死区时间内强制关断上管后负载电流不会乖乖等在那里它需要一个路径继续流动。如果负载电流方向是流出桥臂的假设是正向电流上管关断后电流会立刻换流到下管的续流二极管FWD上由下管二极管和负载构成回路。这个换流过程中下管IGBT并没有被触发导通它的门极还是低电平。电流是靠负载电感上感应出的电压极性自然地把二极管正向导通压降后的续流通路给顶出来。严格说这就是一种自然换流——电流被转移到二极管和门极信号无关。3.2 死区结束后发生的则是强迫换流死区时间结束后下管IGBT收到开通信号。此时如果二极管还在导通下管IGBT一开通它和并联的二极管之间会发生电流转移。二极管由于显存正向导通的载流子在电压反向时不会立刻截止会产生反向恢复电流这个电流要经过刚刚开通的IGBT导致开通损耗增加。这种由门极主动触发产生的电流转移就是强迫换流。你可以把理解方式简化为在IGBT桥臂上一个开关周期里死区内是二极管自然续流换流死区后是IGBT主动接管电流的强迫换流。两者交替出现共同决定了死区效应的本质。3.3 电流过零附近到底谁在导通变得模糊死区时间为什么会引起电流畸变根源在于当负载电流方向固定的时候死区时间导致输出电压平均值发生了偏离——要么多出一块电压要么少了一块电压。但当负载电流接近零时二极管续流的方向不再明确死区时间内输出电压的方向和理想方向相反甚至可能来回荡。一旦电流过零换流模式就从“确定方向”变成“不确定状态”这时候死区时间引起的误差电压极性随机变化电流波形会出现一个“零电流钳位效应”本来平滑的正弦电流曲线在过零处出现一段平坦台阶电流幅值越低这个台阶的作用越明显。这个现象在电机轻载、伺服静止保持、光伏并网逆变器轻载时都会遇到处理不好就是电流THD超标、电机运转抖动。4. 死区时间给波形带来的麻烦电压损失和过零畸变4.1 死区时间导致的平均电压损失计算公式很多搞PLC和电机控制的人都知道死区对波形有影响但具体影响多大其实可以算出来。假设PWM周期为Tsw死区时间为Td直流母线电压为Vdc负载电流方向为正时死区累计造成的输出电压误差平均值为ΔV (Td / Tsw) × Vdc换句话说在一个PWM周期里有Td这么长一段时间桥臂输出电压被“架空”了丢掉了本应该有的电平。如果开关频率是10kHzTsw就是100μsTd取2μs那ΔV不是2%的损失而是Vdc的2%。看起来不算大但折算到基波电压上在低调制比工况下可能占比到5%~10%电机转矩波动和噪声马上就能感觉到。4.2 更准确的物理认识误差电压方向取决于电流极性上面的公式是个简化。实际死区造成的电压误差方向跟电流极性强相关电流为正时死区造成桥臂输出电压被往下拉下管二极管续流等效于输出端损失一个正向电压脉冲电流为负时情况反过来死区导致输出电压被往上托等效于多出一个正压脉冲。这就是死区补偿的基本物理依据知道了电流极性我们就可以估算出补偿电压的大小和方向。控制算法里通常把它当作一个与电流极性符号相同的恒定电压叠加项加入到电压指令里。有些FOC实现里把死区补偿做成几个电压阶梯再配合离线测量的误差表效果比单一补偿值好很多。4.3 谐波与控制性能恶化死区时间不只降低基波电压利用率它所造成的误差电压呈方形波含有大量低次谐波尤其是5次、7次、11次、13次。对于电机控制来说这些谐波电流会带来转矩脉动低频时特别明显对并网逆变器来说谐波不达标会导致并网电流波形变差对伺服系统来说零电流钳位直接导致静止转轴上出现“轻杆振动”一样的顿挫感。我见过有人为了解决电机低速抖动把电流环PID调了一个月没效果最后发现是死区时间取得太大占空比修正又没做低速轻载时死区误差占了指令电压的30%以上PID再怎么调也是白搭。5. 死区时间设多少才合理手把手计算5.1 最小死区时间的基本算式死区时间的最小值由这几个部分组成Td_min td(off) tf trr t_drive t_margintd(off)是IGBT从驱动信号翻转开始到集电极电流开始下降的延迟时间tf是电流下降时间trr是同一桥臂对管并联二极管的二极管反向恢复时间t_drive是驱动电路本身的传输延迟包括光耦/磁隔离器的传播时间、栅极电阻Rg带来的充放电延迟t_margin是温度、批次、参数漂移的余量注意一点你数出来的td(off)和tf不能直接照抄datasheetdatasheet里的值是在特定电压电流和栅极电阻Rg条件下测出来的。你换了栅极电阻这些参数全部会变。Rg越大充放电越慢关断延迟也越长。老工程师常干的事是先按数据手册典型值算出一个基础死区再留足50%~100%的余量上到样机靠温升和短路测试往下压。5.2 实际算一个600V/几十A级别的IGBT举个常见例子。某600V、75A规格的IGBT单管datasheet给td(off)280nstf110ns二极管trr350ns栅极驱动光耦的传播延迟典型值是300ns、最大可能到550ns。如果按这些参数算Td_min 280 110 350 550 200 1490ns取整驱动设置成1.5μs以上,如果还要考虑结温上升导致参数劣化直接取2μs。实际不少通用变频器在10kHz载频下就是设2μs左右高速H桥电源或车载应用也许压到1μs左右但这是用更快的驱动、更小的Rg、更短恢复的二极管换来的。5.3 死区时间过长也不行越长越安全这个想法很危险。死区时间过大直接的后果是输出电压能力下降、电流谐波畸变加大、电机噪音变大低速性能严重变差。此外过大的死区还会给电流环引入滞后影响系统动态响应某些工况下甚至会引起控制环路振荡。所以死区不是越大越好更不是越小越强它是在安全余量和性能损耗之间折中出来的参数。成熟的商业变频器除了基础死区往往还有对死区时间的在线调节功能从而兼顾安全和波形质量。6. 死区补偿到底怎么做从原理到实操6.1 死区补偿总思路往电压指令里扎一个补偿项如果控制系统知道死区造成误差电压的大小和方向那就在指令电压里反方向加一个电压来抵消。方向判断的核心就是电流极性电流正方向流出桥臂死区时段把输出拉低需要人为把指令电压抬高电流负方向流入桥臂死区时段把输出抬高了需要人为把指令电压压低补偿电压大小取ΔV (Td / Tsw) × Vdc有的算法还考虑压降损耗IGBT通态压降和二极管通态压降之差在高精度伺服系统里做更细的补偿表。6.2 电流过零的判断才是真正难点听起来很简单实际操作最麻烦的就是电流过零判断。因为电流传感器有直流偏置、噪声和量化精度问题在过零区域你根本判断不了“正”还是“负”强行判断反而会引入更大的畸变。常见思路有这么几种通过脉冲施加小电压观察电流变化率来估测方向这叫脉冲注入式极性判断增加一个滞回区间在零点附近一定范围内把补偿值平滑过渡到零避免补偿极性忽然翻转软件锁存上一次确定的电流方向在低电流区间不更新方向靠控制系统的鲁棒性撑过去还有一种做法把每次PWM周期内的电流采样点和PWM脉冲的相位对齐采样时刻避开开关开关瞬间这样能得到一个更干净的电流值,对方向判断也有帮助。6.3 在MCU/DSP里如何实现死区补偿具体实现时如果你用的是STM32、TMS320或者瑞萨MCU通常做法是每个PWM周期读一次三相电流映射到SVPWM扇区判断电流方向然后把补偿电压换算成占空比的增减量直接修改定时器比较寄存器的值。补偿的方向和占空比修正关系可以归纳为电流为正时实际开通时间减少要加回去电流为负时实际开通时间增加要扣回来。我当时调FOC时用到的偏移量大概是Adj Td / Tsw归一化到载波周期然后根据电流符号决定是加还是减这个量叠加到A/B/C三相的占空比上。开环补偿很快见效电流波形在那个过零处的平台会被明显消除。6.4 实测验证用电流探头看波形补偿有没有做好最有说服力的就是拿电流探头实测。打开电机的电流波形看在未补偿前正弦电流过零处会有一截明显的平坦带电流越小越明显加上补偿之后平坦带变窄、消失正弦连续性明显改善。更专业的做法是同时看桥臂输出对直流母线的线电压波形发现每个开关周期里死区形成的缺口大小和方向都变了就说明补偿在起作用。同步还要关注补偿量是不是过大导致过零处出现反向尖刺。补偿方向和大小需要和硬件实际一致否则就是“补反了”波形只会变得更差。所以调试时先固定一个方向从小到大逐步加补偿量观察波形是否改善再切换方向对比。7. 选驱动芯片和布局时容易忽略的死区相关细节7.1 驱动芯片传播延迟的对称性比绝对时间更重要有些型号栅极驱动芯片自带死区生成功能。注意自带死区功能不等于你可以完全高枕无忧。驱动芯片的传播延迟包括上升沿和下降沿两个方向通常不对称。芯片手册里一般会给出tPLH低到高传播延迟和tPHL高到低传播延迟两者差异叫传播延迟失配。对于上下管来说如果上管和下管用的驱动芯片延迟有差异实际管子上的死区就不等于你设置值。好的驱动方案这一对延迟误差可以控制在几十纳秒以内差的方案几百纳秒都有可能。那怎么办优先选用延迟差小的驱动光耦或隔离驱动实在不行就在硬件上做延迟校准软件里也摸清楚实际边缘偏移量。7.2 栅极电阻Rg对死区有效性的影响栅极电阻选大了IGBT开关变慢关断延迟和下降时间变长你原来留的死区时间可能就不够了。尤其一些小功率变频器喜欢为了EMI把Rg加大结果死区还是按默认值设置导致的后果就是某些工况下发生微小直通模块慢慢劣化最终在某个冷启动瞬间炸机。反过来Rg太小关断速度过快IGBT集电极过压尖峰又来了di/dt太大对负载也不友好。所以Rg、死区和吸收电路snubber要一揽子调不能孤立看待。7.3 死区时间和温度的关系要留余量IGBT在低温时导通压降特性、电流拖尾和高温时都不一样。很多datasheet参数标的是25℃、125℃两个温度点。设计的时候要按125℃甚至150℃条件下的参数来核算最小死区时间。否则24小时满载老化跑完后芯片温度上到110℃以上拖尾时间变长你原来按常温算的死区可能就临界了。我现在做新项目时都是先按datasheet最差条件算出理论死区再乘上一个1.2~1.5的安全系数先在常温烤机验证没直通再上到高温老化如果老化过程正常再尝试往下降一点直到逼近临界值附近留半档。整个过程用记录表记下来形成这个项目自己的参数库。8. 我在几个项目里踩过的死区实坑8.1 大功率模块并管不均流导致死区异常有个项目用两个IGBT模块并联跑50kW级的DC-DC结果一边模块总烧。一开始怀疑是布局不对称后来示波器钳住两路门极波形发现两路驱动信号之间存在接近200ns的延迟差死区在并联的其中一路几乎被“吃掉”了栅极信号关断还没完成另一路已经提前开管直通电流走了极端。最后同步了驱动信号走线长度并给并联的两路分别加带延迟补偿的独立死区问题才算解决。8.2 电机空载电流波形出现“毛刺”另一个伺服项目空载运行电流波形在过零那个位置出现特别明显的毛刺客户投诉噪音太大。我一开始怀疑编码器安装问题排查一圈后锁定在死区补偿。原来的控制代码只有基础死区没有处理过零极性误判导致补偿电压不停跳符号。后来加了一个过零滞回区间把0.5A以内的电流不参与补偿极性判断波形立马恢复正常。8.3 IGBT栅极电阻换了批次没重测死区还有一次是被物料批次坑了。同一个型号IGBT换了采购批次封装一样、型号一样但内部芯片来源换了拖尾特性差了不少。因为没重测死区产线偶发炸管查了半天才发现新批次在高温下拖尾时间变长了原来1μs的死区到了极限。后来把死区抬到1.3μs同时跟供应商锁定了芯片批次问题才消失。9. 一些实用的工程经验和项目建议新板子上电之前用示波器同时看上下管门极波形量一下实际的死区时间不要让软件里的死区数值停留在“我以为”的状态。测试点要提前留在半桥驱动输出端。短路保护动作时间和死区时间是两个维度的参数前者管故障后者管正常开关很多人混为一谈。一个开关周期内要有死区保障而短路保护要在微秒级内关断栅极。芯片内部自带的死区发生器也有分辨率限制有的以10ns为单位、有的以100ns为步进选型时注意你需要的死区精度到底要多高。非对称死区或者动态死区满载时调大、轻载时自动减下去在高端变频器里已经很常见。如果你做的是低成本项目至少要学会一个固定的最优死区值不要随便沿用模板代码里的默认值。测试死区是否过小可以用短路脉冲测试法把负载断开给桥臂发一个一个很窄的互补脉冲逐步收窄死区用电流探头观察母线电流有没有出现短时尖峰。做的时候一定要在低压小电流状态下调安全第一。关于IGBT的死区时间、自然换流和强迫换流我的个人经验总结下来其实就是一句话死区不是软件里一个拍脑袋填的延时数字它是整个桥臂安全的核心阀门背后连着IGBT的关断物理过程、二极管的反向恢复、驱动电路的延迟甚至温度变化。做一次完整的死区设计和验证胜过通电后反复炸管再找原因。希望这篇内容能帮你在设计逆变器、伺服驱动器或开关电源时少走几段弯路。
返回列表