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.

TMS320F280049C: MotorSDK Field Weakening and MTPA

Part Number: TMS320F280049C

Hi,

I have a doubt regarding lab 13 of Motor SDK - is13_fwc_mtpa. The document mentions the following:

I understand the field weakening and MTPA code, but what I do no get is the method of obtaining the beta. 

If the PID loop of field weakening is generating some output, it means that the Vs (sqrt(Vd^2 + Vq^2)) has reached Vs_ref (Vdc/sqrt(3)). Are we not delaying flux weakening by waiting for beta_fw to be > beta_mtpa?

I am thinking the beta value should be: beta_mtpa + beta_fw. Let me know if I am missing out on something.

  • The Beta_fw will be Zero if Vs is less than Vs_ref, and no field weakening control. And MPTA will be disabled if the field weakening mode entered. So bot mode couldn't work at the same time, MPTA only works under constant torque region, doesn't work under constant power region (Field Weakening).
  • Hi Yanming,

    Check the attached screenshot taken from one of the TI documents regarding MTPA and Flux Weakening.

    In the constant torque region, MTPA works. And in field weakening, both MTPA and field weakening work. 

    However in the implementation in Motor SDK, when field weakening works, MTPA does not. What I am not sure is how you shift to field weakening operation. When Vs>Vs_ref, the field weakening controller will start to give some beta value. But you still wait for that value to go above beta_mtpa before you switch to field weakening. That sounds wrong to me - because Vs is already greater than Vs_ref but no action is taken until it reaches the point of beta_fw>beta_mtpa. 

    I am not sure whether I have conveyed my point properly or not. But as you can see, there is a significant difference between the TI document and the implementation in MotorSDK. [I am not concerned about whether the field weakening controller deal with beta values or the Id current magnitude - I am concerned with the transition into field weakening].

     

  • As you mentioned above, the phase angle will be calculated from FW and MTPA modules separately, and then select the maximum phase angle to get the related Id and Iq based on the vector current. Please refer to Figure 78 in the lab guide, the phase angle will be Zero always if Vs <Vs_ref, and will increase to a correct value if Vs>Vs_ref and enable field weakening control. The phase angle from FW modules will increase quickly using a PI controller and will be greater than the angle from MTPA module if the motor needs field weakening control. Actually, the Id will be negative from MPTA and FW modules for IPMSM, so the transition process will be done smoothly.
    MCSDK uses a little different control mode than the application note to implement the FW and MTPA, but the final result should be the same.
  • "The phase angle from FW modules will increase quickly using a PI controller and will be greater than the angle from MTPA module if the motor needs field weakening control"

    - I understand this part. The PI output from FW controller will immediately become more than beta_mtpa. And hence, it will operate correctly. Just felt that it should not be implemented this way though. The application note makes more sense. But anyways, both the implementation work - so no issues.