Skip to content

ThermalDevice API Documentation

Overview

The ThermalDevice class represents a device with thermal properties, typically diodes, MOSFETs and IGBTs. This class exposes several key properties that allow users to configure and analyze thermal behavior, including initial temperature, thermal data, loss calculation, and custom variables.

Members


InitialTemperature

Type: DoubleParameter

Description:
The initial junction temperature of the thermal device. This parameter is part of the Cauer impedance network used to represent the thermal behavior of the device. By default, it is set to 25°C and is non-editable unless thermal data is provided.

Usage Example:

1
2
3
4
5
# Get the initial temperature value
initial_temp = thermal_device.InitialTemperature

# Set a new initial temperature (if editable)
thermal_device.InitialTemperature = 30.0

ShowJunctionTemperatureControlPin

Type: BoolParameter

Description:
This property controls whether the junction temperature control pin is visible. The pin represents the temperature control point in the thermal model. By default, it is set to False and becomes editable when thermal data is provided.

Usage Example:

1
2
3
4
5
# Check if the junction temperature control pin is shown
is_visible = thermal_device.ShowJunctionTemperatureControlPin

# Set the junction temperature control pin to be visible
thermal_device.ShowJunctionTemperatureControlPin = True

ThermalData

Type: ThermalData

Description:
The ThermalData property stores the semiconductor's thermal data, including parameters that define the thermal behavior of the device. This data enables thermal simulations and calculations such as junction temperature and loss evaluation. See ThermalData.

Usage Example:

1
2
3
4
5
# Load thermal data from a specific file
thermal_device.ThermalData = ThermalData("path_to_thermal_data_file.xml")

# Access the thermal data
thermal_info = thermal_device.ThermalData

LossCalculationFrequency

Type: DoubleParameter

Description:
Specifies the frequency at which the average losses are calculated in hertz (Hz). This parameter determines how often the thermal device calculates conduction and switching losses during a simulation. It becomes editable when thermal data is present.

Usage Example:

1
2
3
4
5
# Get the current loss calculation frequency
freq = thermal_device.LossCalculationFrequency

# Set the loss calculation frequency (if editable)
thermal_device.LossCalculationFrequency = "2k"

CustomVariables

Type: List[ThermalDataVariable]

Description:
A list of custom variables associated with the thermal data. These variables can be used to define additional properties for the thermal device, such as user-defined parameters in thermal simulations.

Usage Example:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#%% Create list of gate resistances an run simulations
Rg_list = [1, 2.5, 5, 10]
for Rg in Rg_list:    
    mosfet.CustomVariables[0].Value = str(Rg)
    job = design.TransientAnalysis.NewJob()
    status = job.Run()
    Tj = job.GetSignalByName('MOSFET1 - Junction Temperature (°)').DataPoints[-1]
    Loss = job.GetSignalByName('MOSFET1 - Average Total Losses (W)').DataPoints[-1]
    junction_temps.append(Tj)
    Losses.append(Loss)

ShowJunctionTemperatureControlPin

Type: BoolParameter

Description:
Controls the visibility of the junction temperature control pin. The parameter allows users to toggle whether this pin, which represents a thermal control point in the simulation, is shown.

Usage Example:

1
2
3
4
5
# Check if the junction temperature control pin is visible
is_visible = thermal_device.ShowJunctionTemperatureControlPin

# Set the visibility of the junction temperature control pin
thermal_device.ShowJunctionTemperatureControlPin = True

Example Usage

Here's a typical example of how to use the ThermalDevice API in a Python project.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from aesim.simba import ProjectRepository, ThermalData

# Load the project and retrieve a thermal device
project = ProjectRepository("path_to_project_file.jsimba")
design = project.GetDesignByName("DesignName")
thermal_device = design.Circuit.GetDeviceByName("DeviceName")

# Set thermal data
thermal_device.ThermalData = ThermalData("path_to_thermal_data_file.xml")

# Modify initial temperature
thermal_device.InitialTemperature = 30.0

# Show junction temperature control pin
thermal_device.ShowJunctionTemperatureControlPin = True

# Adjust loss calculation frequency
thermal_device.LossCalculationFrequency = "2k"

# Access and modify custom variables
custom_vars = thermal_device.CustomVariables
custom_vars.append(ThermalDataVariable("CustomVar", "5.0"))

# Run simulation and get results
job = design.TransientAnalysis.NewJob()
status = job.Run()