Documentation

The Transistor class

class transistordatabase.tdb_classes.Transistor(transistor_args: dict, switch_args: dict, diode_args: dict)

Bases: object

Transistor object which is the core class of transistordatabase module. Contains subclasses like Switch, Diode, FosterThermalModel etc, and other child classes using which all the features and functionalities of this module are based and developed.

Todo

  • Groups data of all other classes for a single transistor. Methods are specified in such a way that only user-interaction with this class is necessary

  • Documentation on how to add or extract a transistor-object to/from the database can be found in

__init__(transistor_args: dict, switch_args: dict, diode_args: dict) None

Takes in the following dictionary arguments for creating and initializing the transistor object. isvalid_dict() method is applied on transistor_args object to validate the argument. Else TypeError exception is raised. Module manufacturer type and housing type data validations are performed for matching the given values to the pre-existed types stored in the form of ‘housing.txt’ and ‘module_manufacturer.txt’ files.

Parameters
  • transistor_args (dict) – transistor argument object

  • switch_args (dict) – switch argument object

  • diode_args (dict) – diode argument object

Raises
  • TypeError – Raised if isvalid_dict() return false

  • ValueError – Raised if index based search for module_manufacturer or housing_type values fails

name: str

Name of the transistor. Choose as specific as possible. (Mandatory key)

type: str

Specifies the type of module either e.g IGBT, MOSFET, SiC MOSFET etc. (Mandatory key)

author: str

The author of the module specific object. Usually added when creating and adding a new datasheet module using template.py. (Mandatory key)

template_version: str

Specifies the template version using which a new datasheet module is created. (Mandatory/Automatic)

template_date: datetime.datetime

Specifies the date and time at which the template in created. (Mandatory/Automatic)

creation_date: datetime.datetime

Specifies the date and time of the new transistor module that is created using template. (Mandatory/Automatic)

comment: str | None

Any user specific comment created when adding a new datasheet module. (Optional key)

As the name specifies, provides the hyperlink of the datasheet that is being referred to. Should be a valid link if specified(Optional)

datasheet_date: 'datetime.datetime' | None

pymongo cannot encode date => always save as datetime. (Optional key)

datasheet_version: str | None

Specifies the version of the module manufacturer datasheet. (Optional key)

housing_area: float

Housing area extracted from datasheet. Units in m^2. (Mandatory key)

cooling_area: float

Housing area extracted from datasheet. Units in m^2. (Mandatory key)

t_c_max: float

Module specific maximum junction temperature. Units in °C (Optional key)

r_g_int: float

Internal gate resistance. Units in Ohm (Mandatory key)

Recommended turn on gate resistance of switch (Optional key)

Recommended turn off gate resistance of switch (Optional key)

c_oss_fix: float | None

Parasitic constant capacitance. Units in F (Optional key)

c_iss_fix: float | None

Parasitic constant capacitance. Units in F (Optional key)

c_rss_fix: float | None

Parasitic constant capacitance. Units in F (Optional key)

housing_type: str

e.g. TO-220, etc. Must be from a list of specific strings. (Mandatory key)

manufacturer: str

Provides information of the module manufacturer. (Mandatory key)

r_th_cs: float | None

Module specific case to sink thermal resistance. Units in K/W (Mandatory key)

r_th_switch_cs: float | None

Switch specific case to sink thermal resistance. Units in K/W (Mandatory key)

r_th_diode_cs: float | None

Diode specific case to sink thermal resistance. Units in K/W (Mandatory key)

v_abs_max: float

Absolute maximum voltage rating. Units in V (Mandatory key)

i_abs_max: float

Absolute maximum current rating. Units in A (Mandatory key)

i_cont: float | None

Module specific continuous current. Units in A e.g. Fuji = I_c, Semikron = I_c,nom (Mandatory key)

c_oss: list['VoltageDependentCapacitance'] | None

List of VoltageDependentCapacitance. (Optional key)

c_iss: list['VoltageDependentCapacitance'] | None

List of VoltageDependentCapacitance. (Optional key)

c_rss: list['VoltageDependentCapacitance'] | None

List of VoltageDependentCapacitance. (Optional key)

graph_v_ecoss: npt.NDArray[np.float64] | None

Member instance for storing the voltage dependant capacitance graph in the form of 2D numpy array. Units of Row 1 = V; Row 2 = J (Optional key)

raw_measurement_data: list['RawMeasurementData'] | None

Member instance for class type RawMeasurementData

c_oss_er: EffectiveOutputCapacitance | None

Energy related effective output capacitance. Units in F (Optional key)

c_oss_tr: EffectiveOutputCapacitance | None

Time related effective output capacitance. Units in F (Optional key)

diode: Diode

Member instance for class type Diode (Mandatory key)

switch: Switch

Member instance for class type Switch (Mandatory key)

save(collection: str = 'local', overwrite: Optional[bool] = None) None

The method save the transistor object to local mongodb database. Currently receives the execution instructions from update_from_fileexchange(..)

Parameters
  • collection (str) – By default local database is selected and “local” is provided as value

  • overwrite (bool or None) – Indicates whether to overwrite the existing transistor object in the local database if a match is found

Returns

None

Return type

None

delete(collection: str = 'local') None

The method deletes the transistor object from the local mongodb database.

Parameters

collection (str) – By default local database is selected and “local” is provided as value

Returns

None

Return type

None

export_json(path: Optional[str] = None) None

Exports the transistor object to .json file, e.g. to share this file on file exchange on github

Parameters

path (str or None (default)) – path to export

Raises

TypeError – Raised if the provided path is not a string type

convert_to_dict() dict

Converts the transistor object in scope to a dictionary datatype

Returns

Transistor object in dict type

Return type

dict

static isvalid_dict(dataset_dict: dict, dict_type: str) bool

This method checks input argument dictionaries for their validity. It is checked whether all mandatory keys are present, have the right type and permitted values (e.g. ‘MOSFET’ or ‘IGBT’ or ‘SiC-MOSFET’ for ‘type’). Returns ‘False’ if dictionary is ‘None’ or Empty. These cases should be handled outside this method. Raises appropriate errors if dictionary invalid in other ways.

Parameters
  • dataset_dict – Dataset of type dict

  • dict_type – Could be Transistor/SwitchEnergyData/FosterThermalModel/Diode_ChannelData etc. as specified in the internally provided list.

Raises
  • TypeError – Raised when the instance or dictionary values are not of expected type

  • ValueError – Raised when the certain dict values like housing type, module manufacturer values are not the expected values

  • KeyError – Raised when mandatory keys are not available in dataset_dict

