3、搭建第一个热仿真电路:使用电流源模拟功耗,电压源模拟环境温度
好,咱们正式开始动手了。
这一章,我们要搭一个最简单的热仿真电路。说白了,就是用电路里的电流源和电压源,来模拟芯片发热和周围环境温度。你可能会问:电和热,这俩东西能混着算?
能。而且非常直观。
3.1 热-电类比:为什么电流源能代表功耗?
先讲个基础概念。热分析和电路分析,在数学上是同一套东西。
- 温度差 对应 电压差
- 热流量(功耗) 对应 电流
- 热阻 对应 电阻
- 热容 对应 电容
所以,一个芯片消耗了 1W 的功率,在热仿真里,我就用一个 1A 的电流源来表示它。环境温度是 25°C,我就用一个 25V 的电压源来表示。嗯,就是这么直接。
我个人习惯把这种映射关系写在原理图的标题栏里,免得过两天自己都忘了。
核心映射关系:
1W 功耗 → 1A 电流源
1°C 温度 → 1V 电压源
1°C/W 热阻 → 1Ω 电阻
3.2 搭建第一个电路:一个电阻的自发热
咱们先做一个最简单的模型:一个功率电阻,自己发热,然后通过外壳散热到空气里。
3.2.1 需要的元件
- 电流源:模拟电阻的功耗。假设是 2W。
- 电压源:模拟环境温度。假设是 25°C。
- 电阻:模拟热阻。从电阻外壳到空气的热阻,假设是 50°C/W。
3.2.2 电路连接
打开 LTspice,新建一个原理图。放一个电流源(Current Source),一个电压源(Voltage Source),一个电阻。连接方式如下:
电流源正极 → 节点 "junction"
电流源负极 → GND
电阻一端 → 节点 "junction"
电阻另一端 → 节点 "ambient"
电压源正极 → 节点 "ambient"
电压源负极 → GND
你看,电流源把热量“注入”到 junction 节点,然后热量通过电阻流到 ambient 节点,最后被电压源吸收(相当于散热到无穷大环境)。
小技巧: 我习惯把节点名字改成有意义的,比如 "Tj" 代表结温,"Ta" 代表环境温度。这样看仿真结果时一目了然。
3.3 设置参数并运行仿真
双击电流源,设置 DC value 为 2(代表 2W)。双击电压源,设置 DC value 为 25(代表 25°C)。双击电阻,设置 Resistance 为 50(代表 50°C/W)。
然后,我们做一个 直流工作点分析(.op)。
点击 Simulate → Edit Simulation Cmd,选择 DC op pnt,确定。把生成的 .op 语句放到原理图上。
运行仿真。点击工具栏上的小人图标(Run)。
3.4 查看结果:结温是多少?
仿真跑完后,把鼠标移到节点 "Tj" 上,光标会变成温度计形状。点击一下,就会显示该节点的电压值。
你应该看到:Tj = 125V。
这意味着什么?结温是 125°C。
我们来验算一下:
- 功耗 2W,热阻 50°C/W,所以温升 = 2 × 50 = 100°C。
- 环境温度 25°C,所以结温 = 25 + 100 = 125°C。
完全正确。
注意: 这里我们假设热阻是恒定的。实际上,很多材料的热阻会随温度变化。不过作为入门,先忽略这个细节。
3.5 避坑指南:我踩过的两个坑
我第一次做这种仿真时,犯过两个低级错误,说出来你别笑。
第一个坑:电流源方向搞反了。 我当时把电流源的箭头指向了 GND,结果仿真出来结温比环境温度还低。嗯,热量倒流了。记住,电流要从功耗节点流向 GND。
第二个坑:忘记设置电压源。 我以为电压源默认是 0V,结果环境温度是 0°C,算出来的结温全偏了。后来我养成了习惯,每次仿真前先检查电压源的 DC 值。
3.6 扩展:多热阻模型
刚才那个模型太简单了。实际中,芯片到环境之间有好几层热阻:
- 芯片结到外壳(Rjc)
- 外壳到散热器(Rcs)
- 散热器到空气(Rsa)
我们可以用三个电阻串联来模拟:
电流源 (功耗) → Rjc → Rcs → Rsa → 电压源 (环境温度)
每个电阻代表一段路径的热阻。这样,你就能看到每个节点的温度了。比如,外壳温度是多少?散热器温度是多少?
我在项目中遇到过一个大功率 IGBT 模块,就是靠这种串联模型,发现散热器选小了,导致结温超标。后来换了个大散热器,问题就解决了。
3.7 本章小结
这一章,我们做了三件事:
- 理解了热-电类比的基本原理。
- 搭建了第一个热仿真电路,用电流源模拟功耗,电压源模拟环境温度。
- 运行了直流工作点分析,验证了结温计算结果。
下一章,我们会加入热容,看看温度随时间是怎么变化的。那才是热仿真的精髓所在。
课后练习:
修改电流源为 5A(5W),热阻改为 20Ω(20°C/W),环境温度设为 40°C。计算并仿真验证结温。看看和你手算的结果是否一致?