Main Content

abc_to_dq0 Transformation

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


powerlib_extras/Measurements, powerlib_extras/Discrete Measurements


The Transformations section of the Control and Measurements library contains the abc to dq0 block. This is an improved version of the abc_to_dq0 Transformation block. The new block features a mechanism that eliminates duplicate continuous and discrete versions of the same block by basing the block configuration on the simulation mode. If your legacy models contain the abc_to_dq0 Transformation block, they continue to work. However, for best performance, use the abc to dq0 block in your new models.

  • abc_to_dq0 Transformation block


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.

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.


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

Version History

Introduced in R2013a