Returns

True in case of valid dict, ‘False’ if dictionary is ‘None’ or Empty

Return type

bool

Todo

Error if given key is not used?

update_wp(t_j: float, v_g: float, i_channel: float, switch_or_diode: str = 'both', normalize_t_to_v=10) None

Fills the .wp-class, a temporary storage for self-written user-programs Searches for the input values and fills the .wp-class with data next to this points

Parameters
  • t_j (float) – junction temperature

  • v_g (float) – gate voltage

  • i_channel (float) – channel current for linearization

  • switch_or_diode (str) – ‘switch’ or ‘diode’ or ‘both’

  • normalize_t_to_v (float) – ratio between t_j and v_g. e.g. 10 means 10°C is same difference as 1V

Returns

None

Return type

None

init_loss_matrices()
init_switch_channel_matrix()
quickstart_wp() None

Function to fill out the .wp-class by just one command ‘quickstart_wp()’. Uses typical working points

  • channel linearization next to v_g = 15V, i_cont and t_j = t_j_abs_max - 25 degree

  • switching loss curves next to t_j = t_j_abs_max - 25 degree

Returns

None

calc_v_eoss() numpy.array

Calculates e_oss stored in c_oss depend on the voltage. Uses transistor.c_oss[0].graph_v_coss

Returns

e_oss numpy array

Return type

np.array

calc_v_qoss() numpy.array

Calculates q_oss stored in c_oss depend on the voltage. Uses transistor.c_oss[0].graph_v_coss

Returns

q_oss numpy array

Return type

np.array

plot_v_eoss(buffer_req: bool = False)

Plots v_eoss with method calc_v_eoss

Parameters

buffer_req (bool) – Internally required for generating virtual datasheets

Returns

Respective plots are displayed

plot_v_qoss(buffer_req: bool = False)

Plots v_qoss with method calc_v_qoss

Parameters

buffer_req (bool) – Internally required for generating virtual datasheets

Returns

Respective plots are displayed

get_object_v_i(switch_or_diode: str, t_j: float, v_g: float) list

Used for getting a channel curve including boundary conditions

Parameters
  • switch_or_diode (float) – ‘switch’ or ‘diode’

  • t_j (float) – junction temperature

  • v_g (float) – gate voltage

Raises

ValueError – When no data is available

Returns

v_i-object (channel curve including boundary conditions)

Return type

list

get_object_i_e(e_on_off_rr: str, t_j: float, v_g: float, v_supply: float, r_g: float) list

Function to get the loss graphs out of the transistor class

Parameters
  • e_on_off_rr (str) – can be the following: ‘e_on’, ‘e_off’ or ‘e_rr’

  • t_j (float) – junction temperature

  • v_g (float) – gate voltage at turn-on / turn-off

  • v_supply (float) – dc link voltage

  • r_g (float) – gate resistor

Returns

e_on.graph_i_e or e_off.graph_i_e or e_rr.graph_i_e

Return type

list

get_object_i_e_simplified(e_on_off_rr: str, t_j: float)

Function to get the loss graphs out of the transistor class, simplified version

Parameters
  • e_on_off_rr (str) – can be the following: ‘e_on’, ‘e_off’ or ‘e_rr’

  • t_j (float) – junction temperature

Raises

ValueError – Raised when no graph_i_e information is available at the given operating point

Returns

e_on.graph_i_e or e_off.graph_i_e or e_rr.graph_i_e, e_on.graph_r_e or e_off.graph_r_e or e_rr.graph_r_e

Return type

list, list or None

get_object_r_e_simplified(e_on_off_rr: str, t_j: float, v_g: float, v_supply: float, normalize_t_to_v: float) list

Function to get the loss graphs out of the transistor class, simplified version :param e_on_off_rr: can be the following: ‘e_on’, ‘e_off’ or ‘e_rr’ :type e_on_off_rr: str :param t_j: junction temperature :type t_j: float :param v_g: gate voltage :type v_g: float :param normalize_t_to_v: factor t:v (junction-temperature divided by gate voltage) :type normalize_t_to_v: float :param v_supply: supply voltage :type v_supply: float

Returns

e_on.graph_r_e or e_off.graph_r_e or e_rr.graph_r_e

Return type

list

calc_object_i_e(e_on_off_rr: str, r_g: float, t_j: float, v_supply: float, normalize_t_to_v: float) SwitchEnergyData

Calculate loss curves for other gate resistor than the standard one. This function uses i_e loss curve in combination with r_e loss curve, to calculate a new i_e loss curve for a chosen gate resistor. Also voltage correction is implemented (e.g. half voltage compared to datasheet means half losses)

Parameters
  • e_on_off_rr (str) – ‘e_on’, ‘e_off’, ‘e_rr’

  • r_g (float) – gate resistor of interest

  • t_j (float) – junction temperature of interest

  • v_supply (float) – supply voltage of interest

  • normalize_t_to_v (float) – a normalize value used to evaluate cartesian distance

Raises

Exception – When given gate resistance exceeds the existing maximum

Returns

object with corrected i_e curves due to r_g and v_supply at given t_j

Return type

list

Note

r_e_object may has not same voltage as i_e_object.

Todo

r_e_object may has not same voltage as i_e_object.

calc_i_e_curve_using_r_e_curve(i_e_object: SwitchEnergyData, r_e_object: SwitchEnergyData, r_g: float, v_supply_chosen: float) np.array

Calculates the loss energy curve at the provided gate resistance value based on the r_e_graph data

Parameters
  • i_e_object (Transistor.SwitchEnergyData) – selected loss energy curve object of datatype = ‘graph_i_e’

  • r_e_object (Transistor.SwitchEnergyData) – associated loss energy curve object of datatype = ‘graph_r_e’

  • r_g (int) – selected gate resistance for curve re-estimation

  • v_supply_chosen (int) – selected supply voltage for curve re-estimation

Returns

numpy 2d data representing loss energy of datatype = ‘graph_i_e’

Return type

np.array

calc_lin_channel(t_j: float, v_g: float, i_channel: float, switch_or_diode: str) tuple[float, float]

Get interpolated channel parameters. This function searches for ui_graphs with the chosen t_j and v_g. At the desired current, the equivalent parameters for u_channel and r_channel are returned

Parameters
  • t_j (float) – junction temperature

  • v_g (float) – gate voltage

  • i_channel (float) – current to linearize the channel

  • switch_or_diode (str) – ‘switch’ or ‘diode’

Raises

ValueError – Raised when the given arguments either exceed the maximum values or not the expected values

Returns

