This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to get w (the electrical frequency) to decouple PI Controllers for a PMSM

Dear Sirs,

   From manual (spruhj1e, Page 407-408), in order to decouple Q-axis PI controllers from D-axis, we must subcontract effect caused by Id. For example

iq (R +DLs ) = Vq - w(Lsid +Ke )

  We can get Ls & Ke from motor idenfication. However, how could I get w (the electrical frequency) ?

   Thanks in advance

  • Hi,

    This line of code will give you omega (electrical) in radians per second:

    float_t w_radps = _IQtoF(EST_getFe_pu(obj->estHandle)) * USER_IQ_FULL_SCALE_FREQ_Hz * MATH_TWO_PI;

    EST_getFe_pu(obj->estHandle) returns the electrical frequency in per units, so to convert it to Hz, needs to be converted to float (using _IQtoF) and then multiplied by full scale frequency. Then, multiplying by 2pi gives you the radians per second value.

    -Jorge

  • Jorge,

       Thanks for your reply. It is a very helpful way for sensorless PMSM method with FAST.

       If I want to use mechanical encoder to replace FAST. How to get  omega (electrical) in radians per second ?

       Thanks in advance.

  • If you use the encoder interface as used in lab 12b, then you can use a function that returns the angle in per units from the encoder:

    ENC_getElecAngle(encHandle)

    And in order to convert this into radians per second you would need to do this:

    float_t gEng_Angle_rps = _IQtoF(ENC_getElecAngle(encHandle)) * USER_IQ_FULL_SCALE_FREQ_Hz * MATH_TWO_PI

    -Jorge

  • Jorge,

       Thanks for your quick response. This method can solve our problems.

       Really appreciate.