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)
- datasheet_hyperlink: str | None
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)
- r_g_on_recommended: float | None
Recommended turn on gate resistance of switch (Optional key)
- r_g_off_recommended: float | None
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)
- 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
- export_simulink_loss_model(r_g_on: Optional[float] = None, r_g_off: Optional[float] = None, v_supply: Optional[float] = None, normalize_t_to_v: float = 10) None
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
- 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
- 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
- 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
- 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