A growing set of interactive Jupyter notebooks for refreshing power electronics and power-converter design: the theory behind why things are done a certain way, paired with the design tools, tables, and live plots you actually reach for at the bench.
This is not a formal, complete course in power electronics, and it doesn't try to be. It's a personal set of refresher notes — the kind of thing you skim before starting a design, or revisit to remind yourself where a formula comes from and what assumptions hide behind it.
The aim is a blend of two things that usually live in separate books:
- Sound theory — derivations worked through step by step, the underlying assumptions made explicit, and topics connected to each other rather than treated in isolation.
- Practical design aids — interactive widgets, stress tables, FOM scorecards, and worked examples with numbers you can trace back to specs.
Think of it as a working reference, written to be honest about where the math is exact, where it's an approximation, and where it stops being reliable.
If a derivation rests on an assumption, the notes try to say so. If a model breaks down outside a certain regime, the notes try to flag it. The goal is intuition you can trust, not just equations to copy.
Someone with a minimum background in power electronics who wants to refresh and sharpen it — roughly a mid-experience electrical engineer preparing for or returning to converter design work. You don't need to be an expert, but you'll get the most out of it if switching converters, duty cycle, and basic AC circuit analysis aren't brand new to you.
Each topic lives in a single Jupyter notebook that mixes Markdown narrative with live Python:
- Markdown for theory, derivations, and commentary.
- Python for plots, interactive design tools, and rendered formulas.
Interactive elements use ipywidgets (sliders, checkboxes, auto-updating outputs) with Plotly for plotting, SymPy for symbolic derivations, and SchemDraw for inline circuit diagrams. Notebooks are written for Jupyter Notebook classic.
The end goal would be to create an open source and cross-platform ecosystem where theory and widget exploration are done on a decent number of PE topics. Also implementing ngspice integration is a goal (e.g. parametrize SPICE models for topologies or specific topics) .. ... BUT, at the moment I'm relying on LTSpice for validation. Free, but not open (and not cross-platform).
The fastest way to try it out is Binder — click the badge above and a live environment will spin up in your browser, no install required:
To run locally instead:
git clone https://github.com/GaetanoLongo/OpenPE.git
cd OpenPE
pip install -r requirements.txt
jupyter notebook
⚠️ Note on interactivity: the widgets and live plots are designed for Jupyter Notebook classic. Static HTML exports are provided for reading/markup, but the interactive controls won't work there. Some hosted environments (e.g. plain Colab) don't fully support the widget patterns used here.
| Module | Title | Notebooks |
|---|---|---|
| 0 | Foundations & Energy Processing Mindset | 4 |
| 1 | Analytical Framework | 7 |
| 2 | Control Theory for Power Converters | 6 |
| 3 | Topology Analysis & Design | 15 |
| 4 | Magnetics Design | 5 |
| 5 | Semiconductor Devices & Gate Drive | 6 |
| 6 | Power Factor Correction | 4 |
| 7 | Thermal Management & Reliability | 4 |
| 8 | EMI & Parasitics | 5 |
| 9 | Simulation Literacy | 4 |
| A–E | Reference Appendices | 5 |
Module 0 — Foundations & Energy Processing Mindset
00_00Introduction — energy routing mindset, three canonical primitives, course map00_01Volt-second & charge balance — M(D) for all three primitives, ripple equations00_02CCM/DCM boundary — the K parameter, boundary conditions, DCM gain00_03Ripple as a design variable — r trade-offs, L–C co-design, multiphase cancellation
Module 1 — Analytical Framework
01_00State-space averaging — derivation, validity limits, A/B matrices01_01Small-signal models — Gvd, Gvg, Zout; physical origin of the RHP zero01_02Circuit-averaged models — switch-network replacement, loss-free resistor01_03Canonical PWM switch model — Vorpérian's three-terminal model01_04Extra element theorem — null double injection, ESR zero01_05Impedance & port analysis — Zin, Zout, Middlebrook criterion01_06First harmonic approximation — why averaging fails for resonant; LLC gain via FHA
Module 2 — Control Theory for Power Converters
02_00Loop gain review — Bode, PM, GM02_01Voltage-mode control — modulator gain, Type II & III compensators02_02Current-mode control — subharmonic oscillation, slope compensation02_03Systematic compensator design — K-factor method, bandwidth selection02_04Digital control introduction — discretisation, computational delay, z-domain02_05Cascaded systems & stability — source/load Z interactions
Module 3 — Topology Analysis & Design
Each topology follows a consistent template: operating principles → M(D) → stress analysis → worst-case stress table → small-signal model → design procedure → FOM scorecard → control aspects → interactive tool → worked example.
03_00Topology analysis method03_01Synchronous buck03_02Boost03_03Buck-boost03_04SEPIC03_05Ćuk03_06Zeta03_07Flyback03_08Forward converter03_09Push-pull / half-bridge / full-bridge03_10Phase-shifted full bridge03_11LLC resonant03_12CLLC bidirectional03_13Dual active bridge03_14Multilevel converters
Module 4 — Magnetics Design
04_00Magnetic circuit fundamentals — reluctance, MMF, gapped cores, B–H04_01Core loss models — Steinmetz, iGSE, coefficient extraction04_02Inductor design — area-product method, winding loss (Dowell)04_03Transformer design — area product, leakage, interleaving04_04Coupled inductors — mutual inductance, zero-ripple, integrated magnetics
Module 5 — Semiconductor Devices & Gate Drive
05_00MOSFET switching transients — gate charge model, switching loss05_01IGBT characteristics — tail current, SCSOA, when to choose IGBT05_02SiC MOSFETs — dV/dt, gate threshold sensitivity, driver requirements05_03GaN HEMTs — lateral GaN, common-source inductance, no Qrr05_04Gate drive design — isolated supply, negative bias, dV/dt management05_05Bootstrap & isolated drivers — bootstrap limits, level shifting
Module 6 — Power Factor Correction
06_00PFC fundamentals — harmonic physics, THD, PF, displacement factor06_01Boost PFC (CCM) — average current-mode control, zero-crossing distortion06_02Totem-pole bridgeless PFC — GaN preference, loss reduction06_03CrM/BCM PFC — variable frequency, ZVS at zero-crossing
Module 7 — Thermal Management & Reliability
07_00Thermal network fundamentals — Rth, Cth, transient Zth, Cauer vs Foster07_01Junction temperature calculation — steady-state and pulsed Tj via Zth(t)07_02Heatsink selection — convection, PCB copper as heatsink, TIM impact07_03Derating & reliability — MTBF, electrolytic cap lifetime (Arrhenius)
Module 8 — EMI & Parasitics
08_00EMI fundamentals — CM vs DM, conducted vs radiated, LISN, CISPR 3208_01Noise source modeling — switching node spectrum, parasitic C paths08_02Filter design — DM filter, CM choke, filter-converter interaction08_03Layout as circuit design — loop area, commutation inductance, return paths08_04Snubber design — RC, RCD, active clamp
Module 9 — Simulation Literacy
09_00SPICE for power converters — time-step, convergence, ideal vs behavioural09_01Averaged models in SPICE — Bode from AC sim vs switching sim09_02Python as a simulation tool — scipy.signal, SymPy, scipy.integrate09_03Validation strategies — red flags, averaged vs switching disagreement
Appendices
ALaplace & transfer functionsBBode plot constructionCComponent stress referenceDDesign checklistsEMaterial & component reference
This is a work in progress, built one notebook at a time. Modules and notebooks will appear gradually — the table above is the planned scope, not a snapshot of what's already finished. Check the notebook folders to see what's currently available.
These are personal refresher notes shared in case they're useful to others. They aim to be careful and honest, but they're not peer-reviewed and they're not a substitute for the textbooks and application notes they draw on (which are cited inline where relevant). If you spot an error, corrections are welcome.
See the LICENSE file for details.