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.

CCS/TMDSHVMTRINSPIN: Field Weakening and Torque Control

Part Number: TMDSHVMTRINSPIN
Other Parts Discussed in Thread: MOTORWARE

Tool/software: Code Composer Studio

Hi all,

We have made our custom inverter based on TMDSHVMTRINSPIN and TI resolver to digital converter kit. We are developing our firmware based on motorware lab5a. We are doing torque control for our ev application. I am having some problems with field weakening.

1) When we put any torque command using Iq current, motor get accelerate and come to the rated speed and the motor voltage come to it's maximum (Vs= 1.0). Then we are pumping -Id to weak the field and go beyond the rated rpm of the motor as -Id current is having a relation ship with speed by reducing back-emf constant. As a result of this ( Is = sqrt(Iq^2 + Id^2) ), Iq is reducing and torque is also reducing. I am little confusing with this. Is that meaning if  we use any torque command and we jump in to the field weakening region from constant torque region, are we loosing torque controlling ? Should we predefined the the motor acceleration using the way we are pumping the negative d-axis current?

2) We tried with increment decrement technique in the motorware to put the d-axis current. And we tried using PI controller to create negative d axis current after constant torque region. But we could n't do that in smooth manner. What is the best way to pump negative d- axis current for smooth control.

3) How can we control negative d axis current reference smoothly for this kind of torque controlling application?

Thank you

  • 1). In base speed area, keep Id to Zero for SPM which provides torque output from zero to maximum (rated) torque. In field weakening area, keep current (Is) to maximum/rated output, the output power can be maintained at a constant level, if you used field weakening to improve the speed output, you have to reduce the torque current to decrease the torque output.
    2). You need to meet both Is<Imax and Vs<Vmax for field weakening, increase Id with decreasing Iq to maintain the Is<Imax.
    3). You can add a trajectory for Id ramp control, and use Vs<Vmax to judge whether need field weakening and how much Id need to be added.
  • Thank you Yanmin,

    I have done some experiments for field weakening with PMSM motor. I noticed that for a given Iq value (ex: 10.0), it is not possible to decrease Id current more than half of the Iq amount (ex: -5.0). When I decrease more Id current (more than -5.0), motor rpm got slow down and it got start to rotate the other direction.
    Is this a expected result?

    If this is expected result, and If the Is max current 60 ,it is not possible to pump Id current to meet Id_min = - squrt(Is*Is-Iq*Iq).
    (ex Id_min = -sqrt(60*60-10*10) = -59.16) Because we if -Id pump up to -5.0, motor get slow down and start to rotate the other direction further.
    What is the explanation about this?

    Thank you.
  • Hi Lakshan,

    The steps is not appropriate to do field weakening control. You can follow below steps to try it.
    1. Meet Vs (sqrt(Vd*Vd+Vq*Vq) < Vs_max, to find a right Id, and meet abs(Id) < abs(Id_max).
    2. Meet Is (sqrt(Vd*Vd+Vq*Vq) < Is_max to calculate Iq.
  • Hi Yanming,

    Please see below example and steps,
    Let say our motor can handle 60Arms to meet the maximum torque. Then Is,max should be 84 (60*sqrt(2)).
    Now if we are operating in constant torque region at Iq = 20 Arms, Id = 0Arms. Ultimately motor accelerate and become to Vs = Vs,max = 1.0.
    As you said, now we are starting to inject -Id current to meet above equations 1 and 2. With your second equation

    2. Meet Is sqrt(Id*Id+Iq*Iq) < Is_max to calculate Iq.
    in theoretically with the current Iq value (20) the minimum Id current should be sqrt(Id*Id+20*20) < 84 : Iq> -81. 54 . Then Id can decrease up to -81.54 according to the equation.

    What I am saying is, I could not decrease the Id current more than the half of Iq value. According to this example when I decrease the Id current I could not go up to -81.54 . When the Id current reach to the -10 (iq=20, 20/2) the motor get slow down and became to stop. When I decrease that further, below -10, motor started to rotate the other direction.

    Is this a expected? Is there any limitation with minimum negative Id current vector ?

    I did not decrease the Iq with this experiment, because we can go for a large amount of Id current without reducing Iq current to meet the 2nd equation sqrt(Id*Id+Iq*Iq) < Is.

    Thank you