Thomas Guillod

Engineering Consulting

About Me

Hi, my name’s Thomas and I am a power electronics engineer and research scientist. I studied at ETH Zurich (Master, Ph.D, and Postdoc) and my current research interests include MV converters, high-frequency magnetic components, optimization algorithms, and numerical methods.

In parallel with my engineering and research activities, I am developing several open softwares and libraries, mostly for science, engineering, and numerical analysis. Most of these codes are written either in MATLAB or Python. Some tools are very specific for my reasearch but others might be more useful.

Here is my Curriculum Vitae, my Linkedin Profile, my GitHuB Profile, and my Email.

Engineering Consulting

I am offering engineering consulting services in the fields of power electronics, high voltage technology, magnetic component design, numerical simulations, system optimization, scientific software development, etc.

More particularly, the following services are offered:

  • Theoretical exploratory analysis and/or design of specific components.
  • Characterization, debugging, and/or optimization of existing systems.
  • Tutorial and training sessions on specific topics.

Don't hesitate to contact me if you are interested: Email and Linkedin Profile.

Science Tools

FEM Mesh Toolbox

GitHub Repository

MATLAB toolbox - BSD License
Personal Project

MATLAB toolbox for handling 2D and 3D FEM meshes. You can plot plot the mesh, plot scalar field, plot vector field, integrate data, interpolate data, etc. This library is meant for FEM simulations but can also be used for geographic information system or additive manufacturing.

Multi Objective Optimization

GitHub Repository

MATLAB toolbox - BSD License
ETHZ PES Copyright

MATLAB toolbox for multi-objective optimization. This toolbox offer a common interface for brute-force grid search, single-objective genetic algorithm, and multi-objective genetic algorithm. Different functionalities are offered: continuous variables, discrete variables, variable scaling, constraint handling, vectorized and parallel evaluation, etc.

Fourier Series Library

GitHub Repository

MATLAB library - BSD License
Personal Project

Simple MATLAB library offering an abstraction layer for handling Fourier series for continuous signal. The transformation and inverse transformation are implemented with FFTs. The spectrum are properly scaled and truncated.

Parallel Coordinates Plot

GitHub Repository

MATLAB library - BSD License
ETHZ PES Copyright

Simple MATLAB library for making parallel parallel coordinates plots with paper quality.Parallel coordinates plots allows the visualization of high-dimensional data. The tool can handle large datasets.

ETHZ Euler Cluster Scripts

GitHub Repository

Bash/MATLAB scripts - BSD License
Personal Project

Simple tutorial explaining how to use the ETHZ EULER high performance computing cluster with parallelized MATLAB simulations. This tutorial does not require any prior knowledge of Linux systems and clusters.

BibTeX with Link and DOI

GitHub Repository

BibTeX /LaTeX scripts - LPPL License
Personal Project

This modified IEEEtran.bst BibTeX style offers some extension: linking a PDF file, linking an URL, linking a DOI (Digital Object Identifier). This BibTeX style was written for my Ph.D thesis and does not cover all the other entries offered by IEEEtran.bst.

Power Electronics Tools

MATLAB/Python/COMSOL - BSD License
ETHZ PES Copyright

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.

Magnetic Mirroring Method

GitHub Repository

MATLAB toolbox - BSD License
ETHZ PES Copyright

This MATLAB toolbox 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
ETHZ PES Copyright

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
ETHZ PES Copyright

This MATLAB/COMSOL libray 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 matches the stranded litz wire.

Impedance Analyzer 4294A

GitHub Repository

MATLAB library - BSD License
ETHZ PES Copyright

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
ETHZ PES Copyright

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
ETHZ PES Copyright

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
ETHZ PES Copyright

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.

Hobby Projects

Laser Cut Slicer

GitHub Repository

MATLAB toolbox - BSD License
Personal Project

This MATLAB toolbox helps you to realize a 3d object with stacked laser cut plates. Extract the interesection of a 3d STL object and a cut plane, visualize, and export the results as PDF. Create 3d meshed parts from 2d parts, assemble the plates into a 3d contruction, and visualize.

2D Mesh from Bitmap

GitHub Repository

MATLAB library - BSD License
Personal Project

This MATLAB code generates a mesh from a black and white bitmap image. Find the contour, simplify the contour, and mesh the shape. It is possible to handle of holes and multiple domains.

YAML Extension

GitHub Repository

Python script - BSD License
Personal Project

This Python class offers three extensions to the YAML format. Including a YAML file inside a YAML file (link), including relative filesystem path links, and parsing simple Python expressions.

Lord of the Rings Map

GitHub Repository

Flash software - GPL License
Personal Project

This is a interactive Lord of the Rings Map. I wrote this software in 2005 as a teenager. The software is written in Flash MX 2004/ActionScript 2.0. Therefore, it is probably impossible to open and edit the software with modern tools.