Simulating Thermal Effects in Semiconductors
Thermal modeling provides data that helps you to estimate cooling requirements for your system by using the thermal ports. Some of the blocks in the Simscape™ Electrical™ Semiconductors & Converters library have thermal variants that allow you to determine device temperatures by simulating heat generation. For example, the IGBT (Ideal, Switching) block, which models a three-terminal semiconductor device, has thermal variants that can simulate the heat generated by switching events and conduction losses.
For more information on selecting the parameter values, see Improving Numerical Performance. For explanation of the relationship between the Thermal Port and Temperature Dependence settings in a block dialog box, see Electrical Behavior Depending on Temperature.
Using the Thermal Ports
Certain Simscape Electrical blocks, such as the blocks in the Semiconductors & Converters library, contain an optional thermal port that is hidden by default. If you want to simulate the generated heat and device temperature, expose the thermal port by:
Double-click the block where you want to show the thermal port.
Set the Modeling option parameter to
Show thermal port
.
When the thermal port is exposed, the Block Parameters window for that block contains an additional setting, Thermal Port. Which parameters are visible depend on the value you set for the Thermal network parameter:
All blocks with optional thermal ports include an optional internal thermal model to keep your diagram uncluttered.
Specify junction and thermal case parameters
This figure shows an equivalent model of the Specify junction and thermal
case parameters
model for semiconductor devices.
Port H corresponds to thermal port H of the block. The two Thermal Mass blocks represent the thermal mass of the device case and the thermal mass of the semiconductor junction, respectively. The Heat Flow Rate Source block (called power_dissipated in the diagram) inputs heat to the model with a value equal to the electrically generated heat from the device.
The two Conductive Heat Transfer blocks model the thermal resistances. Resistance R_JC (conductance 1/R_JC) represents the thermal resistance between junction and case. Because of this resistance, the junction will be hotter than the case under normal conditions. Resistance R_CA represents the thermal resistance between port H and the device case. If the device has no heat sink, then you should connect port H to a Temperature Source block with its temperature set to ambient conditions. If your device does have an external heat sink, then you must model the heat sink externally to the device and connect the heat sink thermal mass directly to port H.
If you choose to simulate the internal thermal network of the block through junction and thermal case parameters, these parameters are enabled:
Junction case and case-ambient (or case-heatsink) thermal resistances, [R_JC R_CA] — A row vector [ R_JC R_CA ] of two thermal resistance values, represented by the two Conductive Heat Transfer blocks. The first value, R_JC, is the thermal resistance between the junction and the case. The second value, R_CA, is the thermal resistance between port H and the device case.
Thermal mass parameterization — Select whether you want to parameterize the thermal masses in terms of thermal time constants (
By thermal time constants
), or specify the thermal mass values directly (By thermal mass
). For more information, see Thermal Mass Parameterization. The default isBy thermal time constants
.Junction and case thermal time constants, [t_J t_C] — A row vector [ t_J t_C ] of two thermal time constant values. The first value, t_J, is the junction time constant. The second value, t_C, is the case time constant. To enable this parameter, set the Thermal mass parameterization to
By thermal time constants
.Junction and case thermal masses, [M_J M_C] — A row vector [ M_J M_C ] of two thermal mass values. The first value, M_J, is the junction thermal mass. The second value, M_C, is the case thermal mass. To enable this parameter, set the Thermal mass parameterization to
By thermal mass
.Junction and case initial temperatures, [T_J T_C] — A row vector [ T_J T_C ] of two temperature values. The first value, T_J, is the junction initial temperature. The second value, T_C, is the case initial temperature.
The following rules apply:
Case thermal mass must be greater than zero.
Junction thermal mass can only be set to zero if the junction-case resistance is also set to zero.
If both the case and junction thermal masses are defined, but the junction-case resistance is zero, then the initial temperatures assigned to the junction and case must be identical.
Cauer Model
This figure shows an equivalent model of the internal Cauer thermal model for semiconductor devices.
If you choose to simulate the internal thermal network of the block through Cauer model, these parameters are enabled:
Thermal resistances, [R1 R2 … Rn] — A row vector of n thermal resistance values, represented by the Cauer elements used in the thermal network. These values must all be greater than zero.
Thermal mass parameterization — Select whether you want to parameterize the thermal masses in terms of thermal time constants (
By thermal time constants
), or specify the thermal mass values directly (By thermal mass
). For more information, see Thermal Mass Parameterization. The default isBy thermal time constants
.Thermal time constants, [t1 t2 … tn] — A row vector of n thermal time constant values, where n is the number of Cauer elements used in the thermal network. The length of this vector must match the length of Thermal resistances, [R1 R2 … Rn]. These values must all be greater than zero. With this parameterization, the thermal masses are computed as
Mi = ti/Ri
, whereMi
,ti
andRi
are the thermal mass, thermal time, and thermal resistance for the ith Cauer element. To enable this parameter, set Thermal mass parameterization toBy thermal time constants
.Thermal masses, [M1 M2 … Mn] — A row vector of n thermal mass values, where n is the number of Cauer elements used in the thermal network. These values must all be greater than zero. To enable this parameter, set Thermal mass parameterization to
By thermal mass
.Thermal masses initial temperatures, [T1 T2 … Tn] — A row vector of temperature values. It corresponds to the temperature drop across each thermal capacity in the model.
Cauer Model Parameterized with Foster Coefficients
The datasheets of semiconductor devices often use Foster coefficients to specify the thermal model. However, Cauer thermal models are more useful as you can extend them with additional thermal components such as heatsinks, radiation, and convection elements.
If you want to model the internal thermal network of the semiconductor device with
Foster coefficients, set the Thermal network parameter of the block
to Cauer model parameterized with Foster coefficients
.
Note
This thermal network is implemented as a Cauer thermal network, but it behaves exactly as a Foster model implementation using the same parameters.
This figure shows the equivalent thermal model with a Cauer implementation, where each Cauer Thermal Model block has the Parameterize Cauer model using Foster coefficient data parameter selected.
This option allows you to connect a heatsink and other extensions to the thermal network while parameterizing the thermal model with Foster coefficients.
If you choose to simulate the internal thermal network of the block through a Cauer model parameterized with Foster coefficients, these parameters are enabled:
Thermal resistances, [R1 R2 … Rn] — A row of n thermal resistance values, represented by the Cauer elements used in the thermal network. These values must all be greater than zero.
Thermal mass parameterization — Select whether you want to parameterize the thermal masses in terms of thermal time constants (
By thermal time constants
), or specify the thermal mass values directly (By thermal mass
). For more information, see Thermal Mass Parameterization. The default isBy thermal time constants
.Thermal time constants, [t1 t2 … tn] — A row vector of n thermal time constant values, where n is the number of Cauer elements used in the thermal network. The length of this vector must match the length of Thermal resistances, [R1 R2 … Rn]. These values must all be greater than zero. With this parameterization, the thermal masses are computed as
Mi = ti/Ri
, whereMi
,ti
andRi
are the thermal mass, thermal time, and thermal resistance for the ith Foster element. To enable this parameter, set Thermal mass parameterization toBy thermal time constants
.Thermal masses, [M1 M2 … Mn] — A row vector of n thermal mass values, where n is the number of Cauer elements used in the thermal network. These values must all be greater than zero. To enable this parameter, set Thermal mass parameterization to
By thermal mass
.Initial node temperatures, [T1 T2 … Tn] — A row vector of absolute temperature values of each node starting from the junction.
External Model
If you want to model the thermal network of a semiconductor block externally to the
block itself, set the Thermal network parameter to
External
. This figure shows the equivalent model of the
internal thermal model for semiconductor devices.
Port H corresponds to thermal port H of the block. The Heat Flow Rate Source block (called power_dissipated in the diagram) represents the total dissipated power in the block. The dissipated power is output as heat flow to the H node. Similar to the Foster thermal model, you need to connect a thermal source or additional thermal components to the H node so that the heat has somewhere to flow.
If you choose to simulate the internal thermal network of the block externally, the Junction thermal mass parameter is enabled.
Thermal Mass Parameterization
If you need to estimate thermal masses, there are two parameterization options:
By thermal time constants
— Parameterize the thermal masses in terms of thermal time constants. This is the default.By thermal mass
— Specify the thermal mass values directly.
For the Cauer model (junction and case)
, the thermal time
constants t_J and t_C are defined as
follows:
t_J = M_J · R_JC
t_C = M_C · R_CA
where M_J and M_C are the junction and case thermal masses, respectively, R_JC is the thermal resistance between junction and case, and R_CA is the thermal resistance between port H and the device case.
For the Foster model
, the thermal time constant,
ti, is defined as follows for the
ith Foster element:
ti = Mi· Ri,
where Mi and Ri are the thermal mass and the thermal resistance of the ith Foster element, respectively.
You can determine the case-time constant by experimental measurement. If data is not available for the junction-time constant, you can either omit the constant and set the junction-case resistance to zero, or you can set the junction-time constant to a typical value of one-tenth of the case-time constant. Alternatively, you can estimate thermal masses based on the device dimensions and averaged material-specific heats.
Electrical Behavior Depending on Temperature
For blocks with optional thermal ports, there are two simulation options:
Simulate the generated heat, device temperature, and the effect of temperature on the electrical equations.
Simulate the generated heat and device temperature, but do not include effect of temperature on the electrical equations. Use this option when the impact of temperature on the electrical equations is small for the temperature range that you are simulating, or where the primary task of the simulation is to capture the heat generated to support system-level design.
The thermal port and the Thermal Port setting of the Block Parameters window let you simulate the generated heat and device temperature. For blocks with a Temperature Dependence setting, it is possible to simulate the impact of the junction temperature on the electrical characteristics. The Temperature Dependence setting lets you model the effect that the temperature of the semiconductor junction has on the electrical equations. Therefore:
To simulate all of the temperature effects, show the block’s thermal port and, if the block has a Temperature Dependence setting, set the Parameterization parameter to one of the provided options, for example,
Use an I-V data point at second measurement temperature
.To simulate only the generated heat and device temperature, show the thermal port of the block and, in the Temperature Dependence settings, set Parameterization to
None — Simulate at parameter measurement temperature
.
Improving Numerical Performance
Set realistic values for thermal masses and resistances. Otherwise, junction
temperatures can become extreme, and out of range for valid results, which can manifest
as numerical difficulties during simulation. You can test if numerical difficulties are
a result of unrealistic thermal values by turning off the temperature dependence for the
electrical equations. Open the Block Parameters window and, in the Temperature
Dependence settings, set Parameterization to
None — Simulate at parameter measurement
temperature
.
The thermal time constants are generally much slower than electrical time constants, so the thermal aspects of your model are unlikely to dictate the maximum fixed time step you can simulate at (for example, for hardware-in-the-loop simulations). However, if you need to remove detail (for example, to speed up simulation), the junction-thermal mass time constant is typically an order of magnitude faster than the case-thermal mass time constant. You can remove the effect of the junction-thermal mass by setting the junction-thermal mass and junction-case thermal resistance to zero.
Model Thermal Losses for a Rectifier
Model Heat Transfer for a Single Rectifier Diode
To model and measure heat transfer as a function of the thermal characteristics of a semiconductor, connect a Cauer-based thermal network parameterized with Foster coefficients, and a temperature sensor to a block with a thermal port.
Open the model. At the MATLAB® command prompt, enter:
ThreePhaseDiodeRectifierModel
The model contains a three-phase rectifier that includes six Diode blocks.
Select a thermal modeling option for the Diode1 block by double-clicking the block and setting the Modeling option parameter to
Show thermal port
.Open the Diode1 block.
In the Thermal Port settings, set Thermal network to
External
.In the Initial Targets settings, select Junction temperature, and set Priority to
High
and Value to300
K
.
Add a Simscape Electrical block that represents the heat flow between the diode and the environment. Open the Simulink® Library browser, click Simscape > Electrical > Passive > Thermal, and add a Cauer Thermal Model block to the model.
Open the Cauer Thermal Model block and modify these parameters:
In the Parameters settings:
Select the Parameterize Cauer model using Foster coefficient data parameter.
Set Thermal resistance data (Foster) to
[ 0.00311 0.008493 0.00252 0.00288 ]
K/W
.Set Thermal time constant data (Foster) to
[ 0.0068 0.0642 0.3209 2.0212 ]
s
.
In the Initial Targets settings:
Select Vector of thermal mass temperatures.
Set Priority to
High
.
Add these blocks to represent the ambient temperature as a constant by using an ideal temperature source.
From the Simulink Library browser, open the Simscape > Foundation Library > Thermal > Thermal Sources library and add a Controlled Temperature Source block.
From the Simscape > Foundation Library > Thermal > Thermal Elements library, add a Thermal Reference block.
From the Simscape > Foundation Library > Physical Signals > Sources library, add a PS Constant block. For the Constant parameter, specify a value of
300
and selectK
for the unit.
Add these blocks to measure and display the temperature of Diode1:
From the Simulink Library browser, open the Simscape > Foundation Library > Thermal > Thermal Sensors library and add a Temperature Sensor block.
From the Simscape > Utilities library, add a PS-Simulink Converter block. For the Output signal unit parameter, select
K
.From the Simulink > Sinks library, and add a Scope block.
Arrange and connect the blocks as shown in the figure.
Label the signal from the PS-Simulink Converter block to the Scope block by double-clicking the line between the blocks and entering
Temp (K)
.Simulate the model.
To see the temperature data, open the Scope block.
The temperature of Diode1 fluctuates over a temperature range of 0.3 K as it increases from the initial value of 300 K to a settling point of 300.6–300.9 K toward the end of the simulation.
Model Heat Transfer for All Rectifier Diodes
To see the total heat generated by all of the semiconductors in the rectifier, use data logging and the Simscape Results Explorer.
To enable the thermal ports on all the rectifier diodes, select thermal modeling options for the Diode2, Diode3, Diode4, Diode5, and Diode6 blocks by double-clicking the blocks and setting the Modeling option parameter to
Show thermal port
.Open the Diode2, Diode3, Diode4, Diode5, and Diode6 blocks.
In the Thermal Port settings, set Thermal network to
External
.In the Initial Targets settings, select Junction temperature, and set Priority to
High
and Value to300
K
.
Add blocks to measure the heat transfer for each diode by creating a Cauer thermal model subsystem.
Make a copy of this group of blocks:
Cauer Thermal Model
Controlled Temperature Source
PS Constant
Thermal Reference
Arrange and connect the copied blocks as shown in the figure.
Create a subsystem from the copied blocks and rename the subsystem as Cauer_D2. For more information, see Group Blocks into Subsystems.
Open the Cauer_D2 subsystem. Open the Conn1 block, and for the Port location on the parent subsystem parameter, select
Right
.Make four copies of the Cauer_D2 subsystem. Attach one subsystem to each of the remaining Diode blocks and rename the subsystems as Cauer_D3 through Cauer_D6 to match the Diode3 through Diode6 block names.
Simulate the model.
View the results using the Simscape Results Explorer.
In the model window, in the text under Three-Phase Rectifier, click Explore simulation results.
To display the temperature data for Diode1, in the Simscape Results Explorer window, expand the Diode1 > H node and click T.
To display the DC voltage in a separate plot, expand the Sensing Vdc > Voltage Sensor node, press CTRL, and click V.
To display the temperature data for all the diodes, expand the Diode2 > H node, press CTRL, and click T. Repeat the process for Diode3 through Diode6.
To overlay the temperature data in single plot, in the Simscape Results Explorer window, above the tree-node window, click the options button. In the Options dialog box, for Plot signals, select
Overlay
. To accept the change, click OK. Click and drag the legend down to see the temperature data clearly.
The temperature profile for each diode lags, in succession, behind the temperature profile of Diode1. For each diode, the temperature also rises and settles along the same values as the temperature profile for Diode1. The data indicate that, because of the lagging behavior of the individual diode temperatures, the temperature of the rectifier rises and settles along the same temperature profile as the diodes, but with less fluctuation.
See Also
Cauer Thermal Model | Foster Thermal Model | Diode | ee_getCauerFromFoster