尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

IGBT结温估算工程实战:从Foster模型到在线标定

IGBT结温估算工程实战:从Foster模型到在线标定 这是一个很“值钱”的题目。电机控制器里面IGBT结温估算一直是国际大厂的核心Know-how很多人只看过PPT上讲“我们做了结温估算”但不知道里面到底是走了哪几步、踩过哪些坑、模型怎么落地。我这些年做过几轮功率模块的热分析与在线估算把工程上真正跑得通、精度做得住的方案按实际开发顺序拆开来讲。这套思路不限于某一个厂家只要你手头有数据手册、有基本的实验条件就能搭建并验证起来。1. 为什么结温估算被当成“机密”热度管理直接决定可靠性与寿命IGBT模块失效的场景里过温烧毁只占一小部分真正麻烦的是“结温波动”。功率半导体芯片内部硅片、陶瓷覆铜基板DCB、焊料层、铜基板、散热器每一层材料的热膨胀系数都不一样。温度每波动一次各层之间就互相拉扯一次焊料层会慢慢出现疲劳裂纹键合线根部也会因为反复弯折而断裂。这个过程不会立刻报警它会缓慢累积直到某天模块突然炸开。所以行业里常说一句话“IGBT的老化不是用坏的是热循环磨坏的。”结温估算要解决的核心问题就是实时知道芯片内部的温度。但这个温度恰恰是没法在生产线上直接测量到的。芯片被封装在模块内部上面覆盖着硅凝胶热敏元件能放到的位置只有基板NTC热敏电阻或者靠近芯片的DCB边缘跟芯片结区隔着好几层材料温度响应滞后、幅值衰减都很严重。NTC测到的温度在稳态时还有参考价值一到动态工况就完全跟不上电机控制器最常见的急加速、堵转、过载恰恰都是瞬态过程这时候靠NTC做保护反应速度远远不够。结温估算在工程里的价值有三个层面。最低层面是过温保护芯片结温超过安全阈值立刻降功率防的是“一次性损毁”中间层面是寿命监测记录结温波动的幅度和次数把Coffin-Manson模型套进去推算出模块剩余使用寿命这对应的是整车“全生命周期维护”最高层面是控制策略优化把结温估算结果实时反馈到电机控制策略里比如在高速弱磁区主动限制开关频率、在堵转工况下动态调节母线电压利用率用热容作为“缓冲池”在保证安全的前提下压榨出更多的持续功率。后面两个层面才是大厂真正不愿意外传的部分。2. 直接测量与模型估算的取舍为什么最终选定热网络模型2.1 物理测量手段的边界在哪里结温直接测量的几种方案实验室里都能做但量产车载控制器几乎都用不了。热电偶是最直接的把直径小于0.1mm的细丝埋进模块内部直接贴到芯片表面。问题在于这只能在模块封装阶段预置属于破坏性手段而且埋了热电偶的模块基本不能用于整车耐久测试会改变原来的热传导路径。热成像仪能看到芯片表面温度分布但需要对模块开盖处理硅凝胶要去掉只能做实验室标定。光学测量对封装结构也有要求产线装车之后完全没有测量窗口。所以业界最后都收敛到一个思路上既然直接测量做不了就用热网络模型去估算。用封装材料和几何尺寸建立热阻热容模型输入芯片的实时损耗功率通过模型算出结温。模型的输入是损耗功率和壳温或水温输出是结温整个过程只需要软件计算不增加任何硬件成本。2.2 为什么热网络模型最适合量产控制器热网络模型能成为行业主流的根本原因是“性价比”。它不需要改变封装不需要增加传感器只需要一个等效热路加一个损耗计算模块就能在MCU里实时跑。计算量也不大Foster网络叠加几个RC环节几行代码就能完成无论控制器主控是英飞凌TC2xx还是TI的TMS320系列都有充足的实时运算余量。有人可能会说有限元仿真FEM精度不是更高吗FEM的热模型能精确到每个网格的温度分布但它的计算量在毫秒级实时系统里根本跑不起来而且FEM需要完完整整的模块三维结构数据。热网络模型虽然只有少量节点但在结温这个维度上只要标定到位误差控制在±5℃以内完全可行这已经能满足工程保护的余量需求。热网络模型还分两种常见形态。Cauer网络每一阶的RC都对应实际的材料层物理意义清晰但需要知道每一层材料厚度、导热系数、比热容这在模块封装资料不全时很难建准。Foster网络不对应物理结构它只是对热阻抗曲线的数学拟合参数可以通过测量直接提取工程上更好操作。我实际项目中用的是Foster网络。3. IGBT结温模型的核心算法从数据手册提取Foster参数3.1 热阻抗方程与Foster网络的物理含义芯片的瞬态热阻抗曲线在数据手册里通常以一条从零开始、逐渐上升最终饱和的曲线形式给出横轴是脉冲时间纵轴是瞬态热阻抗Zth。这条曲线的物理意思是给芯片施加一个恒定功率结温随时间变化除以这个恒定功率就得到热阻抗随时间的变化。把这条曲线用多个RC串联网络去拟合就得到Foster网络的数学表达式Zth(j-c)(t) Σ Ri × (1 - e^(-t / (Ri × Ci)))这里的Ri是第i阶热阻Ci是第i阶热容τi Ri × Ci是这一阶的时间常数。每一阶RC代表一种热传导速度的分量比如第一阶代表硅片本身的热容效应响应最快时间常数只有几毫秒最后一阶代表散热器的热容响应最慢时间常数可能有几十秒甚至几分钟。为什么需要多阶如果只用一阶RC只能描出曲线的大致形状中间斜率完全对不上。实际拟合时用4阶或5阶Foster网络能把数据手册那条曲线拟合得很好每一阶对应的物理意义不同叠加起来就能覆盖从毫秒级到分钟级的全部时间跨度。阶数再多比如8阶精度提升有限在线计算的负担增加参数变多还容易出现数值问题4到5阶是工程上的甜点区。3.2 如何从数据手册准确提取Ri和Ci值提取参数这件事老工程师和新人做出来的结果差距很大关键在处理细节上。第一步是获取数据。把数据手册里的瞬态热阻抗曲线用曲线取数工具常见的如Engauge Digitizer或者直接用Python写个拾取脚本转成离散点注意Y轴的单位有些手册给的是K/W有些给的是℃/W数值差很多搞错单位后面全乱套。第二步是定义目标函数。用待求解的Ri、Ci代入Foster方程计算每个时间点上的模型预测值预测值与实测值的差平方求和就是目标函数J Σ [Zth_measure(tk) - Σ Ri × (1 - e^(-tk/τi))]²第三步是拟合求解。4阶模型就有8个待定参数直接求解容易陷入局部最优。实操经验是先手工估算一版初值曲线最终稳态值就是所有Ri之和曲线上升到63%稳态值的时间大致对应最大时间常数那一阶早期快速上升段用零点几毫秒的小时间常数。然后带入最小二乘模块Python的scipy.optimize.curve_fit就能搞定限定所有参数必须为正值构造一个约束避免拟合出负热阻这种物理上不合理的解。拟合完之后不要只看R²一定要把模型预测的Zth曲线和原始手册曲线放到同一张图里对比重点看0.1ms到10ms这个区间因为电机控制器堵转、短路这类瞬态工况热冲击主要发生在这一区间。如果早期段拟合偏差大把这一时间区间的数据点权重加大重拟合。我见过有人拟合完只看表格里R²0.99就不再管了实际曲线在早期段偏了30%后面做出来的结温在过载工况下偏得离谱。3.3 从模块到散热器的完整热路Foster网络能覆盖芯片到壳温j-c这一段但控制器实时运行时壳温也是测不到的只能通过基板上的NTC测到接近散热器的温度。所以要建立从芯片到NTC传感器的完整热路一般用两级Foster网络串联一级是芯片到基板j-case另一级是基板到冷却液case-fluid或者如果NTC埋在基板上就算基板到NTC。实际工程里我更推荐直接标定“芯片到NTC”的等效热网络而不是各分段单独建模。因为热网络每一段都有制造公差和组装差异分段模型把每段误差累积起来到最终结温可能已经偏差不少。直接标定整条链路误差源统一集中在一个等效模型里标定后反而更准。4. 损耗计算模型结温估算的另一只“轮子”热网络模型解决的是“有了功耗之后怎么算结温”的问题但功耗本身也需要算出来。IGBT的功耗分两块导通损耗和开关损耗。导通损耗跟电流、占空比、饱和压降有关开关损耗跟开关频率、母线电压、电流、结温本身有关——这里有个耦合损耗影响结温结温又影响损耗实际工程里要做一次迭代才能收敛。4.1 导通损耗的计算方法IGBT导通时的集射极饱和压降Vce(sat)跟集电极电流Ic和结温Tj的关系数据手册给的是输出特性曲线通常在不同温度下给两条线25℃和150℃或175℃。查表时需要在电流和温度两个维度上做插值电流用线性插值温度用线性插值即可因为Vce跟温度近似线性变化。导通损耗的公式为Pcon Vce(Ic, Tj) × Ic × DutyDuty是PWM占空比。如果是三相电机控制器每相的占空比是时变的实际计算时通常按一个开关周期做平均Duty取对应相在该周期内的平均占空比FOC磁场定向控制里可以直接用逆变器调制波形的占空比代入。二极管续流损耗同理用VF和If计算。4.2 开关损耗的计算方法开关损耗通常由数据手册给出的开通损耗Eon和关断损耗Eoff曲线获得这些曲线通常是固定测试条件下的曲线比如Vce600V、Tj150℃条件。实际工况的开关损耗按等比例折算Psw fsw × (Eon Eoff) × (Vdc / Vdc_ref) × (Ic / Ic_ref) × K_TjVdc_ref和Ic_ref是数据手册测量开关损耗时用的基准值。电压按直线折算因为开关过程中电流电压的交叠面积对电压是近似线性关系电流折算一般不是纯线性但在额定电流附近范围内按线性折算误差可控有的方案用平方关系拟合会更准一些。温度系数K_Tj一般取1.2到1.4数据手册会给不同结温下的损耗自己计算得出比例系数。5. 在线运行架构与实时计算流程5.1 控制周期与任务调度整个结温估算模块在主控MCU里的执行频率需要仔细选择损耗计算跟随PWM控制周期但热网络计算没有必要每个PWM周期都跑。一般控制周期取100μs到1ms热网络递推的步长若小于某一时间常数数值上又容易出问题所以需要取一个合理的运行周期。实际项目里损耗计算放在PWM中断或同步随动中断里用最新的电流和占空比计算本周期损耗热网络模型用一个较低优先级的定时任务比如每250μs或500μs执行一次低速任务每10ms再把估算结温和NTC实测温度做一次对比用于在线校准。5.2 离散化实现连续时间的Foster网络递推公式离散化用一阶后向欧拉或双线性变换都行。工程里更简单的是直接利用Foster网络的一阶系统特性每阶RC都可以用一个状态变量[temp_i]表示从k时刻到k1时刻的递推为T_i(k1) T_i(k) × e^(-Δt/τi) P_loss(k) × Ri × (1 - e^(-Δt/τi))把各阶结果累加再加上环境温度或壳温Tj(k1) Σ T_i(k1) T_base(k1)这种增量递推式已经足够满足在线计算要求也不需要存储大量历史数据。e^(-Δt/τi)每次运行都计算也可以但在定点MCU上建议提前做一次查表。5.3 温度初值与防饱和处理控制器上电瞬间结温的初值不能按0来算。一般做法是读取NTC温度加上一个稳态预估偏置比如水冷系统估算结温和NTC温差大约8到15℃风冷更大以这个作为结温初值。因为热大惯性系统的初始误差会持续一段时间冷机启动时初值不准早期结温估算就会有偏差。还有数值上的细节如果分母τi非常小Δt/τi会非常大e^(-Δt/τi)直接下溢为0这在浮点里没事但定点Q格式里有可能出问题。工程上给每个时间常数设置一个下限小于控制步长1/10的τi直接视为零阶响应简便处理。6. 模型标定与验证从实验室到整车的闭环6.1 实验标定怎么做热网络模型的参数从数据手册拟合出来只是初版必须通过实验修正才能真正用于量产。标定的核心是用一个独立于热网络的方法去获取结温。最常用的标定基准是TSEP热敏电参数法。IGBT在小电流条件下发射极电压Vce与结温有近似线性的关系标定时先给模块加一个小电流比如100mA在不同温度下记录Vce值得到“校准曲线”然后把模块加到实际负载大电流让模块发热在关断瞬间迅速切换到小电流测量Vce读取结温。这个过程要在模块温度快速变化的几个关键时间点上重复得到实测结温变化曲线。还有一种商用设备支持直接测量驱动芯片的栅极充电电流变化或者用电压变化率不过这些对设备要求更高。用TSEP法配合数据采集卡实验精度做到±2℃是可行的。实验台架的搭建有个关键点散热器的流量和入口水温必须稳定控制把壳温或NTC温度同步记录。实验流程分两个阶段第一步是稳态标定固定几个电流点如50A、100A、150A、200A每种工况加热到热平衡记录稳态结温、壳温和损耗功率算出稳态热阻Rth的实测值用来修正Foster网络的总热阻值第二步是瞬态标定突加负载动态记录结温上升曲线用曲线拟合来修正各阶时间常数。6.2 数据手册曲线与实测曲线的差异在标定过程中常见的情况是数据手册给的Zth曲线在2kW级别的模块上还算准但实际装的散热器热容很大、热阻很大60秒之后的稳态温升会有明显偏差。所以实际量产模型都会在“模块自身热阻”后面加一阶“散热器到冷却液”的热阻热容这阶参数用实验数据标定比查手册准确得多。散热器这阶时间常数很大通常在几秒到几十秒。它不会影响毫秒级的瞬态结温但会影响持续过载和堵转工况下几十秒后的结温收敛值。之前有个项目堵转工况一跑就是3秒如果不加散热器阶估算结温会一路飙升到保护值而实测温度其实被巨大的水冷板热容“吸”住了远没有到保护线。加完这阶之后估算结果跟实测能对上。6.3 验证的评价指标验证阶段最核心的指标是结温估算误差。行业里通常用“最大绝对值误差”和“误差均方根”两个指标。目标可以定在最大绝对值误差≤±8℃、平均误差≤±3℃。如果散热器水温范围宽实验矩阵要覆盖低温、常温、高温以及多个冷却液流量点。验证工况列表建议包含这几类稳态额定负载长时间运行看收敛精度、阶跃负载10%到100%突加看动态响应、堵转工况控制器的极端工况看保护动作是否合理、正常驾驶循环城市工况、高速工况看全程累积误差和寿命模型输入的稳定性。有的项目还会跑功率循环台架比如每10秒一次大幅功率循环连续跑几百个小时边跑边每隔一段时间用TSEP实测标定一次以检查模型是否因为老化而发生漂移。7. 动态降额策略与老化补偿设计7.1 动态降额策略结温估算最大的工程价值体现在动态降额。传统控制器只做过温保护——结温超过阈值直接限制输出功率或关断。这种方式在正常工况下还能用但遇到复杂的瞬态过载一刀切降额会导致动力中断体验很差。有了实时的结温估算就能实现“温度余量感知”的功率管理。比较常用的策略分三档第一档是“预警降额”当估算结温达到比如125℃时按比例限制峰值电流但扭矩还是能给的只是上升斜率变缓第二档是“强力降额”结温到140℃时限制持续电流但允许短时间峰值电流以维持基本行驶能力第三档是“紧急保护”结温到接近芯片安全上限比如155℃时立即关断PWM。这套梯度保护策略依赖的就是结温估算的动态准确性。漏了散热器热容的那阶项报警时机就会错得离谱。7.2 老化补偿的工程实现IGBT模块使用一段时间后焊料层疲劳会使得芯片到基板的热阻缓慢增大老化后同样的损耗对应更高的结温。如果模型参数不更新结温估算会逐渐偏小保护效果下降。应对做法是定期在线修正热阻。在整车里没有TSEP条件但可以利用NTC传感器和停机条件做间接校准车辆下电前记录一段时间的电流、水温、NTC温度和模型预测的壳温比较预测壳温和实际NTC的偏差如果模型长期偏高说明实际热阻变大了。把偏差累积起来每隔一段时间微调热网络第一阶热阻的标定系数。这种在线自校正机制不需要额外硬件只需要在BMS或VCU下电流程里加一小段诊断逻辑。另外一个更轻量级的手段是“损耗偏差监测”。如果实际测得的模块饱和压降与同电流、同温度下的数据手册值偏差变大说明老化在进展这时可以将结温的保护阈值适当下调比如从150℃下调至145℃运行。这是保守策略但工程上稳妥、易落地。8. 常见问题与排查技巧实录数据手册曲线不全或只有单点数据怎么办早期遇到过某个模块的手册没有给出25℃和150℃之外的Zth曲线只有一条典型曲线。这种情况不要硬拟合多阶用三阶Foster网络就够了先标定稳态热阻再用实验的瞬态上升曲线反推时间常数。上电初值导致前几分钟结温估算异常常见原因是初值给得太低或太高冷机启动时结温初值直接给了固定的25℃而当时环境温度可能接近0℃或40℃。改进方案是上电时读取多个NTC和冷却液温度计算一个初始偏置再用一阶低通平滑逼近真实值至少前0.5秒内不启用结温保护逻辑。定点MCU上浮点运算冲突如果MCU没有硬件FPU建议全部用Q格式定点做。注意e^(-Δt/τi)这类指数函数定点查表表长要合适分段线性插值256点、输入范围覆盖0.1到100倍控制周期即可。还要当心中间量溢出用Q16或Q24格式按需选择。实测结温比估算值普遍偏高的典型原因往往是损耗模型里漏掉二极管反向恢复损耗。尤其在电机低速大扭矩工况时开关频率相对较高反向恢复损耗占比不低只按IGBT的Eon/Eoff算会整体低估损耗。把二极管损耗加进去后结温预测值会上来好几度。模型在低温工况下与实际偏差大低温下IGBT导通压降升高、开关损耗变化方向与高温不一致这会导致损耗模型变差进而结温估算误差变大。解决方法是把损耗模型的温度系数做成分段函数在0℃到25℃单独标定一组系数。散热器流量变化导致稳态误差如果整车散热风扇或水泵是不调速的标定一次就够了如果是电子水泵流量随温度或指令变化热阻会跟着变。这时候要把散热器到液体的热阻做成冷却液流量的函数用查表法修正流量信号从整车CAN上读取。功率循环实验发现模型漂移功率循环老化主要影响j-c热阻而对散热器到液体热阻影响很小。在线自校正算法只用NTC和壳温模型正负无法区分到底哪一级漂了所以建议定期做一次离线TSEP标定校正第一级热阻同时把芯片饱和压降老化指标同步更新到损耗模型里。最后分享一个我实际调试中的体会结温估算这类工作算法和模型只占一半的精力另外一半全在“标定”和“验证”上。数据手册参数只能是起点真正决定系统精度的是你有没有一套可靠的实验标定手段以及一个覆盖各种实际工况的验证矩阵。如果你现在刚接手这个方向不用急着追求“大厂机密”先把Foster热网络加损耗模型跑通、用TSEP或热电偶标定到±5℃精度这套工程能力已经能解决控制器开发中90%的过热和寿命估算问题。Model细节随时可以根据实际项目去调整但整体的方法论是稳定适用的。
返回列表