Appearance
abc → dq0 (Park)
Park (abc → dq0) transform. Projects three instantaneous phase signals a, b, c onto a synchronously rotating dq frame defined by the angle θ (radians, wired in — typically from a PLL on the grid side or a rotor-position / encoder signal on the motor side) and outputs the direct (d), quadrature (q), and zero-sequence (0) components. The d-axis is aligned with cos θ (q lags): d = K·[a·cosθ + b·cos(θ−2π/3) + c·cos(θ+2π/3)], q = −K·[a·sinθ + b·sin(θ−2π/3) + c·sin(θ+2π/3)], 0 = K0·(a+b+c). Choose amplitude-invariant scaling (K=2/3, K0=1/3 — d and q keep the abc peak amplitude; the usual convention in motor / power-electronics control) or power-invariant scaling (K=√(2/3), K0=√(1/3) — preserves instantaneous power). For a balanced set a=A·cos(θ+φ), b/c shifted ∓120°, the transform yields the constant DC pair d=A·cosφ, q=A·sinφ. Pair with the dq0 → abc block to close a vector-control loop.
Category: Math
Overview
The abc → dq0 block is the Park transform: it projects the three instantaneous phase signals
It is the workhorse of vector control. A balanced three-phase set that looks like fast sinusoids in the stationary abc frame becomes a pair of slow (DC in steady state) signals d and q once viewed from a frame locked to it — and DC signals are what PI regulators can drive to a reference with zero steady-state error. Feed it rotor position from an encoder for field-oriented motor control, or a PLL angle for a grid-tied inverter.
Pair it with the dq0 → abc block (inverse Park) to map controller outputs back to per-phase references and close the loop.
The transform
With
The block is stateless — the outputs are an algebraic function of the present inputs only, evaluated every time step. There is no filtering, gain ramp, or memory.
Scaling convention
The Scaling parameter sets the magnitude constants
| Scaling | Property | ||
|---|---|---|---|
| Amplitude (2/3) | d,q keep the peak amplitude of the abc waveforms | ||
| Power (√2/3) | transform is orthonormal — instantaneous power is preserved |
- Amplitude-invariant is the usual choice in motor and power-electronics control: a phase voltage of peak
produces a dq vector of magnitude , so the numbers stay intuitive. - Power-invariant makes the transform a rotation (orthonormal), so
equals the instantaneous three-phase power with no factor. Use it when you compute power or energy in the dq frame.
Whatever you pick here, set the same convention on the matching dq0 → abc block so the round trip is exact.
Sign and alignment convention
The d-axis is aligned with
i.e. a vector of amplitude
So a vector aligned with the d-axis (q.
Zero-sequence
The 0 output carries the common-mode part of the three inputs, zero output unwired.
Wiring
- a, b, c ← the three instantaneous phase signals (volts, amps, or per-unit — the transform is linear and unit-agnostic).
- theta ← the frame angle in radians: a rotor-position / encoder signal for a machine, or a PLL output for a grid converter. Wrapping is irrelevant — only
and are used. - d, q, zero → the rotating-frame components, typically into the current/voltage regulators.
When to use something else
- dq0 → abc (inverse Park) — the reverse map, for turning controller
d,qsetpoints back into per-phase references. - If you only need the stationary two-axis (αβ) components, that is the Clarke transform — equivalent to this block evaluated at
(then , ).
Ports
| Name | Direction | Value type | Notes |
|---|---|---|---|
a | input | double | |
b | input | double | |
c | input | double | |
theta | input | double | |
d | output | double | |
q | output | double | |
zero | output | double |
Parameters
| Name | Label | Type | Default | Units | Description |
|---|---|---|---|---|---|
scaling | Scaling | enum (Amplitude (2/3) / Power (√2/3)) | 0 | — | Magnitude-scaling convention. Amplitude-invariant (2/3) keeps the dq components at the abc peak amplitude — the usual choice for motor / power-electronics control. Power-invariant (√(2/3)) makes the transform orthonormal so instantaneous power p = vd·id + vq·iq + v0·i0 is preserved across the transform. |
