Clarke-Park Transformation Simulator: abc to dq0

Convert abc currents to αβ0 and dq0 with animated phasors, rotating frames, amplitude- or power-invariant scaling, and inverse reconstruction.

#abc to dq0 #Clarke transform #FOC #Park transform #power invariance #three-phase systems

The Clarke–Park transformation simulator converts three phase currents into stationary αβ0 components and rotating dq0 components. It is for engineers checking a drive-control convention, students learning reference frames, and tutors explaining why sinusoidal motor currents can become constant controller signals. Use it as a Clarke Park transformation calculator or an abc to dq0 calculator, with the intermediate steps visible.

Choose Three-phase waveform to generate a positive-sequence cosine set. Enter the phase peak current, electrical frequency and initial signal phase. The default is a balanced 10 A peak, 50 Hz system. The electrical progression control selects an instant within one cycle; press ▶ to animate it. Playback is deliberately slowed, while the physical period and selected time remain available in the calculation steps.

The d-axis angle is measured counterclockwise from the stationary α-axis, which is aligned with phase a. The q-axis leads d by 90 electrical degrees. The default frame runs at the signal frequency with a 30° displacement from the current vector, giving d ≈ 8.6603 A and q = 5 A. Change the initial d-axis angle to align the vector entirely with d or q. A frame frequency ratio of zero holds the frame stationary; −1 follows negative sequence.

Choose Enter instantaneous abc to enter three simultaneous current samples. In this mode the progression control directly sets the frame angle θ, and ▶ rotates the frame around the fixed current vector. The curves show an angle sweep of those held samples, rather than a prediction of their time history. All current inputs are in amperes; electrical units are the same in metric and US display modes.

Compare amplitude invariant and power invariant normalization. The amplitude-invariant αβ magnitude equals the phase peak for a balanced set. Power-invariant coordinates are larger by √(3/2) in that case, and their complete dq0 dot product matches abc without an extra factor. The tool also reconstructs abc through inverse Park and Clarke transformations.

To explore imbalance, increase the negative-sequence ratio. The αβ circle becomes an ellipse, and a synchronous dq frame shows a twice-frequency ripple. Add an equal DC current to all phases to study zero sequence, selecting Neutral / independent signals first. Three-wire currents must sum to zero. Zero sequence is reported separately because a two-dimensional space-vector picture cannot display it.

This simulator performs ideal algebraic coordinate transforms. It does not model motor torque, magnetic saturation, sensor delay, current-control loops, PWM switching, inverter limits or a position observer. Electrical angle must already be known; for a motor it equals mechanical angle multiplied by pole pairs, with the chosen reference offset. Match the axis orientation, phase order and normalization before comparing results with firmware or another textbook.

How it is calculated

The amplitude-invariant Clarke transform is

iα=23(ia−ib+ic2),iβ=33(ib−ic),i0=ia+ib+ic3.i_\alpha=\frac23\left(i_a-\frac{i_b+i_c}{2}\right),\quad i_\beta=\frac{\sqrt3}{3}(i_b-i_c),\quad i_0=\frac{i_a+i_b+i_c}{3}.

