PulsimCore Documentation¶
PulsimCore Backend
High-performance power-electronics simulation backend with a Python-first runtime, versioned YAML netlists, mixed electrical-and-control domains, and a 50-bench closed-loop regression dashboard.
Recommended surface: import pulsim + schema: pulsim-v1.
What's in the box¶
-
:material-circle-multiple-outline: 30+ electrical components
Resistors, capacitors, inductors, mosfets (smooth Shichman-Hodges), IGBTs, diodes, transformers, coupled inductors, saturable inductors, fuses, breakers, relays, thyristors, triacs — every parameter, default, and unit documented.
-
:material-graph-outline: 30+ virtual control blocks
PWM generators, PI / PID, integrators, Schmitt triggers, state-machines, lookup tables, transfer functions, Clarke / Park / PLL / SVM — all mixable in the same netlist, all addressable as channels (
chan:PI.output,chan:PLL.theta, …). -
:material-file-code-outline: Versioned YAML netlists
Schema
pulsim-v1is stable, validated, diffable, and round-trips through every backend (transient / shooting / harmonic balance / AC / FRA). YAML is the source of truth for the benchmark suite. -
:material-sine-wave: Mixed-domain runtime
Stamping electrical solver (MNA + trapezoidal / TR-BDF2 / Rosenbrock) runs alongside the control-block scheduler in a single simulator object. Switch events, duty callbacks, channel feedback — all in one Newton iteration.
-
:material-chart-bell-curve: AC sweep + FRA
Linearize around a periodic operating point, sweep frequency analytically (
run_ac_sweep) or via transient injection (run_fra_sweep). Both produce LinearSystem outputs you can compare to analytical Bode models. -
:material-thermometer: Electrothermal coupling
MOSFET / IGBT / BJT carry a
thermal:port; the runtime computes junction temperature alongside electrical state, and KPI helpers deriveT_j_max,Δ_T_j, and full Foster-network responses. -
:material-magnet: Magnetic fidelity
Saturable inductors with soft-knee L(I), SPICE-style mutual coupling, ideal transformers, and Steinmetz core-loss KPI for B(t) traces — all callable from YAML.
-
:material-speedometer: Quantitative KPIs
THD, power factor, efficiency, ripple p-p, rise/settling/overshoot, ZVS%, ZCS%, conduction + switching loss, Steinmetz core loss, and junction temperature — all wired into the benchmark runner with CI gates.
-
:material-cog-transfer-outline: Real-time codegen + FMI
Export a circuit as a C99 step function (
pulsim.codegen) or as an FMI 2.0 Co-Simulation FMU — for HIL targets, model exchange, or integration with Simulink / OpenModelica. -
:material-circuit-board: Domain libraries
Vendor MOSFET / IGBT presets, converter templates (buck / boost / full-bridge / LLC), seven motor families (DC, PMSM, PMSM-FOC, BLDC, 3φ and 1φ induction, mechanical), refrigeration compressor loads (Reciprocating / Rotary / Scroll, with a curated refrigerant table for R600a / R134a / R290 / R32 / R744), and three-phase grid primitives (sources, PLLs, grid-following + grid-forming inverters).
Catalog Devices · Converter Templates · Motor Models · Compressor + Refrigerant Load · Three-Phase Grid
-
:material-shield-check-outline: Benchmark dashboards
50 closed-loop benches, 80+ stress benches, ngspice/LTspice parity matrices, and a live SPICE parity dashboard — Pulsim is regression- tested on real topologies, not toy circuits.
-
:material-tools: Pro tooling
Parameter sweeps, property-based tests, automatic differentiation, a linear-solver cache, JFNK / GMRES / KLU / Pardiso solvers, and robust convergence policies.
Parameter Sweep · Property-Based Testing · Automatic Differentiation · Linear-Solver Cache
One-command sanity check¶
python3 -c "import pulsim as ps; print(ps.__version__)"
If that prints a version string, you're set. Otherwise see Getting Started → "Installation" or Troubleshooting.
Recommended learning path¶
- Getting Started — install, run an RC step, see the output CSV.
- Numerical Configuration — the four presets (
Auto/Fast/Robust/HighFidelity) that materialise a full tuning profile in one call. - User Guide — the canonical runtime flow.
- Netlist YAML Format — schema for your first real circuit.
- Components Reference + Control Blocks Reference — every block at your disposal.
- Examples and Results — run shipped scripts end-to-end.
- KPI Reference — score what you've built.
- Benchmarks and Parity — wire it into CI.
- API Reference — when you need to drop down past YAML.
Topic shortcuts¶
| If you're doing... | Read |
|---|---|
| First simulation — what numerical knobs to set | Numerical Configuration |
| Buck / boost / LLC / FB converter | Converter Templates, Catalog Devices |
| Multilevel (NPC, T-type, flying-cap, MMC) | Multilevel Converters, Numerical Configuration |
| Three-phase / motor drives / vector control | Three-Phase Grid, Motor Models, Control Blocks |
| Refrigeration / fridge / freezer compressor (CC convencional or inverter VCC) | Compressor + Refrigerant Load, Motor Models |
| Magnetics design (saturation, core loss) | Magnetic Models, KPI Reference |
| Thermal margin sizing | Electrothermal Workflow, KPI Reference |
| Closed-loop tuning | AC Analysis, FRA |
| HIL / embedded export | Code Generation, FMI Export |
| Comparing to PSIM / PLECS / ngspice / LTspice | Benchmarks and Parity, SPICE Parity Dashboard, GUI Backend Parity |
| Solver convergence problems | Convergence Tuning, Troubleshooting |