2.基于MATLAB/simulink,国内大厂量产结温估算算法,对主流HPD封装的SIC和IGBT模块的芯片的的发热损耗进行计算,采用实际黑模块测得的结温与计算出的损耗拟合出的热网络模型,分别对6个igbt芯片和6个FRD芯片进行瞬态估算,对不同工况如堵转、驱动、发电等实测动态误差6℃以内。 对于学习功率模块损耗计算和热计算是不容错过的好资料。
最近深入研究了基于MATLAB/Simulink的国内大厂量产结温估算算法,感觉打开了功率模块损耗与热计算的新世界大门,必须来和大家分享分享。
核心算法针对的对象
这次算法聚焦于主流HPD封装的SIC和IGBT模块芯片的发热损耗计算。在电力电子领域,IGBT模块应用广泛,而HPD封装形式更是在很多高性能场合发挥作用。咱们先来看看IGBT模块的简单等效电路示意代码(这里为了示意,采用简化伪代码形式):
% 定义IGBT模块相关参数 Rce = 0.01; % 集电极 - 发射极电阻 Vce0 = 1.5; % 导通时集电极 - 发射极电压降 Id = 100; % 集电极电流 % 计算IGBT导通损耗 Pon_IGBT = Vce0 * Id + Id^2 * Rce;这段代码简单计算了IGBT的导通损耗,通过定义IGBT的关键参数,如导通压降和集电极 - 发射极电阻,来算出导通状态下的功率损耗。这只是基础,实际在大厂的量产算法里,会复杂得多,要考虑各种工况变化。
热网络模型的构建
这里采用实际黑模块测得的结温与计算出的损耗拟合出热网络模型。黑模块测试能真实反映模块在实际运行中的特性。想象一下,我们得到了一系列实际测量的结温数据Tjmeasured和对应的损耗数据Ploss,然后利用MATLAB强大的曲线拟合工具来构建热网络模型。
% 假设已经有测量数据Tj_measured和P_loss p = polyfit(P_loss, Tj_measured, 1); % 一阶多项式拟合 Tj_fit = polyval(p, P_loss); % 拟合得到的结温 % 绘制实际测量与拟合结果对比图 figure; plot(P_loss, Tj_measured, 'bo', 'DisplayName', 'Measured Tj'); hold on; plot(P_loss, Tj_fit, 'r-', 'DisplayName', 'Fitted Tj'); legend; xlabel('Power Loss (W)'); ylabel('Junction Temperature (°C)');这段代码利用polyfit函数对损耗和结温数据进行一阶多项式拟合,直观呈现拟合效果,为构建热网络模型提供了重要依据。通过拟合我们能建立起损耗与结温之间的数学联系,这是热网络模型的关键。
瞬态估算与工况实测
算法分别对6个IGBT芯片和6个FRD芯片进行瞬态估算。FRD(快恢复二极管)在电路中起着重要作用,它的损耗计算同样关键。对不同工况如堵转、驱动、发电等进行实测,并且厉害的是,动态误差能控制在6℃以内。
以驱动工况为例,在MATLAB/Simulink搭建的模型中,模拟电机驱动过程中IGBT和FRD模块的工作情况。在模型中设置不同的参数来模拟实际驱动工况下的电流、电压变化。通过不断调整模型参数和算法,使得计算出的结温与实际测量结温尽可能接近。
% 在Simulink模型中可通过S函数等方式调用类似计算损耗和结温的代码 function [sys, x0, str, ts] = s_function(t, x, u, flag) switch flag case 0 % 初始化 sys = [0; 0]; % 输出个数,状态个数 x0 = []; % 初始状态 str = []; ts = [0.001 0]; % 采样时间 case 3 % 计算输出 % 假设u包含电流、电压等参数 I = u(1); V = u(2); % 计算IGBT损耗 Rce = 0.01; Vce0 = 1.5; Pon_IGBT = Vce0 * I + I^2 * Rce; % 根据热网络模型计算结温 Tj = calculate_Tj(Pon_IGBT); % 假设已定义calculate_Tj函数 sys = [Pon_IGBT; Tj]; otherwise sys = []; end end上述S函数示例展示了在Simulink环境中如何通过S函数来调用损耗和结温计算代码,实时模拟不同工况下的模块状态。
对于想要学习功率模块损耗计算和热计算的朋友,这种基于实际测量与MATLAB/Simulink结合的大厂量产算法资料,真的是不容错过,它把理论与实际紧密结合,为深入理解功率模块的热特性和损耗机制提供了绝佳途径。希望大家都能从这类优秀的工程实践算法中汲取营养,在自己的研究和工作中取得新突破!