Linearized parameters for v_channel, r_channel

Return type

tuple[float, float]

Todo

  • rethink method name. May include switch or diode as a parameter and use one global function

  • check if this function works for all types of transistors

  • Error handling

  • Unittest for this method

calc_thermal_params(input_type: Optional[str] = None, order: int = 4, plotbit: bool = False) None

A method to generate thermal parameters like Rth_total, tau_total, Cth_total and vectors like Rth_vector, tau_vector, Cth_vector based on data availability passed by the user while creating a new transistor object.

Cases

Vectors

Total

To be computed

Only curve available

R_th, C_th, tau

R_th, C_th, tau

Compute all parameters

Curve and R_th_total available

R_th, C_th, tau

C_th, tau

No overwrite of R_th_total

Total values available, no curve available

C_th

None

Compute only C_th_total

Vectors available AND/OR Curve available

Cth

Cth

  • No curve fitting necessary

  • Do not overwrite R_th_total

Parameters
  • order (int) – The length of the polynomial to be used for curve fitting based parameters extraction. (cannot be more than 5)

  • input_type (str) – The type of object for which the thermal parameters need to computed. Can be either ‘switch’ or ‘diode’ type

  • plotbit (bool) – A boolean flag to visualize the fitted curve using matplotlib plotting features

Returns

Foster object filled with missing parameters within the input_type object of transistor object

Return type

None

compare_channel_linearized(i_channel: float, t_j: float = 150, v_g: float = 15) None

Shows channel plots for switch and diode comparing the linearized graph and the original graph. This function searches for the closest available curves for given arguments t_j and v_g

Parameters
  • i_channel (float) – current to linearize the channel

  • t_j (float) – junction temperature of interest, default set to 150 degree

  • v_g (float) – gate voltage of interest, default set to 15V

Returns

Plot, showing original channel data and linearized channel data

Return type

None

export_datasheet(build_collection=False) str | None

Generates and exports the virtual datasheet in form of pdf

Returns

pdf file is created in the current working directory

Return type

None

Example

>>> import transistordatabase as tdb
>>> transistor = tdb.load('Fuji_2MBI100XAA120-50')
>>> transistor.export_datasheet()

Todo

Instead of html file, generating a pdf file without third party requirements is a better option

buildList(attribute)

Gather list data (e.g. channel/e_on/e_off/e_rr) and check for ‘None’

Parameters

attribute – attribute path to list

Returns

matlab compatible list of all attributes

Return type

list

Exports a simulation model for simulink inverter loss models, see https://de.mathworks.com/help/physmod/sps/ug/loss-calculation-in-a-three-phase-3-level-inverter.html

Parameters
  • r_g_on (float) – gate turn on resistance, optional

  • r_g_off (float) – gate turn off resistance, optional

  • v_supply (float) – switch supply voltage, optional

  • normalize_t_to_v (float) – a normalize value used in computing cartesian distance

Raises
  • Exception – Re-raised excception by calling calc_object_i_e(..)

  • ValueError – Raised when the switch type is other than IGBT

Returns

.mat file for import in matlab/simulink

Return type

None

Example

>>> import transistordatabase as tdb
>>> transistor = tdb.load('Infineon_FF200R12KE3')
>>> transistor.export_simulink_loss_model()

Note

  • temperature next to 25 and 150 degree at 15V gate voltage will be used for channel and switching loss

  • in case of just one temperature curve, the upper temperature will increased (+1K) to bring a small temperature change in the curves. Otherwise the model will not work

  • only necessary data from tdb will be exported to simulink

  • Simulink model need switching energy loss in ‘mJ’

  • in case of no complete curve (e.g. not starting from zero), this tool will interpolate the curve

Todo

C_th is fixed at the moment to 1e-6 for switch an diode. Needs to be calculated from ohter data

export_matlab() None

Exports a transistor dictionary to a matlab dictionary

Returns

File stored in current working path

Return type

None

Example

>>> import transistordatabase as tdb
>>> transistor = tdb.load('Fuji_2MBI100XAA120-50')
>>> transistor.export_matlab()
collect_i_e_and_r_e_combination(switch_type: str, loss_type: str) tuple[list, list]

A function to gather the i_e and r_e graph combinations from the available energy curves which are further used in gecko circuit exporter function

Parameters
  • switch_type (str) – argument to specify if either ‘switch’ or ‘diode’ energy curve to be considered

  • loss_type (str) – loss type ‘e_on’ and ‘e_off’ for switch type and ‘e_rr’ for diode type applicable

Returns

i_e, r_e indexes referencing to list[SwitchEnergyData] from the chosen switch_type

Return type

list, list

export_geckocircuits(recheck: bool = True, v_supply: Optional[float] = None, v_g_on: Optional[float] = None, v_g_off: Optional[float] = None, r_g_on: Optional[float] = None, r_g_off: Optional[float] = None) None

Export transistor data to GeckoCIRCUITS

Parameters
  • recheck (bool) – Default to set to true, to enable the neighbouring select feature of the exporter

  • v_supply (float) – supply voltage for turn-on/off losses

  • v_g_on (float) – gate turn-on voltage

  • v_g_off (float) – gate turn-off voltage

  • r_g_on (float) – gate resistor for turn-on

  • r_g_off (float) – gate resistor for turn-off

Returns

Two output files: ‘Transistor.name’_Switch.scl and ‘Transistor.name’_Diode.scl created in the current working directory

Return type

None

Example

>>> import transistordatabase as tdb
>>> transistor = tdb.load('Fuji_2MBI100XAA120-50')
>>> transistor.export_geckocircuits(True, v_supply=600, v_g_on=15, v_g_off=-4, r_g_on=2.5, r_g_off=2.5)

Note

These .scl files are then imported as semiconductor characteristics inside geckoCIRCUITS

export_plecs(recheck: bool = True, gate_voltages=None) None

Generates and exports the switch and diode .xmls files to be imported into plecs simulator

Parameters
  • recheck (bool) – enables the selection of gate voltages near to the provided values if not found

  • gate_voltages – gate voltage like v_g_on, v_g_off, v_d_on, v_d_off

Returns

Two output files: ‘Transistor.name’_Switch.xml and ‘Transistor.name’_Diode.xml created in the current working directory

Return type

None

Example

>>> import transistordatabase as tdb
>>> transistor = tdb.load('Fuji_2MBI200XAA065-50')
>>> transistor.export_plecs(recheck=True, gate_voltages=[15, -15, 15, 0])
class FosterThermalModel(args)

Bases: object

