Power Electronics Tools

AI-mag: Magnetics with Machine Learning

Project Website
MATLAB/Python/COMSOL - BSD License
ETH Zurich / PES Project

AI-mag is a MATLAB software (using also COMSOL and Python) for power electronic inductor optimization. The goal of this tool is to combine the accuracy of the Finite Element Method (FEM) with the evaluation speed of Artificial Neural Network (ANN). The software can compute 500000 designs per second with less than 3% deviation with respect to 3D FEM simulations.

Power Magnetics: Model and Optimization

GitHub Repository
MATLAB toolbox - BSD License
Personal Project

MATLAB toolbox for modeling and optimizing power magnetics (inductors and transformers). Fast and accurate semi-numerical methods are used (mirroring method, skin and proximity losses, reluctance model, fringing field, core loss map, etc.). The complete code is object-oriented and can be easily extended with abstract classes.

Magnetic Mirroring Method

GitHub Repository
MATLAB library - BSD License
ETH Zurich / PES Project

This MATLAB library is a complete implementation of the magnetic mirroring method also known as method of images. This tool can compute magnetic field pattern, the inductance matrix, and the energy of 2D conductors surrounded by a magnetic core. This is useful for designing inductors and transformers.

Litz Wire Losses with FEM

GitHub Repository
MATLAB library - BSD License
ETH Zurich / PES Project

This MATLAB library extracts the losses of a litz wire winding from the field patterns. The losses are computed in the frequency domain with Bessel functions. The field patterns can be extracted with any simulation software (e.g. COMSOL, ANSYS, OpenFOAM). This is useful for designing inductors and transformers.

Litz Wire Homogenization

GitHub Repository
MATLAB/COMSOL library - BSD License
ETH Zurich / PES Project

This MATLAB/COMSOL library extracts homogenized material parameters for a litz wire. This means that a complex litz wire, which is composed of many strands, can be replaced with a homogeneous material. This virtual material parameters are defined such that the energy and losses match the stranded litz wire.

Extracting Resistance/Inductance Matrices

GitHub Repository
MATLAB library - BSD License
Personal Project

MATLAB library for extracting resistance/inductance matrices from measurements or simulations. Different excitations (currents) are provided with the associated losses/energies and the matrix is extracted. The code supports overdetermined equation systems.

Impedance Analyzer 4294A

GitHub Repository
MATLAB library - BSD License
ETH Zurich / PES Project

MATLAB library that offers different functions for working with the HP/Agilent/Keysight 4294A impedance analyzer. More specifically, the tool can read the files produced by the device and compute the measurement tolerances.

FuG Source Remote Control

GitHub Repository
Python script - BSD License
ETH Zurich / PES Project

This Python class remote control power sources from FuG Elektronik GmbH over ethernet. You can connect to the power source, enable/disable, set the values (voltage and current), and read the values (voltage and current).

NI-DAQmx Control

GitHub Repository
Python script - BSD License
ETH Zurich / PES Project

This Python class controls USB NI data acquisition cards. You can connect to the device and read and write data. The class handles both analog and digital signals. This class was tested with the NI-6215 card for should work with other models.

Lecroy Scope Control

GitHub Repository
Python script - BSD License
ETH Zurich / PES Project

This Python class remote controls Lecroy WaveSurfer oscilloscopes. You can connect to the device, set up the channels, control the trigger, download a screenshot, and download the waveform data. This class was tested with the WaveSurfer 24MXs oscilloscope for should work with other models.