元器件热模型:从电阻到IC,把发热算清楚
做热仿真,最核心的一步是什么?我个人觉得,是把每个元器件的发热行为,用一个数学公式或等效电路“翻译”出来。这个翻译结果,就是热模型。
你想想看,一个电阻通电后为什么发热?因为焦耳定律。一个MOS管为什么烫?因为导通电阻和开关损耗。但仿真软件不认识物理定律,它只认识电压、电流、温度这些节点量。所以,我们需要把热路变成电路——热阻对应电阻,热容对应电容,功耗对应电流源。这就是热模型的基本思路。
这一章,我带你看看三种最常用的元器件热模型:电阻、晶体管、IC。顺便聊聊参数怎么提取。嗯,都是实战中绕不开的东西。
2.1 电阻热模型:最简单的开始
电阻的热模型,是所有热模型里最直观的。说白了,就是一个热源(功耗)加上一个RC低通网络。功耗怎么算?P = I²R,这个大家都熟。
但实际项目中,电阻的发热没那么简单。我记得有一次做电源模块,用了几个1206封装的采样电阻,按静态电流算功耗才0.1W,结果一上电烫得手都不敢碰。后来一查,是脉冲电流峰值远高于平均值,电阻的瞬态温升被忽略了。
所以,电阻热模型至少需要两个参数:
- 热阻 Rth:单位是℃/W,表示每消耗1W功率,电阻本体温度上升多少度。
- 热容 Cth:单位是J/℃,表示电阻储存热量的能力,决定了温度变化的快慢。
在Multisim里,电阻热模型通常用一个电流源(代表功耗)驱动一个并联RC网络来实现。嗯,代码层面其实很简单:
// 电阻热模型等效电路(SPICE网表片段)
Rth_R node_Tj node_Tamb 100 ; 热阻100℃/W
Cth_R node_Tj 0 1e-3 ; 热容1mJ/℃
I_PWR node_Tj 0 DC 0.1 ; 功耗0.1W(由I²R计算得出)
2.2 晶体管热模型:MOS管和BJT的发热差异
晶体管的热模型比电阻复杂一些。为什么?因为晶体管的功耗不是固定的,它随工作状态变化。MOS管和BJT的发热机理完全不同。
MOS管的发热主要来自导通电阻RDS(on)和开关损耗。导通损耗好算:Pcond = I²·RDS(on)。开关损耗就麻烦点,跟栅极驱动、米勒平台、开关频率都有关系。我见过一个工程师,把MOS管的开关损耗按导通损耗的10%估算,结果板子跑60℃时直接炸管——开关频率高了,开关损耗占比能到40%以上。
BJT的发热则主要来自VCE(sat)·IC和基极电流。BJT还有个麻烦事——负温度系数。温度升高,VBE下降,基极电流增大,集电极电流更大,温度更高……这就是热失控。所以BJT的热模型里,必须包含一个正反馈环路。
晶体管热模型的标准做法是:
- 把功耗计算出来(用受控源或公式)
- 驱动一个Cauer网络或Foster网络(两种热网络结构)
- 把结温反馈回电学模型(修正RDS(on)或VBE)
关键点: 晶体管热模型必须包含“电-热耦合”。没有这个耦合,你仿出来的温度就是开环的,不准。我习惯在仿真里加一个电压源,数值等于结温,然后通过查表或公式修正电学参数。
2.3 IC热模型:多热源与封装效应
IC的热模型,是这三类里最头疼的。一个芯片里可能有CPU核心、GPU、内存控制器、I/O接口……每个模块都是独立的热源。而且封装本身也有热阻,从芯片结到外壳、从外壳到环境,路径还不止一条。
IC热模型通常分两级:
- 芯片级(Die-level):每个功能模块一个热源,通过硅衬底相互耦合。硅的导热性不错,但模块间距小,热串扰严重。
- 封装级(Package-level):考虑封装材料(环氧树脂、铜框架、焊球)的热阻。封装热阻通常用θJA(结到环境)和θJC(结到外壳)表示。
举个例子,一个FPGA芯片,内部逻辑功耗5W,收发器功耗3W,总功耗8W。如果θJA=10℃/W,那结温就是环境温度+80℃。但实际因为热耦合,逻辑区的温度可能比收发器区高15℃——这就是多热源模型的必要性。
2.4 热模型参数提取方法
参数从哪来?四个途径:
| 方法 | 精度 | 成本 | 适用场景 |
|---|---|---|---|
| 数据手册查表 | 低~中 | 免费 | 初步评估、方案选型 |
| 瞬态热测试 | 高 | 中(设备+时间) | 样机验证、模型校准 |
| 有限元仿真拟合 | 高 | 高(软件+算力) | 复杂封装、多热源IC |
| 经验公式估算 | 低 | 免费 | 快速估算、没有数据时 |
我个人最推荐的方法是“数据手册+瞬态测试校准”。先用手册值搭一个初始模型,然后做个简单的温升测试(比如用热电偶测外壳温度),反推实际热阻。这样既快又准。
提取热阻的具体步骤:
- 给器件施加已知功耗(比如恒流源加热)
- 记录稳态温升ΔT
- 计算Rth = ΔT / P
- 记录温升曲线的时间常数τ
- 计算Cth = τ / Rth