Contains data to specify parameters of the Foster thermal_foster model. This model describes the transient temperature behavior as a thermal_foster RC-network. The necessary parameters can be estimated by curve-fitting transient temperature data supplied in graph_t_rthjc or by manually specifying the individual 2 out of 3 of the parameters R, C, and tau.

Todo

  • Add function to estimate parameters from transient data.

  • Add function to automatically calculate missing parameters from given ones.

  • Do these need to be numpy array or should they be lists instead?

__init__(args)

Initialization method of FosterThermalModel object

Parameters

args (dict) – argument to be passed for initialization

Note

Can be constructed from empty or ‘None’ argument dictionary since no attributes are mandatory.

r_th_total: float | None

Sum of thermal_foster resistances of n-pole RC-network (scalar). Units in K/W (Optional key)

r_th_vector: list[float] | None

Thermal resistances of RC-network (array). Units in K/W (Optional key)

c_th_total: float | None

Sum of thermal_foster capacities of n-pole low pass as (scalar). Units in J/K (Optional key)

c_th_vector: list[float] | None

Thermal capacities of n-pole RC-network (array). Units in J/K (Optional key)

tau_total: float | None

Sum of thermal_foster time constants of n-pole RC-network (scalar). Units in s (Optional key)

tau_vector: list[float] | None

Thermal time constants of n-pole RC-network (array). Units in s (Optional key)

graph_t_rthjc: numpy.ndarray[Any, numpy.dtype[numpy.float64]] | None

Transient data for extraction of the thermal_foster parameters specified above. Units of Row 1 in s; Row 2 in K/W (Optional key)

convert_to_dict() dict

The method converts FosterThermalModel object into dict datatype

Returns

FosterThermalModel of dict type

Return type

dict

get_plots(buffer_req: bool = False)

Plots tau vs rthjc

Parameters

buffer_req (bool) – Internally required for generating virtual datasheets

Returns

Respective plots are displayed if available else None is returned

collect_data() dict

Collects foster data in form of dictionary for generating virtual datasheet

Returns

foster data in form of dictionary

Return type

dict

class Switch(switch_args)

Bases: object

Contains data associated with the switching-characteristics of a MOSFET/SiC-MOSFET or IGBT. Can contain multiple channel-, e_on- and e_off-datasets.

__init__(switch_args)

Initialization method of Switch object

Parameters

switch_args – argument to be passed for initialization

Raises
  • KeyError – Expected during the channel/e_on/e_off instance initialization

  • ValueError – Expected during the channel/e_on/e_off instance initialization

Todo

Is this the right behavior or should the ‘thermal_foster’ attribute be left empty instead?

thermal_foster: transistordatabase.tdb_classes.Transistor.FosterThermalModel

Transient thermal_foster model. (Optional key)

t_j_max: float

Maximum junction temperature. Units in °C (Mandatory key)

soa: list[transistordatabase.tdb_classes.Transistor.SOA] | None

Safe operating area of switch

comment: str | None

Comment if any to be specified (Optional key)

manufacturer: str | None

Name of the manufacturer (Optional key)

technology: str | None

Semiconductor technology. e.g. IGBT3/IGBT4/IGBT7 (Optional key)

channel: list[transistordatabase.tdb_classes.Transistor.ChannelData] | None

Switch channel voltage and current data.

e_on: list[transistordatabase.tdb_classes.Transistor.SwitchEnergyData] | None

Switch on energy data.

e_off: list[transistordatabase.tdb_classes.Transistor.SwitchEnergyData] | None

Switch of energy data.

e_on_meas: list[transistordatabase.tdb_classes.Transistor.SwitchEnergyData] | None

Switch on energy data.

e_off_meas: list[transistordatabase.tdb_classes.Transistor.SwitchEnergyData] | None

Switch on energy data.

linearized_switch: list[transistordatabase.tdb_classes.Transistor.LinearizedModel] | None

Static data valid for a specific operating point.

r_channel_th: list[transistordatabase.tdb_classes.Transistor.TemperatureDependResistance] | None

Temperature dependant on resistance.

charge_curve: list[transistordatabase.tdb_classes.Transistor.GateChargeCurve] | None

Gate voltage dependant charge characteristics

convert_to_dict() dict

The method converts Switch object into dict datatype

Returns

Switch object of dict type

Return type

dict

find_next_gate_voltage(req_gate_vltgs: dict, export_type: str, check_specific_curves: Optional[list] = None, switch_loss_dataset_type: str = 'graph_i_e') dict

Finds the switch gate voltage nearest to the specified values from the available gate voltages in curve datasets. Applicable to either plecs exporter or gecko exporter

Parameters
  • req_gate_vltgs (dict) – the provided gate voltages for find the nearest neighbour to the corresponding key-value pairs

  • export_type (str) – either ‘gecko’ or ‘plecs’

  • check_specific_curves (list(list, list)) – indexes of chosen energy curve to be skipped are provided here

  • switch_loss_dataset_type – dataset curve type to be specified

Returns

v_g_channel, v_supply, v_g_on, v_g_off

Return type

int

find_approx_wp(t_j: float, v_g: float, normalize_t_to_v: float = 10, switch_energy_dataset_type: str = 'graph_i_e') tuple[transistordatabase.tdb_classes.Transistor.ChannelData, transistordatabase.tdb_classes.Transistor.SwitchEnergyData, transistordatabase.tdb_classes.Transistor.SwitchEnergyData]

This function looks for the smallest distance to stored object value and returns this working point

Parameters
  • t_j (float) – junction temperature

  • v_g (float) – gate voltage

  • normalize_t_to_v (float) – ratio between t_j and v_g. e.g. 10 means 10°C is same difference as 1V

  • switch_energy_dataset_type (str) – preferred dataset_type (single, graph_r_e, graph_i_e) for e_on and e_off

Raises

KeyError – Raised when there no data for the specified SwitchEnergyData_dataset_type

Returns

channel-object, e_on-object, e_off-object

Return type

tuple[Transistor.ChannelData, Transistor.SwitchEnergyData, Transistor.SwitchEnergyData]

plot_channel_data_vge(gatevoltage: float) None

Plot channel data with a chosen gate-voltage

Parameters

gatevoltage (float) – gatevoltage at which the channel curves are selected and plotted

Returns

Respective plots are displayed

Return type

None

plot_channel_data_temp(temperature: float) None

Plot channel data with chosen temperature

Parameters
  • temperature – junction temperature at which the channel curves are selected and plotted

  • temperature – float

Returns

Respective plots are displayed

Return type

None

plot_all_channel_data(buffer_req: bool = False)

Plot all switch channel characteristic curves

