Documentation Center

  • Trial Software
  • Product Updates

abc_to_dq0 Transformation

Perform Park transformation from three-phase (abc) reference frame to dq0 reference frame



A discrete version of this block is available in the Extras/Discrete Measurements library.


The abc_to_dq0 Transformation block computes the direct axis, quadratic axis, and zero sequence quantities in a two-axis rotating reference frame for a three-phase sinusoidal signal. The following transformation is used:

where ω = rotation speed (rad/s) of the rotating frame.

The transformation is the same for the case of a three-phase current; you simply replace the Va, Vb, Vc, Vd, Vq, and V0 variables with the Ia, Ib, Ic, Id, Iq, and I0 variables.

This transformation is commonly used in three-phase electric machine models, where it is known as a Park transformation [1]. It allows you to eliminate time-varying inductances by referring the stator and rotor quantities to a fixed or rotating reference frame. In the case of a synchronous machine, the stator quantities are referred to the rotor. Id and Iq represent the two DC currents flowing in the two equivalent rotor windings (d winding directly on the same axis as the field winding, and q winding on the quadratic axis), producing the same flux as the stator Ia, Ib, and Ic currents.

You can use this block in a control system to measure the positive-sequence component V1 of a set of three-phase voltages or currents. The Vd and Vq (or Id and Iq) then represent the rectangular coordinates of the positive-sequence component.

You can use the Math Function block and the Trigonometric Function block to obtain the modulus and angle of V1:

This measurement system does not introduce any delay, but, unlike the Fourier analysis done in the Sequence Analyzer block, it is sensitive to harmonics and imbalances.

Dialog Box and Parameters

Inputs and Outputs


Connect to the first input the vectorized sinusoidal phase signal to be converted [phase A phase B phase C].


Connect to the second input a vectorized signal containing the [sin(ωt) cos(ωt)] values, where ω is the rotation speed of the reference frame.


The output is a vectorized signal containing the three sequence components [d q o], in the same units as the abc input signal.


The power_3phsignaldqpower_3phsignaldq example uses a Discrete Three-Phase Programmable Source block to generate a 1 pu, 15 degrees positive sequence voltage. At 0.05 second the positive sequence voltage is increased to 1.5 pu and at 0.1 second an imbalance is introduced by the addition of a 0.3 pu negative sequence component with a phase of −30 degrees. The magnitude and phase of the positive-sequence component are evaluated in two different ways:

  • Sequence calculation of phasors using Fourier analysis

  • abc-to-dq0 transformation

Start the simulation and observe the instantaneous signals Vabc (Scope1), the signals returned by the Sequence Analyzer (Scope2), and the abc-to-dq0 transformation (Scope3).

Note that the Sequence Analyzer, which uses Fourier analysis, is immune to harmonics and imbalance. However, its response to a step is a one-cycle ramp. The abc-to-dqo transformation is instantaneous. However, an imbalance produces a ripple at the V1 and Phi1 outputs.


[1] Krause, P. C. Analysis of Electric Machinery. New York: McGraw-Hill, 1994, p.135.

Was this topic helpful?