Transistor Database
Project description
transistordatabase (TDB)
Import/export and manage transistor data in the transistor database.
Functionality examples:
- digitize transistor datasheet parameters and graphs and save it to the TDB
- use this data for calculations in python (e.g. some loss calulations for a boost-converter)
- export this data to matlab for calculations in matlab
- export transistors to GeckoCIRCUITS simulation program
1. Installation
1.1 Install Mongodb
For the first usage, you need to install mongodb. Windows Use the MongoDB community server, as platform, choose windows. Link
Archlinux / Manjaro (AUR):
sudo pacman -Syu mongodb-bin
1.2 Install the transitor database
We recommend to use pycharm. Navigate to file -> settings -> Project -> Python Interpreter -> add: transistordatabase
2 transistordatabase's usage
Import transistordatabase to your python program
import transistordatabase as tdb
2.1 Generate a new transistor
2.1.1 transistor object basics
Transistor
|
+-Metadata
|
+-Switch
| +-Switch Metadata
| +-Channel Data
| +-Switching Data
|
+-Diode
| +-Switch Metadata
| +-Channel Data
| +-Switching Data
+-wp (temporary storage for further calculations)
2.1.2 reading curves from the datasheet
For reading datasheet curves, use the tool WebPlotDigitizer. There is a online-version available. Also you can download it for Linux, Mac and Windows. WebPlotDigitizer is open source software.
2.1.3 Use the template to generate a new transistor object
After digizing the curves, you can use a template to generate a new transistor object and store it to the database. For this, see the template
Some hints to fill the template:
- Fuji housing overview https://www.fujielectric.com/products/semiconductor/model/igbt/2pack.html
2.2 Update transistors from file exchange
There is a file exchange to share transistor objects. The repository can be found here. To update your local transistordatabase type in to your python code
tdb.update_from_fileexchange()
After this, you can find new or updated transistor files in your local transistordatabase.
2.3 Load a transistor from the database
transistor_loaded = tdb.load({'name': 'CREE_C3M0016120K'})
2.3 Use Transistor.wp. for usage in your programs
There is a subclass .wp. you can fill for further program calculations.
# calculate energy and charge in c_oss
t_ib.wp.e_oss = t_ib.calc_v_eoss()
t_ib.wp.q_oss = t_ib.calc_v_qoss()
# switch, linearize channel and search for losscurves
t_ib.wp.switch_v_channel, t_ib.wp.switch_r_channel = t_ib.calc_lin_channel(150, 15, 150, 'switch')
t_ib_ts_s_e_on = t_ib.get_object_i_e('e_on', 125, 15, t_ib_ts_v_losscurve, 2.7).graph_i_e
t_ib_ts_s_e_off = t_ib.get_object_i_e('e_off', 125, -15, t_ib_ts_v_losscurve, 2.7).graph_i_e
# diode, linearize channel and search for losscurves
t_ib.wp.diode_v_channel, t_ib.wp.diode_r_channel = t_ib.calc_lin_channel(150, 15, 150, 'diode')
t_ib_ts_d_e_rr = t_ib.get_object_i_e('e_rr', 125, 15, t_ib_ts_v_losscurve, 2.7).graph_i_e
3. Roadmap
Planned features in 2021
- show a virtual datasheet of a transistor
- exporters to a few programs, e.g. Simulink, GeckoCIRCUITS, PLECs, ...
- save measurement data from double pulse measurements in the transistor database
- compare resistors within the database (e.g. compare measurements wit datasheet values, or compare datasheet values for transistor A with transistor B)
- provide a pip package
4. Organisation
4.1 Bug Reports
Please use the issues report button within github to report bugs.
4.2 Changelog
Find the changelog here
4.3 Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. For contributing, please refer to this section.
4.4 Authors and acknowledgement
Actual developers
- Nikolas Förster
- Manuel Klädtke
- Henning Steinhagen
Project leading
- Nikolas Förster
- Philipp Rehlaender
Developers in the past
4.5 License
4.6 History and project status
This project started in 2020 as a side project and was initially written in matlab. It quickly became clear that the project was no longer a side project. The project should be completely rewritten, because many new complex levels have been added. To place the project in the open source world, the programming language python is used.
In january 2021 a very early alpha status is reached. First pip package is provided in may 2021.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.2.1 - 2021-05-06
Bugfix
- Problem when reading .csv-files generated by english-language systems
0.2.0 - 2021-05-04
Added
- Example template to generate a transistor object
- transistor method: linearize_switch_ui_graph
- transistor.switch methods: print_all_channel_data, print_channel_data_vge, print_channel_data_temp
- New class LinearizedModel: Contains data for a linearized Switch/Diode depending on given operating point.
- New class to store c_iss, c_oss, c_rss in Transistor.
- New Transistor attribute: e_coss
- Documentation drawing
- Exporter: GeckoCIRCUITS
- calc_object_i_e to calculate loss loss curves for other gate resistors/voltage levels
- New class 'wp' to store local calculation parameters to use in your program
- automatically fill 'wp' objects when using functions like find_approx_wp()
- added a quick start to fill in 'wp' values quick and easy
- New housing types
- .json exporter
Removed
- Removed Metadata class. Added its attributes to Transistor class instead
Changed
- Restructured foster thermal model argument handover
- Rename package to transistordatabase (instead of transistor_database) due to pip package rules
- csv2array callable with options
- move some functionality out of transistor class (tdb.Transistor. -> tdb.)
0.1.0 - 2021-02-04
Added
- Construct a Transistor-object and save relevant data in its attributes and subclasses
- Class structure documented in a class UML diagram
- Save Transistor-object in an object database created with mongodb
- Mandatory attributes and restricted types/values to guarantee only valid and functional Transistors can be added to the database
- Matlab-Exporter
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for transistordatabase-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99613012b3df214b14bf6af3be63756858eb10dee1d58e260de9f364bdfa3dc8 |
|
MD5 | c084d9c61aab1dff194856b4119003d4 |
|
BLAKE2b-256 | 26166fbdf0bf327f2fa76b4bcd00445ecf923ad6de8f58b23e45d8a90593d4a4 |