AnythingOnline
BLDC & PMSM FOC Space Vector PWM Calculator Electronics
100% Free • No Sign-Up

BLDC & PMSM FOC Space Vector PWM Calculator

Calculate Clarke/Park transforms, reference voltage space vectors, hexagon sector identification, and 3-phase bridge switching duty cycles with maximum DC bus utilization.

Rotor Electrical Angle (θ_e): 45.0°
Zero-Vector Split:
Deadtime t_dead (ns):
Modulation Index (m = V_ref / (V_dc / √3)):
-

Space Vector Sector & Timing Results

Active Hexagon Sector -
PWM Period T_pwm (μs) -
Stationary V_alpha / V_beta: -
Voltage Vector Magnitude |V_ref|: -
Vector Angle in Stator Frame: -
Active Time T1 (First Vector): -
Active Time T2 (Second Vector): -
Zero-State Time T0 (V0 / V7): -

3-Phase High-Side Duty Cycles (T_A, T_B, T_C)

Phase A High-Side Duty: -
Phase B High-Side Duty: -
Phase C High-Side Duty: -
-

Recommended Tools & Equipment

Tested hardware and components for high reliability

100% Free Tool Zero Sign-Up

Space Vector Pulse Width Modulation (SVPWM) in FOC Motor Control

In modern Field Oriented Control (FOC) of Brushless DC (BLDC) and Permanent Magnet Synchronous Motors (PMSM), the PI current controllers regulate the torque-producing quadrature current ($I_q$) and flux-producing direct current ($I_d$). The output voltage commands ($V_d, V_q$) must be transformed back to 3-phase bridge commands ($V_a, V_b, V_c$). Space Vector PWM (SVPWM) treats the inverter bridge as an integrated switching entity rather than three separate sinusoidal modulators.

The 15.5% DC Bus Utilization Advantage

Standard Sinusoidal PWM (SPWM) has a maximum linear peak phase voltage of $V_{phase,peak} = \frac{V_{dc}}{2} = 0.500 V_{dc}$. Space Vector PWM injects a natural third-harmonic common-mode voltage that flattens the crest of the phase voltages without altering the line-to-line differential voltages. This elevates the maximum linear output voltage to the radius of the hexagon's inscribed circle:

\[ V_{max,linear} = \frac{V_{dc}}{\sqrt{3}} \approx 0.577 V_{dc} \quad (\text{a } 15.47\% \text{ increase over SPWM}) \]

Mathematical Steps in SVPWM

  1. Inverse Park Transform: Converts rotating $(V_d, V_q)$ at rotor angle $\theta_e$ to stationary two-phase frame $(\alpha, \beta)$: \[ V_\alpha = V_d \cos \theta_e - V_q \sin \theta_e, \quad V_\beta = V_d \sin \theta_e + V_q \cos \theta_e \]
  2. Sector Determination: The 6 non-zero voltage vectors ($V_1$ to $V_6$) partition the complex plane into 6 sectors of $60^\circ$. Angle $\gamma = \text{atan2}(V_\beta, V_\alpha)$ identifies the active sector.
  3. Dwell Times ($T_1, T_2, T_0$): Dwell times for the two bounding active vectors and the zero vector within PWM period $T_{pwm}$: \[ T_1 = \sqrt{3} \frac{T_{pwm}}{V_{dc}} |V_{ref}| \sin(60^\circ - \theta_{rel}), \quad T_2 = \sqrt{3} \frac{T_{pwm}}{V_{dc}} |V_{ref}| \sin(\theta_{rel}), \quad T_0 = T_{pwm} - T_1 - T_2 \]

Frequently Asked Questions

Why does 7-segment center-aligned SVPWM produce the lowest harmonic ripple?

In a 7-segment scheme (e.g. V0 -> V1 -> V2 -> V7 -> V2 -> V1 -> V0), only one inverter half-bridge arm toggles state at any switching instant. The symmetrical pulse distribution centers current ripple around the PWM mid-point, which dramatically cancels odd harmonics and minimizes acoustic motor whine and core eddy losses.

What is overmodulation in SVPWM?

When the commanded voltage magnitude exceeds V_dc / √3, the reference vector tip extends beyond the hexagon boundary. Linear modulation cannot fulfill both T1 and T2 without their sum exceeding Tpwm (T0 < 0). Overmodulation algorithms either scale down the vector to the hexagon edge (minimum phase error) or clamp to the vertices, eventually transitioning to six-step full-block commutation.

How does inverter deadtime affect SVPWM duty cycles?

Deadtime prevents shoot-through by ensuring both high-side and low-side MOSFETs are off during transitions. However, deadtime introduces a voltage error proportional to the sign of the phase current, creating low-order 5th and 7th harmonics that cause torque ripple at low speeds. Advanced motor controllers apply deadtime compensation to adjust the duty cycles by ±t_dead / Tpwm.