Skip to content
Power Electronics

power-electronics-ai999x

DC-DC converters in continuous and discontinuous conduction (buck, boost, buck-boost, Cuk, SEPIC, flyback, forward, bridge), rectifiers and phase control, inverters and PWM, motor drives, device losses, snubbers, thermal and magnetic design and resonant converters.

79capabilities
13topics
79formulas typeset
4ways to run: desktop app, command line, browser, Python
1.0.0version
What it does

What Power Electronics does

Power Electronics (power-electronics-ai999x) is an offline Python package for power electronics. It covers DC-DC converters in continuous and discontinuous conduction (buck, boost, buck-boost, Cuk, SEPIC, flyback, forward, bridge), rectifiers and phase control, inverters and PWM, motor drives, device losses, snubbers, thermal and magnetic design and resonant converters.

It has 79 capabilities — 79 computational procedures — in 13 topics, the largest being DC-DC converters, Rectifiers, Devices, Motor drives, Magnetics and Inverters. Ask a question in words with ask(), or call a capability by name with typed inputs with solve(). Every answer carries its value and unit, the steps that produced it and the formula in LaTeX.

When a question is not determined — a value is missing, an input is out of range, or the request is outside the package — it says so and names what it needs, instead of guessing. It runs on an ordinary CPU without a network connection (Python >=3.10), and the same question always gets the same answer.

What it covers

Control2Control-to-output transfer function of a DC-DC converter · Peak current mode: subharmonic stability and slope compensationDC-DC converters15Boost converter in continuous conduction · Boost converter in discontinuous conduction · Boost converter output voltage ripple …Devices9Bootstrap capacitor for a high-side gate driver · Current sharing between paralleled MOSFETs · Diode reverse-recovery charge and losses …Front ends2Boost power-factor-correction stage · Hold-up (bulk) capacitorInverters7Inverter dead-time voltage error · Quasi-square-wave (phase-shifted) full-bridge inverter · Sinusoidal PWM: fundamental output voltage …Isolated converters4Flyback converter in continuous conduction · Flyback magnetizing inductance for discontinuous conduction · Forward converter with reset winding …Losses3Boost converter with inductor resistance: gain and efficiency · Buck converter efficiency with conduction and switching losses · IGBT and diode conduction losses in a sinusoidal PWM inverterMagnetics8Core loss by the Steinmetz equation · Core loss under triangular flux (iGSE) · Gapped-core inductor: turns and air gap …Motor drives9Armature current ripple of a chopper-fed DC motor · BLDC motor with six-step (120 degree) drive · Chopper-fed separately excited DC motor: speed and torque …Power quality3Average and RMS of a rectangular pulse train · Power factor with harmonic distortion · Total harmonic distortion from harmonic valuesRectifiers11Capacitor-input rectifier filter: exact ripple and peak diode current · Commutation overlap in a single-phase thyristor bridge · Commutation overlap in a three-phase thyristor bridge …Resonant converters3Dual active bridge: power transfer and inductor current · LLC resonant converter: tank gain (first harmonic) · Series resonant converter: tank gain (first harmonic)Thermal3Junction temperature under periodic power pulses · Several power devices on one heat sink · Transient thermal impedance of a Foster network
Get it

Use Power Electronics your way

The AI999X desktop app and the command-line program power-electronics run on Windows and Linux; together with the browser they run the same compiled program on your own device: offline, with no Python and nothing sent anywhere. The Python package gives the same capabilities in your own code. Or compute in your browser, with nothing to install.

Desktop app

Desktop app for Power Electronics: this model in its own app, with search, ask in words, input forms, live figures and explanations. Version 1.2.0.

All models in one app · every AI999X model, this one included

Install guide · Quick start · All models: quick start

Command line

Every model's program in one download, for terminals and scripts. This model's program is power-electronics.

Linux commands · Windows commands · Usage

Python

The Python package, for notebooks and your own programs (Python 3.10 or newer).

pip install power-electronics-ai999x

Examples · Python guide

Version 1.2.0 · SHA-256 checksums · Latest downloads · Desktop & command-line guide: downloads, installing, asking and searching, figures, offline use, versions and checksums

From download to first answer

Every command can be copied.

Windows

Download ai999x-power-electronics-1.2.0-windows-x86_64.zip, right-click it → Extract All, then open the folder and start ai999x-power-electronics.exe. If Windows SmartScreen asks, choose More info → Run anyway.

Linux
curl -LO https://www.ai999x.com/downloads/desktop/1.2.0/ai999x-power-electronics-1.2.0-linux-x86_64.tar.gz
curl -LO https://www.ai999x.com/downloads/desktop/1.2.0/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS
tar xzf ai999x-power-electronics-1.2.0-linux-x86_64.tar.gz
./ai999x-power-electronics-1.2.0-linux-x86_64/ai999x-power-electronics
Then
  1. Start the app: it opens on Power Electronics.
  2. Type a question in words, or search for a capability and fill in its form.
  3. Press Compute: the answer, its explanation and live figures appear; change an input and they follow.
In your browser

Compute something now

Ask a question in words, or choose a capability and open its calculator: the inputs come filled in with a worked example; change any of them (any unit of the right kind) and press Compute. It runs on your device; nothing is sent anywhere.

The same capabilities as the desktop app and the command line, as WebAssembly in this page. Every capability below also has its own Compute in your browser button.

Worked examples

One example, every way to run it

Each worked example with its answer, then the same question on the command line, from Python and in your browser. A command-line output is exactly what the program printed for that command.

DC-DC converters

Buck converter in CCM: Vin = 24 V, Vout = 5 V, L = 22 uH, fs = 200 kHz, Io = 3 A

D = \frac{V_o}{V_{in}},\quad \Delta i_L = \frac{(V_{in}-V_o)D}{L f_s},\quad I_{L,\max/\min} = I_o \pm \tfrac{\Delta i_L}{2}
D = 0.2083333333
dIL = 0.8996212121 A
IL_max = 3.449810606 A
IL_min = 2.550189394 A
ripple_ratio = 0.2998737374
Iin = 0.625 A
How it was worked out
  1. Buck converter in continuous conduction
    D = \frac{V_o}{V_{in}},\quad \Delta i_L = \frac{(V_{in}-V_o)D}{L f_s},\quad I_{L,\max/\min} = I_o \pm \tfrac{\Delta i_L}{2}
    with Vin = 24 V, Vout = 5 V, L = 22 uH, fs = 200 kHz, Io = 3 A
    → D = 0.2083333333 A, dIL = 0.8996212121 A, IL_max = 3.449810606 A, IL_min = 2.550189394 A, ripple_ratio = 0.2998737374 A, Iin = 0.625 A
Terminal
$ power-electronics solve pe_buck_ccm "Vin=24 V" "Vout=5 V" "L=22 uH" "fs=200 kHz" "Io=3 A"
D = 0.2083333333
dIL = 0.8996212121 A
IL_max = 3.449810606 A
IL_min = 2.550189394 A
ripple_ratio = 0.2998737374
Iin = 0.625 A
  by: Buck converter in continuous conduction  (D = Vout/Vin; dIL = (Vin - Vout) D/(L fs); IL = Io; IL_max,min = Io +- dIL/2; Iin = D Io)
  Vin = 24 V
  Vout = 5 V
  L = 2.2e-05 H
  fs = 200000 Hz
  Io = 3 A
  assumes: 0 < Vout < Vin; continuous conduction (IL_min > 0)
Rectifiers

Three-phase controlled rectifier: VLL = 415 V, alpha = 45 deg, Id = 50 A

V_{dc} = \frac{3\sqrt2 V_{LL}}{\pi}\cos\alpha,\quad I_{s,rms} = \sqrt{\tfrac23}\,I_d
Vdc = 396.2958083 V
Vrms = 415 V
P = 19814.79041 W
I_thy_avg = 16.66666667 A
I_thy_rms = 28.86751346 A
Is_rms = 40.82482905 A
How it was worked out
  1. Three-phase fully controlled thyristor bridge
    V_{dc} = \frac{3\sqrt2 V_{LL}}{\pi}\cos\alpha,\quad I_{s,rms} = \sqrt{\tfrac23}\,I_d
    with VLL = 415 V, alpha = 45 deg, Id = 50 A
    → Vdc = 396.2958083 V, Vrms = 415 V, P = 19814.79041 W, I_thy_avg = 16.66666667 A, I_thy_rms = 28.86751346 A, Is_rms = 40.82482905 A, mode = rectifying V
Terminal
$ power-electronics solve pe_three_phase_controlled_rectifier "VLL=415 V" "alpha=45 deg" "Id=50 A"
Vdc = 396.2958083 V
Vrms = 415 V
P = 19814.79041 W
I_thy_avg = 16.66666667 A
I_thy_rms = 28.86751346 A
Is_rms = 40.82482905 A
mode = rectifying
  by: Three-phase fully controlled thyristor bridge  (Vdc = 3 sqrt(2) VLL cos(alpha)/pi; Vrms = Vm sqrt(1/2 + 3 sqrt(3) cos(2 alpha)/(4 pi)); I_thy = Id/3 (avg), Id/sqrt(3) (rms))
  VLL = 415 V
  alpha = 0.7853981634 rad
  Id = 50 A
  assumes: 0 <= alpha < 180 degrees; continuous constant current, no source inductance
Inverters

Space vector dwell times: Vref = 200 V, theta = 25 deg, Vdc = 600 V, fs = 10 kHz

