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 tabs in a block dialog box, see Electrical Behavior Depending on Temperature.
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:
Right-clicking the block where you want to show the thermal port.
Selecting Simscape > Block choices > Show thermal port.
When the thermal port is exposed, the Block Parameters window for that block contains an additional tab, 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.
This figure shows an equivalent model of the internal Cauer thermal 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 Cauer model, the following parameters will be visible:
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. The default value is [
0 10 ]
K/W.
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
is By 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
. The default value is [ 0 10
]
s.
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
. The default value is [ 0 1 ]
J/K.
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 default value is [ 25 25 ]
°C.
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.
This figure shows an equivalent model of the internal Foster 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) inputs heat to the model with a value equal to the electrically generated heat from the device. Because this option uses Foster Thermal Model blocks to model the thermal network, you need to connect a thermal source to the H port either directly or through some additional thermal components so that the power flow has a well-defined path. This is not needed in the Cauer thermal model because the thermal masses already provide a path to a thermal reference.
If you choose to simulate the internal thermal network of the block through Foster model, the following parameters will be visible:
Thermal resistances, [R1 R2 … Rn] — A row of
n thermal resistance values, represented by the Foster
elements used in the thermal network. These values must all be greater than
zero. The default value is [ 4 6 ]
K/W.
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
is By thermal time constants
.
Thermal time constants, [t1 t2 … tn] — A row vector of
n thermal time constant values, where
n is the number of Foster 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
, where
Mi
,
ti
and
Ri
are the thermal mass,
thermal time, and thermal resistance for the ith
Foster element. To enable this parameter, set Thermal mass
parameterization to By thermal time
constants
. The default value is [ 6 18 ]
s.
Thermal masses, [M1 M2 … Mn] — A row vector of
n thermal mass values, where n is the number of Foster
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
.
The default value is [ 1.5 3 ]
J/K.
For the internal Foster thermal model, the thermal resistances, thermal time constants, and thermal masses must all be greater than zero.
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, there are no additional parameters.
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.
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 tab of the Block Parameters window let you simulate the generated heat and device temperature. For blocks with a Temperature Dependence tab, it is possible to simulate the impact of the junction temperature on the electrical characteristics. The Thermal Dependence tab 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 tab, 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 block’s
thermal port and, on the Temperature Dependence tab, set
Parameterization to None — Simulate at
parameter measurement temperature
.
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, by opening the Block Parameters window, clicking the
Thermal Dependence tab, and setting
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. Yo can remove the effect of the junction-thermal mass by setting the junction-thermal mass and junction-case thermal resistance to zero.
To model and measure heat transfer as a function of the thermal characteristics of a semiconductor, connect a Foster model-based thermal network and a temperature sensor to a block with a thermal port.
Open the model. At the MATLAB® command prompt, enter:
ee_rectifier_diodes
The model contains a three-phase rectifier that includes six Diode blocks.
Select a thermal variant for the Diode1 block by right-clicking the block and, from the context menu, selecting Simscape > Block choices. Select Show thermal port.
Open the Diode1 block. In the Thermal Port
settings, set Thermal network to
External
.
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 Foster Thermal Model block to the model.
Open the Foster Thermal Model block and modify these parameters:
Thermal resistance data — Specify
[ 0.00311 0.008493 0.00252 0.00288 ]
K/W
.
Thermal time constant data — Specify
[ 0.0068 0.0642 0.3209 2.0212 ]
s
.
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
.
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.
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 variants for the Diode2, Diode3, Diode4, Diode5, and Diode6 blocks by right-clicking the blocks and selecting Simscape > Block choices > Show thermal port.
Open the Diode2, Diode3, Diode4, Diode5, and Diode6 blocks and, in the
Thermal port settings, set Thermal
network to External
.
Add blocks to measure the heat transfer for each diode by creating a Foster thermal model subsystem.
Make a copy of this group of blocks:
Foster 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 Foster_D2. For more information, see Create Subsystems.
Open the Foster_D2 subsystem. Open the Conn1 block, and for
the Port location on the parent subsystem
parameter, select Right
.
Make four copies of the Foster_D2 subsystem. Attach one subsystem to each of the remaining Diode blocks and rename the subsystems as Foster_D3 through Foster_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.