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.
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
The power-invariant form uses for the αβ rows and 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:
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 and divides the αβ projections by .
For amplitude-invariant quantities,
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: for amplitude normalization, or for power normalization. The displayed norm is in A², not watts.
The waveform generator adds positive sequence , reversed b–c negative sequence of peak , and equal DC current . It calculates their phase sum analytically as 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
| Input | Symbol | Unit | Default |
|---|---|---|---|
| Signal source Waveform: animate phase progression. Snapshot: hold abc fixed and rotate the dq frame. | signal_mode | Three-phase waveform | |
| Clarke normalization Amplitude: balanced αβ magnitude equals phase peak. Power: the complete αβ0 transform preserves the abc dot product. | normalization | Amplitude 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_path | Three-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_e | deg | 40 |
| Positive-sequence phase peak Peak, not RMS. For a balanced sinusoid enter √2 times its phase RMS current. | I_peak | A | 10 |
| Signal electrical frequency Sets the physical period and elapsed time; the ▶ playback speed is illustrative. | f_e | Hz | 50 |
| Initial signal phase Cosine reference: phase a = Ipeak cos(progression + phase), before negative and zero sequence. | phase_i | deg | 20 |
| 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_ratio | 0 | |
| Common DC current in each phase Added equally to a, b and c. Nonzero values require a neutral or another return path. | I_common | A | 0 |
| 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_ratio | 1 | |
| Initial d-axis angle θ = frequency ratio × progression + this offset. All angles are electrical. | theta_offset | deg | -10 |
| Instantaneous phase a | a_entry | A | 10 |
| Instantaneous phase b | b_entry | A | -5 |
| Instantaneous phase c | c_entry | A | -5 |
Results
With the default inputs above, the calc gives:
| Result | Value |
|---|---|
| Direct current d | 8.66025 A |
| Quadrature current q | 5 A |
| Zero sequence 0 | 0 A |
| Stationary current α | 5 A |
| Stationary current β | 8.66025 A |
| Space-vector magnitude | 10 A |
| d-axis electrical angle | 30 deg |
| abc reconstruction error | 0 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.
| Result | Source | This calc |
|---|---|---|
| Stationary current α | 141.4 A | 141.4 A |
| Stationary current β | 0 A | 0 A |
| Zero sequence 0 | 0 A | 0 A |
| Direct current d | 141.4 A | 141.4 A |
| Quadrature current q | 0 A | 0 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.
| Result | Source | This calc |
|---|---|---|
| Direct current d | 24.5 ± 0.3 A | 24.495 A |
| Quadrature current q | 14.1 ± 0.3 A | 14.142 A |
| Zero sequence 0 | 0 A | 0 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.
| Result | Source | This calc |
|---|---|---|
| Stationary current α | 0.8165 A | 0.8165 A |
| Stationary current β | 0 A | 0 A |
| Direct current d | 0.8165 A | 0.8165 A |
| Quadrature current q | 0 A | 0 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.
| Result | Source | This calc |
|---|---|---|
| Stationary current α | 0.4082 A | 0.4082 A |
| Stationary current β | 0.7071 A | 0.7071 A |
| Direct current d | 0.4082 A | 0.4082 A |
| Quadrature current q | 0.7071 A | 0.7071 A |
Related Resources
Related articles
-
FOC and Vector Control in Electric Motor Systems: Mathematical Modeling, Real-Time Implementation, and Performance Validation -
Graph Neural Network-Based Voltage Stability Prediction in Large-Scale Power Systems: A 1000-Bus Network Approach in Matlab -
Enhanced Seven-Level Single-Phase H-Bridge Multilevel Inverter with Nearest Level Control for Grid-Connected Photovoltaic Systems







Responses