Parameters
  • buffer_req – internally required for generating virtual datasheets

  • buffer_req – bool

Returns

Respective plots are displayed

plot_energy_data(buffer_req: bool = False)

Plots all switch energy i-e characteristic curves which are extracted from the manufacturer datasheet

Parameters
  • buffer_req – internally required for generating virtual datasheets

  • buffer_req – bool

Returns

Respective plots are displayed

plot_energy_data_r(buffer_req: bool = False)

Plots all switch energy r-e characteristic curves

Parameters
  • buffer_req – internally required for generating virtual datasheets

  • buffer_req – bool

Returns

Respective plots are displayed

plot_all_on_resistance_curves(buffer_req: bool = False)

A helper function to plot and convert Temperature dependant on resistance plots in raw data format.

Parameters

buffer_req – internally required for generating virtual datasheets

Returns

Respective plots are displayed

plot_all_charge_curves(buffer_req: bool = False)

A helper function to plot and convert gate emitter/source voltage dependant gate charge plots in raw data format.

Parameters

buffer_req – internally required for generating virtual datasheets

Returns

Respective plots are displayed

plot_soa(buffer_req: bool = False)

A helper function to plot and convert safe operating region characteristic plots in raw data format.

Parameters

buffer_req – internally required for generating virtual datasheets

Returns

Respective plots are displayed

collect_data() dict

Collects switch data in form of dictionary for generating virtual datasheet

Returns

Switch data in form of dictionary

Return type

dict

class Diode(diode_args)

Bases: object

Contains data associated with the (reverse) diode-characteristics of a MOSFET/SiC-MOSFET or IGBT. Can contain multiple channel- and e_rr- datasets.

__init__(diode_args)

Initialization method of Diode object

Parameters

diode_args – argument to be passed for initialization

Raises
  • KeyError – Expected during the channel/e_rr instance initialization

  • ValueError – Expected during the channel/e_rr instance initialization

thermal_foster: transistordatabase.tdb_classes.Transistor.FosterThermalModel | None

Transient thermal_foster model.

t_j_max: float

Diode maximum junction temperature. Units in °C (Mandatory key)

soa: list[transistordatabase.tdb_classes.Transistor.SOA] | None

Safe operating area of Diode

comment: str | None

Comment if any specified by the user. (Optional key)

manufacturer: str | None

Name of the manufacturer. (Optional key)

technology: str | None

Semiconductor technology. e.g. IGBT3/IGBT4/IGBT7. (Optional key)

channel: list[transistordatabase.tdb_classes.Transistor.ChannelData] | None

Diode forward voltage and forward current data.

e_rr: list[transistordatabase.tdb_classes.Transistor.SwitchEnergyData] | None

Reverse recovery energy data.

linearized_diode: list[transistordatabase.tdb_classes.Transistor.LinearizedModel] | None

Static data. Valid for a specific operating point.

convert_to_dict() dict

The method converts Diode object into dict datatype

Returns

Diode object of dict type

Return type

dict

find_next_gate_voltage(req_gate_vltgs: dict, export_type: str, check_specific_curves: Optional[list] = None, diode_loss_dataset_type: str = 'graph_i_e')

Finds the diode gate voltage nearest to the specified values from the available gate voltages in curve datasets. The diode has only turn-off gate voltage which is the switch turn-on gate voltage

Parameters
  • req_gate_vltgs (dict) – the provided gate voltages to find the nearest neighbour to the corresponding key-value pairs

  • export_type (str) – either ‘gecko’ or ‘plecs’

  • check_specific_curves (list(list, list)) – indexes of chosen energy curve to be skipped are provided here

  • diode_loss_dataset_type (str) – ‘graph_i_e’ or ‘graph_r_e’ dataset curve type to be specified

Returns

v_d_channel, v_supply, v_d_off

Return type

int

find_approx_wp(t_j: float, v_g: float, normalize_t_to_v: float = 10, switch_energy_dataset_type: str = 'graph_i_e') tuple[transistordatabase.tdb_classes.Transistor.ChannelData, transistordatabase.tdb_classes.Transistor.SwitchEnergyData]

This function looks for the smallest distance to stored object value and returns this working point

Parameters
  • t_j (float) – junction temperature

  • v_g (float) – gate voltage

  • normalize_t_to_v (float) – ratio between t_j and v_g. e.g. 10 means 10°C is same difference as 1V

  • switch_energy_dataset_type (str) – ‘graph_i_e’ or ‘graph_r_e’

Returns

channel-object, e_rr-object

Return type

tuple[Transistor.ChannelData, Transistor.SwitchEnergyData]

plot_all_channel_data(buffer_req: bool = False)

Plot all diode channel characteristic curves

Parameters
  • buffer_req – internally required for generating virtual datasheets

  • buffer_req – bool

Returns

Respective plots are displayed

plot_energy_data(buffer_req: bool = False)

Plots all diode reverse recovery energy i-e characteristic curves which are extracted from the manufacturer datasheet

Parameters

buffer_req (bool) – internally required for generating virtual datasheets

Returns

Respective plots are displayed

plot_energy_data_r(buffer_req: bool = False)

Plots all diode energy r-e characteristic curves

Parameters

buffer_req (bool) – internally required for generating virtual datasheets

Returns

Respective plots are displayed

plot_soa(buffer_req: bool = False)

A helper function to plot and convert safe operating region characteristic plots in raw data format.

Parameters

buffer_req – internally required for generating virtual datasheets

Returns

Respective plots are displayed

collect_data() dict

Collects diode data in form of dictionary for generating virtual datasheet

Returns

Diode data in form of dictionary

Return type

dict

class LinearizedModel(args)

Bases: object

Contains data for a linearized Switch/Diode depending on given operating point. Operating point specified by t_j, i_channel and (not for all diode types) v_g.

__init__(args)

Initialization method for linearizedmodel object

Parameters

args – arguments to passed for initialization

t_j: float

Junction temperature of diodeswitch. Units in K (Mandatory key)

v_g: float | None

Gate voltage of switch or diode. Units in V (Mandatory for Switch, Optional for some Diode types)

i_channel: float

Channel current of diodeswitch. Units in A (Mandatory key)

r_channel: float

Channel resistance of diodeswitch. Units in Ohm (Mandatory key)

v0_channel: float

Channel voltage of diodeswitch. Unis in V (Mandatory key)

convert_to_dict() dict

The method converts LinearizedModel object into dict datatype

Returns

LinearizedModel object of dict type

Return type

dict

class ChannelData(args)

Bases: object

