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.

TMS320F28027F: MTPA and Field Weakening

Part Number: TMS320F28027F

Dear champs,

I'd like to implement MTPA and FW algorithm to my code(project11a), now I have several questions about TI's docs, SPRACF3(Sensorless-FOC With Flux-Weakening and MTPA for IPMSM Motor Drives).

1. For Id and Iq reference, I think the important variable is the angle β, how to calculate β? 

2. What is the Φf stands for?

3. Field weakening diagram shows the field weakening loop is PI loop, but in the code, the output of fielding weakening just add/subtract step, it's looks like a integrity loop, can you please help explain about this?

4. Blow pictures shows the feedback of field weakening loop is sqrt(vd^2 + vq^2), but in the code, feedback = sqrt(vd^2 + vq^2)*EST_getOneOverDcBus_pu. Why?

5. Can you please help me understand EST_getOneOverDcBus_pu? Is it 1/Vbus as per unit?

  • 1. The "Beta" is the current vector angle, it's obtained from a formula based motor parameters and current vector. Or you could get the value based rated power point from the motor manufacturer.
    2. It's the rotor PM flux linkage.
    3. It's a simple PI with Ki=0.
    4. It should be according to the set of VsRef value, it's not necessary if the VsRef is pu value.
    5. Right.
  • Yanming Luo said:

    1. The "Beta" is the current vector angle, it's obtained from a formula based motor parameters and current vector. Or you could get the value based rated power point from the motor manufacturer.

    Jack-> Can you please let me know the exact formula of calculating 'Beta'? I can't get these value from motor spec.

    2. It's the rotor PM flux linkage.

    3. It's a simple PI with Ki=0.

    Jack->Ki = 0? How to understand? I think this should kp = 0?

    4. It should be according to the set of VsRef value, it's not necessary if the VsRef is pu value.

    Jack-> How to set VsRef value? In docs, it says, VsRef = VDC/sqrt(3), is it means VsRef should be changed based on instantaneous Vbus value?

    5. Right.

  • Dear Champs,

    May I get further update?
  • 1. Suppose you have read many motor drive control books and papers now that this algorithm will be implemented in your product, the formula is as below, more detailed explanation please find in the related papers that should be found in the website. We couldn't provide more information about the reference papers.

    3. Right, it's kp=0 and a parallel path topology.

    4. It's less than USER_MAX_VS_MAG_PU, please refer to lab09.

  • Hi Yanming,

    I used Instaspin is because that I didn't have much experience on motor control theory.

    Can you please recommend a paper that have describe this formula?

    For this fomula, the Is is the output of speed loop which is  a variable,  that means the beta is changed, isn't it?

    After going through Section 4 How To Implement MTPA and Flux-Weakening With InstaSPIN-FOC,  it says if fixed Ld and Lq are used, go to step 3. I didn't find any code of calculating the angle, is it a fixed beta? In my application, fixed Ld and Lq are used.

  • Hi Yanming,

    Regarding to Lab09, VsRef are setting to a fixed value _IQ(0.8 * USER_MAX_VS_MAG_PU), what is stands for?

    In most real applications, Vbus are changed, but VsRef are fixed value, why?
  • Can you please share your further comments here?
  • May I get some update?
  • Dear TI's expert,

    I posted this question 2 weeks ago, but I didn't get the exact answer yet. Do you have further update? Can you please let me know what your difficulties are?

    I'm willing to use instaspin solution, and my motor has been spined already. But if the MPTA algorithm can't be implemented correctly, this project will be canceled.
  • 1. As replied to you as above, you might search the related papers from the website, we couldn't and may not recommend such papers to you as it's not a TI application notes. It should be not difficult to search it with keyword "MTPA, PMSM".
    2. Please have a look at the application notes again, it uses a look-up table method, the data in the table includes Ld, Lq and Is parameters, to simplify the calculation, it assumes the Ld and Lq didn't change and Beta is a fixed value at the base point. It's no problem to implement speed closed loop with MTPA at the same time.
    3. USER_MAX_VS_MAG_PU is the maximum voltage vector, _IQ(0.8 * USER_MAX_VS_MAG_PU) that means the threshold to enter the field weakening control when the voltage vector is higher than this value, You might have a look at the InstaSPIN user's guide, you could find a more detailed description of USER_MAX_VS_MAG_PU.