T_1 = \frac{\sqrt3 T_s V_{ref}}{V_{dc}}\sin\!\left(\tfrac{\pi}{3}-\theta'\right),\quad T_2 = \frac{\sqrt3 T_s V_{ref}}{V_{dc}}\sin\theta',\quad T_0 = T_s – T_1 – T_2
sector = 1
T1 = 3.311545099e-05 s
T2 = 2.439987672e-05 s
T0 = 4.248467229e-05 s
m = 0.5773502692
How it was worked out
  1. Space-vector modulation dwell times
    T_1 = \frac{\sqrt3 T_s V_{ref}}{V_{dc}}\sin\!\left(\tfrac{\pi}{3}-\theta'\right),\quad T_2 = \frac{\sqrt3 T_s V_{ref}}{V_{dc}}\sin\theta',\quad T_0 = T_s – T_1 – T_2
    with Vref = 200 V, theta = 25 deg, Vdc = 600 V, fs = 10 kHz
    → sector = 1 s, T1 = 3.311545099e-05 s, T2 = 2.439987672e-05 s, T0 = 4.248467229e-05 s, m = 0.5773502692 s
Terminal
$ power-electronics solve pe_space_vector_times "Vref=200 V" "theta=25 deg" "Vdc=600 V" "fs=10 kHz"
sector = 1
T1 = 3.311545099e-05 s
T2 = 2.439987672e-05 s
T0 = 4.248467229e-05 s
m = 0.5773502692
  by: Space-vector modulation dwell times  (T1 = sqrt(3) Ts Vref/Vdc sin(60 deg - theta'), T2 = sqrt(3) Ts Vref/Vdc sin(theta'), T0 = Ts - T1 - T2, theta' = angle within the sector)
  Vref = 200 V
  theta = 0.436332313 rad
  Vdc = 600 V
  fs = 10000 Hz
  assumes: inside the hexagon (T1 + T2 <= Ts)
Isolated converters

Flyback converter in continuous conduction

\frac{V_o}{V_{in}} = \frac{1}{n}\frac{D}{1-D},\quad I_m = \frac{I_o}{n(1-D)},\quad \Delta i_m = \frac{V_{in}D}{L_m f_s}
D = 0.3333333333
Im = 1.5 A
dIm = 0.8 A
Ipk_primary = 1.9 A
Ipk_secondary = 3.8 A
V_switch = 72 V
How it was worked out
  1. Flyback converter in continuous conduction
    \frac{V_o}{V_{in}} = \frac{1}{n}\frac{D}{1-D},\quad I_m = \frac{I_o}{n(1-D)},\quad \Delta i_m = \frac{V_{in}D}{L_m f_s}
    with Vin = 48 V, Vout = 12 V, n = 2, Lm = 0.0002 H, fs = 100000 Hz, Io = 2 A
    → D = 0.3333333333, Im = 1.5 A, dIm = 0.8 A, Ipk_primary = 1.9 A, Ipk_secondary = 3.8 A, V_switch = 72 V, V_diode = 36 V
Terminal
$ power-electronics solve pe_flyback_ccm "Vin=48 V" "Vout=12 V" n=2 "Lm=200 uH" "fs=100 kHz" "Io=2 A"
D = 0.3333333333
Im = 1.5 A
dIm = 0.8 A
Ipk_primary = 1.9 A
Ipk_secondary = 3.8 A
V_switch = 72 V
V_diode = 36 V
  by: Flyback converter in continuous conduction  (D = n Vo/(Vin + n Vo); Im = Io/(n (1 - D)); dIm = Vin D/(Lm fs))
  Vin = 48 V
  Vout = 12 V
  n = 2
  Lm = 0.0002 H
  fs = 100000 Hz
  Io = 2 A
  assumes: continuous conduction of the magnetizing current; no leakage inductance
Magnetics

Steinmetz core loss: k = 3.2, alpha = 1.4, beta = 2.5, f = 100 kHz, Bpk = 100 mT, Vc = 5 cm^3

P_v = k f^{\alpha} \hat B^{\beta}
Pv = 101192.8851 W/m^3
Pv_mW_cm3 = 101.1928851
P = 0.5059644256 W
How it was worked out
  1. Core loss by the Steinmetz equation
    P_v = k f^{\alpha} \hat B^{\beta}
    with k = 3.2, alpha = 1.4, beta = 2.5, f = 100 kHz, Bpk = 100 mT, Vc = 5 cm^3
    → Pv = 101192.8851 W/m^3, Pv_mW_cm3 = 101.1928851 W/m^3, P = 0.5059644256 W
Terminal
$ power-electronics solve pe_steinmetz_core_loss k=3.2 alpha=1.4 beta=2.5 "f=100 kHz" "Bpk=100 mT" "Vc=5 cm^3"
Pv = 101192.8851 W/m^3
Pv_mW_cm3 = 101.1928851
P = 0.5059644256 W
  by: Core loss by the Steinmetz equation  (Pv = k f^alpha Bpk^beta; P = Pv Vc)
  k = 3.2
  alpha = 1.4
  beta = 2.5
  f = 100000 Hz
  Bpk = 0.1 T
  Vc = 5e-06 m^3
  assumes: sinusoidal flux, within the parameters' fitted range
Control

Converter small-signal model: topology = boost, Vin = 12 V, D = 0.5, L = 50 uH, C = 100 uF, R = 10 ohm

G_{vd}(s) = G_{d0}\frac{1 – s/\omega_z}{1 + s/(Q\omega_0) + (s/\omega_0)^2},\quad \omega_{z,boost} = \frac{D'^2R}{L}
Gvd0 = 48 V
f0 = 1125.395395 Hz
Q = 7.071067812
f_rhpz = 7957.747155 Hz
rhp_zero = present
How it was worked out
  1. Control-to-output transfer function of a DC-DC converter
    G_{vd}(s) = G_{d0}\frac{1 – s/\omega_z}{1 + s/(Q\omega_0) + (s/\omega_0)^2},\quad \omega_{z,boost} = \frac{D'^2R}{L}
    with topology = boost, Vin = 12 V, D = 0.5, L = 50 uH, C = 100 uF, R = 10 ohm
    → Gvd0 = 48 V, f0 = 1125.395395 Hz, Q = 7.071067812 Hz, f_rhpz = 7957.747155 Hz, rhp_zero = present Hz
Terminal
$ power-electronics solve pe_converter_small_signal topology=boost "Vin=12 V" D=0.5 "L=50 uH" "C=100 uF" "R=10 ohm"
Gvd0 = 48 V
f0 = 1125.395395 Hz
Q = 7.071067812
f_rhpz = 7957.747155 Hz
rhp_zero = present
  by: Control-to-output transfer function of a DC-DC converter  (buck: Gvd0 = Vin, w0 = 1/sqrt(LC), Q = R sqrt(C/L); boost: Gvd0 = Vin/D'^2, w0 = D'/sqrt(LC), Q = D' R sqrt(C/L), wz = D'^2 R/L; buck-boost: wz = D'^2 R/(D L))
  Vin = 12 V
  D = 0.5
  L = 5e-05 H
  C = 0.0001 F
  R = 10 ohm
  topology = boost
  assumes: ideal converter in continuous conduction, no ESR
Devices

Bootstrap capacitor: Qg = 60 nC, Ileak = 200 uA, fs = 100 kHz, Dmax = 0.9, dV = 0.5 V

C_{boot} \ge \frac{Q_g + I_{lk}D_{max}/f_s}{\Delta V}
Q_total = 6.18e-08 C
C_min = 1.236e-07 F
C_recommended = 1.236e-06 F
How it was worked out
  1. Bootstrap capacitor for a high-side gate driver
    C_{boot} \ge \frac{Q_g + I_{lk}D_{max}/f_s}{\Delta V}
    with Qg = 60 nC, Ileak = 200 uA, fs = 100 kHz, Dmax = 0.9, dV = 0.5 V
    → Q_total = 6.18e-08 C, C_min = 1.236e-07 F, C_recommended = 1.236e-06 F
Terminal
$ power-electronics solve pe_bootstrap_capacitor "Qg=60 nC" "Ileak=200 uA" "fs=100 kHz" Dmax=0.9 "dV=0.5 V"
Q_total = 6.18e-08 C
C_min = 1.236e-07 F
C_recommended = 1.236e-06 F
  by: Bootstrap capacitor for a high-side gate driver  (Q = Qg + I_leak Dmax/fs; C_min = Q/dV)
  Qg = 6e-08 C
  Ileak = 0.0002 A
  fs = 100000 Hz
  Dmax = 0.9
  dV = 0.5 V
  assumes: the capacitor recharges fully while the low side is on
Front ends

Boost PFC stage: Vac = 230 V, f_line = 50 Hz, Vo = 400 V, Po = 500 W, eff = 0.95, L = 500 uH, fs = 65 kHz, C = 330 uF

\Delta i_L(v) = \frac{v\,(1-v/V_o)}{Lf_s},\quad \Delta i_{L,max} = \frac{V_o}{4Lf_s},\quad \Delta V_o = \frac{P_o}{2\pi f_{line}CV_o}
I_in_pk = 3.236186642 A
D_peak = 0.1868272016
dI_peak = 1.869819057 A
dI_max = 3.076923077 A
IL_at_peak = 4.17109617 A
dVo_pp = 12.05719266 V
How it was worked out
  1. Boost power-factor-correction stage
    \Delta i_L(v) = \frac{v\,(1-v/V_o)}{Lf_s},\quad \Delta i_{L,max} = \frac{V_o}{4Lf_s},\quad \Delta V_o = \frac{P_o}{2\pi f_{line}CV_o}
    with Vac = 230 V, f_line = 50 Hz, Vo = 400 V, Po = 500 W, eff = 0.95, L = 500 uH, fs = 65 kHz, C = 330 uF
    → I_in_pk = 3.236186642 A, D_peak = 0.1868272016 A, dI_peak = 1.869819057 A, dI_max = 3.076923077 A, IL_at_peak = 4.17109617 A, dVo_pp = 12.05719266 V
Terminal
$ power-electronics solve pe_boost_pfc "Vac=230 V" "f_line=50 Hz" "Vo=400 V" "Po=500 W" eff=0.95 "L=500 uH" "fs=65 kHz" "C=330 uF"
I_in_pk = 3.236186642 A
D_peak = 0.1868272016
dI_peak = 1.869819057 A
dI_max = 3.076923077 A
IL_at_peak = 4.17109617 A
dVo_pp = 12.05719266 V
  by: Boost power-factor-correction stage  (Ipk = 2 Po/(eff Vpk); dI(v) = v (1 - v/Vo)/(L fs), largest at v = Vo/2; dVo = Po/(2 pi f_line C Vo))
  Vac = 230 V
  f_line = 50 Hz
  Vo = 400 V
  Po = 500 W
  eff = 0.95
  L = 0.0005 H
  fs = 65000 Hz
  C = 0.00033 F
  assumes: unity power factor, continuous conduction; Vo > sqrt(2) Vac; small output ripple
Command line

Use it from the command line

Every command below was run as shown, and the text under it is exactly what power-electronics printed. The same commands work in a Linux terminal and in Windows PowerShell. Install it in a minute. The user guide covers install, inputs, outcomes, scripting, and every capability with a command and what it printed: PDF · text.

1

Check the install

Prints the model, its version and that this is the Rust build.

Terminal
$ power-electronics --version
power-electronics-ai999x 1.0.0 (Rust build, ax-engine 0.1.0)
2

Ask in words

Write the question as you would say it: the program reads the quantities and their units, picks the capability and answers.

Terminal
$ power-electronics ask "Buck converter in CCM: Vin = 24 V, Vout = 5 V, L = 22 uH, fs = 200 kHz, Io = 3 A"
Read as: Buck converter in continuous conduction
D = 0.2083333333
dIL = 0.8996212121 A
IL_max = 3.449810606 A
IL_min = 2.550189394 A
ripple_ratio = 0.2998737374
Iin = 0.625 A
  by: Buck converter in continuous conduction  (D = Vout/Vin; dIL = (Vin - Vout) D/(L fs); IL = Io; IL_max,min = Io +- dIL/2; Iin = D Io)
  Io = 3 A
  L = 2.2e-05 H
  Vin = 24 V
  Vout = 5 V
  fs = 200000 Hz
  assumes: 0 < Vout < Vin; continuous conduction (IL_min > 0)
3

Find a capability

Search the capabilities by what you want to know; the first column is the id to pass to info and solve.

Terminal
$ power-electronics search "buck converter in continuous conduction"
pe_buck_ccm                          Buck converter in continuous conduction  (DC-DC converters / buck)
pe_buck_boost_ccm                    Buck-boost converter in continuous conduction  (DC-DC converters / buck-boost)
pe_boost_ccm                         Boost converter in continuous conduction  (DC-DC converters / boost)
pe_cuk_ccm                           Cuk converter in continuous conduction  (DC-DC converters / Cuk)
pe_flyback_ccm                       Flyback converter in continuous conduction  (isolated converters / flyback)
pe_sepic_ccm                         SEPIC converter in continuous conduction  (DC-DC converters / SEPIC)
pe_buck_dcm                          Buck converter in discontinuous conduction  (DC-DC converters / discontinuous conduction)
pe_buck_boost_dcm                    Buck-boost converter in discontinuous conduction  (DC-DC converters / discontinuous conduction)
… 12 more
4

List the capabilities

Every capability the program answers: its id (what you pass to solve) and its name.

Terminal
$ power-electronics list
pe_ac_voltage_controller                 Single-phase AC voltage controller (resistive load)
pe_bldc_six_step                         BLDC motor with six-step (120 degree) drive
pe_boost_ccm                             Boost converter in continuous conduction
pe_boost_dcm                             Boost converter in discontinuous conduction
pe_boost_nonideal_gain                   Boost converter with inductor resistance: gain and efficiency
pe_boost_output_ripple                   Boost converter output voltage ripple
pe_boost_pfc                             Boost power-factor-correction stage
pe_bootstrap_capacitor                   Bootstrap capacitor for a high-side gate driver
… 71 more
5

What a capability needs

The equation or method, every input and output with its SI unit. Read this before solve: it tells you the input names.

Terminal
$ power-electronics info pe_buck_ccm
Buck converter in continuous conduction
  D = Vout/Vin; dIL = (Vin - Vout) D/(L fs); IL = Io; IL_max,min = Io +- dIL/2; Iin = D Io
  in   Vin      input voltage [V]
  in   Vout     output voltage [V]
  in   L        inductance [H]
  in   fs       switching frequency [Hz]
  in   Io       load (output) current [A]
  out  D        duty cycle [1]
  out  dIL      peak-to-peak inductor ripple [A]
  out  IL_max   peak inductor current [A]
  out  IL_min   valley inductor current [A]
  out  ripple_ratio ripple ratio dIL/Io [1]
  out  Iin      average input current [A]
6

Solve

Inputs as name=value, each with any unit of the right kind. The answer lists every output, the method used, each input converted to SI, and the conditions the answer assumes.

Terminal
$ power-electronics solve pe_buck_ccm "Vin=24 V" "Vout=5 V" "L=22 uH" "fs=200 kHz" "Io=3 A"
D = 0.2083333333
dIL = 0.8996212121 A
IL_max = 3.449810606 A
IL_min = 2.550189394 A
ripple_ratio = 0.2998737374
Iin = 0.625 A
  by: Buck converter in continuous conduction  (D = Vout/Vin; dIL = (Vin - Vout) D/(L fs); IL = Io; IL_max,min = Io +- dIL/2; Iin = D Io)
  Vin = 24 V
  Vout = 5 V
  L = 2.2e-05 H
  fs = 200000 Hz
  Io = 3 A
  assumes: 0 < Vout < Vin; continuous conduction (IL_min > 0)
7

Machine-readable answer

–json prints the same answer as one line of JSON (values in SI): for scripts and other programs.

Terminal
$ power-electronics solve pe_buck_ccm "Vin=24 V" "Vout=5 V" "L=22 uH" "fs=200 kHz" "Io=3 A" --json
{"outcome":"SOLVED","message":"","value":0.899621212121,"unit":"A","solved_for":"dIL","si":[["Vin",24.0],["Vout",5.0],["L",0.000022],["fs",200000.0],["Io",3.0]],"values":[["D",0.208333333333,""],["dIL",0.899621212121,"A"],["IL_max",3.44981060606,"A"],["IL_min",2.55018939394,"A"],["ripple_ratio",0.299873737374,""],["Iin",0.625,"A"]],"target":"dIL","phrase":"duty cycle","assumptions":["0 < Vout < Vin","continuous conduction (IL_min > 0)"],"name":"Buck converter in continuous conduction","equation":"D = Vout/Vin; dIL = (Vin - Vout) D/(L fs); IL = Io; IL_max,min = Io +- dIL/2; Iin = D Io"}
8

When an input is missing

No number is guessed: the answer names what is missing, shows a complete call, and the program exits with status 1.

Terminal
$ power-electronics solve pe_buck_ccm "Vin=24 V" "Vout=5 V" "L=22 uH" "fs=200 kHz"
NEEDS_INPUT: pe_buck_ccm needs Io (load (output) current). Example: solve('pe_buck_ccm', Vin='24 V', Vout='5 V', L='2.2e-05 H', fs='200000 Hz', Io='3 A').
9

Many questions at once

One JSON request per line in, one JSON answer per line out, in order: for scripts, notebooks and agents (the program starts once). In PowerShell: Get-Content cases.jsonl | power-electronics batch

Terminal
cases.jsonl
{"key": "pe_buck_ccm", "inputs": {"Vin": "24 V", "Vout": "5 V", "L": "22 uH", "fs": "200 kHz", "Io": "3 A"}}
{"key": "pe_three_phase_controlled_rectifier", "inputs": {"VLL": "415 V", "alpha": "45 deg", "Id": "50 A"}}
$ power-electronics batch < cases.jsonl
{"outcome":"SOLVED","message":"","value":0.899621212121,"unit":"A","solved_for":"dIL","si":[["Vin",24.0],["Vout",5.0],["L",0.000022],["fs",200000.0],["Io",3.0]],"values":[["D",0.208333333333,""],["dIL",0.899621212121,"A"],["IL_max",3.44981060606,"A"],["IL_min",2.55018939394,"A"],["ripple_ratio",0.299873737374,""],["Iin",0.625,"A"]],"target":"dIL","phrase":"duty cycle","assumptions":["0 < Vout < Vin","continuous conduction (IL_min > 0)"],"name":"Buck converter in continuous conduction","equation":"D = Vout/Vin; dIL = (Vin - Vout) D/(L fs); IL = Io; IL_max,min = Io +- dIL/2; Iin = D Io"}
{"outcome":"SOLVED","message":"","value":396.295808299,"unit":"V","solved_for":"Vdc","si":[["VLL",415.0],["alpha",0.7853981633974483],["Id",50.0]],"values":[["Vdc",396.295808299,"V"],["Vrms",415.0,"V"],["P",19814.7904149,"W"],["I_thy_avg",16.6666666667,"A"],["I_thy_rms",28.8675134595,"A"],["Is_rms",40.8248290464,"A"],["mode","rectifying",""]],"target":"Vdc","phrase":"average output voltage","assumptions":["0 <= alpha < 180 degrees","continuous constant current, no source inductance"],"name":"Three-phase fully controlled thyristor bridge","equation":"Vdc = 3 sqrt(2) VLL cos(alpha)/pi; Vrms = Vm sqrt(1/2 + 3 sqrt(3) cos(2 alpha)/(4 pi)); I_thy = Id/3 (avg), Id/sqrt(3) (rms)"}

All commands

CommandWhat it does
power-electronics ask "<question>"answer a question written in words
power-electronics search "<words>"find the capabilities that match
power-electronics listevery capability: its id and name
power-electronics info <capability>the equation or method, its inputs and outputs with their units
power-electronics solve <capability> name=value …the answer; add –target X to solve an equation for X, –json for JSON
power-electronics figures <capability> name=value … --out DIRthe live figures for those inputs, as SVG files in DIR
power-electronics batch < requests.jsonlone JSON answer per line, for scripts and agents
power-electronics catalogevery capability with its inputs, as JSON
power-electronics --versionthe model and its version

Exit status: 0 when the question was answered, 1 when it was not (the message says why: a missing input, an invalid value, a question outside the model), 2 for a command it does not know.

Python

Use it from Python

After pip install power-electronics-ai999x, ask in words or call a capability. Every snippet was run as shown; the output under it is what it printed. The Python guide covers ask in words, solve, and every capability with a Python example: PDF · text.

import power_electronics_ai999x as m

a = m.ask("Buck converter in CCM: Vin = 24 V, Vout = 5 V, L = 22 uH, fs = 200 kHz, Io = 3 A")
print(a.outcome)
print(a.values)
for step in a.steps:
    print(step["name"])
Output
SOLVED
{'D': 0.208333333333, 'dIL': 0.899621212121, 'IL_max': 3.44981060606, 'IL_min': 2.55018939394, 'ripple_ratio': 0.299873737374, 'Iin': 0.625}
Buck converter in continuous conduction
Capabilities

Every capability, explained

Search by name, formula, input or topic. Each capability opens to say what it does, what it needs, what it gives back and why, with its worked example, how to run it (on the command line, from Python, in your browser) and its figures.

79 capabilities

Control 2

Control-to-output transfer function of a DC-DC converter1 fig.pe_converter_small_signal

The control-to-output (duty-to-voltage) transfer function features of an ideal buck, boost or buck-boost converter in continuous conduction: dc gain, double-pole frequency, quality factor and right-half-plane zero.

G_{vd}(s) = G_{d0}\frac{1 – s/\omega_z}{1 + s/(Q\omega_0) + (s/\omega_0)^2},\quad \omega_{z,boost} = \frac{D'^2R}{L}

You give

MeaningUnitExample
\text{topology}
Buck, boost or buck-boost choice—boost
\text{Vin}
Input voltageV12 V
D
Duty cycle (a fraction or %)—0.5
L
InductanceH50 uH
C
Output capacitanceF100 uF
R
Load resistanceohm10 ohm

You get

MeaningUnitExample
\text{Gvd0}
Dc gain of vo/d (volts per unit duty)V48 V
\text{f0}
Double-pole (corner) frequencyHz1125.395395 Hz
Q
Quality factor of the double pole—7.071067812
f_{\mathrm{rhpz}}
Right-half-plane zero frequencyHz7957.747155 Hz
\text{rhp\_zero}
Whether a right-half-plane zero is present—present

Values with a unit may be written in any unit of the right kind.

Applies when

  • ideal converter in continuous conduction, no ESR

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Converter small-signal model: topology = boost, Vin = 12 V, D = 0.5, L = 50 uH, C = 100 uF, R = 10 ohm
Gvd0 = 48 V
f0 = 1125.395395 Hz
Q = 7.071067812
f_rhpz = 7957.747155 Hz
rhp_zero = present

Run it

Terminal
$ power-electronics solve pe_converter_small_signal topology=boost "Vin=12 V" D=0.5 "L=50 uH" "C=100 uF" "R=10 ohm"
Gvd0 = 48 V
f0 = 1125.395395 Hz
Q = 7.071067812
f_rhpz = 7957.747155 Hz
rhp_zero = present
  by: Control-to-output transfer function of a DC-DC converter  (buck: Gvd0 = Vin, w0 = 1/sqrt(LC), Q = R sqrt(C/L); boost: Gvd0 = Vin/D'^2, w0 = D'/sqrt(LC), Q = D' R sqrt(C/L), wz = D'^2 R/L; buck-boost: wz = D'^2 R/(D L))
  Vin = 12 V
  D = 0.5
  L = 5e-05 H
  C = 0.0001 F
  R = 10 ohm
  topology = boost
  assumes: ideal converter in continuous conduction, no ESR

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Peak current mode: subharmonic stability and slope compensation3 fig.pe_peak_current_mode_slope

The inductor current slopes, the period-to-period perturbation factor, the stability verdict and the smallest and the deadbeat compensation ramp slopes of a peak-current-mode buck converter.

\alpha = -\frac{m_2 – m_a}{m_1 + m_a},\quad |\alpha| < 1 \Leftarrow m_a > \frac{m_2-m_1}{2}

You give

MeaningUnitExample
\text{Vin}
Input voltageV12 V
\text{Vout}
Output voltageV8 V
L
InductanceH10 uH
\text{fs}
Switching frequencyHz300 kHz
\text{ma}
Compensation ramp slope referred to the inductor currentA/s0.3 A/us

You get

MeaningUnitExample
D
Duty cycle—0.6666666667
\text{m1}
Rising inductor current slopeA/s400000 A/s
\text{m2}
Falling inductor current slope (magnitude)A/s800000 A/s
\alpha
Perturbation factor per switching period—-0.7142857143
\text{stable}
Stable or unstable—stable
\text{ma\_min}
Smallest ramp slope for stability at this duty cycleA/s200000 A/s
\text{ma\_deadbeat}
Deadbeat compensation ramp slopeA/s800000 A/s

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < Vout < Vin
  • continuous conduction

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Peak current mode slope compensation: Vin = 12 V, Vout = 8 V, L = 10 uH, fs = 300 kHz, ma = 0.3 A/us
D = 0.6666666667
m1 = 400000 A/s
m2 = 800000 A/s
alpha = -0.7142857143
stable = stable
ma_min = 200000 A/s

Run it

Terminal
$ power-electronics solve pe_peak_current_mode_slope "Vin=12 V" "Vout=8 V" "L=10 uH" "fs=300 kHz" "ma=0.3 A/us"
D = 0.6666666667
m1 = 400000 A/s
m2 = 800000 A/s
alpha = -0.7142857143
stable = stable
ma_min = 200000 A/s
ma_deadbeat = 800000 A/s
  by: Peak current mode: subharmonic stability and slope compensation  (m1 = (Vin - Vo)/L, m2 = Vo/L; alpha = -(m2 - ma)/(m1 + ma); stable when |alpha| < 1; ma,min = (m2 - m1)/2)
  Vin = 12 V
  Vout = 8 V
  L = 1e-05 H
  fs = 300000 Hz
  ma = 300000 A/s
  assumes: 0 < Vout < Vin; continuous conduction

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

DC-DC converters 15

Boost converter in continuous conduction1 fig.pe_boost_ccm

The duty cycle, average inductor (input) current, inductor ripple, peak and valley currents and switch voltage stress of an ideal boost (step-up) converter in continuous conduction.

D = 1-\frac{V_{in}}{V_o},\quad I_L = \frac{I_o}{1-D},\quad \Delta i_L = \frac{V_{in}D}{L f_s}

You give

MeaningUnitExample
\text{Vin}
Input voltageV12 V
\text{Vout}
Output voltageV48 V
L
InductanceH100 uH
\text{fs}
Switching frequencyHz100 kHz
\text{Io}
Load (output) currentA1 A

You get

MeaningUnitExample
D
Duty cycle—0.75
\text{IL}
Average inductor current (input current)A4 A
\text{dIL}
Peak-to-peak inductor rippleA0.9 A
\text{IL\_max}
Peak inductor currentA4.45 A
\text{IL\_min}
Valley inductor currentA3.55 A
V_{\mathrm{switch}}
Switch and diode voltage stressV48 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • Vout > Vin > 0
  • continuous conduction (IL_min > 0)

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Boost converter in CCM: Vin = 12 V, Vout = 48 V, L = 100 uH, fs = 100 kHz, Io = 1 A
D = 0.75
IL = 4 A
dIL = 0.9 A
IL_max = 4.45 A
IL_min = 3.55 A
V_switch = 48 V

Run it

Terminal
$ power-electronics solve pe_boost_ccm "Vin=12 V" "Vout=48 V" "L=100 uH" "fs=100 kHz" "Io=1 A"
D = 0.75
IL = 4 A
dIL = 0.9 A
IL_max = 4.45 A
IL_min = 3.55 A
V_switch = 48 V
  by: Boost converter in continuous conduction  (D = 1 - Vin/Vout; IL = Io/(1 - D); dIL = Vin D/(L fs))
  Vin = 12 V
  Vout = 48 V
  L = 0.0001 H
  fs = 100000 Hz
  Io = 1 A
  assumes: Vout > Vin > 0; continuous conduction (IL_min > 0)

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Boost converter in discontinuous conduction1 fig.pe_boost_dcm

The conversion ratio, output voltage, diode conduction interval D2, peak inductor current and load current of an ideal boost converter in discontinuous conduction.

M = \frac{1+\sqrt{1+4D^2/K}}{2},\quad D_2 = \frac{D}{M-1}

You give

MeaningUnitExample
\text{Vin}
Input voltageV12 V
L
InductanceH10 uH
\text{fs}
Switching frequencyHz100 kHz
R
Load resistanceohm100 ohm
D
Duty cycle (a fraction or %)—0.4

You get

MeaningUnitExample
K
Dimensionless conduction parameter K—0.02
M
Conversion ratio Vout/Vin—3.372281323
\text{Vout}
Output voltageV40.46737588 V
\text{D2}
Diode conduction interval as a fraction of the period—0.1686140662
I_{\mathrm{pk}}
Peak inductor currentA4.8 A
\text{Io}
Load currentA0.4046737588 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • K < D (1 – D)^2 (discontinuous conduction)

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Boost converter in DCM: Vin = 12 V, L = 10 uH, fs = 100 kHz, R = 100 ohm, D = 0.4
K = 0.02
M = 3.372281323
Vout = 40.46737588 V
D2 = 0.1686140662
I_pk = 4.8 A
Io = 0.4046737588 A

Run it

Terminal
$ power-electronics solve pe_boost_dcm "Vin=12 V" "L=10 uH" "fs=100 kHz" "R=100 ohm" D=0.4
K = 0.02
M = 3.372281323
Vout = 40.46737588 V
D2 = 0.1686140662
I_pk = 4.8 A
Io = 0.4046737588 A
  by: Boost converter in discontinuous conduction  (M = (1 + sqrt(1 + 4 D^2/K))/2; D2 = D/(M - 1); I_pk = Vin D Ts/L)
  Vin = 12 V
  L = 1e-05 H
  fs = 100000 Hz
  R = 100 ohm
  D = 0.4
  assumes: K < D (1 - D)^2 (discontinuous conduction)

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Boost converter output voltage ripple1 fig.pe_boost_output_ripple

The peak-to-peak output voltage ripple of a boost converter: the capacitor alone supplies the load current during the switch on-time (ideal capacitor, no ESR).

\Delta v_o = \frac{I_o D}{C f_s}

You give

MeaningUnitExample
\text{Vin}
Input voltageV12 V
\text{Vout}
Output voltageV48 V
\text{Io}
Load currentA1 A
C
Output capacitanceF47 uF
\text{fs}
Switching frequencyHz100 kHz

You get

MeaningUnitExample
D
Duty cycle—0.75
\text{dVo}
Peak-to-peak output rippleV0.1595744681 V
\text{dVo\_pct}
Ripple in percent of Vout—0.3324468085

Values with a unit may be written in any unit of the right kind.

Applies when

  • Vout > Vin > 0
  • continuous conduction, ideal capacitor

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Boost converter output ripple: Vin = 12 V, Vout = 48 V, Io = 1 A, C = 47 uF, fs = 100 kHz
D = 0.75
dVo = 0.1595744681 V
dVo_pct = 0.3324468085

Run it

Terminal
$ power-electronics solve pe_boost_output_ripple "Vin=12 V" "Vout=48 V" "Io=1 A" "C=47 uF" "fs=100 kHz"
D = 0.75
dVo = 0.1595744681 V
dVo_pct = 0.3324468085
  by: Boost converter output voltage ripple  (D = 1 - Vin/Vout; dVo = Io D/(C fs))
  Vin = 12 V
  Vout = 48 V
  Io = 1 A
  C = 4.7e-05 F
  fs = 100000 Hz
  assumes: Vout > Vin > 0; continuous conduction, ideal capacitor

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Buck converter in continuous conduction2 fig.pe_buck_ccm

The duty cycle, inductor ripple, peak and valley inductor currents, ripple ratio and average input current of an ideal buck (step-down) converter in continuous conduction.

D = \frac{V_o}{V_{in}},\quad \Delta i_L = \frac{(V_{in}-V_o)D}{L f_s},\quad I_{L,\max/\min} = I_o \pm \tfrac{\Delta i_L}{2}

You give

MeaningUnitExample
\text{Vin}
Input voltageV24 V
\text{Vout}
Output voltageV5 V
L
InductanceH22 uH
\text{fs}
Switching frequencyHz200 kHz
\text{Io}
Load (output) currentA3 A

You get

MeaningUnitExample
D
Duty cycle—0.2083333333
\text{dIL}
Peak-to-peak inductor rippleA0.8996212121 A
\text{IL\_max}
Peak inductor currentA3.449810606 A
\text{IL\_min}
Valley inductor currentA2.550189394 A
\text{ripple\_ratio}
Ripple ratio dIL/Io—0.2998737374
\text{Iin}
Average input currentA0.625 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < Vout < Vin
  • continuous conduction (IL_min > 0)

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Buck converter in CCM: Vin = 24 V, Vout = 5 V, L = 22 uH, fs = 200 kHz, Io = 3 A
D = 0.2083333333
dIL = 0.8996212121 A
IL_max = 3.449810606 A
IL_min = 2.550189394 A
ripple_ratio = 0.2998737374
Iin = 0.625 A

Run it

Terminal
$ power-electronics solve pe_buck_ccm "Vin=24 V" "Vout=5 V" "L=22 uH" "fs=200 kHz" "Io=3 A"
D = 0.2083333333
dIL = 0.8996212121 A
IL_max = 3.449810606 A
IL_min = 2.550189394 A
ripple_ratio = 0.2998737374
Iin = 0.625 A
  by: Buck converter in continuous conduction  (D = Vout/Vin; dIL = (Vin - Vout) D/(L fs); IL = Io; IL_max,min = Io +- dIL/2; Iin = D Io)
  Vin = 24 V
  Vout = 5 V
  L = 2.2e-05 H
  fs = 200000 Hz
  Io = 3 A
  assumes: 0 < Vout < Vin; continuous conduction (IL_min > 0)

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Buck converter in discontinuous conduction1 fig.pe_buck_dcm

The conversion ratio, output voltage, second-interval duty D2 (diode conduction), peak inductor current and load current of an ideal buck converter in discontinuous conduction.

M = \frac{2}{1+\sqrt{1+4K/D^2}},\quad K = \frac{2L}{R T_s}

You give

MeaningUnitExample
\text{Vin}
Input voltageV24 V
L
InductanceH10 uH
\text{fs}
Switching frequencyHz100 kHz
R
Load resistanceohm20 ohm
D
Duty cycle (a fraction or %)—0.3

You get

MeaningUnitExample
K
Dimensionless conduction parameter K—0.1
M
Conversion ratio Vout/Vin—0.6
\text{Vout}
Output voltageV14.4 V
\text{D2}
Diode conduction interval as a fraction of the period—0.2
I_{\mathrm{pk}}
Peak inductor currentA2.88 A
\text{Io}
Load currentA0.72 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • K < 1 – D (discontinuous conduction)

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Buck converter in DCM: Vin = 24 V, L = 10 uH, fs = 100 kHz, R = 20 ohm, D = 0.3
K = 0.1
M = 0.6
Vout = 14.4 V
D2 = 0.2
I_pk = 2.88 A
Io = 0.72 A

Run it

Terminal
$ power-electronics solve pe_buck_dcm "Vin=24 V" "L=10 uH" "fs=100 kHz" "R=20 ohm" D=0.3
K = 0.1
M = 0.6
Vout = 14.4 V
D2 = 0.2
I_pk = 2.88 A
Io = 0.72 A
  by: Buck converter in discontinuous conduction  (K = 2L/(R Ts); M = 2/(1 + sqrt(1 + 4K/D^2)); D2 = D (1 - M)/M; I_pk = (Vin - Vo) D Ts/L)
  Vin = 24 V
  L = 1e-05 H
  fs = 100000 Hz
  R = 20 ohm
  D = 0.3
  assumes: K < 1 - D (discontinuous conduction)

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Buck converter inductor and capacitor design1 fig.pe_buck_lc_design

The inductance that gives a chosen ripple ratio and the output capacitance that limits the output ripple to a chosen value in a buck converter (continuous conduction, ideal capacitor).

L = \frac{(V_{in}-V_o)D}{r I_o f_s},\quad C = \frac{r I_o}{8 f_s \Delta v_o}

You give

MeaningUnitExample
\text{Vin}
Input voltageV12 V
\text{Vout}
Output voltageV3.3 V
\text{Io}
Load currentA5 A
\text{fs}
Switching frequencyHz500 kHz
r
Ripple ratio dIL/Io (a fraction or %)—0.3
\text{dV}
Allowed peak-to-peak output rippleV0.01 V

You get

MeaningUnitExample
D
Duty cycle—0.275
L
Required inductanceH3.19e-06 H
C
Required output capacitanceF3.75e-05 F
\text{IL\_max}
Peak inductor currentA5.75 A
\text{dIL}
Inductor rippleA1.5 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < Vout < Vin
  • 0 < r < 2

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Buck LC filter design: Vin = 12 V, Vout = 3.3 V, Io = 5 A, fs = 500 kHz, r = 0.3, dV = 0.01 V
D = 0.275
L = 3.19e-06 H
C = 3.75e-05 F
IL_max = 5.75 A
dIL = 1.5 A

Run it

Terminal
$ power-electronics solve pe_buck_lc_design "Vin=12 V" "Vout=3.3 V" "Io=5 A" "fs=500 kHz" r=0.3 "dV=0.01 V"
D = 0.275
L = 3.19e-06 H
C = 3.75e-05 F
IL_max = 5.75 A
dIL = 1.5 A
  by: Buck converter inductor and capacitor design  (L = (Vin - Vo) D/(r Io fs); C = r Io/(8 fs dV))
  Vin = 12 V
  Vout = 3.3 V
  Io = 5 A
  fs = 500000 Hz
  r = 0.3
  dV = 0.01 V
  assumes: 0 < Vout < Vin; 0 < r < 2

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Buck converter output voltage ripple1 fig.pe_buck_output_ripple

The peak-to-peak output voltage ripple of a buck converter in continuous conduction, with the inductor ripple current flowing entirely into the output capacitor (no ESR).

\Delta v_o = \frac{\Delta i_L}{8 C f_s} = \frac{(1-D)V_o}{8 L C f_s^2}

You give

MeaningUnitExample
\text{Vin}
Input voltageV24 V
\text{Vout}
Output voltageV5 V
L
InductanceH22 uH
C
Output capacitanceF100 uF
\text{fs}
Switching frequencyHz200 kHz

You get

MeaningUnitExample
D
Duty cycle—0.2083333333
\text{dIL}
Inductor rippleA0.8996212121 A
\text{dVo}
Peak-to-peak output rippleV0.005622632576 V
\text{dVo\_pct}
Output ripple in percent of Vout—0.1124526515

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < Vout < Vin
  • continuous conduction; ripple current into C, ideal capacitor

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Buck converter output ripple: Vin = 24 V, Vout = 5 V, L = 22 uH, C = 100 uF, fs = 200 kHz
D = 0.2083333333
dIL = 0.8996212121 A
dVo = 0.005622632576 V
dVo_pct = 0.1124526515

Run it

Terminal
$ power-electronics solve pe_buck_output_ripple "Vin=24 V" "Vout=5 V" "L=22 uH" "C=100 uF" "fs=200 kHz"
D = 0.2083333333
dIL = 0.8996212121 A
dVo = 0.005622632576 V
dVo_pct = 0.1124526515
  by: Buck converter output voltage ripple  (dIL = (Vin - Vout) D/(L fs); dVo = dIL/(8 C fs) = (1 - D) Vout/(8 L C fs^2))
  Vin = 24 V
  Vout = 5 V
  L = 2.2e-05 H
  C = 0.0001 F
  fs = 200000 Hz
  assumes: 0 < Vout < Vin; continuous conduction; ripple current into C, ideal capacitor

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Buck converter switch, diode, inductor and input-capacitor currents1 fig.pe_buck_component_currents

The average and RMS currents of the switch and the diode, the RMS inductor current, the peak current and the RMS input-capacitor current of a buck converter in continuous conduction (trapezoidal waveforms with ripple).

I_{sw,rms} = \sqrt{D\left(I_o^2 + \tfrac{\Delta i_L^2}{12}\right)},\quad I_{C_{in},rms} = \sqrt{I_{sw,rms}^2 – (D I_o)^2}

You give

MeaningUnitExample
\text{Vin}
Input voltageV24 V
\text{Vout}
Output voltageV5 V
\text{Io}
Load currentA3 A
L
InductanceH22 uH
\text{fs}
Switching frequencyHz200 kHz

You get

MeaningUnitExample
D
Duty cycle—0.2083333333
I_{\mathrm{sw},\mathrm{avg}}
Average switch currentA0.625 A
I_{\mathrm{sw},\mathrm{rms}}
RMS switch currentA1.374427395 A
I_{d,\mathrm{avg}}
Average diode currentA2.375 A
I_{d,\mathrm{rms}}
RMS diode currentA2.679252233 A
I_{L,\mathrm{rms}}
RMS inductor currentA3.011219553 A
I_{\mathrm{pk}}
Peak switch and inductor currentA3.449810606 A
I_{\mathrm{cin},\mathrm{rms}}
RMS input-capacitor ripple currentA1.224101983 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < Vout < Vin
  • continuous conduction

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Buck converter component currents: Vin = 24 V, Vout = 5 V, Io = 3 A, L = 22 uH, fs = 200 kHz
D = 0.2083333333
I_sw_avg = 0.625 A
I_sw_rms = 1.374427395 A
I_d_avg = 2.375 A
I_d_rms = 2.679252233 A
I_L_rms = 3.011219553 A

Run it

Terminal
$ power-electronics solve pe_buck_component_currents "Vin=24 V" "Vout=5 V" "Io=3 A" "L=22 uH" "fs=200 kHz"
D = 0.2083333333
I_sw_avg = 0.625 A
I_sw_rms = 1.374427395 A
I_d_avg = 2.375 A
I_d_rms = 2.679252233 A
I_L_rms = 3.011219553 A
I_pk = 3.449810606 A
I_cin_rms = 1.224101983 A
  by: Buck converter switch, diode, inductor and input-capacitor currents  (I_sw,rms = sqrt(D (Io^2 + dI^2/12)); I_d,rms = sqrt((1 - D)(Io^2 + dI^2/12)); I_cin,rms = sqrt(I_sw,rms^2 - (D Io)^2))
  Vin = 24 V
  Vout = 5 V
  Io = 3 A
  L = 2.2e-05 H
  fs = 200000 Hz
  assumes: 0 < Vout < Vin; continuous conduction

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Buck-boost converter in continuous conduction1 fig.pe_buck_boost_ccm

The duty cycle, average inductor current, ripple, peak and valley currents and switch voltage stress of an ideal inverting buck-boost converter in continuous conduction (output voltage as a magnitude).

D = \frac{|V_o|}{V_{in}+|V_o|},\quad I_L = \frac{I_o}{1-D},\quad \Delta i_L = \frac{V_{in}D}{L f_s}

You give

MeaningUnitExample
\text{Vin}
Input voltageV12 V
\text{Vout}
Output voltage magnitude (the output is inverted)V15 V
L
InductanceH47 uH
\text{fs}
Switching frequencyHz100 kHz
\text{Io}
Load (output) currentA1 A

You get

MeaningUnitExample
D
Duty cycle—0.5555555556
\text{IL}
Average inductor currentA2.25 A
\text{dIL}
Peak-to-peak inductor rippleA1.418439716 A
\text{IL\_max}
Peak inductor currentA2.959219858 A
\text{IL\_min}
Valley inductor currentA1.540780142 A
V_{\mathrm{switch}}
Switch voltage stress Vin + VoutV27 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • Vin, Vout > 0
  • continuous conduction (IL_min > 0)

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Buck-boost converter in CCM: Vin = 12 V, Vout = 15 V, L = 47 uH, fs = 100 kHz, Io = 1 A
D = 0.5555555556
IL = 2.25 A
dIL = 1.418439716 A
IL_max = 2.959219858 A
IL_min = 1.540780142 A
V_switch = 27 V

Run it

Terminal
$ power-electronics solve pe_buck_boost_ccm "Vin=12 V" "Vout=15 V" "L=47 uH" "fs=100 kHz" "Io=1 A"
D = 0.5555555556
IL = 2.25 A
dIL = 1.418439716 A
IL_max = 2.959219858 A
IL_min = 1.540780142 A
V_switch = 27 V
  by: Buck-boost converter in continuous conduction  (D = Vout/(Vin + Vout); IL = Io/(1 - D); dIL = Vin D/(L fs))
  Vin = 12 V
  Vout = 15 V
  L = 4.7e-05 H
  fs = 100000 Hz
  Io = 1 A
  assumes: Vin, Vout > 0; continuous conduction (IL_min > 0)

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Buck-boost converter in discontinuous conduction1 fig.pe_buck_boost_dcm

The conversion ratio (magnitude), output voltage, diode conduction interval, peak inductor current and load current of an ideal inverting buck-boost converter in discontinuous conduction.

M = \frac{D}{\sqrt{K}},\quad D_2 = \sqrt{K}

You give

MeaningUnitExample
\text{Vin}
Input voltageV12 V
L
InductanceH10 uH
\text{fs}
Switching frequencyHz100 kHz
R
Load resistanceohm50 ohm
D
Duty cycle (a fraction or %)—0.4

You get

MeaningUnitExample
K
Dimensionless conduction parameter K—0.04
M
Conversion ratio |Vout|/Vin—2
\text{Vout}
Output voltage magnitudeV24 V
\text{D2}
Diode conduction interval (= sqrt K)—0.2
I_{\mathrm{pk}}
Peak inductor currentA4.8 A
\text{Io}
Load currentA0.48 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • K < (1 – D)^2 (discontinuous conduction)

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Buck-boost converter in DCM: Vin = 12 V, L = 10 uH, fs = 100 kHz, R = 50 ohm, D = 0.4
K = 0.04
M = 2
Vout = 24 V
D2 = 0.2
I_pk = 4.8 A
Io = 0.48 A

Run it

Terminal
$ power-electronics solve pe_buck_boost_dcm "Vin=12 V" "L=10 uH" "fs=100 kHz" "R=50 ohm" D=0.4
K = 0.04
M = 2
Vout = 24 V
D2 = 0.2
I_pk = 4.8 A
Io = 0.48 A
  by: Buck-boost converter in discontinuous conduction  (M = D/sqrt(K); D2 = sqrt(K); I_pk = Vin D Ts/L)
  Vin = 12 V
  L = 1e-05 H
  fs = 100000 Hz
  R = 50 ohm
  D = 0.4
  assumes: K < (1 - D)^2 (discontinuous conduction)

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Critical inductance at the CCM/DCM boundary1 fig.pe_critical_inductance

The smallest inductance that keeps a buck, boost or buck-boost converter in continuous conduction at a load resistance (the inductor current just reaches zero at the end of each period).

L_{c,buck} = \frac{(1-D)R}{2f_s},\ L_{c,boost} = \frac{D(1-D)^2R}{2f_s},\ L_{c,buck\text{-}boost} = \frac{(1-D)^2R}{2f_s}

You give

MeaningUnitExample
\text{topology}
Buck, boost or buck-boost choice—buck
\text{Vin}
Input voltageV24 V
\text{Vout}
Output voltage (magnitude)V12 V
\text{fs}
Switching frequencyHz100 kHz
R
Load resistanceohm10 ohm

You get

MeaningUnitExample
D
Duty cycle—0.5
L_{\mathrm{crit}}
Critical (boundary) inductanceH2.5e-05 H
\text{Io}
Load currentA1.2 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • ideal converter at the boundary of continuous conduction

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Critical inductance: topology = buck, Vin = 24 V, Vout = 12 V, fs = 100 kHz, R = 10 ohm
D = 0.5
L_crit = 2.5e-05 H
Io = 1.2 A

Run it

Terminal
$ power-electronics solve pe_critical_inductance topology=buck "Vin=24 V" "Vout=12 V" "fs=100 kHz" "R=10 ohm"
D = 0.5
L_crit = 2.5e-05 H
Io = 1.2 A
  by: Critical inductance at the CCM/DCM boundary  (buck Lc = (1 - D) R/(2 fs); boost Lc = D (1 - D)^2 R/(2 fs); buck-boost Lc = (1 - D)^2 R/(2 fs))
  Vin = 24 V
  Vout = 12 V
  fs = 100000 Hz
  R = 10 ohm
  topology = buck
  assumes: ideal converter at the boundary of continuous conduction

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Cuk converter in continuous conduction1 fig.pe_cuk_ccm

The duty cycle, inductor currents and ripples, coupling-capacitor voltage and its ripple of an ideal Cuk converter (inverted output, given as a magnitude) in continuous conduction.

D = \frac{V_o}{V_{in}+V_o},\ V_{C1} = V_{in}+V_o,\ \Delta i_{L1} = \frac{V_{in}D}{L_1 f_s},\ \Delta v_{C1} = \frac{I_o D}{C_1 f_s}

You give

MeaningUnitExample
\text{Vin}
Input voltageV12 V
\text{Vout}
Output voltage magnitudeV15 V
\text{L1}
Input inductanceH100 uH
\text{L2}
Output inductanceH100 uH
\text{C1}
Coupling (energy-transfer) capacitanceF10 uF
\text{fs}
Switching frequencyHz100 kHz
\text{Io}
Load currentA1 A

You get

MeaningUnitExample
D
Duty cycle—0.5555555556
\text{IL1}
Average input inductor currentA1.25 A
\text{IL2}
Average output inductor currentA1 A
\text{VC1}
Average coupling-capacitor voltage Vin + VoutV27 V
\text{dIL1}
Input inductor rippleA0.6666666667 A
\text{dIL2}
Output inductor rippleA0.6666666667 A
\text{dVC1}
Coupling-capacitor rippleV0.5555555556 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • continuous conduction in both inductors

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Cuk converter: Vin = 12 V, Vout = 15 V, L1 = 100 uH, L2 = 100 uH, C1 = 10 uF, fs = 100 kHz, Io = 1 A
D = 0.5555555556
IL1 = 1.25 A
IL2 = 1 A
VC1 = 27 V
dIL1 = 0.6666666667 A
dIL2 = 0.6666666667 A

Run it

Terminal
$ power-electronics solve pe_cuk_ccm "Vin=12 V" "Vout=15 V" "L1=100 uH" "L2=100 uH" "C1=10 uF" "fs=100 kHz" "Io=1 A"
D = 0.5555555556
IL1 = 1.25 A
IL2 = 1 A
VC1 = 27 V
dIL1 = 0.6666666667 A
dIL2 = 0.6666666667 A
dVC1 = 0.5555555556 V
  by: Cuk converter in continuous conduction  (D = Vo/(Vin + Vo); IL1 = Io Vo/Vin; VC1 = Vin + Vo; dIL1 = Vin D/(L1 fs); dIL2 = Vo (1 - D)/(L2 fs); dVC1 = Io D/(C1 fs))
  Vin = 12 V
  Vout = 15 V
  L1 = 0.0001 H
  L2 = 0.0001 H
  C1 = 1e-05 F
  fs = 100000 Hz
  Io = 1 A
  assumes: continuous conduction in both inductors

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Ideal DC-DC conversion ratio from the duty cycle1 fig.pe_conversion_ratio

The ideal continuous-conduction voltage conversion ratio M = Vout/Vin and output voltage of a buck, boost, buck-boost, Cuk or SEPIC converter at a duty cycle, with the output polarity.

M_{buck} = D,\quad M_{boost} = \frac{1}{1-D},\quad M_{buck\text{-}boost,\,Cuk,\,SEPIC} = \frac{D}{1-D}

You give

MeaningUnitExample
\text{topology}
Converter topology: buck, boost, buck-boost, Cuk or SEPIC choice—boost
\text{Vin}
Input voltageV12 V
D
Duty cycle (a fraction or %)—0.6

You get

MeaningUnitExample
M
Conversion ratio Vout/Vin (magnitude)—2.5
\text{Vout}
Output voltage magnitudeV30 V
\text{polarity}
Output polarity relative to the input (same or inverted)—same

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < D < 1
  • ideal, continuous conduction

Outside these conditions it says what is wrong instead of returning a number.

Worked example

DC-DC conversion ratio: topology = boost, Vin = 12 V, D = 0.6
M = 2.5
Vout = 30 V
polarity = same

Run it

Terminal
$ power-electronics solve pe_conversion_ratio topology=boost "Vin=12 V" D=0.6
M = 2.5
Vout = 30 V
polarity = same
  by: Ideal DC-DC conversion ratio from the duty cycle  (buck M = D; boost M = 1/(1 - D); buck-boost, Cuk, SEPIC M = D/(1 - D))
  Vin = 12 V
  D = 0.6
  topology = boost
  assumes: 0 < D < 1; ideal, continuous conduction

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Interleaved multiphase buck: output current ripple cancellation1 fig.pe_interleaved_buck_ripple

The per-phase and total output current ripple of an N-phase interleaved buck converter (phases shifted by T/N, equal inductors), the cancellation factor and the ripple frequency N fs.

\frac{\Delta i_{tot}}{\Delta i_{ph}} = \frac{N\left(D-\frac{m}{N}\right)\left(\frac{m+1}{N}-D\right)}{D(1-D)},\ m = \lfloor ND\rfloor

You give

MeaningUnitExample
N
Number of phases—2
\text{Vin}
Input voltageV12 V
\text{Vout}
Output voltageV1.2 V
L
Inductance of each phaseH0.47 uH
\text{fs}
Switching frequency of each phaseHz500 kHz

You get

MeaningUnitExample
D
Duty cycle—0.1
\text{dI\_phase}
Ripple of one phaseA4.595744681 A
\text{dI\_total}
Ripple of the summed output currentA4.085106383 A
\text{cancellation}
Ratio of total to per-phase ripple—0.8888888889
f_{\mathrm{ripple}}
Output ripple frequency N fsHz1000000 Hz

Values with a unit may be written in any unit of the right kind.

Applies when

  • 2 <= N <= 12
  • 0 < Vout < Vin
  • continuous conduction in each phase

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Interleaved buck ripple: N = 2, Vin = 12 V, Vout = 1.2 V, L = 0.47 uH, fs = 500 kHz
D = 0.1
dI_phase = 4.595744681 A
dI_total = 4.085106383 A
cancellation = 0.8888888889
f_ripple = 1000000 Hz

Run it

Terminal
$ power-electronics solve pe_interleaved_buck_ripple N=2 "Vin=12 V" "Vout=1.2 V" "L=0.47 uH" "fs=500 kHz"
D = 0.1
dI_phase = 4.595744681 A
dI_total = 4.085106383 A
cancellation = 0.8888888889
f_ripple = 1000000 Hz
  by: Interleaved multiphase buck: output current ripple cancellation  (m = floor(N D); dI_total/dI_phase = N (D - m/N)((m + 1)/N - D)/(D (1 - D)); zero when N D is a whole number)
  Vin = 12 V
  Vout = 1.2 V
  L = 4.7e-07 H
  fs = 500000 Hz
  assumes: 2 <= N <= 12; 0 < Vout < Vin; continuous conduction in each phase

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

SEPIC converter in continuous conduction1 fig.pe_sepic_ccm

The duty cycle, inductor currents and ripples, coupling-capacitor voltage and ripple and switch voltage stress of an ideal SEPIC (non-inverting buck-boost) converter in continuous conduction.

D = \frac{V_o}{V_{in}+V_o},\ V_{C1} = V_{in},\ \Delta i_{L1,2} = \frac{V_{in}D}{L_{1,2} f_s},\ \Delta v_{C1} = \frac{I_o D}{C_1 f_s}

You give

MeaningUnitExample
\text{Vin}
Input voltageV9 V
\text{Vout}
Output voltageV12 V
\text{L1}
Input inductanceH47 uH
\text{L2}
Second inductanceH47 uH
\text{C1}
Coupling capacitanceF10 uF
\text{fs}
Switching frequencyHz200 kHz
\text{Io}
Load currentA1 A

You get

MeaningUnitExample
D
Duty cycle—0.5714285714
\text{IL1}
Average input inductor currentA1.333333333 A
\text{IL2}
Average second inductor currentA1 A
\text{VC1}
Average coupling-capacitor voltage (= Vin)V9 V
\text{dIL1}
Input inductor rippleA0.547112462 A
\text{dIL2}
Second inductor rippleA0.547112462 A
\text{dVC1}
Coupling-capacitor rippleV0.2857142857 V
V_{\mathrm{switch}}
Switch voltage stress Vin + VoutV21 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • continuous conduction in both inductors

Outside these conditions it says what is wrong instead of returning a number.

Worked example

SEPIC converter: Vin = 9 V, Vout = 12 V, L1 = 47 uH, L2 = 47 uH, C1 = 10 uF, fs = 200 kHz, Io = 1 A
D = 0.5714285714
IL1 = 1.333333333 A
IL2 = 1 A
VC1 = 9 V
dIL1 = 0.547112462 A
dIL2 = 0.547112462 A

Run it

Terminal
$ power-electronics solve pe_sepic_ccm "Vin=9 V" "Vout=12 V" "L1=47 uH" "L2=47 uH" "C1=10 uF" "fs=200 kHz" "Io=1 A"
D = 0.5714285714
IL1 = 1.333333333 A
IL2 = 1 A
VC1 = 9 V
dIL1 = 0.547112462 A
dIL2 = 0.547112462 A
dVC1 = 0.2857142857 V
V_switch = 21 V
  by: SEPIC converter in continuous conduction  (D = Vo/(Vin + Vo); IL1 = Io Vo/Vin; IL2 = Io; VC1 = Vin; dIL1 = Vin D/(L1 fs); dIL2 = Vin D/(L2 fs); dVC1 = Io D/(C1 fs))
  Vin = 9 V
  Vout = 12 V
  L1 = 4.7e-05 H
  L2 = 4.7e-05 H
  C1 = 1e-05 F
  fs = 200000 Hz
  Io = 1 A
  assumes: continuous conduction in both inductors

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Devices 9

Bootstrap capacitor for a high-side gate driver1 fig.pe_bootstrap_capacitor

The charge drawn from a bootstrap capacitor during the longest high-side on-time and the smallest capacitance that keeps its droop within a limit, with the usual tenfold design margin.

C_{boot} \ge \frac{Q_g + I_{lk}D_{max}/f_s}{\Delta V}

You give

MeaningUnitExample
\text{Qg}
High-side gate chargeC60 nC
\text{Ileak}
Quiescent plus leakage current of the high sideA200 uA
\text{fs}
Switching frequencyHz100 kHz
\text{Dmax}
Maximum high-side duty cycle (a fraction or %)—0.9
\text{dV}
Allowed bootstrap droopV0.5 V

You get

MeaningUnitExample
Q_{\mathrm{total}}
Charge drawn per cycleC6.18e-08 C
C_{\mathrm{min}}
Smallest bootstrap capacitanceF1.236e-07 F
C_{\mathrm{recommended}}
Tenfold marginF1.236e-06 F

Values with a unit may be written in any unit of the right kind.

Applies when

  • the capacitor recharges fully while the low side is on

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Bootstrap capacitor: Qg = 60 nC, Ileak = 200 uA, fs = 100 kHz, Dmax = 0.9, dV = 0.5 V
Q_total = 6.18e-08 C
C_min = 1.236e-07 F
C_recommended = 1.236e-06 F

Run it

Terminal
$ power-electronics solve pe_bootstrap_capacitor "Qg=60 nC" "Ileak=200 uA" "fs=100 kHz" Dmax=0.9 "dV=0.5 V"
Q_total = 6.18e-08 C
C_min = 1.236e-07 F
C_recommended = 1.236e-06 F
  by: Bootstrap capacitor for a high-side gate driver  (Q = Qg + I_leak Dmax/fs; C_min = Q/dV)
  Qg = 6e-08 C
  Ileak = 0.0002 A
  fs = 100000 Hz
  Dmax = 0.9
  dV = 0.5 V
  assumes: the capacitor recharges fully while the low side is on

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Current sharing between paralleled MOSFETs2 fig.pe_parallel_mosfet_sharing

The current and conduction loss of each of several paralleled MOSFETs (or any resistive devices) sharing a total current in proportion to their on-state conductances, the total loss and the worst-case current imbalance.

I_k = I\frac{1/R_k}{\sum_j 1/R_j},\quad P_k = I_k^2R_k

You give

MeaningUnitExample
R
On-resistance of each device in milliohms vector—[10, 12]
I
Total currentA40 A

You get

MeaningUnitExample
\text{currents}
Current in each device, amperes—[21.81818182, 18.18181818]
\text{losses}
Conduction loss of each device, watts—[4.760330579, 3.966942149]
P_{\mathrm{total}}
Total conduction lossW8.727272727 W
\text{imbalance}
Largest current divided by the equal share—1.090909091

Values with a unit may be written in any unit of the right kind.

Applies when

  • static sharing (on-resistance only)

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Parallel MOSFET current sharing: R = [10, 12], I = 40 A
currents = [21.81818182, 18.18181818]
losses = [4.760330579, 3.966942149]
P_total = 8.727272727 W
imbalance = 1.090909091

Run it

Terminal
$ power-electronics solve pe_parallel_mosfet_sharing "R=[10, 12]" "I=40 A"
currents = [21.8181818182,18.1818181818]
losses = [4.76033057851,3.96694214876]
P_total = 8.727272727 W
imbalance = 1.090909091
  by: Current sharing between paralleled MOSFETs  (I_k = I (1/R_k)/sum(1/R_j); P_k = I_k^2 R_k)
  I = 40 A
  assumes: static sharing (on-resistance only)

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Diode reverse-recovery charge and losses1 fig.pe_diode_reverse_recovery

The recovered charge, the two recovery intervals and the reverse-recovery energy dissipated in the diode and the extra turn-on energy in the switch (and the powers) for a triangular recovery current of peak Irm, time trr and softness S = tb/ta.

Q_{rr} = \tfrac12I_{rm}t_{rr},\quad E_D = \frac{V_rI_{rm}t_b}{6},\quad E_{sw} = V_rI_{rm}\left(\frac{t_a}{2}+\frac{t_b}{3}\right)

You give

MeaningUnitExample
\text{Irm}
Peak reverse-recovery currentA10 A
\text{trr}
Reverse-recovery times100 ns
S
Softness factor tb/ta—1
\text{Vr}
Reverse (bus) voltageV400 V
\text{fs}
Switching frequencyHz100 kHz

You get

MeaningUnitExample
\text{Qrr}
Recovered chargeC5e-07 C
\text{ta}
Current rise intervals5e-08 s
\text{tb}
Current decay intervals5e-08 s
E_{\mathrm{diode}}
Recovery energy dissipated in the diodeJ3.333333333e-05 J
E_{\mathrm{switch}}
Extra switch turn-on energyJ0.0001666666667 J
P_{\mathrm{diode}}
Diode recovery lossW3.333333333 W
P_{\mathrm{switch}}
Switch loss caused by recoveryW16.66666667 W
P_{\mathrm{total}}
Total recovery loss (= Vr Qrr fs)W20 W

Values with a unit may be written in any unit of the right kind.

Applies when

  • triangular recovery current; diode voltage rises linearly during tb

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Diode reverse recovery: Irm = 10 A, trr = 100 ns, S = 1, Vr = 400 V, fs = 100 kHz
Qrr = 5e-07 C
ta = 5e-08 s
tb = 5e-08 s
E_diode = 3.333333333e-05 J
E_switch = 0.0001666666667 J
P_diode = 3.333333333 W

Run it

Terminal
$ power-electronics solve pe_diode_reverse_recovery "Irm=10 A" "trr=100 ns" S=1 "Vr=400 V" "fs=100 kHz"
Qrr = 5e-07 C
ta = 5e-08 s
tb = 5e-08 s
E_diode = 3.333333333e-05 J
E_switch = 0.0001666666667 J
P_diode = 3.333333333 W
P_switch = 16.66666667 W
P_total = 20 W
  by: Diode reverse-recovery charge and losses  (ta = trr/(1 + S), tb = S trr/(1 + S); Qrr = Irm trr/2; E_D = Vr Irm tb/6; E_sw = Vr Irm (ta/2 + tb/3); together Vr Qrr)
  Irm = 10 A
  trr = 1e-07 s
  S = 1
  Vr = 400 V
  fs = 100000 Hz
  assumes: triangular recovery current; diode voltage rises linearly during tb

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Gate-drive power and currents1 fig.pe_gate_drive_power

The gate-driver power, energy per switching cycle, average gate current and peak gate current of a MOSFET or IGBT from its total gate charge, drive voltage, switching frequency and total gate resistance.

P_{G} = Q_gV_{drv}f_s,\quad I_{G,pk} = \frac{V_{drv}}{R_g}

You give

MeaningUnitExample
\text{Qg}
Total gate charge at the drive voltageC50 nC
\text{Vdrv}
Gate-drive voltage swingV12 V
\text{fs}
Switching frequencyHz200 kHz
\text{Rg}
Total gate resistance (driver, external and internal)ohm5 ohm

You get

MeaningUnitExample
P_{\mathrm{drive}}
Gate-drive power Qg V fsW0.12 W
\text{Ig\_avg}
Average gate current Qg fsA0.01 A
\text{Ig\_peak}
Peak gate current V/RgA2.4 A
E_{\mathrm{cycle}}
Energy per switching cycle Qg VJ6e-07 J

Values with a unit may be written in any unit of the right kind.

Applies when

  • the gate fully charges and discharges every cycle

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Gate drive power: Qg = 50 nC, Vdrv = 12 V, fs = 200 kHz, Rg = 5 ohm
P_drive = 0.12 W
Ig_avg = 0.01 A
Ig_peak = 2.4 A
E_cycle = 6e-07 J

Run it

Terminal
$ power-electronics solve pe_gate_drive_power "Qg=50 nC" "Vdrv=12 V" "fs=200 kHz" "Rg=5 ohm"
P_drive = 0.12 W
Ig_avg = 0.01 A
Ig_peak = 2.4 A
E_cycle = 6e-07 J
  by: Gate-drive power and currents  (P = Qg Vdrv fs; Ig,avg = Qg fs; Ig,peak = Vdrv/Rg)
  Qg = 5e-08 C
  Vdrv = 12 V
  fs = 200000 Hz
  Rg = 5 ohm
  assumes: the gate fully charges and discharges every cycle

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Hard-switching loss of a power transistor1 fig.pe_switching_loss

The turn-on and turn-off energies and the switching and output-capacitance losses of a MOSFET or IGBT switching an inductive (clamped) load with linear voltage and current transitions.

P_{sw} = \tfrac12 V I\,(t_r + t_f)\,f_s,\quad P_{oss} = \tfrac12C_{oss}V^2f_s

You give

MeaningUnitExample
V
Blocking (dc bus) voltageV400 V
I
Switched currentA10 A
\text{tr}
Turn-on crossover times30 ns
\text{tf}
Turn-off crossover times50 ns
\text{fs}
Switching frequencyHz100 kHz
\text{Coss}
Output capacitanceF100 pF

You get

MeaningUnitExample
E_{\mathrm{on}}
Turn-on energyJ6e-05 J
E_{\mathrm{off}}
Turn-off energyJ0.0001 J
P_{\mathrm{sw}}
Switching lossW16 W
P_{\mathrm{oss}}
Output-capacitance lossW0.8 W
P_{\mathrm{total}}
Total switching-related lossW16.8 W

Values with a unit may be written in any unit of the right kind.

Applies when

  • clamped inductive load, linear transitions

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Switching loss: V = 400 V, I = 10 A, tr = 30 ns, tf = 50 ns, fs = 100 kHz, Coss = 100 pF
E_on = 6e-05 J
E_off = 0.0001 J
P_sw = 16 W
P_oss = 0.8 W
P_total = 16.8 W

Run it

Terminal
$ power-electronics solve pe_switching_loss "V=400 V" "I=10 A" "tr=30 ns" "tf=50 ns" "fs=100 kHz" "Coss=100 pF"
E_on = 6e-05 J
E_off = 0.0001 J
P_sw = 16 W
P_oss = 0.8 W
P_total = 16.8 W
  by: Hard-switching loss of a power transistor  (E_on = V I tr/2; E_off = V I tf/2; P_sw = (E_on + E_off) fs; P_oss = Coss V^2 fs/2)
  V = 400 V
  I = 10 A
  tr = 3e-08 s
  tf = 5e-08 s
  fs = 100000 Hz
  Coss = 1e-10 F
  assumes: clamped inductive load, linear transitions

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

MOSFET conduction loss at junction temperature1 fig.pe_mosfet_conduction_loss

The on-resistance of a MOSFET at its junction temperature (linear temperature coefficient from the 25 degC value) and the conduction loss for an RMS drain current, with the loss at 25 degC for comparison.

R_{ds}(T_j) = R_{ds,25}\left(1+\alpha(T_j-25^\circ\mathrm{C})\right),\quad P = I_{rms}^2R_{ds}(T_j)

You give

MeaningUnitExample
\text{Rds25}
On-resistance at room temperatureohm0.01 ohm
\alpha
Temperature coefficient of the on-resistance per kelvin—0.007
\text{Tj}
Junction temperatureK125 degC
\text{Irms}
RMS drain currentA20 A

You get

MeaningUnitExample
\text{Rds\_T}
On-resistance at Tjohm0.017 ohm
P
Conduction loss at the junction temperatureW6.8 W
P_{25}
Conduction loss at room temperatureW4 W
\text{ratio}
Ratio of hot to room-temperature on-resistance—1.7

Values with a unit may be written in any unit of the right kind.

Applies when

  • linear temperature model

Outside these conditions it says what is wrong instead of returning a number.

Worked example

MOSFET conduction loss: Rds25 = 0.01 ohm, alpha = 0.007, Tj = 125 degC, Irms = 20 A
Rds_T = 0.017 ohm
P = 6.8 W
P_25 = 4 W
ratio = 1.7

Run it

Terminal
$ power-electronics solve pe_mosfet_conduction_loss "Rds25=0.01 ohm" alpha=0.007 "Tj=125 degC" "Irms=20 A"
Rds_T = 0.017 ohm
P = 6.8 W
P_25 = 4 W
ratio = 1.7
  by: MOSFET conduction loss at junction temperature  (Rds(Tj) = Rds25 (1 + alpha (Tj - 25 degC)); P = Irms^2 Rds(Tj))
  Rds25 = 0.01 ohm
  alpha = 0.007
  Tj = 398.15 K
  Irms = 20 A
  assumes: linear temperature model

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

RC snubber from measured ringing frequencies1 fig.pe_rc_snubber_ringing

The parasitic capacitance and inductance of a ringing switch node found by measuring the ringing frequency with and without an added capacitor, the damping resistor (characteristic impedance), the snubber capacitor (k times the parasitic) and the snubber resistor loss.

C_p = \frac{C_{add}}{(f_0/f_1)^2-1},\quad L_p = \frac{1}{(2\pi f_0)^2C_p},\quad R_s = \sqrt{L_p/C_p}

You give

MeaningUnitExample
\text{f0}
Ringing frequency without the added capacitorHz50000 kHz
\text{f1}
Ringing frequency with the added capacitorHz25000 kHz
\text{Cadd}
Added test capacitanceF300 pF
k
Snubber capacitance as a multiple of the parasitic capacitance—4
V
Voltage the node swings toV48 V
\text{fs}
Switching frequencyHz500 kHz

You get

MeaningUnitExample
\text{Cp}
Parasitic capacitanceF1e-10 F
\text{Lp}
Parasitic inductanceH1.013211836e-07 H
\text{Rs}
Snubber resistance sqrt(Lp/Cp)ohm31.83098862 ohm
\text{Cs}
Snubber capacitance k CpF4e-10 F
P_{R}
Snubber resistor lossW0.4608 W

Values with a unit may be written in any unit of the right kind.

Applies when

  • f1 < f0

Outside these conditions it says what is wrong instead of returning a number.

Worked example

RC snubber from ringing: f0 = 50000 kHz, f1 = 25000 kHz, Cadd = 300 pF, k = 4, V = 48 V, fs = 500 kHz
Cp = 1e-10 F
Lp = 1.013211836e-07 H
Rs = 31.83098862 ohm
Cs = 4e-10 F
P_R = 0.4608 W

Run it

Terminal
$ power-electronics solve pe_rc_snubber_ringing "f0=50000 kHz" "f1=25000 kHz" "Cadd=300 pF" k=4 "V=48 V" "fs=500 kHz"
Cp = 1e-10 F
Lp = 1.013211836e-07 H
Rs = 31.83098862 ohm
Cs = 4e-10 F
P_R = 0.4608 W
  by: RC snubber from measured ringing frequencies  (Cp = Cadd/((f0/f1)^2 - 1); Lp = 1/((2 pi f0)^2 Cp); Rs = sqrt(Lp/Cp); Cs = k Cp; P = Cs V^2 fs)
  f0 = 50000000 Hz
  f1 = 25000000 Hz
  Cadd = 3e-10 F
  k = 4
  V = 48 V
  fs = 500000 Hz
  assumes: f1 < f0

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

RCD turn-off snubber design1 fig.pe_turnoff_snubber

The turn-off snubber capacitance that lets the switch voltage reach the bus voltage just as the current finishes falling, the switch turn-off energy with and without the snubber, and the snubber (resistor) loss per cycle and in watts.

C_s = \frac{I t_f}{2V},\quad E_{sw} = \frac{I^2t_f^2}{24C_s} = \frac{VIt_f}{12},\quad E_R = \tfrac12C_sV^2

You give

MeaningUnitExample
I
Switched (load) currentA10 A
V
Bus voltageV300 V
\text{tf}
Current fall times100 ns
\text{fs}
Switching frequencyHz50 kHz

You get

MeaningUnitExample
\text{Cs}
Snubber capacitanceF1.666666667e-09 F
E_{\mathrm{off},\mathrm{with}}
Switch turn-off energy with the snubberJ2.5e-05 J
E_{\mathrm{off},\mathrm{without}}
Switch turn-off energy without a snubberJ0.00015 J
E_{\mathrm{snubber}}
Energy dumped in the snubber resistorJ7.5e-05 J
P_{\mathrm{switch}}
Switch turn-off loss with the snubberW1.25 W
P_{\mathrm{snubber}}
Snubber resistor lossW3.75 W
P_{\mathrm{total}}
Switch plus snubber lossW5 W

Values with a unit may be written in any unit of the right kind.

Applies when

  • linear current fall; the snubber capacitor discharges fully during the on-time

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Turn-off snubber: I = 10 A, V = 300 V, tf = 100 ns, fs = 50 kHz
Cs = 1.666666667e-09 F
E_off_with = 2.5e-05 J
E_off_without = 0.00015 J
E_snubber = 7.5e-05 J
P_switch = 1.25 W
P_snubber = 3.75 W

Run it

Terminal
$ power-electronics solve pe_turnoff_snubber "I=10 A" "V=300 V" "tf=100 ns" "fs=50 kHz"
Cs = 1.666666667e-09 F
E_off_with = 2.5e-05 J
E_off_without = 0.00015 J
E_snubber = 7.5e-05 J
P_switch = 1.25 W
P_snubber = 3.75 W
P_total = 5 W
  by: RCD turn-off snubber design  (Cs = I tf/(2V); E_sw = I^2 tf^2/(24 Cs); E_R = Cs V^2/2)
  I = 10 A
  V = 300 V
  tf = 1e-07 s
  fs = 50000 Hz
  assumes: linear current fall; the snubber capacitor discharges fully during the on-time

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Zero-voltage switching: resonant transition of a switch node2 fig.pe_zvs_transition

Whether an inductor current can swing a switch node's capacitance from 0 to the input voltage (zero-voltage switching), the minimum current needed, the energies, and the transition time (or the time to the voltage peak when it cannot), for a resonant LC transition.

v(t) = I_0Z\sin\omega t,\quad Z = \sqrt{L/C},\quad t_{zvs} = \frac{1}{\omega}\sin^{-1}\frac{V_{in}}{I_0Z}

You give

MeaningUnitExample
\text{Vin}
Voltage the node must swingV400 V
\text{Ceq}
Total node capacitanceF400 pF
L
Resonant (leakage) inductanceH20 uH
\text{I0}
Inductor current at the start of the transitionA3 A

You get

MeaningUnitExample
Z
Characteristic impedance sqrt(L/C)ohm223.6067977 ohm
f_{\mathrm{res}}
Resonant frequencyHz1779406.359 Hz
I_{\mathrm{min}}
Minimum current for ZVS Vin/ZA1.788854382 A
E_{L}
Inductor energyJ9e-05 J
E_{C}
Capacitor energyJ3.2e-05 J
\text{zvs}
Achieved or not achieved—achieved
t_{\mathrm{transition}}
Time to reach Vin (or to the voltage peak when ZVS fails)s5.714183564e-08 s
v_{\mathrm{reached}}
Highest node voltage reached (capped at Vin)V400 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • lossless resonant transition starting at 0 V

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Zero-voltage switching transition: Vin = 400 V, Ceq = 400 pF, L = 20 uH, I0 = 3 A
Z = 223.6067977 ohm
f_res = 1779406.359 Hz
I_min = 1.788854382 A
E_L = 9e-05 J
E_C = 3.2e-05 J
zvs = achieved

Run it

Terminal
$ power-electronics solve pe_zvs_transition "Vin=400 V" "Ceq=400 pF" "L=20 uH" "I0=3 A"
Z = 223.6067977 ohm
f_res = 1779406.359 Hz
I_min = 1.788854382 A
E_L = 9e-05 J
E_C = 3.2e-05 J
zvs = achieved
t_transition = 5.714183564e-08 s
v_reached = 400 V
  by: Zero-voltage switching: resonant transition of a switch node  (v(t) = I0 Z sin(w t), Z = sqrt(L/C); ZVS when I0 Z >= Vin; t = asin(Vin/(I0 Z))/w)
  Vin = 400 V
  Ceq = 4e-10 F
  L = 2e-05 H
  I0 = 3 A
  assumes: lossless resonant transition starting at 0 V

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Front ends 2

Boost power-factor-correction stage2 fig.pe_boost_pfc

The peak line current, duty cycle and inductor ripple at the line peak, the largest ripple over the line cycle, the inductor current at the line peak and the second-harmonic output voltage ripple of a continuous-conduction boost PFC stage with unity power factor.

\Delta i_L(v) = \frac{v\,(1-v/V_o)}{Lf_s},\quad \Delta i_{L,max} = \frac{V_o}{4Lf_s},\quad \Delta V_o = \frac{P_o}{2\pi f_{line}CV_o}

You give

MeaningUnitExample
\text{Vac}
RMS line voltageV230 V
f_{\mathrm{line}}
Line frequencyHz50 Hz
\text{Vo}
Dc output voltageV400 V
\text{Po}
Output powerW500 W
\text{eff}
Efficiency (a fraction or %)—0.95
L
Boost inductanceH500 uH
\text{fs}
Switching frequencyHz65 kHz
C
Output (bulk) capacitanceF330 uF

You get

MeaningUnitExample
I_{\mathrm{in},\mathrm{pk}}
Peak line currentA3.236186642 A
D_{\mathrm{peak}}
Duty cycle at the line peak—0.1868272016
\text{dI\_peak}
Inductor ripple at the line peakA1.869819057 A
\text{dI\_max}
Largest inductor ripple over the line cycleA3.076923077 A
\text{IL\_at\_peak}
Peak inductor current at the line peakA4.17109617 A
\text{dVo\_pp}
Peak-to-peak second-harmonic output rippleV12.05719266 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • unity power factor, continuous conduction
  • Vo > sqrt(2) Vac
  • small output ripple

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Boost PFC stage: Vac = 230 V, f_line = 50 Hz, Vo = 400 V, Po = 500 W, eff = 0.95, L = 500 uH, fs = 65 kHz, C = 330 uF
I_in_pk = 3.236186642 A
D_peak = 0.1868272016
dI_peak = 1.869819057 A
dI_max = 3.076923077 A
IL_at_peak = 4.17109617 A
dVo_pp = 12.05719266 V

Run it

Terminal
$ power-electronics solve pe_boost_pfc "Vac=230 V" "f_line=50 Hz" "Vo=400 V" "Po=500 W" eff=0.95 "L=500 uH" "fs=65 kHz" "C=330 uF"
I_in_pk = 3.236186642 A
D_peak = 0.1868272016
dI_peak = 1.869819057 A
dI_max = 3.076923077 A
IL_at_peak = 4.17109617 A
dVo_pp = 12.05719266 V
  by: Boost power-factor-correction stage  (Ipk = 2 Po/(eff Vpk); dI(v) = v (1 - v/Vo)/(L fs), largest at v = Vo/2; dVo = Po/(2 pi f_line C Vo))
  Vac = 230 V
  f_line = 50 Hz
  Vo = 400 V
  Po = 500 W
  eff = 0.95
  L = 0.0005 H
  fs = 65000 Hz
  C = 0.00033 F
  assumes: unity power factor, continuous conduction; Vo > sqrt(2) Vac; small output ripple

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Hold-up (bulk) capacitor1 fig.pe_hold_up_capacitor

The bulk capacitance that keeps a constant-power load running for a hold-up time while the capacitor voltage falls from V1 to the minimum operating voltage V2, with the energies involved.

C = \frac{2P_ot_{hold}}{V_1^2 – V_2^2}

You give

MeaningUnitExample
\text{Po}
Load power drawn from the capacitorW300 W
t_{\mathrm{hold}}
Hold-up times20 ms
\text{V1}
Starting capacitor voltageV390 V
\text{V2}
Minimum operating voltageV300 V

You get

MeaningUnitExample
C
Required capacitanceF0.000193236715 F
E_{\mathrm{used}}
Energy delivered Po tJ6 J
E_{\mathrm{initial}}
Energy stored at the starting voltageJ14.69565217 J
E_{\mathrm{remaining}}
Energy left at the minimum voltageJ8.695652174 J

Values with a unit may be written in any unit of the right kind.

Applies when

  • constant-power load
  • V2 < V1

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Hold-up capacitor: Po = 300 W, t_hold = 20 ms, V1 = 390 V, V2 = 300 V
C = 0.000193236715 F
E_used = 6 J
E_initial = 14.69565217 J
E_remaining = 8.695652174 J

Run it

Terminal
$ power-electronics solve pe_hold_up_capacitor "Po=300 W" "t_hold=20 ms" "V1=390 V" "V2=300 V"
C = 0.000193236715 F
E_used = 6 J
E_initial = 14.69565217 J
E_remaining = 8.695652174 J
  by: Hold-up (bulk) capacitor  (C = 2 Po t_hold/(V1^2 - V2^2))
  Po = 300 W
  t_hold = 0.02 s
  V1 = 390 V
  V2 = 300 V
  assumes: constant-power load; V2 < V1

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Inverters 7

Inverter dead-time voltage error1 fig.pe_dead_time_error

The average voltage error per switching period caused by the dead time of an inverter leg, the peak of its fundamental (the error is a square wave in phase with the current) and that as a percentage of the wanted fundamental.

\Delta V = t_d f_s V_{dc},\quad \Delta\hat V_1 = \frac{4}{\pi}t_d f_s V_{dc}

You give

MeaningUnitExample
\text{Vdc}
Dc-link voltageV600 V
\text{td}
Dead times2000 ns
\text{fs}
Switching frequencyHz10 kHz
\text{V1}
Wanted fundamental peak voltageV250 V

You get

MeaningUnitExample
\text{dV\_avg}
Average voltage error td fs VdcV12 V
\text{dV1\_peak}
Peak fundamental of the errorV15.27887454 V
\text{dV1\_pct}
Error in percent of the wanted fundamental—6.111549815

Values with a unit may be written in any unit of the right kind.

Applies when

  • td fs < 0.5
  • the current does not change sign within a switching period

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Dead-time voltage error: Vdc = 600 V, td = 2000 ns, fs = 10 kHz, V1 = 250 V
dV_avg = 12 V
dV1_peak = 15.27887454 V
dV1_pct = 6.111549815

Run it

Terminal
$ power-electronics solve pe_dead_time_error "Vdc=600 V" "td=2000 ns" "fs=10 kHz" "V1=250 V"
dV_avg = 12 V
dV1_peak = 15.27887454 V
dV1_pct = 6.111549815
  by: Inverter dead-time voltage error  (dV = td fs Vdc; its fundamental 4 dV/pi)
  Vdc = 600 V
  td = 2e-06 s
  fs = 10000 Hz
  V1 = 250 V
  assumes: td fs < 0.5; the current does not change sign within a switching period

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Quasi-square-wave (phase-shifted) full-bridge inverter1 fig.pe_quasi_square_inverter

The fundamental, the RMS value of an odd harmonic n, the RMS output and the THD of a full-bridge inverter with a zero-voltage interval alpha at each end of every half-cycle, and the alpha that eliminates harmonic n.

V_{n,rms} = \frac{4V_{dc}}{n\pi\sqrt2}\cos(n\alpha),\quad V_{rms} = V_{dc}\sqrt{1-\frac{2\alpha}{\pi}}

You give

MeaningUnitExample
\text{Vdc}
Dc input voltageV100 V
\alpha
Zero-voltage interval at each end of a half-cyclerad30 deg
n
Odd harmonic order—3

You get

MeaningUnitExample
\text{V1\_rms}
RMS fundamentalV77.96968012 V
\text{Vn\_rms}
RMS value of harmonic nV0 V
\text{Vrms}
RMS output voltageV81.64965809 V
\text{THD}
Total harmonic distortion—0.3108419393
\alpha_{\mathrm{eliminate},n,\mathrm{deg}}
Zero interval in degrees that removes harmonic n—30

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 <= alpha < 90 degrees
  • n odd, 3..99

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Quasi-square-wave inverter: Vdc = 100 V, alpha = 30 deg, n = 3
V1_rms = 77.96968012 V
Vn_rms = 0 V
Vrms = 81.64965809 V
THD = 0.3108419393
alpha_eliminate_n_deg = 30

Run it

Terminal
$ power-electronics solve pe_quasi_square_inverter "Vdc=100 V" "alpha=30 deg" n=3
V1_rms = 77.96968012 V
Vn_rms = 0 V
Vrms = 81.64965809 V
THD = 0.3108419393
alpha_eliminate_n_deg = 30
  by: Quasi-square-wave (phase-shifted) full-bridge inverter  (Vn = 4 Vdc cos(n alpha)/(n pi sqrt 2); Vrms = Vdc sqrt(1 - 2 alpha/pi); harmonic n vanishes at alpha = 90/n degrees)
  Vdc = 100 V
  alpha = 0.5235987756 rad
  assumes: 0 <= alpha < 90 degrees; n odd, 3..99

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Sinusoidal PWM: fundamental output voltage1 fig.pe_spwm_fundamental

The fundamental output voltage of sinusoidal (sine-triangle) PWM in the linear range: the peak and RMS phase-leg voltage, the RMS line voltage of a three-phase inverter, the RMS output of a bipolar full bridge, and the carrier frequency.

\hat V_{1,leg} = m_a\frac{V_{dc}}{2},\quad V_{LL1,rms} = \frac{\sqrt3}{2\sqrt2}m_aV_{dc},\quad f_c = m_f f_1

You give

MeaningUnitExample
\text{Vdc}
Dc-link voltageV600 V
\text{ma}
Amplitude modulation index—0.8
\text{mf}
Frequency modulation ratio (odd whole number)—21
\text{f1}
Fundamental output frequencyHz50 Hz

You get

MeaningUnitExample
\text{V1\_leg\_peak}
Peak fundamental of a leg against the dc midpointV240 V
\text{V1\_leg\_rms}
RMS fundamental of a legV169.7056275 V
\text{V1\_LL\_rms}
RMS fundamental line voltage of a three-phase inverterV293.9387691 V
\text{V1\_fullbridge\_rms}
RMS fundamental of a bipolar full bridgeV339.411255 V
f_{\mathrm{carrier}}
Carrier (switching) frequencyHz1050 Hz

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < ma <= 1
  • mf odd, 15..201 (natural sampling)

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Sinusoidal PWM fundamental: Vdc = 600 V, ma = 0.8, mf = 21, f1 = 50 Hz
V1_leg_peak = 240 V
V1_leg_rms = 169.7056275 V
V1_LL_rms = 293.9387691 V
V1_fullbridge_rms = 339.411255 V
f_carrier = 1050 Hz

Run it

Terminal
$ power-electronics solve pe_spwm_fundamental "Vdc=600 V" ma=0.8 mf=21 "f1=50 Hz"
V1_leg_peak = 240 V
V1_leg_rms = 169.7056275 V
V1_LL_rms = 293.9387691 V
V1_fullbridge_rms = 339.411255 V
f_carrier = 1050 Hz
  by: Sinusoidal PWM: fundamental output voltage  (V1,leg = ma Vdc/2 (peak); V1,LL = sqrt(3) ma Vdc/(2 sqrt 2); bipolar full bridge V1 = ma Vdc/sqrt 2; fc = mf f1)
  Vdc = 600 V
  ma = 0.8
  f1 = 50 Hz
  assumes: 0 < ma <= 1; mf odd, 15..201 (natural sampling)

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Space-vector modulation dwell times1 fig.pe_space_vector_times

The sector and the dwell times T1, T2 of the two adjacent active vectors and T0 of the zero vectors that synthesise a reference space vector (peak phase voltage Vref at angle theta) in one switching period of a two-level three-phase inverter.

T_1 = \frac{\sqrt3 T_s V_{ref}}{V_{dc}}\sin\!\left(\tfrac{\pi}{3}-\theta'\right),\quad T_2 = \frac{\sqrt3 T_s V_{ref}}{V_{dc}}\sin\theta',\quad T_0 = T_s – T_1 – T_2

You give

MeaningUnitExample
\text{Vref}
Reference vector magnitude (peak phase voltage)V200 V
\theta
Reference vector anglerad25 deg
\text{Vdc}
Dc-link voltageV600 V
\text{fs}
Switching (sampling) frequencyHz10 kHz

You get

MeaningUnitExample
\text{sector}
Sector number—1
\text{T1}
Dwell time of the first active vectors3.311545099e-05 s
\text{T2}
Dwell time of the second active vectors2.439987672e-05 s
\text{T0}
Total zero-vector times4.248467229e-05 s
m
Modulation index—0.5773502692

Values with a unit may be written in any unit of the right kind.

Applies when

  • inside the hexagon (T1 + T2 <= Ts)

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Space vector dwell times: Vref = 200 V, theta = 25 deg, Vdc = 600 V, fs = 10 kHz
sector = 1
T1 = 3.311545099e-05 s
T2 = 2.439987672e-05 s
T0 = 4.248467229e-05 s
m = 0.5773502692

Run it

Terminal
$ power-electronics solve pe_space_vector_times "Vref=200 V" "theta=25 deg" "Vdc=600 V" "fs=10 kHz"
sector = 1
T1 = 3.311545099e-05 s
T2 = 2.439987672e-05 s
T0 = 4.248467229e-05 s
m = 0.5773502692
  by: Space-vector modulation dwell times  (T1 = sqrt(3) Ts Vref/Vdc sin(60 deg - theta'), T2 = sqrt(3) Ts Vref/Vdc sin(theta'), T0 = Ts - T1 - T2, theta' = angle within the sector)
  Vref = 200 V
  theta = 0.436332313 rad
  Vdc = 600 V
  fs = 10000 Hz
  assumes: inside the hexagon (T1 + T2 <= Ts)

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Square-wave inverter output and harmonics1 fig.pe_square_wave_inverter

The RMS output voltage, the fundamental (RMS and peak), the RMS value of an odd harmonic n and the THD of a single-phase half-bridge or full-bridge inverter operated with square-wave (180 degree) switching.

V_{n,rms} = \frac{4A}{n\pi\sqrt2},\quad THD = \sqrt{\frac{\pi^2}{8}-1}

You give

MeaningUnitExample
\text{Vdc}
Dc input voltageV100 V
\text{bridge}
Half-bridge or full-bridge choice—full-bridge
n
Odd harmonic order—3

You get

MeaningUnitExample
\text{Vrms}
RMS output voltageV100 V
\text{V1\_rms}
RMS fundamentalV90.03163162 V
\text{V1\_peak}
Peak fundamentalV127.3239545 V
\text{Vn\_rms}
RMS value of harmonic nV30.01054387 V
\text{THD}
Total harmonic distortion—0.4834258476

Values with a unit may be written in any unit of the right kind.

Applies when

  • n odd, 3..99
  • ideal switching, no dead time

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Square-wave inverter: Vdc = 100 V, bridge = full-bridge, n = 3
Vrms = 100 V
V1_rms = 90.03163162 V
V1_peak = 127.3239545 V
Vn_rms = 30.01054387 V
THD = 0.4834258476

Run it

Terminal
$ power-electronics solve pe_square_wave_inverter "Vdc=100 V" bridge=full-bridge n=3
Vrms = 100 V
V1_rms = 90.03163162 V
V1_peak = 127.3239545 V
Vn_rms = 30.01054387 V
THD = 0.4834258476
  by: Square-wave inverter output and harmonics  (A = Vdc (full bridge) or Vdc/2 (half bridge); V1 = 4 A/(pi sqrt 2); Vn = V1/n; THD = sqrt(pi^2/8 - 1))
  Vdc = 100 V
  bridge = full-bridge
  assumes: n odd, 3..99; ideal switching, no dead time

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Square-wave inverter with an RL load: current1 fig.pe_inverter_rl_load_current

The steady-state peak current, RMS current, load power and average dc source current of a full-bridge square-wave inverter driving a series RL load (exact exponential current, not a harmonic approximation).

I_{max} = \frac{V_{dc}}{R}\,\frac{1-e^{-T/2\tau}}{1+e^{-T/2\tau}},\quad \tau = \frac{L}{R}

You give

MeaningUnitExample
\text{Vdc}
Dc input voltageV100 V
f
Output frequencyHz60 Hz
R
Load resistanceohm10 ohm
L
Load inductanceH25 mH

You get

MeaningUnitExample
I_{\mathrm{max}}
Peak load currentA9.311096087 A
I_{\mathrm{rms}}
RMS load currentA6.643299141 A
P
Load powerW441.3342348 W
\text{Is\_avg}
Average dc source currentA4.413342348 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • steady state, ideal switches with antiparallel diodes

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Inverter RL load current: Vdc = 100 V, f = 60 Hz, R = 10 ohm, L = 25 mH
I_max = 9.311096087 A
I_rms = 6.643299141 A
P = 441.3342348 W
Is_avg = 4.413342348 A

Run it

Terminal
$ power-electronics solve pe_inverter_rl_load_current "Vdc=100 V" "f=60 Hz" "R=10 ohm" "L=25 mH"
I_max = 9.311096087 A
I_rms = 6.643299141 A
P = 441.3342348 W
Is_avg = 4.413342348 A
  by: Square-wave inverter with an RL load: current  (I_max = (Vdc/R)(1 - e^(-T/2tau))/(1 + e^(-T/2tau)); i(t) = Vdc/R + (-I_max - Vdc/R) e^(-t/tau) over a half-cycle; P = I_rms^2 R)
  Vdc = 100 V
  f = 60 Hz
  R = 10 ohm
  L = 0.025 H
  assumes: steady state, ideal switches with antiparallel diodes

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Three-phase six-step (square-wave) inverter1 fig.pe_six_step_inverter

The RMS line and phase voltages, their fundamentals, the THD and the 5th and 7th harmonics of a three-phase voltage-source inverter in six-step (180 degree) operation.

V_{LL1} = \frac{\sqrt6}{\pi}V_{dc},\quad V_{LL} = \sqrt{\tfrac23}V_{dc},\quad V_{LL,h} = \frac{V_{LL1}}{h}

You give

MeaningUnitExample
\text{Vdc}
Dc-link voltageV600 V
f
Output (fundamental) frequencyHz50 Hz

You get

MeaningUnitExample
\text{VLL\_rms}
RMS line-to-line voltageV489.8979486 V
\text{VLL1\_rms}
RMS fundamental line voltageV467.8180807 V
\text{Vph\_rms}
RMS phase voltageV282.8427125 V
\text{Vph1\_rms}
RMS fundamental phase voltageV270.0948948 V
\text{THD}
THD of the line voltage—0.3108419393
\text{VLL5\_rms}
RMS fifth-harmonic line voltageV93.56361615 V
\text{VLL7\_rms}
RMS seventh-harmonic line voltageV66.83115439 V
\text{f5}
Fifth-harmonic frequencyHz250 Hz
\text{f7}
Seventh-harmonic frequencyHz350 Hz

Values with a unit may be written in any unit of the right kind.

Applies when

  • balanced star load, ideal switching

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Six-step inverter: Vdc = 600 V, f = 50 Hz
VLL_rms = 489.8979486 V
VLL1_rms = 467.8180807 V
Vph_rms = 282.8427125 V
Vph1_rms = 270.0948948 V
THD = 0.3108419393
VLL5_rms = 93.56361615 V

Run it

Terminal
$ power-electronics solve pe_six_step_inverter "Vdc=600 V" "f=50 Hz"
VLL_rms = 489.8979486 V
VLL1_rms = 467.8180807 V
Vph_rms = 282.8427125 V
Vph1_rms = 270.0948948 V
THD = 0.3108419393
VLL5_rms = 93.56361615 V
VLL7_rms = 66.83115439 V
f5 = 250 Hz
f7 = 350 Hz
  by: Three-phase six-step (square-wave) inverter  (V_LL = sqrt(2/3) Vdc; V_LL1 = sqrt(6) Vdc/pi = 0.78 Vdc; harmonics 6k +- 1 at V_LL1/h)
  Vdc = 600 V
  f = 50 Hz
  assumes: balanced star load, ideal switching

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Isolated converters 4

Flyback converter in continuous conduction2 fig.pe_flyback_ccm

The duty cycle, magnetizing current (primary-referred) and ripple, peak primary and secondary currents and the switch and diode voltage stresses of an ideal flyback converter in continuous conduction.

\frac{V_o}{V_{in}} = \frac{1}{n}\frac{D}{1-D},\quad I_m = \frac{I_o}{n(1-D)},\quad \Delta i_m = \frac{V_{in}D}{L_m f_s}

You give

MeaningUnitExample
\text{Vin}
Input voltageV48 V
\text{Vout}
Output voltageV12 V
n
Turns ratio Np/Ns—2
\text{Lm}
Magnetizing inductance (primary)H200 uH
\text{fs}
Switching frequencyHz100 kHz
\text{Io}
Load currentA2 A

You get

MeaningUnitExample
D
Duty cycle—0.3333333333
\text{Im}
Average magnetizing current referred to the primaryA1.5 A
\text{dIm}
Magnetizing current rippleA0.8 A
\text{Ipk\_primary}
Peak primary (switch) currentA1.9 A
\text{Ipk\_secondary}
Peak secondary (diode) currentA3.8 A
V_{\mathrm{switch}}
Switch voltage stress Vin + n VoV72 V
V_{\mathrm{diode}}
Diode reverse voltage Vo + Vin/nV36 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • continuous conduction of the magnetizing current
  • no leakage inductance

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Flyback converter: Vin = 48 V, Vout = 12 V, n = 2, Lm = 200 uH, fs = 100 kHz, Io = 2 A
D = 0.3333333333
Im = 1.5 A
dIm = 0.8 A
Ipk_primary = 1.9 A
Ipk_secondary = 3.8 A
V_switch = 72 V

Run it

Terminal
$ power-electronics solve pe_flyback_ccm "Vin=48 V" "Vout=12 V" n=2 "Lm=200 uH" "fs=100 kHz" "Io=2 A"
D = 0.3333333333
Im = 1.5 A
dIm = 0.8 A
Ipk_primary = 1.9 A
Ipk_secondary = 3.8 A
V_switch = 72 V
V_diode = 36 V
  by: Flyback converter in continuous conduction  (D = n Vo/(Vin + n Vo); Im = Io/(n (1 - D)); dIm = Vin D/(Lm fs))
  Vin = 48 V
  Vout = 12 V
  n = 2
  Lm = 0.0002 H
  fs = 100000 Hz
  Io = 2 A
  assumes: continuous conduction of the magnetizing current; no leakage inductance

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Flyback magnetizing inductance for discontinuous conduction1 fig.pe_flyback_dcm_design

The magnetizing inductance at which a flyback converter delivers a power at a duty cycle in discontinuous conduction (the primary current ramps from zero every period), with the peak, RMS and average primary currents.

L_m = \frac{(V_{in}D)^2}{2 P_{in} f_s},\quad I_{pk} = \frac{V_{in}D}{L_m f_s},\quad I_{rms} = I_{pk}\sqrt{D/3}

You give

MeaningUnitExample
\text{Vin}
Input voltage (the minimum, for design)V100 V
\text{Po}
Output powerW30 W
\text{eff}
Efficiency (a fraction or %)—0.85
\text{fs}
Switching frequencyHz100 kHz
D
Duty cycle at this input voltage (a fraction or %)—0.45

You get

MeaningUnitExample
\text{Pin}
Input powerW35.29411765 W
\text{Lm}
Magnetizing inductanceH0.000286875 H
I_{\mathrm{pk}}
Peak primary currentA1.568627451 A
I_{\mathrm{rms}}
RMS primary currentA0.6075267994 A
I_{\mathrm{avg}}
Average input currentA0.3529411765 A
E_{\mathrm{cycle}}
Energy stored per cycleJ0.0003529411765 J

Values with a unit may be written in any unit of the right kind.

Applies when

  • discontinuous conduction: the stored energy is fully released every period

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Flyback DCM design: Vin = 100 V, Po = 30 W, eff = 0.85, fs = 100 kHz, D = 0.45
Pin = 35.29411765 W
Lm = 0.000286875 H
I_pk = 1.568627451 A
I_rms = 0.6075267994 A
I_avg = 0.3529411765 A
E_cycle = 0.0003529411765 J

Run it

Terminal
$ power-electronics solve pe_flyback_dcm_design "Vin=100 V" "Po=30 W" eff=0.85 "fs=100 kHz" D=0.45
Pin = 35.29411765 W
Lm = 0.000286875 H
I_pk = 1.568627451 A
I_rms = 0.6075267994 A
I_avg = 0.3529411765 A
E_cycle = 0.0003529411765 J
  by: Flyback magnetizing inductance for discontinuous conduction  (Pin = Po/eff = Lm Ipk^2 fs/2 with Ipk = Vin D/(Lm fs) -> Lm = (Vin D)^2/(2 Pin fs); I_rms = Ipk sqrt(D/3))
  Vin = 100 V
  Po = 30 W
  eff = 0.85
  fs = 100000 Hz
  D = 0.45
  assumes: discontinuous conduction: the stored energy is fully released every period

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Forward converter with reset winding1 fig.pe_forward_ccm

The duty cycle, the largest duty cycle the reset winding allows, the switch voltage stress and the output inductor ripple of a single-switch forward converter in continuous conduction.

V_o = \frac{V_{in} D}{n},\quad D_{max} = \frac{1}{1+N_r/N_p},\quad V_{sw} = V_{in}\left(1+\frac{N_p}{N_r}\right)

You give

MeaningUnitExample
\text{Vin}
Input voltageV48 V
\text{Vout}
Output voltageV5 V
n
Turns ratio Np/Ns—3
\text{Nr}
Reset-winding to primary turns ratio Nr/Np—1
L
Output inductanceH22 uH
\text{fs}
Switching frequencyHz200 kHz
\text{Io}
Load currentA5 A

You get

MeaningUnitExample
D
Duty cycle—0.3125
D_{\mathrm{max}}
Largest duty cycle that resets the core—0.5
V_{\mathrm{switch}}
Switch voltage stressV96 V
\text{dIL}
Output inductor rippleA0.78125 A
\text{IL\_max}
Peak output inductor currentA5.390625 A
\text{IL\_min}
Valley output inductor currentA4.609375 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • D < D_max
  • continuous conduction of the output inductor

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Forward converter: Vin = 48 V, Vout = 5 V, n = 3, Nr = 1, L = 22 uH, fs = 200 kHz, Io = 5 A
D = 0.3125
D_max = 0.5
V_switch = 96 V
dIL = 0.78125 A
IL_max = 5.390625 A
IL_min = 4.609375 A

Run it

Terminal
$ power-electronics solve pe_forward_ccm "Vin=48 V" "Vout=5 V" n=3 Nr=1 "L=22 uH" "fs=200 kHz" "Io=5 A"
D = 0.3125
D_max = 0.5
V_switch = 96 V
dIL = 0.78125 A
IL_max = 5.390625 A
IL_min = 4.609375 A
  by: Forward converter with reset winding  (D = n Vo/Vin; D_max = 1/(1 + Nr/Np); Vsw = Vin (1 + Np/Nr); dIL = (Vin/n - Vo) D/(L fs))
  Vin = 48 V
  Vout = 5 V
  n = 3
  Nr = 1
  L = 2.2e-05 H
  fs = 200000 Hz
  Io = 5 A
  assumes: D < D_max; continuous conduction of the output inductor

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Push-pull, half-bridge and full-bridge converters1 fig.pe_bridge_converter

The duty cycle per switch, switch voltage stress, output ripple frequency and output inductor ripple of an ideal push-pull, half-bridge or full-bridge DC-DC converter with a centre-tapped (full-wave) rectifier, in continuous conduction.

V_o = \frac{2 D V_{in}}{n}\ (\text{push-pull, full-bridge}),\quad V_o = \frac{D V_{in}}{n}\ (\text{half-bridge})

You give

MeaningUnitExample
\text{topology}
Push-pull, half-bridge or full-bridge choice—full-bridge
\text{Vin}
Input voltageV400 V
\text{Vout}
Output voltageV48 V
n
Turns ratio Np/Ns (primary to each secondary half)—5
L
Output inductanceH50 uH
\text{fs}
Switching frequencyHz100 kHz
\text{Io}
Load currentA10 A

You get

MeaningUnitExample
D
Duty cycle of each switch—0.3
V_{\mathrm{switch}}
Switch voltage stressV400 V
f_{\mathrm{ripple}}
Output ripple frequencyHz200000 Hz
\text{dIL}
Output inductor rippleA1.92 A
\text{IL\_min}
Valley output inductor currentA9.04 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • D < 0.5
  • continuous conduction of the output inductor

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Isolated bridge converter: topology = full-bridge, Vin = 400 V, Vout = 48 V, n = 5, L = 50 uH, fs = 100 kHz, Io = 10 A
D = 0.3
V_switch = 400 V
f_ripple = 200000 Hz
dIL = 1.92 A
IL_min = 9.04 A

Run it

Terminal
$ power-electronics solve pe_bridge_converter topology=full-bridge "Vin=400 V" "Vout=48 V" n=5 "L=50 uH" "fs=100 kHz" "Io=10 A"
D = 0.3
V_switch = 400 V
f_ripple = 200000 Hz
dIL = 1.92 A
IL_min = 9.04 A
  by: Push-pull, half-bridge and full-bridge converters  (Vo = 2 D Vin/n (push-pull, full-bridge), Vo = D Vin/n (half-bridge); dIL = (Vsec - Vo) D/(L fs))
  Vin = 400 V
  Vout = 48 V
  n = 5
  L = 5e-05 H
  fs = 100000 Hz
  Io = 10 A
  topology = full-bridge
  assumes: D < 0.5; continuous conduction of the output inductor

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Losses 3

Boost converter with inductor resistance: gain and efficiency1 fig.pe_boost_nonideal_gain

The conversion ratio, output voltage, efficiency and inductor current of a boost converter whose inductor has a series resistance, with the duty cycle of maximum gain and that maximum gain.

M = \frac{1}{1-D}\,\frac{1}{1+\frac{R_L}{(1-D)^2R}},\quad \eta = \frac{1}{1+\frac{R_L}{(1-D)^2R}}

You give

MeaningUnitExample
\text{Vin}
Input voltageV12 V
D
Duty cycle (a fraction or %)—0.75
R
Load resistanceohm50 ohm
\text{RL}
Inductor series resistanceohm0.5 ohm

You get

MeaningUnitExample
M
Conversion ratio—3.448275862
\text{Vout}
Output voltageV41.37931034 V
\text{efficiency}
Efficiency—0.8620689655
\text{IL}
Average inductor currentA3.310344828 A
D_{\mathrm{peak}}
Duty cycle of maximum gain—0.9
M_{\mathrm{max}}
Maximum gain—5

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < RL < R
  • continuous conduction, ideal switches

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Non-ideal boost converter: Vin = 12 V, D = 0.75, R = 50 ohm, RL = 0.5 ohm
M = 3.448275862
Vout = 41.37931034 V
efficiency = 0.8620689655
IL = 3.310344828 A
D_peak = 0.9
M_max = 5

Run it

Terminal
$ power-electronics solve pe_boost_nonideal_gain "Vin=12 V" D=0.75 "R=50 ohm" "RL=0.5 ohm"
M = 3.448275862
Vout = 41.37931034 V
efficiency = 0.8620689655
IL = 3.310344828 A
D_peak = 0.9
M_max = 5
  by: Boost converter with inductor resistance: gain and efficiency  (M = (1/(1 - D)) / (1 + RL/((1 - D)^2 R)); efficiency = 1/(1 + RL/((1 - D)^2 R)); D_peak = 1 - sqrt(RL/R); M_max = sqrt(R/RL)/2)
  Vin = 12 V
  D = 0.75
  R = 50 ohm
  RL = 0.5 ohm
  assumes: 0 < RL < R; continuous conduction, ideal switches

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Buck converter efficiency with conduction and switching losses1 fig.pe_buck_with_losses

The duty cycle needed and the losses of a buck converter with a switch on-resistance, inductor resistance, diode forward drop and hard switching: conduction, diode, inductor and switching losses and the efficiency (ripple neglected).

D = \frac{V_o+V_F+I_oR_L}{V_{in}-I_oR_{ds}+V_F},\quad P_{sw} = \tfrac12 V_{in}I_o t_{sw} f_s,\quad \eta = \frac{P_o}{P_o+\sum P}

You give

MeaningUnitExample
\text{Vin}
Input voltageV24 V
\text{Vout}
Output voltageV5 V
\text{Io}
Load currentA4 A
\text{fs}
Switching frequencyHz200 kHz
\text{Rds}
Switch on-resistanceohm0.02 ohm
\text{RL}
Inductor resistanceohm0.01 ohm
\text{VF}
Diode forward voltageV0.5 V
\text{tsw}
Total switching (crossover) time per period, turn-on plus turn-offs40 ns

You get

MeaningUnitExample
D
Duty cycle—0.2268632269
P_{\mathrm{switch},\mathrm{cond}}
Switch conduction lossW0.0725962326 W
P_{\mathrm{diode}}
Diode conduction lossW1.546273546 W
P_{\mathrm{inductor}}
Inductor copper lossW0.16 W
P_{\mathrm{switching}}
Switching lossW0.384 W
P_{\mathrm{loss}}
Total lossW2.162869779 W
\text{efficiency}
Efficiency—0.9024102113

Values with a unit may be written in any unit of the right kind.

Applies when

  • continuous conduction, ripple neglected
  • hard switching with linear crossover at Vin and Io

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Buck converter losses: Vin = 24 V, Vout = 5 V, Io = 4 A, fs = 200 kHz, Rds = 0.02 ohm, RL = 0.01 ohm, VF = 0.5 V, tsw = 40 ns
D = 0.2268632269
P_switch_cond = 0.0725962326 W
P_diode = 1.546273546 W
P_inductor = 0.16 W
P_switching = 0.384 W
P_loss = 2.162869779 W

Run it

Terminal
$ power-electronics solve pe_buck_with_losses "Vin=24 V" "Vout=5 V" "Io=4 A" "fs=200 kHz" "Rds=0.02 ohm" "RL=0.01 ohm" "VF=0.5 V" "tsw=40 ns"
D = 0.2268632269
P_switch_cond = 0.0725962326 W
P_diode = 1.546273546 W
P_inductor = 0.16 W
P_switching = 0.384 W
P_loss = 2.162869779 W
efficiency = 0.9024102113
  by: Buck converter efficiency with conduction and switching losses  (D = (Vo + VF + Io RL)/(Vin - Io Rds + VF); P_sw,cond = Io^2 Rds D; P_D = VF Io (1 - D); P_L = Io^2 RL; P_sw = Vin Io tsw fs/2)
  Vin = 24 V
  Vout = 5 V
  Io = 4 A
  fs = 200000 Hz
  Rds = 0.02 ohm
  RL = 0.01 ohm
  VF = 0.5 V
  tsw = 4e-08 s
  assumes: continuous conduction, ripple neglected; hard switching with linear crossover at Vin and Io

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

IGBT and diode conduction losses in a sinusoidal PWM inverter1 fig.pe_igbt_inverter_conduction_losses

The conduction losses of one IGBT and one freewheeling diode (and of a whole leg) in a sinusoidal PWM inverter, from the peak phase current, modulation index, power-factor angle and the devices' threshold-voltage plus slope-resistance models.

P_T = V_{ce0}\hat I\left(\frac{1}{2\pi}+\frac{M\cos\phi}{8}\right) + r_{ce}\hat I^2\left(\frac18+\frac{M\cos\phi}{3\pi}\right)

You give

MeaningUnitExample
\text{Ip}
Peak phase currentA100 A
M
Modulation index—0.9
\phi
Power-factor angle (current lagging positive)rad30 deg
\text{Vce0}
IGBT threshold voltageV0.9 V
\text{rce}
IGBT slope resistanceohm0.01 ohm
\text{VF0}
Diode threshold voltageV0.8 V
\text{rF}
Diode slope resistanceohm0.008 ohm

You get

MeaningUnitExample
P_{\mathrm{igbt}}
Conduction loss of one IGBTW43.86238552 W
P_{\mathrm{diode}}
Conduction loss of one diodeW8.322220068 W
P_{\mathrm{switch},\mathrm{pair}}
One IGBT plus one diodeW52.18460559 W
P_{\mathrm{leg}}
Conduction loss of a leg (two of each)W104.3692112 W

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < M <= 1, sinusoidal current, switching frequency far above the output frequency

Outside these conditions it says what is wrong instead of returning a number.

Worked example

IGBT inverter conduction losses: Ip = 100 A, M = 0.9, phi = 30 deg, Vce0 = 0.9 V, rce = 0.01 ohm, VF0 = 0.8 V, rF = 0.008 ohm
P_igbt = 43.86238552 W
P_diode = 8.322220068 W
P_switch_pair = 52.18460559 W
P_leg = 104.3692112 W

Run it

Terminal
$ power-electronics solve pe_igbt_inverter_conduction_losses "Ip=100 A" M=0.9 "phi=30 deg" "Vce0=0.9 V" "rce=0.01 ohm" "VF0=0.8 V" "rF=0.008 ohm"
P_igbt = 43.86238552 W
P_diode = 8.322220068 W
P_switch_pair = 52.18460559 W
P_leg = 104.3692112 W
  by: IGBT and diode conduction losses in a sinusoidal PWM inverter  (P_T = Vce0 Ip (1/(2pi) + M cos(phi)/8) + rce Ip^2 (1/8 + M cos(phi)/(3pi)); P_D = VF0 Ip (1/(2pi) - M cos(phi)/8) + rF Ip^2 (1/8 - M cos(phi)/(3pi)))
  Ip = 100 A
  M = 0.9
  phi = 0.5235987756 rad
  Vce0 = 0.9 V
  rce = 0.01 ohm
  VF0 = 0.8 V
  rF = 0.008 ohm
  assumes: 0 < M <= 1, sinusoidal current, switching frequency far above the output frequency

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Magnetics 8

Core loss by the Steinmetz equation1 fig.pe_steinmetz_core_loss

The core loss density and total core loss of a magnetic core under sinusoidal flux from the Steinmetz parameters k, alpha, beta (SI: f in Hz, B in T, loss density in W/m³), the frequency, the peak flux density and the core volume.

P_v = k f^{\alpha} \hat B^{\beta}

You give

MeaningUnitExample
k
Steinmetz coefficient (SI units)—3.2
\alpha
Frequency exponent—1.4
\beta
Flux-density exponent—2.5
f
FrequencyHz100 kHz
\text{Bpk}
Peak flux densityT100 mT
\text{Vc}
Core volumem^35 cm^3

You get

MeaningUnitExample
\text{Pv}
Core loss densityW/m^3101192.8851 W/m^3
\text{Pv\_mW\_cm3}
Core loss density in milliwatts per cubic centimetre—101.1928851
P
Core lossW0.5059644256 W

Values with a unit may be written in any unit of the right kind.

Applies when

  • sinusoidal flux, within the parameters' fitted range

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Steinmetz core loss: k = 3.2, alpha = 1.4, beta = 2.5, f = 100 kHz, Bpk = 100 mT, Vc = 5 cm^3
Pv = 101192.8851 W/m^3
Pv_mW_cm3 = 101.1928851
P = 0.5059644256 W

Run it

Terminal
$ power-electronics solve pe_steinmetz_core_loss k=3.2 alpha=1.4 beta=2.5 "f=100 kHz" "Bpk=100 mT" "Vc=5 cm^3"
Pv = 101192.8851 W/m^3
Pv_mW_cm3 = 101.1928851
P = 0.5059644256 W
  by: Core loss by the Steinmetz equation  (Pv = k f^alpha Bpk^beta; P = Pv Vc)
  k = 3.2
  alpha = 1.4
  beta = 2.5
  f = 100000 Hz
  Bpk = 0.1 T
  Vc = 5e-06 m^3
  assumes: sinusoidal flux, within the parameters' fitted range

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Core loss under triangular flux (iGSE)1 fig.pe_igse_triangular_core_loss

The core loss of a magnetic component whose flux is triangular (a converter inductor or transformer with duty cycle D) by the improved generalized Steinmetz equation, from the sinusoidal Steinmetz parameters; also its ratio to the sinusoidal loss at the same peak flux.

P_v = k_i(\Delta B)^{\beta}f^{\alpha}\left(D^{1-\alpha}+(1-D)^{1-\alpha}\right),\ k_i = \frac{k}{(2\pi)^{\alpha-1}\int_0^{2\pi}|\cos\theta|^{\alpha}2^{\beta-\alpha}d\theta}

You give

MeaningUnitExample
k
Steinmetz coefficient (SI units)—3.2
\alpha
Frequency exponent—1.4
\beta
Flux-density exponent—2.5
f
Switching frequencyHz100 kHz
\text{dB}
Peak-to-peak flux density swingT200 mT
D
Duty cycle of the rising flux (a fraction or %)—0.5
\text{Vc}
Core volumem^35 cm^3

You get

MeaningUnitExample
\text{ki}
IGSE coefficient—0.1998061472
\text{Pv}
Core loss densityW/m^394324.78603 W/m^3
P
Core lossW0.4716239301 W
\text{ratio\_to\_sine}
Loss relative to a sinusoid of the same peak flux—0.9321286364

Values with a unit may be written in any unit of the right kind.

Applies when

  • piecewise-linear flux, no relaxation effects

Outside these conditions it says what is wrong instead of returning a number.

Worked example

iGSE core loss: k = 3.2, alpha = 1.4, beta = 2.5, f = 100 kHz, dB = 200 mT, D = 0.5, Vc = 5 cm^3
ki = 0.1998061472
Pv = 94324.78603 W/m^3
P = 0.4716239301 W
ratio_to_sine = 0.9321286364

Run it

Terminal
$ power-electronics solve pe_igse_triangular_core_loss k=3.2 alpha=1.4 beta=2.5 "f=100 kHz" "dB=200 mT" D=0.5 "Vc=5 cm^3"
ki = 0.1998061472
Pv = 94324.78603 W/m^3
P = 0.4716239301 W
ratio_to_sine = 0.9321286364
  by: Core loss under triangular flux (iGSE)  (ki = k/((2 pi)^(alpha-1) int|cos|^alpha 2^(beta-alpha)); Pv = ki dB^beta f^alpha (D^(1-alpha) + (1-D)^(1-alpha)))
  k = 3.2
  alpha = 1.4
  beta = 2.5
  f = 100000 Hz
  dB = 0.2 T
  D = 0.5
  Vc = 5e-06 m^3
  assumes: piecewise-linear flux, no relaxation effects

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Gapped-core inductor: turns and air gap1 fig.pe_gapped_inductor_design

The number of turns and the air-gap length of a gapped-core inductor that gives an inductance L with the peak flux density Bmax at the peak current (core reluctance and fringing neglected), the stored energy, the inductance factor AL and the gap volume.

N = \frac{LI_{pk}}{B_{max}A_c},\quad l_g = \frac{\mu_0N^2A_c}{L}

You give

MeaningUnitExample
L
InductanceH100 uH
\text{Ipk}
Peak currentA10 A
\text{Bmax}
Peak flux density allowedT300 mT
\text{Ac}
Core cross-section aream^21 cm^2

You get

MeaningUnitExample
N
Turns (before rounding)—33.33333333
l_{\mathrm{gap}}
Air-gap lengthm0.001396263401 m
E
Peak stored energyJ0.005 J
\text{AL}
Inductance per turn squaredH9e-08 H
V_{\mathrm{gap}}
Gap volumem^31.396263401e-07 m^3

Values with a unit may be written in any unit of the right kind.

Applies when

  • gap reluctance dominates; no fringing

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Gapped inductor design: L = 100 uH, Ipk = 10 A, Bmax = 300 mT, Ac = 1 cm^2
N = 33.33333333
l_gap = 0.001396263401 m
E = 0.005 J
AL = 9e-08 H
V_gap = 1.396263401e-07 m^3

Run it

Terminal
$ power-electronics solve pe_gapped_inductor_design "L=100 uH" "Ipk=10 A" "Bmax=300 mT" "Ac=1 cm^2"
N = 33.33333333
l_gap = 0.001396263401 m
E = 0.005 J
AL = 9e-08 H
V_gap = 1.396263401e-07 m^3
  by: Gapped-core inductor: turns and air gap  (N = L Ipk/(Bmax Ac); l_g = mu0 N^2 Ac/L; E = L Ipk^2/2)
  L = 0.0001 H
  Ipk = 10 A
  Bmax = 0.3 T
  Ac = 0.0001 m^2
  assumes: gap reluctance dominates; no fringing

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Inductor core area product1 fig.pe_inductor_area_product

The core area product Ap = Ac Wa an inductor needs to store its energy at the peak flux density Bmax with a current density J and window utilisation Ku (core selection by the area-product method).

A_p = A_cW_a = \frac{L\,I_{pk}I_{rms}}{B_{max}JK_u}

You give

MeaningUnitExample
L
InductanceH100 uH
\text{Ipk}
Peak currentA12 A
\text{Irms}
RMS currentA10 A
\text{Bmax}
Peak flux densityT300 mT
J
Winding current densityA/m^24 A/mm^2
\text{Ku}
Window utilisation factor (a fraction or %)—0.4

You get

MeaningUnitExample
\text{Ap}
Area product Ac Wam^42.5e-08 m^4
\text{Ap\_cm4}
Area product in centimetres to the fourth—2.5

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 < Ku < 1

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Inductor area product: L = 100 uH, Ipk = 12 A, Irms = 10 A, Bmax = 300 mT, J = 4 A/mm^2, Ku = 0.4
Ap = 2.5e-08 m^4
Ap_cm4 = 2.5

Run it

Terminal
$ power-electronics solve pe_inductor_area_product "L=100 uH" "Ipk=12 A" "Irms=10 A" "Bmax=300 mT" "J=4 A/mm^2" Ku=0.4
Ap = 2.5e-08 m^4
Ap_cm4 = 2.5
  by: Inductor core area product  (Ap = L Ipk Irms/(Bmax J Ku))
  L = 0.0001 H
  Ipk = 12 A
  Irms = 10 A
  Bmax = 0.3 T
  J = 4000000 A/m^2
  Ku = 0.4
  assumes: 0 < Ku < 1

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Skin effect in a round wire1 fig.pe_skin_effect_round_wire

The skin depth and the exact AC-to-DC resistance ratio (Bessel-function solution) of an isolated round conductor at a frequency, with its DC and AC resistance for a length.

\delta = \sqrt{\frac{\rho}{\pi f\mu_0}},\quad \frac{R_{ac}}{R_{dc}} = \mathrm{Re}\left[\frac{kr}{2}\frac{J_0(kr)}{J_1(kr)}\right],\ k = \frac{1-j}{\delta}

You give

MeaningUnitExample
d
Wire diameterm1 mm
f
FrequencyHz100 kHz
\rho
Conductor resistivityohm*m1.72e-08 ohm*m
\text{length}
Conductor lengthm1 m

You get

MeaningUnitExample
\delta
Skin depthm0.000208729751 m
d_{\mathrm{over},\delta}
Diameter in skin depths—4.790883882
\text{Rdc}
DC resistanceohm0.02189972017 ohm
\text{Rac}
AC resistanceohm0.03178226064 ohm
\text{ratio}
Rac/Rdc—1.451263322

Values with a unit may be written in any unit of the right kind.

Applies when

  • isolated straight wire (no proximity effect)
  • radius at most 10 skin depths

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Skin effect in round wire: d = 1 mm, f = 100 kHz, rho = 1.72e-08 ohm*m, length = 1 m
delta = 0.000208729751 m
d_over_delta = 4.790883882
Rdc = 0.02189972017 ohm
Rac = 0.03178226064 ohm
ratio = 1.451263322

Run it

Terminal
$ power-electronics solve pe_skin_effect_round_wire "d=1 mm" "f=100 kHz" "rho=1.72e-08 ohm*m" "length=1 m"
delta = 0.000208729751 m
d_over_delta = 4.790883882
Rdc = 0.02189972017 ohm
Rac = 0.03178226064 ohm
ratio = 1.451263322
  by: Skin effect in a round wire  (delta = sqrt(rho/(pi f mu0)); Rac/Rdc = Re[(k r/2) J0(k r)/J1(k r)], k = (1 - j)/delta)
  d = 0.001 m
  f = 100000 Hz
  rho = 1.72e-08 ohm*m
  length = 1 m
  assumes: isolated straight wire (no proximity effect); radius at most 10 skin depths

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Transformer core area product1 fig.pe_transformer_area_product

The apparent power the windings handle and the core area product Ap = Ac Wa a two-winding transformer needs for an output power at an efficiency, flux density, frequency, current density and window utilisation (sine or square-wave excitation).

A_p = \frac{P_t}{K_fK_uB_mfJ},\quad P_t = P_o\left(1+\frac{1}{\eta}\right)

You give

MeaningUnitExample
\text{Po}
Output powerW250 W
\text{eff}
Efficiency (a fraction or %)—0.95
\text{waveform}
Sine or square choice—square
\text{Bm}
Peak flux densityT100 mT
f
FrequencyHz100 kHz
J
Current densityA/m^24 A/mm^2
\text{Ku}
Window utilisation (a fraction or %)—0.4

You get

MeaningUnitExample
\text{Pt}
Apparent power of both windingsW513.1578947 W
\text{Ap}
Area productm^48.018092105e-09 m^4
\text{Ap\_cm4}
Area product in centimetres to the fourth—0.8018092105

Values with a unit may be written in any unit of the right kind.

Applies when

  • two windings at the same current density

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Transformer area product: Po = 250 W, eff = 0.95, waveform = square, Bm = 100 mT, f = 100 kHz, J = 4 A/mm^2, Ku = 0.4
Pt = 513.1578947 W
Ap = 8.018092105e-09 m^4
Ap_cm4 = 0.8018092105

Run it

Terminal
$ power-electronics solve pe_transformer_area_product "Po=250 W" eff=0.95 waveform=square "Bm=100 mT" "f=100 kHz" "J=4 A/mm^2" Ku=0.4
Pt = 513.1578947 W
Ap = 8.018092105e-09 m^4
Ap_cm4 = 0.8018092105
  by: Transformer core area product  (Pt = Po (1 + 1/eff); Ap = Pt/(Kf Ku Bm f J), Kf = 4.44 (sine) or 4 (square))
  Po = 250 W
  eff = 0.95
  Bm = 0.1 T
  f = 100000 Hz
  J = 4000000 A/m^2
  Ku = 0.4
  waveform = square
  assumes: two windings at the same current density

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Transformer turns from Faraday's law1 fig.pe_transformer_turns

The primary and secondary turns of a transformer that keep the peak flux density at Bmax in a core of cross-section Ac (sine or square-wave excitation), the turns ratio and the volts per turn.

N_p = \frac{V}{K_f f B_{max}A_c},\quad K_f = \sqrt2\pi\ (\text{sine}),\ 4\ (\text{square})

You give

MeaningUnitExample
\text{waveform}
Sine or square choice—square
V
Primary voltage (RMS for sine, amplitude for square)V48 V
f
FrequencyHz100 kHz
\text{Bmax}
Peak flux densityT150 mT
\text{Ac}
Core cross-section aream^21.25 cm^2
\text{Vs}
Secondary voltage (same measure as V)V12 V

You get

MeaningUnitExample
\text{Np}
Primary turns (before rounding up)—6.4
\text{Ns}
Secondary turns (before rounding)—1.6
n
Turns ratio Np/Ns—4
\text{volts\_per\_turn}
Volts per turnV7.5 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • the core does not saturate; no dc bias

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Transformer turns: waveform = square, V = 48 V, f = 100 kHz, Bmax = 150 mT, Ac = 1.25 cm^2, Vs = 12 V
Np = 6.4
Ns = 1.6
n = 4
volts_per_turn = 7.5 V

Run it

Terminal
$ power-electronics solve pe_transformer_turns waveform=square "V=48 V" "f=100 kHz" "Bmax=150 mT" "Ac=1.25 cm^2" "Vs=12 V"
Np = 6.4
Ns = 1.6
n = 4
volts_per_turn = 7.5 V
  by: Transformer turns from Faraday's law  (Np = V/(Kf f Bmax Ac), Kf = 4.44 (sine, RMS) or 4 (square))
  V = 48 V
  f = 100000 Hz
  Bmax = 0.15 T
  Ac = 0.000125 m^2
  Vs = 12 V
  waveform = square
  assumes: the core does not saturate; no dc bias

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Winding AC resistance factor (Dowell)1 fig.pe_dowell_proximity_factor

The ratio of AC to DC resistance of a winding of m layers of foil (or equivalent layer) thickness h at a frequency, including skin and proximity effects by Dowell's one-dimensional solution.

F_R = \Delta\left[\frac{\sinh2\Delta+\sin2\Delta}{\cosh2\Delta-\cos2\Delta} + \frac{2(m^2-1)}{3}\frac{\sinh\Delta-\sin\Delta}{\cosh\Delta+\cos\Delta}\right]

You give

MeaningUnitExample
h
Layer (conductor) thicknessm0.2 mm
f
FrequencyHz100 kHz
\rho
Conductor resistivityohm*m1.72e-08 ohm*m
m
Number of layers—4

You get

MeaningUnitExample
\delta
Skin depthm0.000208729751 m
\Delta
Layer thickness in skin depths h/delta—0.9581767764
\text{FR}
AC-to-DC resistance factor—2.431126826

Values with a unit may be written in any unit of the right kind.

Applies when

  • full-width layers (foil or porosity-corrected)
  • sinusoidal current

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Dowell AC resistance factor: h = 0.2 mm, f = 100 kHz, rho = 1.72e-08 ohm*m, m = 4
delta = 0.000208729751 m
Delta = 0.9581767764
FR = 2.431126826

Run it

Terminal
$ power-electronics solve pe_dowell_proximity_factor "h=0.2 mm" "f=100 kHz" "rho=1.72e-08 ohm*m" m=4
delta = 0.000208729751 m
Delta = 0.9581767764
FR = 2.431126826
  by: Winding AC resistance factor (Dowell)  (F_R = D [ (sinh 2D + sin 2D)/(cosh 2D - cos 2D) + 2 (m^2 - 1)/3 (sinh D - sin D)/(cosh D + cos D) ], D = h/delta)
  h = 0.0002 m
  f = 100000 Hz
  rho = 1.72e-08 ohm*m
  assumes: full-width layers (foil or porosity-corrected); sinusoidal current

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Motor drives 9

Armature current ripple of a chopper-fed DC motor1 fig.pe_dc_motor_armature_ripple

The maximum, minimum, peak-to-peak and average armature current of a DC motor fed by a step-down chopper, from the exact exponential (RL plus back-EMF) waveform in continuous conduction.

I_{max} = \frac{V_s}{R_a}\frac{1-e^{-DT/\tau}}{1-e^{-T/\tau}} – \frac{E_a}{R_a},\ I_{min} = \frac{V_s}{R_a}\frac{e^{DT/\tau}-1}{e^{T/\tau}-1} – \frac{E_a}{R_a}

You give

MeaningUnitExample
\text{Vs}
Dc supply voltageV220 V
D
Duty cycle (a fraction or %)—0.5
\text{fs}
Chopping frequencyHz1 kHz
\text{Ra}
Armature resistanceohm1 ohm
\text{La}
Armature inductanceH10 mH
\text{Ea}
Back EMFV100 V

You get

MeaningUnitExample
I_{\mathrm{max}}
Maximum armature currentA12.74942723 A
I_{\mathrm{min}}
Minimum armature currentA7.250572773 A
\text{dI}
Peak-to-peak rippleA5.498854453 A
I_{\mathrm{avg}}
Average armature currentA10 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • continuous conduction (I_min > 0)
  • constant speed (constant back EMF) over a period

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Armature current ripple: Vs = 220 V, D = 0.5, fs = 1 kHz, Ra = 1 ohm, La = 10 mH, Ea = 100 V
I_max = 12.74942723 A
I_min = 7.250572773 A
dI = 5.498854453 A
I_avg = 10 A

Run it

Terminal
$ power-electronics solve pe_dc_motor_armature_ripple "Vs=220 V" D=0.5 "fs=1 kHz" "Ra=1 ohm" "La=10 mH" "Ea=100 V"
I_max = 12.74942723 A
I_min = 7.250572773 A
dI = 5.498854453 A
I_avg = 10 A
  by: Armature current ripple of a chopper-fed DC motor  (I_max = (Vs/Ra)(1 - e^(-DT/tau))/(1 - e^(-T/tau)) - Ea/Ra; I_min = (Vs/Ra)(e^(DT/tau) - 1)/(e^(T/tau) - 1) - Ea/Ra; I_avg = (D Vs - Ea)/Ra)
  Vs = 220 V
  D = 0.5
  fs = 1000 Hz
  Ra = 1 ohm
  La = 0.01 H
  Ea = 100 V
  assumes: continuous conduction (I_min > 0); constant speed (constant back EMF) over a period

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

BLDC motor with six-step (120 degree) drive1 fig.pe_bldc_six_step

The speed, torque, no-load speed, stall current, electrical frequency and commutation interval of a trapezoidal brushless DC motor driven six-step from a PWM-chopped dc bus (two phases conduct in series).

DV_{dc} = 2R_{ph}I + 2K_{e,ph}\omega,\quad T = 2K_{e,ph}I

You give

MeaningUnitExample
\text{Vdc}
dc bus voltageV48 V
D
PWM duty cycle (a fraction or %)—0.8
\text{Rph}
Phase resistanceohm0.1 ohm
\text{Keph}
Phase back-EMF constant (flat top)V*s/rad0.05 V*s/rad
I
Dc link (phase) currentA10 A
p
Pole pairs—4

You get

MeaningUnitExample
\omega
Speedrad/s364 rad/s
\text{rpm}
Speed in rpm—3475.943957
T
TorqueN*m1 N*m
\omega_{\mathrm{no},\mathrm{load}}
No-load speedrad/s384 rad/s
I_{\mathrm{stall}}
Stall currentA192 A
f_{e}
Electrical frequencyHz231.7295971 Hz
t_{\mathrm{commutation}}
Time between commutationss0.0007192290874 s

Values with a unit may be written in any unit of the right kind.

Applies when

  • ideal trapezoidal EMF and block currents
  • winding inductance and commutation neglected

Outside these conditions it says what is wrong instead of returning a number.

Worked example

BLDC six-step drive: Vdc = 48 V, D = 0.8, Rph = 0.1 ohm, Keph = 0.05 V*s/rad, I = 10 A, p = 4
omega = 364 rad/s
rpm = 3475.943957
T = 1 N*m
omega_no_load = 384 rad/s
I_stall = 192 A
f_e = 231.7295971 Hz

Run it

Terminal
$ power-electronics solve pe_bldc_six_step "Vdc=48 V" D=0.8 "Rph=0.1 ohm" "Keph=0.05 V*s/rad" "I=10 A" p=4
omega = 364 rad/s
rpm = 3475.943957
T = 1 N*m
omega_no_load = 384 rad/s
I_stall = 192 A
f_e = 231.7295971 Hz
t_commutation = 0.0007192290874 s
  by: BLDC motor with six-step (120 degree) drive  (D Vdc = 2 Rph I + 2 Keph w; T = 2 Keph I; f_e = p w/(2 pi))
  Vdc = 48 V
  D = 0.8
  Rph = 0.1 ohm
  Keph = 0.05 V*s/rad
  I = 10 A
  assumes: ideal trapezoidal EMF and block currents; winding inductance and commutation neglected

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Chopper-fed separately excited DC motor: speed and torque1 fig.pe_dc_motor_chopper_drive

The armature current, average armature voltage, back EMF, speed (rad/s and rpm), output power and armature efficiency of a separately excited DC motor fed by a step-down chopper at a duty cycle and carrying a load torque (continuous current, ripple neglected).

V_a = DV_s,\quad I_a = \frac{T_L}{K},\quad \omega = \frac{V_a – I_aR_a}{K}

You give

MeaningUnitExample
\text{Vs}
Dc supply voltageV220 V
D
Chopper duty cycle (a fraction or %)—0.6
\text{Ra}
Armature resistanceohm0.5 ohm
K
Motor constant K = Ke = KtV*s/rad1.2 V*s/rad
\text{TL}
Load torqueN*m24 N*m

You get

MeaningUnitExample
\text{Ia}
Armature current TL/KA20 A
\text{Va}
Average armature voltage D VsV132 V
\text{Ea}
Back EMFV122 V
\omega
Speedrad/s101.6666667 rad/s
\text{rpm}
Speed in rpm—970.8451529
P_{\mathrm{out}}
Developed (output) powerW2440 W
\text{efficiency}
Armature efficiency Ea/Va—0.9242424242

Values with a unit may be written in any unit of the right kind.

Applies when

  • continuous armature current
  • constant field

Outside these conditions it says what is wrong instead of returning a number.

Worked example

DC motor chopper drive: Vs = 220 V, D = 0.6, Ra = 0.5 ohm, K = 1.2 V*s/rad, TL = 24 N*m
Ia = 20 A
Va = 132 V
Ea = 122 V
omega = 101.6666667 rad/s
rpm = 970.8451529
P_out = 2440 W

Run it

Terminal
$ power-electronics solve pe_dc_motor_chopper_drive "Vs=220 V" D=0.6 "Ra=0.5 ohm" "K=1.2 V*s/rad" "TL=24 N*m"
Ia = 20 A
Va = 132 V
Ea = 122 V
omega = 101.6666667 rad/s
rpm = 970.8451529
P_out = 2440 W
efficiency = 0.9242424242
  by: Chopper-fed separately excited DC motor: speed and torque  (Va = D Vs; Ia = TL/K; Ea = Va - Ia Ra; w = Ea/K)
  Vs = 220 V
  D = 0.6
  Ra = 0.5 ohm
  K = 1.2 V*s/rad
  TL = 24 N*m
  assumes: continuous armature current; constant field

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Induction motor constant V/f speed control1 fig.pe_induction_motor_vf

The supply voltage, synchronous speed, rotor speed, slip and slip frequency of an induction motor under constant V/f control below base frequency, from its rated voltage, frequency and speed (linear torque-slip region, torque as a fraction of rated).

\frac{V}{f} = \text{const},\quad n = \frac{120f}{P} – \left(n_{s,r} – n_r\right)\frac{T}{T_r}

You give

MeaningUnitExample
V_{\mathrm{rated}}
Rated line voltageV400 V
f_{\mathrm{rated}}
Rated (base) frequencyHz50 Hz
\text{poles}
Number of poles—4
n_{\mathrm{rated}}
Rated speed in rpm—1450
f
Operating frequencyHz30 Hz
T_{\mathrm{ratio}}
Load torque as a fraction of rated torque (or %)—1

You get

MeaningUnitExample
V
Supply voltage at f (constant V/f)V240 V
\text{ns}
Synchronous speed in rpm—900
n
Rotor speed in rpm—850
\text{slip}
Slip—0.05555555556
f_{\mathrm{slip}}
Slip (rotor) frequencyHz1.666666667 Hz

Values with a unit may be written in any unit of the right kind.

Applies when

  • f <= f_rated
  • linear torque-slip region (T_ratio <= 1.5)
  • stator resistance drop neglected

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Induction motor V/f control: V_rated = 400 V, f_rated = 50 Hz, poles = 4, n_rated = 1450, f = 30 Hz, T_ratio = 1
V = 240 V
ns = 900
n = 850
slip = 0.05555555556
f_slip = 1.666666667 Hz

Run it

Terminal
$ power-electronics solve pe_induction_motor_vf "V_rated=400 V" "f_rated=50 Hz" poles=4 n_rated=1450 "f=30 Hz" T_ratio=1
V = 240 V
ns = 900
n = 850
slip = 0.05555555556
f_slip = 1.666666667 Hz
  by: Induction motor constant V/f speed control  (V = V_rated f/f_rated; ns = 120 f/P; the slip speed at constant V/f is proportional to torque: n = ns - (ns,rated - n_rated) T/T_rated)
  V_rated = 400 V
  f_rated = 50 Hz
  n_rated = 1450
  f = 30 Hz
  T_ratio = 1
  assumes: f <= f_rated; linear torque-slip region (T_ratio <= 1.5); stator resistance drop neglected

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Maximum torque per ampere (MTPA) of an interior PMSM1 fig.pe_pmsm_mtpa

The d- and q-axis currents, current advance angle and torque that give the most torque for a given current magnitude in a salient (interior) permanent-magnet synchronous motor, and the torque with id = 0 for comparison.

i_d = \frac{\psi_f – \sqrt{\psi_f^2 + 8(L_q-L_d)^2 I_s^2}}{4(L_q-L_d)},\quad i_q = \sqrt{I_s^2 – i_d^2}

You give

MeaningUnitExample
\text{Ld}
d-axis inductanceH0.4 mH
\text{Lq}
q-axis inductance (Lq > Ld)H1 mH
\psi_{f}
Magnet flux linkageWb80 mWb
p
Pole pairs—4
\text{Is}
Current magnitude (peak)A100 A

You get

MeaningUnitExample
\text{id}
d-axis current (negative)A-44.84026266 A
\text{iq}
q-axis currentA89.38316869 A
\beta_{\mathrm{deg}}
Current advance angle from the q axis, degrees—26.64124423
\text{Te}
Maximum torque at this currentN*m57.33259411 N*m
\text{Te\_id0}
Torque with zero d-axis currentN*m48 N*m

Values with a unit may be written in any unit of the right kind.

Applies when

  • Lq > Ld
  • magnetic saturation neglected

Outside these conditions it says what is wrong instead of returning a number.

Worked example

PMSM MTPA: Ld = 0.4 mH, Lq = 1 mH, psi_f = 80 mWb, p = 4, Is = 100 A
id = -44.84026266 A
iq = 89.38316869 A
beta_deg = 26.64124423
Te = 57.33259411 N*m
Te_id0 = 48 N*m

Run it

Terminal
$ power-electronics solve pe_pmsm_mtpa "Ld=0.4 mH" "Lq=1 mH" "psi_f=80 mWb" p=4 "Is=100 A"
id = -44.84026266 A
iq = 89.38316869 A
beta_deg = 26.64124423
Te = 57.33259411 N*m
Te_id0 = 48 N*m
  by: Maximum torque per ampere (MTPA) of an interior PMSM  (id = (psi_f - sqrt(psi_f^2 + 8 (Lq - Ld)^2 Is^2)) / (4 (Lq - Ld)); iq = sqrt(Is^2 - id^2))
  Ld = 0.0004 H
  Lq = 0.001 H
  psi_f = 0.08 Wb
  Is = 100 A
  assumes: Lq > Ld; magnetic saturation neglected

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Phase-controlled rectifier DC motor drive2 fig.pe_dc_drive_controlled_rectifier

The armature voltage, back EMF, speed, torque and developed power of a separately excited DC motor fed by a single-phase or three-phase fully controlled thyristor bridge at a firing angle, with continuous armature current.

V_a = \frac{2\sqrt2V_s}{\pi}\cos\alpha\ (1\phi),\ \frac{3\sqrt2V_{LL}}{\pi}\cos\alpha\ (3\phi),\quad \omega = \frac{V_a – I_aR_a}{K}

You give

MeaningUnitExample
\text{converter}
Single-phase or three-phase full converter choice—single-phase
\text{Vs}
RMS supply voltage (line-to-line for three-phase)V230 V
\alpha
Firing anglerad45 deg
\text{Ra}
Armature resistanceohm1 ohm
K
Motor constantV*s/rad1 V*s/rad
\text{Ia}
Armature currentA10 A

You get

MeaningUnitExample
\text{Va}
Average armature voltageV146.4225476 V
\text{Ea}
Back EMFV136.4225476 V
\omega
Speedrad/s136.4225476 rad/s
\text{rpm}
Speed in rpm—1302.739368
T
Developed torque K IaN*m10 N*m
P
Developed power Ea IaW1364.225476 W
\text{mode}
Motoring or reverse—motoring

Values with a unit may be written in any unit of the right kind.

Applies when

  • continuous armature current

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Controlled rectifier DC drive: converter = single-phase, Vs = 230 V, alpha = 45 deg, Ra = 1 ohm, K = 1 V*s/rad, Ia = 10 A
Va = 146.4225476 V
Ea = 136.4225476 V
omega = 136.4225476 rad/s
rpm = 1302.739368
T = 10 N*m
P = 1364.225476 W

Run it

Terminal
$ power-electronics solve pe_dc_drive_controlled_rectifier converter=single-phase "Vs=230 V" "alpha=45 deg" "Ra=1 ohm" "K=1 V*s/rad" "Ia=10 A"
Va = 146.4225476 V
Ea = 136.4225476 V
omega = 136.4225476 rad/s
rpm = 1302.739368
T = 10 N*m
P = 1364.225476 W
mode = motoring
  by: Phase-controlled rectifier DC motor drive  (Va = 2 sqrt(2) Vs cos(alpha)/pi (single-phase) or 3 sqrt(2) VLL cos(alpha)/pi (three-phase); Ea = Va - Ia Ra; w = Ea/K)
  Vs = 230 V
  alpha = 0.7853981634 rad
  Ra = 1 ohm
  K = 1 V*s/rad
  Ia = 10 A
  converter = single-phase
  assumes: continuous armature current

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

PMSM steady state in the dq frame: voltages and torque1 fig.pe_pmsm_dq_model

The electrical speed, d- and q-axis voltages, voltage magnitude, electromagnetic torque, mechanical, input and copper power and power factor of a permanent-magnet synchronous motor in steady state from its dq currents (amplitude-invariant Park transform).

v_d = R_si_d – \omega_eL_qi_q,\ v_q = R_si_q + \omega_e(L_di_d+\psi_f),\ T_e = \tfrac32p\left(\psi_fi_q + (L_d-L_q)i_di_q\right)

You give

MeaningUnitExample
\text{Rs}
Stator resistance per phaseohm0.05 ohm
\text{Ld}
d-axis inductanceH0.4 mH
\text{Lq}
q-axis inductanceH1 mH
\psi_{f}
Permanent-magnet flux linkageWb80 mWb
p
Pole pairs—4
\text{id}
d-axis current (negative for field weakening)A-20 A
\text{iq}
q-axis currentA60 A
\omega_{m}
Mechanical speedrad/s300 rad/s

You get

MeaningUnitExample
\omega_{e}
Electrical speed p w_mrad/s1200 rad/s
\text{vd}
d-axis voltageV-73 V
\text{vq}
q-axis voltageV89.4 V
V_{\mathrm{peak}}
Peak phase voltage magnitudeV115.4181961 V
\text{Te}
Electromagnetic torqueN*m33.12 N*m
P_{\mathrm{mech}}
Mechanical powerW9936 W
P_{\mathrm{in}}
Electrical input powerW10236 W
P_{\mathrm{cu}}
Stator copper lossW300 W
\text{PF}
Power factor—0.9348345181

Values with a unit may be written in any unit of the right kind.

Applies when

  • steady state, sinusoidal machine, iron loss neglected
  • amplitude-invariant transform

Outside these conditions it says what is wrong instead of returning a number.

Worked example

PMSM dq model: Rs = 0.05 ohm, Ld = 0.4 mH, Lq = 1 mH, psi_f = 80 mWb, p = 4, id = -20 A, iq = 60 A, omega_m = 300 rad/s
omega_e = 1200 rad/s
vd = -73 V
vq = 89.4 V
V_peak = 115.4181961 V
Te = 33.12 N*m
P_mech = 9936 W

Run it

Terminal
$ power-electronics solve pe_pmsm_dq_model "Rs=0.05 ohm" "Ld=0.4 mH" "Lq=1 mH" "psi_f=80 mWb" p=4 "id=-20 A" "iq=60 A" "omega_m=300 rad/s"
omega_e = 1200 rad/s
vd = -73 V
vq = 89.4 V
V_peak = 115.4181961 V
Te = 33.12 N*m
P_mech = 9936 W
P_in = 10236 W
P_cu = 300 W
PF = 0.9348345181
  by: PMSM steady state in the dq frame: voltages and torque  (vd = Rs id - we Lq iq; vq = Rs iq + we (Ld id + psi_f); Te = 1.5 p (psi_f iq + (Ld - Lq) id iq); P_in = 1.5 (vd id + vq iq))
  Rs = 0.05 ohm
  Ld = 0.0004 H
  Lq = 0.001 H
  psi_f = 0.08 Wb
  id = -20 A
  iq = 60 A
  omega_m = 300 rad/s
  assumes: steady state, sinusoidal machine, iron loss neglected; amplitude-invariant transform

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Regenerative braking of a DC motor with a chopper1 fig.pe_regenerative_braking_chopper

The back EMF, average armature voltage, armature current, braking torque, mechanical power absorbed, power returned to the supply and braking efficiency of a DC motor braked regeneratively by a step-up chopper.

I_a = \frac{K\omega – (1-D)V_s}{R_a},\quad P_{regen} = (1-D)V_sI_a

You give

MeaningUnitExample
\text{Vs}
Dc supply voltageV220 V
D
Chopper duty cycle (a fraction or %)—0.5
\text{Ra}
Armature resistanceohm0.5 ohm
K
Motor constantV*s/rad1 V*s/rad
\omega
Motor speedrad/s150 rad/s

You get

MeaningUnitExample
\text{Ea}
Back EMF K wV150 V
\text{Va}
Average armature voltageV110 V
\text{Ia}
Armature (braking) currentA80 A
T_{\mathrm{brake}}
Braking torqueN*m80 N*m
P_{\mathrm{mech}}
Mechanical power absorbed Ea IaW12000 W
P_{\mathrm{regen}}
Power returned to the supplyW8800 W
\text{efficiency}
Braking efficiency P_regen/P_mech—0.7333333333

Values with a unit may be written in any unit of the right kind.

Applies when

  • Ea > (1 – D) Vs
  • continuous armature current

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Regenerative braking chopper: Vs = 220 V, D = 0.5, Ra = 0.5 ohm, K = 1 V*s/rad, omega = 150 rad/s
Ea = 150 V
Va = 110 V
Ia = 80 A
T_brake = 80 N*m
P_mech = 12000 W
P_regen = 8800 W

Run it

Terminal
$ power-electronics solve pe_regenerative_braking_chopper "Vs=220 V" D=0.5 "Ra=0.5 ohm" "K=1 V*s/rad" "omega=150 rad/s"
Ea = 150 V
Va = 110 V
Ia = 80 A
T_brake = 80 N*m
P_mech = 12000 W
P_regen = 8800 W
efficiency = 0.7333333333
  by: Regenerative braking of a DC motor with a chopper  (Ea = K w; Va = (1 - D) Vs; Ia = (Ea - Va)/Ra; P_regen = Va Ia)
  Vs = 220 V
  D = 0.5
  Ra = 0.5 ohm
  K = 1 V*s/rad
  omega = 150 rad/s
  assumes: Ea > (1 - D) Vs; continuous armature current

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Surface PMSM field weakening: base speed, maximum speed and torque1 fig.pe_pmsm_field_weakening

The base speed, the maximum speed, and at a given speed the d- and q-axis currents, torque and power of a surface (non-salient) permanent-magnet motor at its current and voltage limits (field weakening above base speed; stator resistance neglected).

\omega_b = \frac{V_{max}}{p\sqrt{\psi_f^2 + (L_sI_{max})^2}},\ \omega_{max} = \frac{V_{max}}{p(\psi_f – L_sI_{max})},\ i_d = \frac{(V_{max}/p\omega)^2 – \psi_f^2 – L_s^2I_{max}^2}{2\psi_fL_s}

You give

MeaningUnitExample
\text{Ls}
Synchronous inductance (Ld = Lq)H1 mH
\psi_{f}
Magnet flux linkageWb100 mWb
p
Pole pairs—4
\text{Imax}
Current limit (peak)A60 A
\text{Vmax}
Voltage limit (peak phase)V200 V
\omega
Mechanical speed of interestrad/s600 rad/s

You get

MeaningUnitExample
\omega_{\mathrm{base}}
Base speed (mechanical)rad/s428.7464629 rad/s
\omega_{\mathrm{max}}
Maximum speed (mechanical)rad/s1250 rad/s
\text{rpm\_base}
Base speed in rpm—4094.227134
\text{id}
d-axis current at omegaA-33.27777778 A
\text{iq}
q-axis current at omegaA49.92584006 A
T
Available torque at omegaN*m29.95550404 N*m
P
Available power at omegaW17973.30242 W

Values with a unit may be written in any unit of the right kind.

Applies when

  • psi_f > Ls Imax (finite maximum speed)
  • omega < omega_max
  • Rs = 0

Outside these conditions it says what is wrong instead of returning a number.

Worked example

PMSM field weakening: Ls = 1 mH, psi_f = 100 mWb, p = 4, Imax = 60 A, Vmax = 200 V, omega = 600 rad/s
omega_base = 428.7464629 rad/s
omega_max = 1250 rad/s
rpm_base = 4094.227134
id = -33.27777778 A
iq = 49.92584006 A
T = 29.95550404 N*m

Run it

Terminal
$ power-electronics solve pe_pmsm_field_weakening "Ls=1 mH" "psi_f=100 mWb" p=4 "Imax=60 A" "Vmax=200 V" "omega=600 rad/s"
omega_base = 428.7464629 rad/s
omega_max = 1250 rad/s
rpm_base = 4094.227134
id = -33.27777778 A
iq = 49.92584006 A
T = 29.95550404 N*m
P = 17973.30242 W
  by: Surface PMSM field weakening: base speed, maximum speed and torque  (w_b = Vmax/(p sqrt(psi_f^2 + (Ls Imax)^2)); w_max = Vmax/(p (psi_f - Ls Imax)); above w_b: id = ((Vmax/(p w))^2 - psi_f^2 - Ls^2 Imax^2)/(2 psi_f Ls))
  Ls = 0.001 H
  psi_f = 0.1 Wb
  Imax = 60 A
  Vmax = 200 V
  omega = 600 rad/s
  assumes: psi_f > Ls Imax (finite maximum speed); omega < omega_max; Rs = 0

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Power quality 3

Average and RMS of a rectangular pulse train2 fig.pe_pulse_waveform_rms

The average, RMS and AC-RMS values, form factor and ripple factor of a unipolar rectangular pulse train of amplitude A and duty cycle D (a PWM switch voltage or current).

V_{avg} = DA,\quad V_{rms} = \sqrt{D}\,A,\quad RF = \sqrt{\tfrac1D – 1}

You give

MeaningUnitExample
A
Pulse amplitude (any unit)—12
D
Duty cycle (a fraction or %)—0.25

You get

MeaningUnitExample
\text{avg}
Average value D A—3
\text{rms}
RMS value sqrt(D) A—6
\text{ac\_rms}
RMS of the AC component—5.196152423
\text{form\_factor}
Form factor rms/avg—2
\text{ripple\_factor}
Ripple factor ac_rms/avg—1.732050808

Applies when

  • 0 < D < 1

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Pulse train RMS: A = 12, D = 0.25
avg = 3
rms = 6
ac_rms = 5.196152423
form_factor = 2
ripple_factor = 1.732050808

Run it

Terminal
$ power-electronics solve pe_pulse_waveform_rms A=12 D=0.25
avg = 3
rms = 6
ac_rms = 5.196152423
form_factor = 2
ripple_factor = 1.732050808
  by: Average and RMS of a rectangular pulse train  (avg = D A; rms = sqrt(D) A; ac = A sqrt(D (1 - D)); FF = 1/sqrt(D); RF = sqrt(1/D - 1))
  A = 12
  D = 0.25
  assumes: 0 < D < 1

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Power factor with harmonic distortion2 fig.pe_power_factor_distortion

The displacement power factor, distortion factor and true power factor of a load drawing a distorted current from a sinusoidal voltage, from the current THD and the displacement angle of its fundamental.

PF = \frac{\cos\phi_1}{\sqrt{1+THD_i^2}}

You give

MeaningUnitExample
\text{THD}
Current total harmonic distortion (a fraction or %)—0.483
\phi
Displacement angle of the fundamental current (lagging positive)rad0 deg

You get

MeaningUnitExample
\text{DPF}
Displacement power factor cos(phi)—1
\text{distortion\_factor}
Distortion factor—0.900466522
\text{PF}
True power factor—0.900466522

Values with a unit may be written in any unit of the right kind.

Applies when

  • sinusoidal voltage
  • -90 <= phi <= 90 degrees

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Power factor with distortion: THD = 0.483, phi = 0 deg
DPF = 1
distortion_factor = 0.900466522
PF = 0.900466522

Run it

Terminal
$ power-electronics solve pe_power_factor_distortion THD=0.483 "phi=0 deg"
DPF = 1
distortion_factor = 0.900466522
PF = 0.900466522
  by: Power factor with harmonic distortion  (PF = cos(phi) / sqrt(1 + THD^2))
  THD = 0.483
  phi = 0 rad
  assumes: sinusoidal voltage; -90 <= phi <= 90 degrees

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Total harmonic distortion from harmonic values1 fig.pe_thd_from_harmonics

The total harmonic distortion, RMS value and distortion factor of a waveform from the RMS value of its fundamental and of its harmonics 2, 3, 4, … in order.

THD = \frac{\sqrt{\sum_{h\ge2} V_h^2}}{V_1},\quad V_{rms} = V_1\sqrt{1+THD^2}

You give

MeaningUnitExample
\text{V1}
RMS value of the fundamental (any unit, the same as the harmonics)—230
\text{Vh}
RMS values of the harmonics in order of harmonic number, starting with the second vector—[0, 11.5, 0, 6.9, 0, 4.6]

You get

MeaningUnitExample
\text{THD}
Total harmonic distortion—0.06164414003
\text{THD\_pct}
THD in percent—6.164414003
\text{Vrms}
RMS value of the waveform—230.4365856
\text{distortion\_factor}
Distortion factor—0.9981053979

Applies when

  • V1 > 0, harmonics >= 0

Outside these conditions it says what is wrong instead of returning a number.

Worked example

THD from harmonics: V1 = 230, Vh = [0, 11.5, 0, 6.9, 0, 4.6]
THD = 0.06164414003
THD_pct = 6.164414003
Vrms = 230.4365856
distortion_factor = 0.9981053979

Run it

Terminal
$ power-electronics solve pe_thd_from_harmonics V1=230 "Vh=[0, 11.5, 0, 6.9, 0, 4.6]"
THD = 0.06164414003
THD_pct = 6.164414003
Vrms = 230.4365856
distortion_factor = 0.9981053979
  by: Total harmonic distortion from harmonic values  (THD = sqrt(sum Vh^2)/V1; Vrms = sqrt(V1^2 + sum Vh^2); DF = V1/Vrms = 1/sqrt(1 + THD^2))
  V1 = 230
  assumes: V1 > 0, harmonics >= 0

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Rectifiers 11

Capacitor-input rectifier filter: exact ripple and peak diode current1 fig.pe_capacitor_filter_exact

The exact steady state of a half-wave or full-wave rectifier with a smoothing capacitor and resistive load: diode turn-off angle, recharge angle, peak-to-peak ripple, average output voltage, peak diode current and conduction angle (no small-ripple approximation).

\theta = \pi – \tan^{-1}(\omega RC),\ \sin\alpha = \sin\theta\,e^{-(P+\alpha-\theta)/\omega RC},\ I_{D,pk} = V_p\left(\omega C\cos\alpha+\frac{\sin\alpha}{R}\right)

You give

MeaningUnitExample
\text{circuit}
Half-wave or full-wave choice—half-wave
\text{Vp}
Peak source voltage (after any diode drop)V169.7 V
f
Line frequencyHz0.06 kHz
R
Load resistanceohm500 ohm
C
Filter capacitanceF100 uF

You get

MeaningUnitExample
\theta_{\mathrm{off},\mathrm{deg}}
Angle at which the diode turns off, degrees—93.03678865
\alpha_{\mathrm{deg}}
Angle at which the diode turns on again, degrees—48.23082389
\text{dV}
Peak-to-peak rippleV43.13189012 V
V_{\mathrm{avg}}
Average output voltageV148.1028626 V
I_{D,\mathrm{peak}}
Peak diode currentA4.514737529 A
\text{conduction\_deg}
Diode conduction angle, degrees—44.80596476

Values with a unit may be written in any unit of the right kind.

Applies when

  • ideal diode and source, steady state

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Exact capacitor filter: circuit = half-wave, Vp = 169.7 V, f = 0.06 kHz, R = 500 ohm, C = 100 uF
theta_off_deg = 93.03678865
alpha_deg = 48.23082389
dV = 43.13189012 V
V_avg = 148.1028626 V
I_D_peak = 4.514737529 A
conduction_deg = 44.80596476

Run it

Terminal
$ power-electronics solve pe_capacitor_filter_exact circuit=half-wave "Vp=169.7 V" "f=0.06 kHz" "R=500 ohm" "C=100 uF"
theta_off_deg = 93.03678865
alpha_deg = 48.23082389
dV = 43.13189012 V
V_avg = 148.1028626 V
I_D_peak = 4.514737529 A
conduction_deg = 44.80596476
  by: Capacitor-input rectifier filter: exact ripple and peak diode current  (theta = pi - atan(w R C); sin(alpha) = sin(theta) exp(-(P + alpha - theta)/(w R C)) (bisection), P = 2 pi or pi; dV = Vp (1 - sin alpha); I_D,peak = Vp (w C cos alpha + sin alpha/R))
  Vp = 169.7 V
  f = 60 Hz
  R = 500 ohm
  C = 0.0001 F
  circuit = half-wave
  assumes: ideal diode and source, steady state

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Commutation overlap in a single-phase thyristor bridge1 fig.pe_single_phase_overlap

The overlap (commutation) angle and the reduced average output voltage of a single-phase fully controlled bridge with source inductance Ls and a constant dc current.

\cos(\alpha+u) = \cos\alpha – \frac{2\omega L_s I_d}{V_m},\quad V_{dc} = \frac{2V_m}{\pi}\cos\alpha – \frac{2\omega L_sI_d}{\pi}

You give

MeaningUnitExample
\text{Vs}
RMS source voltageV230 V
f
Line frequencyHz0.05 kHz
\text{Ls}
Source (commutating) inductanceH2 mH
\text{Id}
Constant dc currentA20 A
\alpha
Firing anglerad30 deg

You get

MeaningUnitExample
u_{\mathrm{deg}}
Overlap angle in degrees—7.930416019
\text{Vdc}
Average output voltage with overlapV171.3302643 V
\text{dV}
Voltage lost to commutationV8 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • commutation finishes within the half-cycle

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Single-phase commutation overlap: Vs = 230 V, f = 0.05 kHz, Ls = 2 mH, Id = 20 A, alpha = 30 deg
u_deg = 7.930416019
Vdc = 171.3302643 V
dV = 8 V

Run it

Terminal
$ power-electronics solve pe_single_phase_overlap "Vs=230 V" "f=0.05 kHz" "Ls=2 mH" "Id=20 A" "alpha=30 deg"
u_deg = 7.930416019
Vdc = 171.3302643 V
dV = 8 V
  by: Commutation overlap in a single-phase thyristor bridge  (cos(alpha + u) = cos(alpha) - 2 w Ls Id/Vm; Vdc = 2 Vm cos(alpha)/pi - 2 w Ls Id/pi)
  Vs = 230 V
  f = 50 Hz
  Ls = 0.002 H
  Id = 20 A
  alpha = 0.5235987756 rad
  assumes: commutation finishes within the half-cycle

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Commutation overlap in a three-phase thyristor bridge1 fig.pe_three_phase_overlap

The overlap angle, the average output voltage and the voltage lost to commutation of a six-pulse thyristor (or diode, alpha = 0) bridge with source inductance Ls per phase and a constant dc current.

\cos(\alpha+u) = \cos\alpha – \frac{2\omega L_sI_d}{\sqrt2 V_{LL}},\quad V_{dc} = \frac{3\sqrt2V_{LL}}{\pi}\cos\alpha – \frac{3\omega L_sI_d}{\pi}

You give

MeaningUnitExample
\text{VLL}
RMS line-to-line voltageV400 V
f
Line frequencyHz0.05 kHz
\text{Ls}
Source inductance per phaseH0.5 mH
\text{Id}
Constant dc currentA100 A
\alpha
Firing anglerad30 deg

You get

MeaningUnitExample
u_{\mathrm{deg}}
Overlap angle in degrees—5.856228511
\text{Vdc}
Average output voltageV452.8180807 V
\text{dV}
Voltage lost to commutationV15 V

Values with a unit may be written in any unit of the right kind.

Applies when

  • commutation finishes before the next one starts

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Three-phase commutation overlap: VLL = 400 V, f = 0.05 kHz, Ls = 0.5 mH, Id = 100 A, alpha = 30 deg
u_deg = 5.856228511
Vdc = 452.8180807 V
dV = 15 V

Run it

Terminal
$ power-electronics solve pe_three_phase_overlap "VLL=400 V" "f=0.05 kHz" "Ls=0.5 mH" "Id=100 A" "alpha=30 deg"
u_deg = 5.856228511
Vdc = 452.8180807 V
dV = 15 V
  by: Commutation overlap in a three-phase thyristor bridge  (cos(alpha + u) = cos(alpha) - 2 w Ls Id/(sqrt(2) VLL); Vdc = 3 sqrt(2) VLL cos(alpha)/pi - 3 w Ls Id/pi)
  VLL = 400 V
  f = 50 Hz
  Ls = 0.0005 H
  Id = 100 A
  alpha = 0.5235987756 rad
  assumes: commutation finishes before the next one starts

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Half-wave diode rectifier with an RL load1 fig.pe_half_wave_rl_rectifier

The extinction angle (where the load current returns to zero), the load impedance angle and magnitude, and the average output voltage and current of a half-wave diode rectifier feeding a series RL load.

\sin(\beta-\theta)+\sin\theta\,e^{-\beta/\omega\tau} = 0,\quad V_{avg} = \frac{V_m(1-\cos\beta)}{2\pi}

You give

MeaningUnitExample
\text{Vs}
RMS source voltageV120 V
f
Line frequencyHz0.06 kHz
R
Load resistanceohm100 ohm
L
Load inductanceH100 mH

You get

MeaningUnitExample
\beta_{\mathrm{deg}}
Extinction angle in degrees—200.6578643
\theta_{\mathrm{deg}}
Load impedance angle atan(wL/R) in degrees—20.65599738
Z
Load impedance magnitudeohm106.8701223 ohm
V_{\mathrm{avg}}
Average output voltageV52.28236942 V
I_{\mathrm{avg}}
Average load currentA0.5228236942 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • ideal diode, no freewheeling diode

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Half-wave rectifier with RL load: Vs = 120 V, f = 0.06 kHz, R = 100 ohm, L = 100 mH
beta_deg = 200.6578643
theta_deg = 20.65599738
Z = 106.8701223 ohm
V_avg = 52.28236942 V
I_avg = 0.5228236942 A

Run it

Terminal
$ power-electronics solve pe_half_wave_rl_rectifier "Vs=120 V" "f=0.06 kHz" "R=100 ohm" "L=100 mH"
beta_deg = 200.6578643
theta_deg = 20.65599738
Z = 106.8701223 ohm
V_avg = 52.28236942 V
I_avg = 0.5228236942 A
  by: Half-wave diode rectifier with an RL load  (sin(beta - theta) + sin(theta) exp(-beta/(wL/R)) = 0 (bisection on pi < beta < 2 pi); Vavg = Vm (1 - cos beta)/(2 pi); Iavg = Vavg/R)
  Vs = 120 V
  f = 60 Hz
  R = 100 ohm
  L = 0.1 H
  assumes: ideal diode, no freewheeling diode

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Rectifier line current: THD, displacement and power factor1 fig.pe_rectifier_line_current_pf

The RMS and fundamental line current, current THD, displacement power factor, power factor, real power and apparent power of a single-phase or three-phase (six-pulse) bridge rectifier with a constant dc current at a firing angle (0 for diodes).

PF = \frac{I_{s1}}{I_s}\cos\alpha,\quad \frac{I_{s1}}{I_s} = \frac{2\sqrt2}{\pi}\ (1\phi),\ \frac{3}{\pi}\ (3\phi)

You give

MeaningUnitExample
\text{circuit}
Single-phase or three-phase bridge choice—single-phase
\text{Id}
Constant dc output currentA10 A
\text{Vs}
RMS source voltage (line-to-line for three-phase)V230 V
\alpha
Firing anglerad0 deg

You get

MeaningUnitExample
\text{Is\_rms}
RMS line currentA10 A
\text{Is1\_rms}
RMS fundamental line currentA9.003163162 A
\text{THD}
Current THD—0.4834258476
\text{DPF}
Displacement power factor cos(alpha)—1
\text{PF}
Power factor—0.9003163162
P
Real powerW2070.727527 W
S
Apparent powerVA2300 VA

Values with a unit may be written in any unit of the right kind.

Applies when

  • constant (ripple-free) dc current, no commutation overlap

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Rectifier line current power factor: circuit = single-phase, Id = 10 A, Vs = 230 V, alpha = 0 deg
Is_rms = 10 A
Is1_rms = 9.003163162 A
THD = 0.4834258476
DPF = 1
PF = 0.9003163162
P = 2070.727527 W

Run it

Terminal
$ power-electronics solve pe_rectifier_line_current_pf circuit=single-phase "Id=10 A" "Vs=230 V" "alpha=0 deg"
Is_rms = 10 A
Is1_rms = 9.003163162 A
THD = 0.4834258476
DPF = 1
PF = 0.9003163162
P = 2070.727527 W
S = 2300 VA
  by: Rectifier line current: THD, displacement and power factor  (single-phase: Is = Id, Is1 = 2 sqrt(2) Id/pi (PF = 0.9 cos a); three-phase: Is = sqrt(2/3) Id, Is1 = sqrt(6) Id/pi (PF = 0.955 cos a))
  Id = 10 A
  Vs = 230 V
  alpha = 0 rad
  circuit = single-phase
  assumes: constant (ripple-free) dc current, no commutation overlap

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Rectifier line-current harmonic spectrum2 fig.pe_rectifier_line_harmonics

The RMS value of harmonic h of the line current of a single-phase or six-pulse three-phase bridge with a constant dc current, its ratio to the fundamental (1/h for characteristic harmonics), and the THD of harmonics up to h.

I_h = \frac{I_1}{h},\quad h = 6k\pm1\ (3\phi),\ h\ \text{odd}\ (1\phi)

You give

MeaningUnitExample
\text{circuit}
Single-phase or three-phase bridge choice—three-phase
\text{Id}
Constant dc output currentA100 A
h
Harmonic order—5

You get

MeaningUnitExample
\text{Ih}
RMS current of harmonic hA15.59393602 A
\text{Ih\_over\_I1}
Ratio to the fundamental—0.2
\text{THD\_to\_h}
THD counting harmonics up to order h—0.2
\text{I1}
RMS fundamental currentA77.96968012 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • 1 <= h <= 49
  • constant dc current, no overlap

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Rectifier line harmonics: circuit = three-phase, Id = 100 A, h = 5
Ih = 15.59393602 A
Ih_over_I1 = 0.2
THD_to_h = 0.2
I1 = 77.96968012 A

Run it

Terminal
$ power-electronics solve pe_rectifier_line_harmonics circuit=three-phase "Id=100 A" h=5
Ih = 15.59393602 A
Ih_over_I1 = 0.2
THD_to_h = 0.2
I1 = 77.96968012 A
  by: Rectifier line-current harmonic spectrum  (single-phase: odd h, Ih = 2 sqrt(2) Id/(h pi); three-phase: h = 6k +- 1, Ih = sqrt(6) Id/(h pi); others 0)
  Id = 100 A
  circuit = three-phase
  assumes: 1 <= h <= 49; constant dc current, no overlap

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Single-phase AC voltage controller (resistive load)1 fig.pe_ac_voltage_controller

The RMS output voltage and current, load power, input power factor and the average and RMS thyristor currents of a single-phase AC voltage controller (antiparallel thyristors or a triac) with a resistive load at a firing angle.

V_{o} = V_s\sqrt{1-\frac{\alpha}{\pi}+\frac{\sin2\alpha}{2\pi}},\quad PF = \frac{V_o}{V_s}

You give

MeaningUnitExample
\text{Vs}
RMS source voltageV230 V
\alpha
Firing anglerad60 deg
R
Load resistanceohm10 ohm

You get

MeaningUnitExample
\text{Vo\_rms}
RMS output voltageV206.2958829 V
\text{Io\_rms}
RMS load currentA20.62958829 A
P
Load powerW4255.799131 W
\text{PF}
Input power factor—0.8969386214
I_{\mathrm{scr},\mathrm{avg}}
Average thyristor currentA7.765228227 A
I_{\mathrm{scr},\mathrm{rms}}
RMS thyristor currentA14.58732177 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 <= alpha < 180 degrees
  • resistive load

Outside these conditions it says what is wrong instead of returning a number.

Worked example

AC voltage controller: Vs = 230 V, alpha = 60 deg, R = 10 ohm
Vo_rms = 206.2958829 V
Io_rms = 20.62958829 A
P = 4255.799131 W
PF = 0.8969386214
I_scr_avg = 7.765228227 A
I_scr_rms = 14.58732177 A

Run it

Terminal
$ power-electronics solve pe_ac_voltage_controller "Vs=230 V" "alpha=60 deg" "R=10 ohm"
Vo_rms = 206.2958829 V
Io_rms = 20.62958829 A
P = 4255.799131 W
PF = 0.8969386214
I_scr_avg = 7.765228227 A
I_scr_rms = 14.58732177 A
  by: Single-phase AC voltage controller (resistive load)  (Vo = Vs sqrt(1 - alpha/pi + sin(2 alpha)/(2 pi)); PF = Vo/Vs; I_SCR,avg = sqrt(2) Vs (1 + cos alpha)/(2 pi R))
  Vs = 230 V
  alpha = 1.047197551 rad
  R = 10 ohm
  assumes: 0 <= alpha < 180 degrees; resistive load

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Single-phase phase-controlled thyristor rectifier2 fig.pe_single_phase_controlled_rectifier

The average, RMS and AC (ripple) output voltage of a single-phase thyristor rectifier at a firing angle: half-wave with a resistive load, fully controlled bridge with continuous load current, or semi-converter (half-controlled) with continuous current.

V_{dc,HW} = \frac{V_m(1+\cos\alpha)}{2\pi},\ V_{dc,FB} = \frac{2V_m\cos\alpha}{\pi},\ V_{dc,semi} = \frac{V_m(1+\cos\alpha)}{\pi}

You give

MeaningUnitExample
\text{circuit}
Half-wave, full-bridge or semi-converter choice—full-bridge
\text{Vs}
RMS source voltageV230 V
\alpha
Firing angle (delay from the natural commutation point)rad30 deg

You get

MeaningUnitExample
\text{Vdc}
Average output voltageV179.3302643 V
\text{Vrms}
RMS output voltageV230 V
\text{Vac\_rms}
RMS of the AC componentV144.0161668 V
\text{mode}
Rectifying or inverting (negative average voltage)—rectifying

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 <= alpha < 180 degrees
  • ideal thyristors, no source inductance

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Single-phase controlled rectifier: circuit = full-bridge, Vs = 230 V, alpha = 30 deg
Vdc = 179.3302643 V
Vrms = 230 V
Vac_rms = 144.0161668 V
mode = rectifying

Run it

Terminal
$ power-electronics solve pe_single_phase_controlled_rectifier circuit=full-bridge "Vs=230 V" "alpha=30 deg"
Vdc = 179.3302643 V
Vrms = 230 V
Vac_rms = 144.0161668 V
mode = rectifying
  by: Single-phase phase-controlled thyristor rectifier  (half-wave: Vdc = Vm (1 + cos a)/(2 pi); full bridge: Vdc = 2 Vm cos a/pi; semi-converter: Vdc = Vm (1 + cos a)/pi)
  Vs = 230 V
  alpha = 0.5235987756 rad
  circuit = full-bridge
  assumes: 0 <= alpha < 180 degrees; ideal thyristors, no source inductance

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Three-phase diode bridge rectifier with resistive load1 fig.pe_three_phase_diode_bridge

The average and RMS output voltage, ripple and form factors, ripple frequency, diode peak inverse voltage, and the load, diode and line currents of a six-pulse three-phase diode bridge feeding a resistor.

V_{dc} = \frac{3\sqrt2\,V_{LL}}{\pi},\quad V_{rms} = \sqrt2 V_{LL}\sqrt{\tfrac12+\tfrac{3\sqrt3}{4\pi}}

You give

MeaningUnitExample
\text{VLL}
RMS line-to-line source voltageV400 V
f
Line frequencyHz0.05 kHz
R
Load resistanceohm50 ohm

You get

MeaningUnitExample
\text{Vdc}
Average output voltageV540.1897897 V
\text{Vrms}
RMS output voltageV540.6652707 V
\text{ripple\_factor}
Ripple factor—0.04196661381
\text{form\_factor}
Form factor—1.000880211
f_{\mathrm{ripple}}
Ripple frequencyHz300 Hz
\text{PIV}
Diode peak inverse voltageV565.6854249 V
\text{Idc}
Average load currentA10.80379579 A
I_{\mathrm{diode},\mathrm{avg}}
Average diode currentA3.601265265 A
I_{\mathrm{diode},\mathrm{rms}}
RMS diode currentA6.243064791 A
\text{Is\_rms}
RMS line currentA8.829026898 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • ideal diodes, no source inductance, resistive load

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Three-phase diode bridge: VLL = 400 V, f = 0.05 kHz, R = 50 ohm
Vdc = 540.1897897 V
Vrms = 540.6652707 V
ripple_factor = 0.04196661381
form_factor = 1.000880211
f_ripple = 300 Hz
PIV = 565.6854249 V

Run it

Terminal
$ power-electronics solve pe_three_phase_diode_bridge "VLL=400 V" "f=0.05 kHz" "R=50 ohm"
Vdc = 540.1897897 V
Vrms = 540.6652707 V
ripple_factor = 0.04196661381
form_factor = 1.000880211
f_ripple = 300 Hz
PIV = 565.6854249 V
Idc = 10.80379579 A
I_diode_avg = 3.601265265 A
I_diode_rms = 6.243064791 A
Is_rms = 8.829026898 A
  by: Three-phase diode bridge rectifier with resistive load  (Vm = sqrt(2) VLL; Vdc = 3 Vm/pi; Vrms = Vm sqrt(1/2 + 3 sqrt(3)/(4 pi)); diode avg = Idc/3)
  VLL = 400 V
  f = 50 Hz
  R = 50 ohm
  assumes: ideal diodes, no source inductance, resistive load

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Three-phase fully controlled thyristor bridge1 fig.pe_three_phase_controlled_rectifier

The average and RMS output voltage, the power, and the thyristor and line currents of a six-pulse fully controlled thyristor bridge with continuous (constant) load current at a firing angle, rectifying or inverting.

V_{dc} = \frac{3\sqrt2 V_{LL}}{\pi}\cos\alpha,\quad I_{s,rms} = \sqrt{\tfrac23}\,I_d

You give

MeaningUnitExample
\text{VLL}
RMS line-to-line source voltageV415 V
\alpha
Firing anglerad45 deg
\text{Id}
Constant dc output currentA50 A

You get

MeaningUnitExample
\text{Vdc}
Average output voltageV396.2958083 V
\text{Vrms}
RMS output voltageV415 V
P
Dc output power Vdc IdW19814.79041 W
I_{\mathrm{thy},\mathrm{avg}}
Average thyristor currentA16.66666667 A
I_{\mathrm{thy},\mathrm{rms}}
RMS thyristor currentA28.86751346 A
\text{Is\_rms}
RMS line currentA40.82482905 A
\text{mode}
Rectifying or inverting—rectifying

Values with a unit may be written in any unit of the right kind.

Applies when

  • 0 <= alpha < 180 degrees
  • continuous constant current, no source inductance

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Three-phase controlled rectifier: VLL = 415 V, alpha = 45 deg, Id = 50 A
Vdc = 396.2958083 V
Vrms = 415 V
P = 19814.79041 W
I_thy_avg = 16.66666667 A
I_thy_rms = 28.86751346 A
Is_rms = 40.82482905 A

Run it

Terminal
$ power-electronics solve pe_three_phase_controlled_rectifier "VLL=415 V" "alpha=45 deg" "Id=50 A"
Vdc = 396.2958083 V
Vrms = 415 V
P = 19814.79041 W
I_thy_avg = 16.66666667 A
I_thy_rms = 28.86751346 A
Is_rms = 40.82482905 A
mode = rectifying
  by: Three-phase fully controlled thyristor bridge  (Vdc = 3 sqrt(2) VLL cos(alpha)/pi; Vrms = Vm sqrt(1/2 + 3 sqrt(3) cos(2 alpha)/(4 pi)); I_thy = Id/3 (avg), Id/sqrt(3) (rms))
  VLL = 415 V
  alpha = 0.7853981634 rad
  Id = 50 A
  assumes: 0 <= alpha < 180 degrees; continuous constant current, no source inductance

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Three-phase half-wave (three-pulse) diode rectifier1 fig.pe_three_phase_half_wave_rectifier

The average and RMS output voltage, ripple and form factors, ripple frequency, diode peak inverse voltage and the load and diode currents of a three-pulse (star, half-wave) diode rectifier feeding a resistor.

V_{dc} = \frac{3\sqrt3\,V_m}{2\pi},\quad V_{rms} = V_m\sqrt{\tfrac12+\tfrac{3\sqrt3}{8\pi}},\quad PIV = \sqrt3 V_m

You give

MeaningUnitExample
\text{Vph}
RMS phase (line-to-neutral) voltageV230 V
f
Line frequencyHz0.05 kHz
R
Load resistanceohm20 ohm

You get

MeaningUnitExample
\text{Vdc}
Average output voltageV268.9953964 V
\text{Vrms}
RMS output voltageV273.4483021 V
\text{ripple\_factor}
Ripple factor—0.1827065996
\text{form\_factor}
Form factor—1.016553836
f_{\mathrm{ripple}}
Ripple frequencyHz150 Hz
\text{PIV}
Diode peak inverse voltageV563.3826408 V
\text{Idc}
Average load currentA13.44976982 A
I_{\mathrm{diode},\mathrm{avg}}
Average diode currentA4.483256607 A
I_{\mathrm{diode},\mathrm{rms}}
RMS diode currentA7.893772542 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • ideal diodes, resistive load

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Three-phase half-wave rectifier: Vph = 230 V, f = 0.05 kHz, R = 20 ohm
Vdc = 268.9953964 V
Vrms = 273.4483021 V
ripple_factor = 0.1827065996
form_factor = 1.016553836
f_ripple = 150 Hz
PIV = 563.3826408 V

Run it

Terminal
$ power-electronics solve pe_three_phase_half_wave_rectifier "Vph=230 V" "f=0.05 kHz" "R=20 ohm"
Vdc = 268.9953964 V
Vrms = 273.4483021 V
ripple_factor = 0.1827065996
form_factor = 1.016553836
f_ripple = 150 Hz
PIV = 563.3826408 V
Idc = 13.44976982 A
I_diode_avg = 4.483256607 A
I_diode_rms = 7.893772542 A
  by: Three-phase half-wave (three-pulse) diode rectifier  (Vm = sqrt(2) Vph; Vdc = 3 sqrt(3) Vm/(2 pi); Vrms = Vm sqrt(1/2 + 3 sqrt(3)/(8 pi)); PIV = sqrt(3) Vm)
  Vph = 230 V
  f = 50 Hz
  R = 20 ohm
  assumes: ideal diodes, resistive load

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Resonant converters 3

Dual active bridge: power transfer and inductor current1 fig.pe_dual_active_bridge_power

The power transferred by a dual-active-bridge converter with single phase-shift modulation, the maximum transferable power, the inductor current at the switching instants of both bridges and its RMS value.

P = \frac{nV_1V_2\,\phi(\pi-\phi)}{2\pi^2f_sL},\quad P_{max} = \frac{nV_1V_2}{8f_sL}

You give

MeaningUnitExample
\text{V1}
Primary dc voltageV400 V
\text{V2}
Secondary dc voltageV48 V
n
Turns ratio Np/Ns—8
L
Series (leakage) inductance referred to the primaryH50 uH
\text{fs}
Switching frequencyHz100 kHz
\phi
Phase shift of the secondary bridgerad30 deg

You get

MeaningUnitExample
P
Transferred powerW2133.333333 W
P_{\mathrm{max}}
Maximum transferable powerW3840 W
\text{i0}
Inductor current when the primary bridge switchesA-7.2 A
i_{\phi}
Inductor current when the secondary bridge switchesA5.866666667 A
I_{\mathrm{rms}}
RMS inductor currentA6.175699091 A

Values with a unit may be written in any unit of the right kind.

Applies when

  • square-wave bridges, single phase shift 0 < phi <= 90 degrees

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Dual active bridge power: V1 = 400 V, V2 = 48 V, n = 8, L = 50 uH, fs = 100 kHz, phi = 30 deg
P = 2133.333333 W
P_max = 3840 W
i0 = -7.2 A
i_phi = 5.866666667 A
I_rms = 6.175699091 A

Run it

Terminal
$ power-electronics solve pe_dual_active_bridge_power "V1=400 V" "V2=48 V" n=8 "L=50 uH" "fs=100 kHz" "phi=30 deg"
P = 2133.333333 W
P_max = 3840 W
i0 = -7.2 A
i_phi = 5.866666667 A
I_rms = 6.175699091 A
  by: Dual active bridge: power transfer and inductor current  (P = n V1 V2 phi (pi - phi)/(2 pi^2 fs L); i(0) = -(V1 pi + nV2 (2 phi - pi))/(2 w L); i(phi) = i(0) + (V1 + nV2) phi/(w L))
  V1 = 400 V
  V2 = 48 V
  n = 8
  L = 5e-05 H
  fs = 100000 Hz
  phi = 0.5235987756 rad
  assumes: square-wave bridges, single phase shift 0 < phi <= 90 degrees

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

LLC resonant converter: tank gain (first harmonic)1 fig.pe_llc_resonant_gain

The two resonant frequencies, the reflected AC load resistance, quality factor, inductance ratio and voltage gain of an LLC resonant tank at a switching frequency (first-harmonic approximation, full-wave rectified output).

M = \left|\frac{j\omega L_m\parallel R_{ac}}{j\omega L_r + \frac{1}{j\omega C_r} + j\omega L_m\parallel R_{ac}}\right|,\quad R_{ac} = \frac{8n^2R}{\pi^2}

You give

MeaningUnitExample
\text{Lr}
Series resonant inductanceH60 uH
\text{Cr}
Resonant capacitanceF27 nF
\text{Lm}
Magnetizing inductanceH300 uH
n
Transformer turns ratio Np/Ns—8
R
Dc load resistanceohm2 ohm
f
Switching frequencyHz100 kHz

You get

MeaningUnitExample
\text{fr1}
Series resonant frequencyHz125043.9328 Hz
\text{fr2}
Lower resonant frequencyHz51048.9718 Hz
\text{Rac}
Reflected AC load resistanceohm103.752892 ohm
Q
Quality factor sqrt(Lr/Cr)/Rac—0.454353138
k
Inductance ratio Lm/Lr—5
M
Tank voltage gain—1.0981695

Values with a unit may be written in any unit of the right kind.

Applies when

  • first-harmonic approximation

Outside these conditions it says what is wrong instead of returning a number.

Worked example

LLC resonant gain: Lr = 60 uH, Cr = 27 nF, Lm = 300 uH, n = 8, R = 2 ohm, f = 100 kHz
fr1 = 125043.9328 Hz
fr2 = 51048.9718 Hz
Rac = 103.752892 ohm
Q = 0.454353138
k = 5
M = 1.0981695

Run it

Terminal
$ power-electronics solve pe_llc_resonant_gain "Lr=60 uH" "Cr=27 nF" "Lm=300 uH" n=8 "R=2 ohm" "f=100 kHz"
fr1 = 125043.9328 Hz
fr2 = 51048.9718 Hz
Rac = 103.752892 ohm
Q = 0.454353138
k = 5
M = 1.0981695
  by: LLC resonant converter: tank gain (first harmonic)  (Rac = 8 n^2 R/pi^2; M = |Zp/(Zs + Zp)|, Zp = jwLm || Rac, Zs = jwLr + 1/(jwCr))
  Lr = 6e-05 H
  Cr = 2.7e-08 F
  Lm = 0.0003 H
  n = 8
  R = 2 ohm
  f = 100000 Hz
  assumes: first-harmonic approximation

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Series resonant converter: tank gain (first harmonic)1 fig.pe_series_resonant_gain

The resonant frequency, characteristic impedance, quality factor, normalised frequency and voltage gain of a series resonant tank driving an equivalent AC load resistance (first-harmonic approximation).

M = \frac{1}{\sqrt{1+Q^2\left(f_n-\frac{1}{f_n}\right)^2}},\quad Q = \frac{\sqrt{L_r/C_r}}{R}

You give

MeaningUnitExample
\text{Lr}
Resonant inductanceH100 uH
\text{Cr}
Resonant capacitanceF25 nF
R
Equivalent AC load resistanceohm30 ohm
f
Switching frequencyHz120 kHz

You get

MeaningUnitExample
\text{fr}
Resonant frequencyHz100658.4242 Hz
\text{Z0}
Characteristic impedance sqrt(Lr/Cr)ohm63.2455532 ohm
Q
Quality factor—2.108185107
\text{fn}
Normalised frequency f/fr—1.192150592
M
Tank voltage gain—0.8019643432

Values with a unit may be written in any unit of the right kind.

Applies when

  • first-harmonic approximation

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Series resonant gain: Lr = 100 uH, Cr = 25 nF, R = 30 ohm, f = 120 kHz
fr = 100658.4242 Hz
Z0 = 63.2455532 ohm
Q = 2.108185107
fn = 1.192150592
M = 0.8019643432

Run it

Terminal
$ power-electronics solve pe_series_resonant_gain "Lr=100 uH" "Cr=25 nF" "R=30 ohm" "f=120 kHz"
fr = 100658.4242 Hz
Z0 = 63.2455532 ohm
Q = 2.108185107
fn = 1.192150592
M = 0.8019643432
  by: Series resonant converter: tank gain (first harmonic)  (fr = 1/(2 pi sqrt(Lr Cr)); Q = sqrt(Lr/Cr)/R; M = 1/sqrt(1 + Q^2 (fn - 1/fn)^2))
  Lr = 0.0001 H
  Cr = 2.5e-08 F
  R = 30 ohm
  f = 120000 Hz
  assumes: first-harmonic approximation

Figure

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Thermal 3

Junction temperature under periodic power pulses2 fig.pe_foster_periodic_pulses

The peak, minimum and average junction temperature rise and the temperature ripple of a device described by a Foster network under a periodic rectangular power pulse train (exact periodic steady state, no single-pulse approximation).

\Delta T_{pk} = \sum_iPR_i\frac{1-e^{-t_p/\tau_i}}{1-e^{-T/\tau_i}}

You give

MeaningUnitExample
R
Foster thermal resistances in kelvin per watt vector—[0.05, 0.1, 0.15]
\tau
Foster time constants in seconds vector—[0.0001, 0.003, 0.05]
P
Pulse powerW500 W
\text{tp}
Pulse durations2 ms
T
Pulse periods10 ms

You get

MeaningUnitExample
\text{dT\_peak}
Peak temperature rise (end of each pulse)K66.45250612 K
\text{dT\_min}
Minimum temperature rise (start of each pulse)K15.57762553 K
\text{dT\_avg}
Average rise P Rth tp/TK30 K
\text{ripple}
Peak minus minimumK50.87488059 K

Values with a unit may be written in any unit of the right kind.

Applies when

  • periodic steady state
  • tp < T

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Periodic pulse junction temperature: R = [0.05, 0.1, 0.15], tau = [0.0001, 0.003, 0.05], P = 500 W, tp = 2 ms, T = 10 ms
dT_peak = 66.45250612 K
dT_min = 15.57762553 K
dT_avg = 30 K
ripple = 50.87488059 K

Run it

Terminal
$ power-electronics solve pe_foster_periodic_pulses "R=[0.05, 0.1, 0.15]" "tau=[0.0001, 0.003, 0.05]" "P=500 W" "tp=2 ms" "T=10 ms"
dT_peak = 66.45250612 K
dT_min = 15.57762553 K
dT_avg = 30 K
ripple = 50.87488059 K
  by: Junction temperature under periodic power pulses  (per element: peak = P R (1 - e^(-tp/tau))/(1 - e^(-T/tau)); minimum = peak e^(-(T - tp)/tau); summed over the network)
  P = 500 W
  tp = 0.002 s
  T = 0.01 s
  assumes: periodic steady state; tp < T

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Several power devices on one heat sink2 fig.pe_thermal_shared_heatsink

The heat-sink temperature and every device's junction temperature when several devices, each with its own junction-to-case and case-to-sink resistance, share one heat sink to ambient.

T_s = T_a + R_{sa}\sum_kP_k,\quad T_{j,k} = T_s + P_k(R_{jc}+R_{cs})

You give

MeaningUnitExample
P
Loss of each device in watts vector—[20, 20, 15]
\text{Rjc}
Junction-to-case thermal resistance of each deviceK/W0.8 K/W
\text{Rcs}
Case-to-sink (interface) resistance of each deviceK/W0.2 K/W
\text{Rsa}
Sink-to-ambient resistanceK/W0.5 K/W
\text{Ta}
Ambient temperatureK40 degC

You get

MeaningUnitExample
P_{\mathrm{total}}
Total lossW55 W
\text{Ts}
Heat-sink temperatureK340.65 K
\text{Tj}
Junction temperature of each device, kelvin—[360.65, 360.65, 355.65]
\text{Tj\_max}
Hottest junctionK360.65 K
\text{Tj\_max\_C}
Hottest junction in degC—87.5

Values with a unit may be written in any unit of the right kind.

Applies when

  • steady state; the sink is isothermal

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Shared heat sink temperatures: P = [20, 20, 15], Rjc = 0.8 K/W, Rcs = 0.2 K/W, Rsa = 0.5 K/W, Ta = 40 degC
P_total = 55 W
Ts = 340.65 K
Tj = [360.65, 360.65, 355.65]
Tj_max = 360.65 K
Tj_max_C = 87.5

Run it

Terminal
$ power-electronics solve pe_thermal_shared_heatsink "P=[20, 20, 15]" "Rjc=0.8 K/W" "Rcs=0.2 K/W" "Rsa=0.5 K/W" "Ta=40 degC"
P_total = 55 W
Ts = 340.65 K
Tj = [360.65,360.65,355.65]
Tj_max = 360.65 K
Tj_max_C = 87.5
  by: Several power devices on one heat sink  (Ts = Ta + Rsa sum(P); Tj,k = Ts + P_k (Rjc + Rcs))
  Rjc = 0.8 K/W
  Rcs = 0.2 K/W
  Rsa = 0.5 K/W
  Ta = 313.15 K
  assumes: steady state; the sink is isothermal

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Transient thermal impedance of a Foster network2 fig.pe_foster_transient_thermal

The transient thermal impedance Zth(tp) of a device described by a Foster RC network (datasheet R_i, tau_i pairs) and the junction temperature rise for a single power pulse of duration tp, with the steady-state values.

Z_{th}(t) = \sum_i R_i\left(1-e^{-t/\tau_i}\right),\quad \Delta T_j = P\,Z_{th}(t_p)

You give

MeaningUnitExample
R
Foster thermal resistances in kelvin per watt vector—[0.05, 0.1, 0.15]
\tau
Foster time constants in seconds vector—[0.0001, 0.003, 0.05]
P
Pulse powerW500 W
\text{tp}
Pulse durations10 ms

You get

MeaningUnitExample
\text{Zth}
Transient thermal impedance at tpK/W0.1736229877 K/W
\text{dTj}
Junction temperature rise at the end of the pulseK86.81149385 K
\text{Rth\_total}
Steady-state thermal resistanceK/W0.3 K/W
\text{dTj\_steady}
Steady-state rise for continuous powerK150 K

Values with a unit may be written in any unit of the right kind.

Applies when

  • linear network, starting from thermal equilibrium

Outside these conditions it says what is wrong instead of returning a number.

Worked example

Foster transient thermal impedance: R = [0.05, 0.1, 0.15], tau = [0.0001, 0.003, 0.05], P = 500 W, tp = 10 ms
Zth = 0.1736229877 K/W
dTj = 86.81149385 K
Rth_total = 0.3 K/W
dTj_steady = 150 K

Run it

Terminal
$ power-electronics solve pe_foster_transient_thermal "R=[0.05, 0.1, 0.15]" "tau=[0.0001, 0.003, 0.05]" "P=500 W" "tp=10 ms"
Zth = 0.1736229877 K/W
dTj = 86.81149385 K
Rth_total = 0.3 K/W
dTj_steady = 150 K
  by: Transient thermal impedance of a Foster network  (Zth(t) = sum R_i (1 - exp(-t/tau_i)); dTj = P Zth(tp))
  P = 500 W
  tp = 0.01 s
  assumes: linear network, starting from thermal equilibrium

Figures

Each figure varies one input around the worked example and recomputes the result at every point. Press Compute above and they are redrawn for your own inputs.

Figures

Computed, not drawn by hand

Every point in these figures is an answer of the model: one input is varied, the others are held at the worked example, and the curve shows how the result responds. The marked point is the worked example itself.

Buck converter in continuous conduction

D = \frac{V_o}{V_{in}},\quad \Delta i_L = \frac{(V_{in}-V_o)D}{L f_s},\quad I_{L,\max/\min} = I_o \pm \tfrac{\Delta i_L}{2}
dIL against Vin: Buck converter in continuous conductiondIL (peak-to-peak inductor ripple) against Vin (input voltage), with Io = 3 A, L = 2.20e-5 H, Vout = 5 V, fs = 2.00e5 Hz. 31 points computed by power-electronics-ai999x; marked: Vin = 24, dIL = 0.899621 A.20300.70.80.910.899621 AVin — input voltage [V]dIL [A]
dIL (peak-to-peak inductor ripple) against Vin (input voltage), with Io = 3 A, L = 2.20e-5 H, Vout = 5 V, fs = 2.00e5 Hz. 31 points computed by power-electronics-ai999x; marked: Vin = 24, dIL = 0.899621 A.

Boost power-factor-correction stage

\Delta i_L(v) = \frac{v\,(1-v/V_o)}{Lf_s},\quad \Delta i_{L,max} = \frac{V_o}{4Lf_s},\quad \Delta V_o = \frac{P_o}{2\pi f_{line}CV_o}
dI_max against Vac: Boost power-factor-correction stagedI_max (largest inductor ripple over the line cycle) against Vac (RMS line voltage), with C = 3.30e-4 F, L = 5.00e-4 H, Po = 500 W, Vo = 400 V, eff = 0.95, f_line = 50 Hz, fs = 65000 Hz. 22 points computed by power-electronics-ai999x; marked: Vac = 230, dI_max = 3.07692 A.1502002502.97533.0253.053.0753.07692 AVac — RMS line voltage [V]dI_max [A]
dI_max (largest inductor ripple over the line cycle) against Vac (RMS line voltage), with C = 3.30e-4 F, L = 5.00e-4 H, Po = 500 W, Vo = 400 V, eff = 0.95, f_line = 50 Hz, fs = 65000 Hz. 22 points computed by power-electronics-ai999x; marked: Vac = 230, dI_max = 3.07692 A.

Flyback converter in continuous conduction

\frac{V_o}{V_{in}} = \frac{1}{n}\frac{D}{1-D},\quad I_m = \frac{I_o}{n(1-D)},\quad \Delta i_m = \frac{V_{in}D}{L_m f_s}
D against Vin: Flyback converter in continuous conductionD (duty cycle) against Vin (input voltage), with Io = 2 A, Lm = 2.00e-4 H, Vout = 12 V, fs = 1.00e5 Hz, n = 2. 31 points computed by power-electronics-ai999x; marked: Vin = 48, D = 0.333333.40600.30.40.50.333333 Vin — input voltage [V]D
D (duty cycle) against Vin (input voltage), with Io = 2 A, Lm = 2.00e-4 H, Vout = 12 V, fs = 1.00e5 Hz, n = 2. 31 points computed by power-electronics-ai999x; marked: Vin = 48, D = 0.333333.

Peak current mode: subharmonic stability and slope compensation

\alpha = -\frac{m_2 – m_a}{m_1 + m_a},\quad |\alpha| < 1 \Leftarrow m_a > \frac{m_2-m_1}{2}
alpha against Vin: Peak current mode: subharmonic stability and slope compensationalpha (perturbation factor per switching period) against Vin (input voltage), with L = 1.00e-5 H, Vout = 8 V, fs = 3.00e5 Hz, ma = 3.00e5 A/s. 25 points computed by power-electronics-ai999x; marked: Vin = 12, alpha = -0.714286.1012.51517.5-1.5-1-0.5-0.714286 Vin — input voltage [V]alpha
alpha (perturbation factor per switching period) against Vin (input voltage), with L = 1.00e-5 H, Vout = 8 V, fs = 3.00e5 Hz, ma = 3.00e5 A/s. 25 points computed by power-electronics-ai999x; marked: Vin = 12, alpha = -0.714286.
Questions

Frequently asked

What does power-electronics-ai999x do?

Power Electronics answers questions in power electronics: DC-DC converters in continuous and discontinuous conduction (buck, boost, buck-boost, Cuk, SEPIC, flyback, forward, bridge), rectifiers and phase control, inverters and PWM, motor drives, device losses, snubbers, thermal and magnetic design and resonant converters. Each answer gives the value with its unit, the steps and the formula in LaTeX.

Is there a desktop app or a command-line program?

Yes, both, for Windows and Linux. AI999X Power Electronics is a desktop app of its own, and the AI999X desktop app holds all AI999X models in one window (search, ask in words, forms, figures, explanations). The command-line bundle holds one program per model; for this one run `power-electronics list` for its capabilities, `power-electronics info <capability>` for what one needs and `power-electronics solve <capability> name=value …` for an answer. Both run offline and need no Python. Downloads and checksums: https://www.ai999x.com/desktop-cli/

How do I install power-electronics-ai999x?

With pip: pip install power-electronics-ai999x. The same files are on Hugging Face (hf download AI999X/power-electronics-ai999x –local-dir power-electronics-ai999x) and GitHub.

Does it run offline?

Yes. It is a Python package that runs on an ordinary CPU without a network connection (Python >=3.10); no GPU and no API key are needed.

How many capabilities does power-electronics-ai999x have?

79 capabilities in 13 topics, including DC-DC converters, Rectifiers, Devices, Motor drives, Magnetics.

Which field and tasks does it cover?

Field: Engineering. Tasks: Question Answering, Sentence Similarity, Feature Extraction.

What does an answer look like?

Asked "Buck converter in CCM: Vin = 24 V, Vout = 5 V, L = 22 uH, fs = 200 kHz, Io = 3 A", it answers: D = 0.208333, dIL = 0.899621 A, IL_max = 3.44981 A, IL_min = 2.55019 A, ripple_ratio = 0.299874, Iin = 0.625 A.

What happens when a question cannot be answered?

It says so and names what is missing or out of range, instead of guessing a number.

More from AI999X

Explore every model.