The power-invariant form uses k=2/3k=\sqrt{2/3} for the αβ rows and k0=1/3k_0=1/\sqrt3 for the sum row. These two complete matrices follow the MathWorks Clarke Transform equations (https://www.mathworks.com/help/simscape-electrical/ref/clarketransform.html). TI SPRA524, pp. 4–5, uses power-invariant stationary coordinates called d and q; these correspond to α and β here.

Park is a rotation, with α along phase a, d at θ counterclockwise from α, and q 90° ahead of d:

id=iαcos⁡θ+iβsin⁡θ,iq=−iαsin⁡θ+iβcos⁡θ.i_d=i_\alpha\cos\theta+i_\beta\sin\theta,\qquad i_q=-i_\alpha\sin\theta+i_\beta\cos\theta.

This sign convention and its inverse agree with Microchip AN1078 Rev. B, pp. 8–10. Inverse Park rotates by +θ; inverse Clarke restores the common component i0/(3k0)i_0/(3k_0) and divides the αβ projections by 3k/23k/2.

For amplitude-invariant quantities,

∑iabc2=32(id2+iq2)+3i02.\sum i_{abc}^2=\frac32(i_d^2+i_q^2)+3i_0^2.

For power-invariant quantities the weights are both 1. With voltage and current transformed using the same convention, the same weights apply to instantaneous power: p=32(vdid+vqiq)+3v0i0p=\frac32(v_di_d+v_qi_q)+3v_0i_0 for amplitude normalization, or p=vdid+vqiq+v0i0p=v_di_d+v_qi_q+v_0i_0 for power normalization. The displayed norm is in A², not watts.

The waveform generator adds positive sequence Icos⁡(u+φ)I\cos(u+\varphi), reversed b–c negative sequence of peak rIrI, and equal DC current IcI_c. It calculates their phase sum analytically as 3Ic3I_c to avoid floating-point cancellation. θ = frame ratio × u + initial d-axis angle. The full-cycle curves are computed independently of the playing input.

Reference cases reproduce the JET published numerical vector, the UPC Figure 4 current levels, and TI basic space-vector coordinates. The UPC Eq. (7) prints sine where Eq. (1) and Figure 4 use cosine; this tool follows Eq. (1) and Figure 4. The JET Eq. (1.13) omits a minus sign on phase c in one line; Eqs. (1.14)–(1.15) use the correct negative value. No transform coefficients have been adjusted to these typographical errors.

Assumptions

Ideal, simultaneous, real current samples; no filtering, sampling delay or quantization. The waveform positive sequence is a → b → c with cosine references separated by 120°. The negative sequence has the same phase-a starting phase and reversed b–c ordering; its amplitude ratio is 0–1. The zero component added by the generator is DC, not a triplen harmonic.

Angles are electrical degrees. The frame is user-defined and need not coincide with a motor rotor. The 2D drawing shows only the αβ or dq part; 0 is a separate scalar. Plot lengths share a fixed full-cycle scale during animation; the light circle is a guide, and the grey locus is the actual path.

Inverse currents and transform results retain full numerical precision. Only error-reporting steps are rounded to 10⁻¹⁰ A or A² to prevent insignificant cancellation noise appearing as a unit-scale discrepancy. Source graph readings have explicitly looser tolerances than printed numerical reference vectors.

Where it applies

The complete three-component transform is valid for balanced and unbalanced real abc currents, including a nonzero sum. A three-wire isolated circuit requires a zero sum; the input condition allows 10⁻⁹ A numerical tolerance. For nonzero sum use a neutral return or treat the inputs as independent signals.

The selectable integer frame frequency ratios −2…2 keep the one-cycle animation loop continuous. Generated signal frequency is 0.01–100000 Hz; the transform is algebraic and this range does not imply controller or sensor bandwidth. Phase entries and common current are limited to ±100000 A; positive-sequence peak is 0–100000 A. These are interface bounds, not equipment ratings. Snapshot curves sweep θ while holding abc fixed. Period and physical-time steps apply only to waveform mode.

DC dq values require a balanced sinusoid and a frame rotating synchronously with that sequence. Negative sequence produces twice-frequency ripple in a positive synchronous frame. No dynamic motor, PWM, FOC controller or torque calculation is included.

References

  • Microchip, AN1078 Rev. B (2010), Sensorless Field Oriented Control (FOC) of a Permanent Magnet Synchronous Motor (PMSM), pp. 8–10. https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ApplicationNotes/ApplicationNotes/01078B.pdf ; landing page: https://www.microchip.com/en-us/application-notes/an1078
  • Z. Yu, Texas Instruments SPRA524 (March 1999), Space-Vector PWM With TMS320C24x/F24x Using Hardware and Software Determined Switching Patterns, pp. 4–5, Eq. 3 and Figure 3. https://www.ti.com/lit/pdf/spra524
  • MathWorks, Clarke Transform, complete amplitude- and power-invariant matrices. https://www.mathworks.com/help/simscape-electrical/ref/clarketransform.html
  • F. Filipović et al., Systematic Derivation of Clarke and Park Transformations through Vector Representation in Three-Phase Systems, Journal of Energy Technology 18(3), 145–160 (2025), pp. 156–157. https://doi.org/10.18690/jet.18.3.145-160.2025
  • I. Deiros Gras, Geometrically-Based Dynamical Modeling of Permanent Magnet Synchronous Motors, UPC bachelor's thesis (25 June 2024), printed pp. 14–18, Figure 4. https://upcommons.upc.edu/server/api/core/bitstreams/1124c6e7-d4a4-4070-83ae-c829c3764d64/content

Inputs

InputSymbolUnitDefault
Signal source
Waveform: animate phase progression. Snapshot: hold abc fixed and rotate the dq frame.
signal_modeThree-phase waveform
Clarke normalization
Amplitude: balanced αβ magnitude equals phase peak. Power: the complete αβ0 transform preserves the abc dot product.
normalizationAmplitude invariant (2/3)
Current return path
Select neutral / independent signals to study zero sequence. A three-wire isolated system cannot carry a nonzero sum of phase currents.
return_pathThree-wire (a + b + c = 0)
Electrical progression / snapshot frame angle
Press ▶. Waveform mode advances the signals and frame together; snapshot mode uses this angle as θ. Playback is slowed for teaching.
angle_edeg40
Positive-sequence phase peak
Peak, not RMS. For a balanced sinusoid enter √2 times its phase RMS current.
I_peakA10
Signal electrical frequency
Sets the physical period and elapsed time; the ▶ playback speed is illustrative.
f_eHz50
Initial signal phase
Cosine reference: phase a = Ipeak cos(progression + phase), before negative and zero sequence.
phase_ideg20
Negative / positive sequence amplitude
0 is balanced positive sequence. Adds a reverse b–c sequence with the same phase-a starting phase; 1 gives a line-shaped αβ locus.
negative_ratio0
Common DC current in each phase
Added equally to a, b and c. Nonzero values require a neutral or another return path.
I_commonA0
Frame / signal frequency ratio
1 follows positive sequence; 0 holds the frame stationary; −1 follows negative sequence. Integer ratios keep the animation loop seamless.
frame_ratio1
Initial d-axis angle
θ = frequency ratio × progression + this offset. All angles are electrical.
theta_offsetdeg-10
Instantaneous phase aa_entryA10
Instantaneous phase bb_entryA-5
Instantaneous phase cc_entryA-5

Results

With the default inputs above, the calc gives:

ResultValue
Direct current d8.66025 A
Quadrature current q5 A
Zero sequence 00 A
Stationary current α5 A
Stationary current β8.66025 A
Space-vector magnitude10 A
d-axis electrical angle30 deg
abc reconstruction error0 A

Checked against sources

Each case below was calculated by this calc and agrees with the value from its source (within the tolerance where one is shown).

JET 2025, printed numerical Clarke/Park example

Source: Filipović et al. (2025), DOI 10.18690/jet.18.3.145-160.2025, printed pp. 156–157, Eqs. (1.13)–(1.15). Published voltage vector [141.42, −70.71, −70.71] V gives [α,β,0]=[141.42,0,0] V and [d,q,0]=[141.42,0,0] V at θ=0. Applied here with a 1 A/V scaling: these linear coordinate transforms do not depend on the physical unit. Phase-c sign is omitted in one line of Eq. (1.13), but cos(+120°) is negative and the later matrix input correctly uses −70.71. The correct sign is retained.

Inputs: Signal source = Enter instantaneous abc; Electrical progression / snapshot frame angle = 0 deg; Instantaneous phase a = 141.4 A; Instantaneous phase b = -70.71 A; Instantaneous phase c = -70.71 A; the others as above.

ResultSourceThis calc
Stationary current α141.4 A141.4 A
Stationary current β0 A0 A
Zero sequence 00 A0 A
Direct current d141.4 A141.4 A
Quadrature current q0 A0 A

UPC thesis Figure 4: 20 A RMS, 50 Hz, 30°

Source: I. Deiros Gras, UPC thesis (2024), printed p. 14 Eq. (1), p. 18 Figure 4 (attached PDF pp. 16 and 20). The lower graph publishes constant levels d≈24.5 A and q≈14.1 A for a 20 A RMS balanced cosine set at 50 Hz and initial phase30°, with θ=100πt. Values are read from the published plot, not generated by this calculator; 0.3 A tolerance allows plot-reading resolution. Eq. (7), printed p.17, changes cos to sin inconsistently with Eq. (1) and Figure 4; follow Eq. (1) and the plotted positive d,q levels.

Inputs: Positive-sequence phase peak = 28.284 A; Initial signal phase = 30 deg; Initial d-axis angle = 0 deg; Electrical progression / snapshot frame angle = 90 deg; the others as above.

ResultSourceThis calc
Direct current d24.5 ± 0.3 A24.495 A
Quadrature current q14.1 ± 0.3 A14.142 A
Zero sequence 00 A0 A

TI SPRA524 basic space vector U0 (100)

Source: TI SPRA524 (1999), Table 1 p.4 and Figure 3 p.5, https://www.ti.com/lit/pdf/spra524 . Switching state100 has phase vector [2/3, −1/3, −1/3] V/Vdc and published stationary coordinates (2/√6,0). The note calls its fixed axes d,q; these are α,β here. Test uses an equivalent 1 A per normalized unit and power-invariant normalization, with θ=0. Expected coordinates are the source's closed-form Figure 3 coordinates, evaluated as constants independently of the calculator.

Inputs: Signal source = Enter instantaneous abc; Clarke normalization = Power invariant (√(2/3)); Electrical progression / snapshot frame angle = 0 deg; Instantaneous phase a = 0.6667 A; Instantaneous phase b = -0.3333 A; Instantaneous phase c = -0.3333 A; the others as above.

ResultSourceThis calc
Stationary current α0.8165 A0.8165 A
Stationary current β0 A0 A
Direct current d0.8165 A0.8165 A
Quadrature current q0 A0 A

TI SPRA524 basic space vector U60 (110)

Source: TI SPRA524 (1999), Table 1 p.4 and Figure 3 p.5, https://www.ti.com/lit/pdf/spra524 . Switching state110 gives phase vector [1/3,1/3,−2/3] and the published fixed-axis space vector (1/√6,1/√2). Test scales normalized voltage values to equal numerical amperes and uses θ=0, so αβ=dq. Expected numbers are evaluations of the published closed-form Figure 3 coordinates, not results copied from this calculator.

Inputs: Signal source = Enter instantaneous abc; Clarke normalization = Power invariant (√(2/3)); Electrical progression / snapshot frame angle = 0 deg; Instantaneous phase a = 0.3333 A; Instantaneous phase b = 0.3333 A; Instantaneous phase c = -0.6667 A; the others as above.

ResultSourceThis calc
Stationary current α0.4082 A0.4082 A
Stationary current β0.7071 A0.7071 A
Direct current d0.4082 A0.4082 A
Quadrature current q0.7071 A0.7071 A

Related Resources

Responses

Your email address will not be published. Required fields are marked *

L ading...