1---
2app_version: 0.7.0
3precision: 2
4form_title: Heatsink Thermal Resistance
5form_description: Will this heatsink actually keep your final's junction temperature safe? Enter dissipated power, junction-to-case and case-to-sink resistance, the heatsink's own rating and ambient temperature.
6form_inputs: Dissipated power|p_diss{W}, Junction-to-case Rth|rth_jc{°C/W}, Case-to-sink Rth|rth_cs{°C/W}, Heatsink Rth|rth_sa{°C/W}, Ambient temperature|t_ambient{°C}, Max. junction temperature|t_j_max{°C}
7form_outputs: Total thermal resistance|rth_total, Junction temperature|t_junction, Margin to max. Tj|margin_c, Max. Rth allowed for this Tj_max|rth_max_allowed
8---
9# Heatsink Thermal Resistance
10// "This final gets warm on full carrier — is the heatsink actually enough,
11// or is it slowly cooking the transistor?"
12//
13// Thermal resistance works exactly like Ohm's law: ΔT (like voltage) equals
14// power (like current) times thermal resistance (like resistance). Stages in
15// the heat path — junction→case, case→sink, sink→air — just add in series.
16// The units come along: W times °C/W is °C.
17
18p_diss = 15 W // continuous dissipated power
19rth_jc = 1.5 °C/W // junction-to-case (from the datasheet)
20rth_cs = 0.5 °C/W // case-to-heatsink (mica washer + grease)
21rth_sa = 3.0 °C/W // heatsink-to-ambient (the sink's own rating)
22t_ambient = 25 °C
23t_j_max = 150 °C // datasheet absolute maximum — derate for a safety margin
24
25# Series thermal path
26rth_total = rth_jc + rth_cs + rth_sa
27"Total thermal resistance, junction to ambient": rth_total
28
29delta_t = p_diss * rth_total
30t_junction = t_ambient + delta_t
31
32"Temperature rise above ambient": delta_t
33"Junction temperature": t_junction
34
35margin_c = t_j_max - t_junction
36"Margin to max. junction temperature": margin_c
37
38# The other way round: sizing a heatsink
39// Given how hot you're willing to let the junction get, and the junction-
40// to-case and case-to-sink resistances you're stuck with, how much thermal
41// resistance can the heatsink itself have?
42rth_max_allowed = (t_j_max - t_ambient) / p_diss - rth_jc - rth_cs
43"Max. heatsink Rth allowed for this Tj_max": rth_max_allowed
44