Thermal Modeling
Thermal management is an important aspect of power electronic systems and is becoming more critical with increasing demands for compact packaging and higher power density. PLECS enables you to include the thermal design with the electrical design at an early stage in order to provide a cooling solution suitable for each particular application.
Heat Sink Concept
The core component of the thermal library is an idealized heat sink depicted as a semitransparent box in the figure below. A heat sink absorbs the thermal losses dissipated by the components within its boundaries. At the same time, a heat sink defines an isotherm environment and propagates its temperature to the components which it encloses.
Heat conduction from one heat sink to another or to an ambient temperature is modeled with lumped thermal resistances and capacitances that are connected to the heat sinks. This approach allows you to control the level of detail of the thermal model.
Implementation
Each heat sink has an intrinsic thermal capacitance versus the thermal reference node. All thermal losses absorbed by the heat sink flow into this capacitance and therefore raise the heat sink temperature. Heat exchange with the environment occurs via the external connectors.
You may set the intrinsic capacitance to zero, but then you must connect the heat sink either to an external thermal capacitance or to a fixed temperature, i.e. the Constant Temperature block or the Controlled Temperature block.
Thermal Loss Dissipation
There are two classes of intrinsic components that dissipate thermal losses: semiconductor switches and ohmic resistors.
Semiconductor Losses
Power semiconductors dissipate losses due to their non-ideal nature. These losses can be classified as conduction losses and switching losses. For completeness the blocking losses due to leakage currents need to be mentioned, but they can usually be neglected.
Semiconductor losses are specified by referencing a thermal data sheet in the component parameter Thermal description. See section Thermal Description Parameter and Thermal Library for more details.
Conduction Losses
The conduction losses can be computed in a straightforward manner as the product
of the device current and the device voltage. By default the on-state voltage is
calculated from the electrical device parameters as .
However, PLECS also allows you to specify the on-state voltage used for the loss
calculation as an arbitrary function of the device current and the device temperature:
. This function is defined in the Conduction loss tab of the thermal
description as a 2D look-up table (see Thermal Editor).
A setting of 0 V for a single temperature and current value means no conduction losses. If you do not specify a thermal description in the device parameters, the default will be used, i.e. the losses are calculated from the electrical device parameters.
Note If you specify the Thermal description parameter, the dissipated thermal power does not correspond to the electrical power that is consumed by the device. This must be taken into account when you use the thermal losses for estimating the efficiency of a circuit.
Switching Losses
Switching losses occur because the transitions from on-state to off-state and vice versa do not occur instantaneously. During the transition interval both the current through and the voltage across the device are substantially larger than zero which leads to large instantaneous power losses. This is illustrated in the figure below. The curves show the simplified current and voltage waveforms and the dissipated power during one switching cycle of an IGBT in an inverter leg.
In other simulation programs the computation of switching losses is usually challenging because it requires very detailed and accurate semiconductor models. Furthermore, very small simulation time-steps are needed since the duration of an individual switching transition is in the order of a few hundred nanoseconds.
In PLECS this problem is bypassed by using the fact that for a given circuit the
current and voltage waveforms during the transition and therefore the total loss
energy are principally a function of the pre- and post-switching conditions and the
device temperature: ,
. These
functions are defined in the tabs Turn-on loss and Turn-off loss of the thermal
editor as 3D look-up tables (see Thermal Editor) .
A setting of 0 J for a single voltage, current and temperature value means no switching losses.
Note Due to the instantaneous nature of the switching transitions, the dissipated thermal energy cannot be consumed electrically by the device. This must be taken into account when you use the thermal losses for estimating the efficiency of a circuit.
Loss Calculation
As described above, the conduction and switching losses are defined by means of look-up tables. From these tables the actual losses are calculated during a simulation using linear interpolation if the index values (on-state current, pre- and post-switching current or voltage, junction temperature) lie within the specified index range. If an index value out of range, will extrapolate using the first or last pair of index values.
If the calculated value is negative, PLECS will issue a diagnostic message and/or crop the value to zero. You can select the diagnostic action to be taken with the Negative switch loss setting on the Diagnostics pane of the PLECS simulation parameters.
Supported devices
Semiconductor components that implement this loss model are
- the Diode,
- the Thyristor,
- the GTO,
- the GTO with Diode,
- the IGBT,
- the IGBT with Diode,
- the Reverse Blocking IGCT,
- the Reverse Conducting IGCT,
- the MOSFET,
- the MOSFET with Diode and
- the TRIAC.
In addition, the Set/Reset Switch is also included in this group to enable you to build your own semiconductor models.
Ohmic Losses
Ohmic losses are calculated as resp.
. They are dissipated by the
following components:
- the Resistor,
- the Variable Resistor with Variable Series Inductor,
- the Variable Resistor with Constant Series Inductor,
- the Variable Resistor with Variable Parallel Capacitor and
- the Variable Resistor with Constant Parallel Capacitor.
Heat Sinks and Subsystem
By default, if you place a subsystem on a heat sink, the heat sink temperature is propagated recursively into all subschematics of the subsystem. All thermal losses dissipated in all subschematics flow into the heat sink. In some cases this is not desirable.
The implicit propagation mechanism is disabled if a subschematic contains one or more heat sinks or the Ambient Temperature block. This latter block provides a thermal connection to the heat sink enclosing the parent subsystem block.
As an example the figure above shows the subschematic of the Diode with Reverse Recovery. By default, this diode model would only dissipate the ohmic losses from the three resistors and the conduction losses of the internal ideal diode. However, the losses from the reverse recovery current injected by the current source would be neglected because current sources (and also voltage sources) do not dissipate thermal losses.
The Diode with Reverse Recovery therefore uses a Controlled Heat Flow block to inject the electrical power loss into the thermal model via the Ambient Temperature block. The power loss is calculated by multiplying the device voltage and the device current.
Thermal Description Parameter
Most semiconductor components in PLECS have a parameter Thermal description. The parameter can be used in two ways:
- to assign a data sheet from the thermal library to the component or
- to assign a data sheet from a reference variable that is defined either as a thermal mask parameter or in the MATLAB workspace.
Assigning Thermal Data Sheets
Thermal data sheets can be assigned to semiconductors with the menu entry From library.... PLECS only displays data sheets that match the device type; e.g. in the dialog box of a thyristor only those data sheets appear that have their Type field set to Thyristor.
Selecting a data sheet from a thermal library
If no data sheet is available the menu entry is disabled. In thermal parameters of masked subsystem all data sheets are accessible, regardless of their type. See section Thermal Library for more information on how to create new data sheets.
Using Reference Variables
To use a reference variable in the Thermal description parameter select the menu entry By reference from the parameter menu. Afterwards the reference variable can then be entered in the text field.
The reference variable must either be defined in a subsystem mask or in the MATLAB workspace. If a MATLAB workspace variable is used it must specify the name of a thermal description file or a structure that defines the thermal loss data.
Referencing thermal data sheets
If the reference variable refers to a thermal data sheet, it must be specified as a string beginning with file: followed by the name of the datasheet. It is possible to use an absolute file path to a thermal description file, for example:
thLosses = 'file:C:\Thermal\Vendor\mydiode.xml'
Alternatively, the name of a data sheet from the thermal library can be specified. In this case the data sheet must be on the thermal search path. It's name must be provided as a relative path without the .xml extension, for example:
thLosses = 'file:Vendor/mydiode'
Referencing data loss structures
The reference variable can contain a data structure that defines the thermal losses with the fields Von, Eon, Eoff and CauerChain. The fields are described as follows:
Von This field is a 2D lookup table for the voltage drop in form of a struct with two index vectors i, T and an output matrix v.
Eon, Eoff These fields are 3D lookup tables of the turn-on and turn-off losses in form of structs with three index vectors v, i, T and an output array E.
CauerChain This field is a struct of two arrays, R and C which must have the same length. The elements specify the respective values of the resistances and capacitances in the thermal Cauer chain.
Any of the index vectors may be omitted if the lookup value is not dependent on the corresponding variable. The number of dimensions of the output table must correspond to the number of index vectors. If none of the index vectors is specified, the output table must be a scalar. In this case the output can be specified directly as a scalar rather than as a struct with a single scalar field.
An example for constructing a workspace variable containing loss data is given below:
von.T = [25 125];
von.v = [[0.8 1.3 1.7 2.3 2.7]' [0.6 1.1 1.6 2.6 3.2]'];
eon.v = [0 200 300];
eon.i = [0 13 23 32 50];
eon.T = [25 125];
eon.E = 1e-3 * ...
[0.000 0.000 0.000 0.000 0.000
0.000 0.167 0.333 0.500 1.333
0.000 0.250 0.500 0.750 1.700];
eon.E(:,:,2) = 1e-3 * ...
[0.000 0.000 0.000 0.000 0.000
0.000 0.333 0.667 1.000 2.267
0.000 0.500 1.000 1.500 3.400];
cc.C = [0.95 2.4];
cc.R = [0.118 0.172];
thLosses = struct('Von', von, 'Eon', eon, 'Eoff', 0, ...
'CauerChain', cc);
In PLECS Blockset, workspace variables can also be constructed from thermal data sheets using the command line interface (see Converting Thermal Descriptions).