Contains channel V-I data for either switch or diode. Data is given for only one junction temperature t_j. For different temperatures: Create additional ChannelData-objects and store them as a list in the respective Diode- or Switch-object. This data can be used to linearize the transistor at a specific operating point

__init__(args)

Initialization method for ChannelData object

Parameters

args – arguments to be passed for initialization

t_j: float

Junction temperature of switchdiode. (Mandatory key)

graph_v_i: numpy.ndarray[Any, numpy.dtype[numpy.float64]]

Represented as a numpy 2D array where row 1 is the voltage and row 2 the current. Units of Row 1 = V; Row 2 = A (Mandatory key)

v_g: float

optional (standard diode useless, for GaN ‘diode’ necessary

Type

Switch

Type

Mandatory key, Diode

convert_to_dict() dict

The method converts ChannelData object into dict datatype

Returns

ChannelData object of dict type

Return type

dict

plot_graph() None

Plots the channel curve v_i characteristics called by using any ChannelData object

Returns

Respective plots are displayed

Return type

None

class VoltageDependentCapacitance(args)

Bases: object

Contains graph_v_c data for transistor class. Data is given for only one junction temperature t_j. For different temperatures: Create additional VoltageDependentCapacitance-objects and store them as a list in the transistor-object.

__init__(args)

Initialization method for VoltageDependentCapacitance object

Parameters

args – arguments to be passed for initialization

t_j: float

Junction temperature (Mandatory key)

graph_v_c: numpy.ndarray[Any, numpy.dtype[numpy.float64]]

Represented as a 2D numpy array where row 1 is the voltage and row 2 the capacitance. Units of Row 1 = V; Row 2 = A (Mandatory key)

convert_to_dict() dict

The method converts VoltageDependentCapacitance object into dict datatype

Returns

VoltageDependentCapacitance object of dict type

Return type

dict

get_plots(ax=None, label=None)

Plots the voltage dependant capacitance graph_v_c of the VoltageDependentCapacitance object. Also attaches the plot to figure axes for the purpose virtual datasheet if ax argument is specified

Parameters
  • ax – figure axes for making the graph_v_c plot in virtual datasheet

  • label – label of the plot for virtual datasheet plot

Returns

Respective plots are displayed

class SwitchEnergyData(args)

Bases: object

  • Contains switching energy data for either switch or diode. The type of Energy (E_on, E_off or E_rr) is already implicitly specified by how the respective objects of this class are used in a Diode- or Switch-object.

  • For each set (e.g. every curve in the datasheet) of switching energy data a separate object should be created.

  • This also includes the reference values in a datasheet given without a graph. (Those are considered as data sets with just a single data point.)

  • Data sets with more than one point are given as graph_i_e with an r_g parameter or as graph_r_e with an i_x parameter.

  • Unused parameters or datasets should be left empty.

  • Which of these cases (single point, E vs I dataset, E vs R dataset) is valid for the current object also needs to be specified by the dataset_type-property.

__init__(args)

Initialization method for VoltageDependentCapacitance object

Parameters

args – arguments to be passed for initialization

Todo

Add warning if data is ignored because of dataset_type?

dataset_type: str

Single, graph_r_e, graph_i_e (Mandatory key)

v_supply: float

Supply voltage. Units in V (Mandatory key)

v_g: float

Gate voltage. Units in V (Mandatory key)

v_g_off: float | None

Gate voltage for turn off. Units in V

t_j: float

Junction temperature. Units in °C (Mandatory key)

load_inductance: float | None

Load inductance. Units in H

measurement_date: 'datetime.datetime' | None

Specifies the date and time at which the measurement was done.

measurement_testbench: str | None

Specifies the testbench used for the measurement.

commutation_inductance: float | None

Commutation inductance. Units in H

commutation_device: str | None

Second device used in half-bridge test condition

comment: str | None

Comment for additional information e.g. on who made these measurements

e_x: float | None

Scalar dataset-parameter - switching energy. Units in J

r_g: float | None

Scalar dataset-parameter - gate resistance. Units in Ohm

i_x: float | None

Scalar dataset-parameter - current rating. Units in A

graph_i_e: npt.NDArray[np.float64] | None

Units for Row 1 = A; Row 2 = J

graph_r_e: npt.NDArray[np.float64] | None

Units for Row 1 = Ohm; Row 2 = J

convert_to_dict() dict

The method converts SwitchEnergyData object into dict datatype

Returns

SwitchEnergyData object of dict type

Return type

dict

plot_graph() None

Plots switch / diode energy curve characteristics (either from graph_i_e or graph_r_e dataset)

Returns

Respective plots are displayed

Return type

None

copy()

A method to copy the existing SwitchEnergyData object and create a new object of same type. Created to allow deep copy of object when using gecko exporter

Returns

SwitchEnergyData object

Return type

SwitchEnergyData

class WP

Bases: object

The WP class is intended for user calculations in Python. It is used to access transistor data in user-written programs. It allows the user to linearize the channel and store the result in transistor.wp. Switching loss curves can be stored for specific boundary conditions, so that the same variable is always accessed in the self-written program, regardless of the transistor.

The class WP…

  • Always initialized as None.

  • Is always exported as None to .json or to the database.

  • Is a temporary workspace.

__init__()
switch_v_channel: float | None
switch_r_channel: float | None
diode_v_channel: float | None
diode_r_channel: float | None
switch_channel: float | None
diode_channel: float | None
e_on: numpy.ndarray[Any, numpy.dtype[numpy.float64]] | None

A; Row 2: J

Type

Units

Type

Row 1

e_off: numpy.ndarray[Any, numpy.dtype[numpy.float64]] | None

A; Row 2: J

Type

Units

Type

Row 1

e_rr: numpy.ndarray[Any, numpy.dtype[numpy.float64]] | None

A; Row 2: J

Type

Units

Type

Row 1

v_switching_ref: float | None

V

Type

Unit

e_oss: numpy.ndarray[Any, numpy.dtype[numpy.float64]] | None

V; Row 2: J

Type

Units

Type

Row 1

q_oss: numpy.ndarray[Any, numpy.dtype[numpy.float64]] | None

V; Row 2: C

Type

Units

Type

Row 1

parallel_transistors: float | None

Number

Type

Unit

class EffectiveOutputCapacitance(args)

Bases: object

The class EffectiveOutputCapacitance is used to record energy related or time related output capacitance of the switch.

__init__(args)

Initialization method for EffectiveOutputCapacitance object

Parameters

args – arguments to be passed for initialization

c_o: float

Value of the fixed output capacitance. Units in F

v_gs: float

Gate to source voltage of the switch. Units in V

v_ds: float

V_DS = (0-400V) i.e v_ds=400 (max value, min assumed a 0). Units in V

Type

Drain to source voltage of the switch ex

convert_to_dict() dict

The method converts EffectiveOutputCapacitance object into dict datatype

Returns

EffectiveOutputCapacitance object of dict type

Return type

dict

collect_data()
class TemperatureDependResistance(args)

Bases: object

class to store temperature dependant resistance curve

__init__(args)

Initialization method for TemperatureDependResistance object

Parameters

args – arguments to be passed for initialization

i_channel: float

channel current at which the graph is recorded

v_g: float

gate voltage

dataset_type: str

curve datatype, can be either ‘t_r’ or ‘t_factor’. ‘t_factor’ is used to denote normalized gate curves

r_channel_nominal: float | None

a mandatory field if the dataset_type is ‘t_factor’

graph_t_r: numpy.ndarray[Any, numpy.dtype[numpy.float64]]

a 2D numpy array to store the temperature related channel on resistance

convert_to_dict() dict

The method converts TemperatureDependResistance object into dict datatype

Returns

TemperatureDependResistance object of dict type

Return type

dict

get_plots(ax=None)

Plots On resistance vs Junction temperature

Parameters

ax – figure axes to append the curves

Returns

Respective plots are displayed if available else None is returned

class GateChargeCurve(args)

Bases: object

A class to hold gate charge characteristics of switch which is added as a optional attribute inside switch class

__init__(args)

Initialization method for GateChargeCurve object

Parameters

args – arguments to be passed for initialization

i_channel: float

channel current at which the graph is recorded

v_supply: float

same as drain-to-source (v_ds)/ collector-emitter (v_ce) voltages

t_j: float

junction temperature

i_g: float | None

gate to source/emitter current

graph_q_v: numpy.ndarray[Any, numpy.dtype[numpy.float64]]

a 2D numpy array to store gate charge dependant on gate to source voltage

convert_to_dict() dict

The method converts GateChargeCurve object into dict datatype

Returns

GateChargeCurve object of dict type

Return type

dict

get_plots(ax=None)

Plots gate charge vs gate source/ gate emitter voltage of switch type mosfet and igbt respectively

Parameters

ax – figure axes to append the curves

Returns

Respective plots are displayed if available else None is returned

class SOA(args: dict)

Bases: object

A class to hold safe operating area characteristics of transistor type which is added as a optional attribute inside transistor class

__init__(args: dict)

Initialization method for SOA object

Parameters

args – arguments to be passed for initialization

time_pulse: float | None

applied pulse duration

t_c: float | None

case temperature

graph_i_v: numpy.ndarray[Any, numpy.dtype[numpy.float64]]

a 2D numpy array to store SOA characteristics curves

convert_to_dict() dict

The method converts SOA object into dict datatype

Returns

SOA object of dict type

Return type

dict

get_plots(ax=None)

Plots drain current/reverse diode current vs drain-to-source voltage/diode applied reverse voltage of switch type mosfet/igbt

Parameters

ax – figure axes to append the curves

Returns

Respective plots are displayed if available else None is returned

parallel_transistors(count_parallels: int = 2) transistordatabase.tdb_classes.Transistor

Connect [count_parallels] transistors in parallel The returned transistor object behaves like a single transistor.

  • name will be modified by adding _[count_parallels]_parallel

  • channel characteristics will be modified

  • e_on/e_off/e_rr characteristics will be modified

  • thermal behaviour will be modified

Parameters

count_parallels (int) – count of parallel transistors of same type, default = 2

Returns

transistor object with parallel transistors

Return type

Transistor

Example

>>> import transistordatabase as tdb
>>> transistor = tdb.load('Infineon_FF200R12KE3')
>>> parallel_transistorobject = transistor.parallel_transistors(3)
validate_transistor() dict

A helper function for plecs exporter. Checks if curve characteristics and thermal network parameters of both switch and diode to be None or empty Appends corresponding codes for further verification in get_curve_data(..) method

Returns

Availability codes

Return type

dict

get_curve_data(channel_recheck: bool, gate_voltages: list) dict

Collects the available information of switch and diode from transistor object and passes it to plecs_exporter(..) for generating the diode and switch .xml files

Parameters
  • channel_recheck (bool) – if set to True, collects the channel and energy curve characteristics at nearest gate voltage if the given gate voltages are not found

  • gate_voltages (list) – turn on and off gate voltages for selecting the curves of switch and diode

Raises

MissingDataError – If any information of switch or diode is missing completely

Returns

Switch and diode objects

Return type

dict

class RawMeasurementData(args)

Bases: object

  • Contains RAW measurement data. e.g. for voltage and current graphs from a double pulse test.

__init__(args)

Initialization method for RawMeasurementData object

Parameters

args – arguments to be passed for initialization

dataset_type: str

e.g. dpt_u_i (Mandatory key)

comment: str | None

Comment for additional information e.g. on who made these measurements

v_supply: float | None

Supply voltage. Units in V

v_g: float | None

Gate voltage. Units in V

v_g_off: float | None

Gate voltage for turn off. Units in V

t_j: float | None

Junction temperature. Units in °C

load_inductance: float | None

Load inductance. Units in µH

commutation_inductance: float | None

Commutation inductance. Units in µH

commutation_device: str | None

Second device used in half-bridge test condition

r_g: list[npt.NDArray[np.float64]] | None

gate resistance. Units in Ohm

r_g_off: list[npt.NDArray[np.float64]] | None

gate resistance. Units in Ohm

measurement_date: 'datetime.datetime' | None

Specifies the measurements date and time

measurement_testbench: str | None

Specifies the testbench used for the measurement.

dpt_on_vds: list[npt.NDArray[np.float64]] | None

measured Vds data at turn on event. Units in V and s

dpt_on_id: list[npt.NDArray[np.float64]] | None

measured Id data at turn on event. Units in A and s

dpt_off_vds: list[npt.NDArray[np.float64]] | None

measured Vds data at turn off event. Units in V and s

dpt_off_id: list[npt.NDArray[np.float64]] | None

measured Vds data at turn off event. Units in A and s

convert_to_dict() dict

The method converts RawMeasurementData object into dict datatype

Returns

Switch object of dict type

Return type

dict

dpt_calculate_energies(integration_interval: str, dataset_type: str, energies: str, mode: str)

Imports double pulse measurements and calculates switching losses to each given working point.

[1] options for the integration interval are based on following paper: Link: https://ieeexplore.ieee.org/document/8515553

Parameters
  • integration_interval (str) – calculation standards for switching losses

  • dataset_type (str) – defines what measurement set should should be calculated

  • energies (str) – defines which switching energies should be calculated

add_dpt_measurement(measurement_data)

This method adds new measurement data to the transistor object and saves changes to the database.

Parameters

measurement_data (dict) – Dict of data you want to add to given attribute.

add_soa_data(soa_data: [dict, list], switch_type: str, clear: bool = False)

A transistor method to add the SOA class object to the loaded transistor.switch.soa or transistor.diode.soa attribute. .. note:: Transistor object must be loaded first before calling this method

Parameters
  • soa_data (dict or list) – argument represents the soa dictionaries objects that needs to be added to transistor switch or diode object

  • switch_type (str) – either switch or diode object on which the provided soa_data needed to be appended

  • clear (bool) – set to true if to clear the existing soa curves on the selected transistor switch or diode object

Returns

updated transistor switch or diode object with added soa characteristics

add_gate_charge_data(charge_data: [dict, list], clear: bool = False)

A transistor method to add the GateChargeCurve class objects to the loaded transistor.switch.charge_curve attribute. .. note:: Transistor object must be loaded first before calling this method

Parameters
  • charge_data (dict or list) – argument represents the gatechargecurve dictionaries objects that needs to be added to transistor object

  • clear (bool) – set to true if to clear the existing gatechargecurve curves on the transistor object

Returns

updated transistor object with added gate charge characteristics

add_temp_depend_resistor_data(r_channel_data: [dict, list], clear: bool = False)

A transistor method to add the TemperatureDependResistance class objects to the loaded transistor.switch.r_channel_th attribute. .. note:: Transistor object must be loaded first before calling this method

Parameters
  • r_channel_data (dict or list) – argument represents the TemperatureDependResistance dictionaries objects that needs to be added to transistor.switch.r_channel_th object

  • clear (bool) – set to true if to clear the existing r_channel_th curves on the transistor object

Returns

updated transistor object with added gate charge characteristics

General methods

transistordatabase.tdb_functions.connect_local_tdb()

A method for establishing connection with transistordatabase_exchange. Internally used by

  • update_from_fileexchange() method to sync the local with transistordatabase_File_Exchange

  • load() methods for saving and loading the transistor object to local mongodb-database.

Returns

transistor_database collection

Raises

pymongo.errors.ServerSelectionTimeoutError – if there is no mongoDB instance running

transistordatabase.tdb_functions.connect_tdb(host: str)

A method for establishing connection with transistordatabase_exchange.

Parameters

host (str) – “local” is specified by default, other cases need to be investigated

Returns

transistor_database collection

transistordatabase.tdb_functions.csv2array(csv_filename: str, first_xy_to_00: bool = False, second_y_to_0: bool = False, first_x_to_0: bool = False, mirror_xy_data: bool = False) numpy.array

Imports a .csv file and extracts its input to a numpy array. Delimiter in .csv file must be ‘;’. Both ‘,’ or ‘.’ are supported as decimal separators. .csv file can generated from a 2D-graph for example via https://apps.automeris.io/wpd/

Parameters
  • csv_filename (str) – Insert .csv filename, e.g. “switch_channel_25_15v”

  • first_xy_to_00 (bool) – Set ‘True’ to change the first value pair to zero. This is necessary in case of webplotdigitizer returns the first value pair e.g. as -0,13; 0,00349.

  • second_y_to_0 (bool) – Set ‘True’ to set the second y-value to zero. This is interesting in case of diode / igbt forward channel characteristic, if you want to make sure to set the point where the ui-graph leaves the u axis on the u-point to zero. Otherwise there might be a very small (and negative) value of u.

  • first_x_to_0 (bool) – Set ‘True’ to set the first x-value to zero. This is interesting in case of nonlinear input/output capacities, e.g. c_oss, c_iss, c_rss

  • mirror_xy_data (bool) – Takes the absolute() of both axis. Used for given mirrored data, e.g. some datasheet show diode data in the 3rd quadrant instead of the 1st quadrant

Returns

1d array, ready to use in the transistor database

Return type

np.array

transistordatabase.tdb_functions.merge_curve(curve: numpy.array, curve_detail: numpy.array) numpy.array

Merges two equal curves, one of which contains an enlarged section of the first curve. Use case is the merging of capacity curves, here often two curves (normal and zoom) are given in the data sheets.

Parameters
  • curve (np.array) – full curve

  • curve_detail (np.array) – curve with zoom on x-axis

Returns

merged curve

Return type

np.array

Example

(e.g. merges c_oss curve from 0-200V and from 0-1000V)

>>> import transistordatabase as tdb
>>> c_oss_normal = tdb.csv2array('transistor_c_oss.csv', first_x_to_0=True)
>>> c_oss_detail = tdb.csv2array('transistor_c_oss_detail.csv', first_x_to_0=True)
>>> c_oss_merged = tdb.merge_curve(c_oss_normal, c_oss_detail)
transistordatabase.tdb_functions.print_tdb(filters: Optional[list[str]] = None, collection_name: str = 'local') list[str]

Print all transistorelements stored in the local database

Parameters
  • filters (List[str]) – filters for searching the database, e.g. ‘name’ or ‘type’

  • collection_name (str) – Choose database name in local mongodb client. Default name is “collection”

Returns

Return a list with all transistor objects fitting to the search-filter

Return type

list

Example

>>> import transistordatabase as tdb
>>> tdb.print_tdb()
>>> # or
>>> tdb.print_tdb(collection = 'type')
transistordatabase.tdb_functions.r_g_max_rapid_channel_turn_off(v_gsth: float, c_ds: float, c_gd: float, i_off: float | list[float], v_driver_off: float) float

Calculates the maximum gate resistor to achieve no turn-off losses when working with MOSFETs ‘rapid channel turn-off’ (rcto)

Parameters
  • v_gsth (float) – gate threshold voltage

  • c_ds (float) – equivalent drain-source capacitance

  • c_gd (float) – equivalent gate-drain capacitance

  • i_off (float or List[float]) – turn-off current

  • v_driver_off (float) – Driver voltage during turn-off

Returns

r_g_max_rcto maximum gate resistor to achieve rapid channel turn-off

Return type

float

Note

Input (e.g. i_off can also be a vector)

See also

D. Kubrick, T. Dürbaum, A. Bucher ‘Investigation of Turn-Off Behaviour under the Assumption of Linear Capacitances’ International Conference of Power Electronics Intelligent Motion Power Quality 2006, PCIM 2006, p. 239 –244