Now, I know d and q axis current can be calculated by phase current ia, ib, ic in a PMSM, via clarke transform and park transform.

ialpha = sqrt(2/3) * (ia - ib / 2 - ic / 2)

ibeta = sqrt(1/2) * (ib - ic)

id = ialpha * cos(theta) + ibeta * sin(theta)

iq = ibeta * cos(theta) - ialpha * sin(theta)

Now, if motor running at a steady state, id and iq should be in DC form.

But how to calculate RMS of phase current ia,ib,ic by id,iq.

I think RMS(ia) = RMS(ib) = RMS(ic) = K * sqrt(id^2 + iq^2)

What is the value of K.

  • \$\begingroup\$ You already have to measure them: ia, ib, ic prior to transform in d,q-coordinate system. ia, ib, ic are peak values - so a RMS value is Ia_rms = ia/sqrt(2) -> K=1/sqrt(2); \$\endgroup\$ Commented Mar 3, 2019 at 9:56
  • \$\begingroup\$ If a motor is labeled : rated current 1A, peak current 3A. So, I should limit the value sqrt(id^2 + iq^2) <= 3 * sqrt(2) = 4.24A ? \$\endgroup\$
    – Hyz Yuzhou
    Commented Mar 3, 2019 at 11:58

1 Answer 1


If you have your \$i_d\$ and \$i_q\$ currents, you can perform the inverse Parks-transformation (thus you obtain the \$i_\alpha\$ and \$i_\beta\$ currents) and subsequently the inverse Clarke-transformation. Then you have the three sinusoidal currents \$i_a\$, \$i_b\$, and \$i_c\$, which have the same amplitude and a phase difference of 120° to each other.

The RMS value of a sinusoidal signal is easy to derive, and it is given by \$\frac{A}{\sqrt{2}}\$, where \$A\$ is the amplitude of the signal.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.