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.

Maximum torque per amp strategy for IPM motors

Other Parts Discussed in Thread: TMS320F28069M

Hello,

I'm trying to find a way to get maximum torque per amp out of an IPM (interior permanent motor). I do have a resolver mounted on the motor, but as the optimal angle changes with current (and possibly speed), one would traditionally need a lookup table mapping an optimal angle for each current value.

I was wondering, if by switching from sensored (resolver) into sensorless at non-zero RPM (using sensor only for startup) would automatically guarantee that the angle is optimal in the whole operation range (back EMF)?

If this is the case, the implication could be that one could construct a lookup table just by loading the motor, while logging the angle of the FAST vs angle of the resolver for different loads - thus getting a table "for free" without actually having an intelligent load (dynamo test).


The only relevant thread I've found for this is here: e2e.ti.com/.../413962

But it relies on knowing Ld and Lq using other methods - as instaspin considers them to be equal.

Thanks!

  • While the Motor ID portion estimates Ls_d = Ls_q, the FAST algorithm is able to compensate for differences if the user loads different values. Customers are creating a look up table of these values which they load in at different operating points. This is the way to get the best possible angle estimation from FAST.

    There are additional control strategies that can be implemented as well, including MTPA calculations that feed some non zero Id references as well as things like cross coupled current controllers. We may show some examples of this in the future, but for now we leave to the user to implement these advanced features.
  • Hello Michal,What processor are you using?-Dave
  • Hello Dave, I'm using TMS320F28069M.
  • Thank you, Chris.
    When you say "Customers are creating a look up table of these values which they load in at different operating points",
    you are talking about loading Ls_d, Ls_q at different operation points? Or Id, Iq?

    I sort of presumed that the MTPA would be fulfilled if angle tracking comes from back emf - if this is not the case, and the table has to be created manually with a dynamo for different operation points, the resolver will be always a better solution (not considering cost of sensors). Is that correct?
  • "you are talking about loading Ls_d, Ls_q at different operation points? Or Id, Iq?"

    Ls_d, Ls_q which results in a more accurate angle...which is used for Iq/Id calculation and placement of the stator field.

    I can't fully answer your last question....I think in general if you have a resolver and cost isn't an issue, it will be at least as good as our sensorless observer. There are cases where high speed operation and noisy environments may be more robust with FAST though.

    Dave may have more comments.
  • Hi Michal,
    The FAST observer inside of InstaSPIN-FOC will calculate the angle of the rotor flux. This is critical for proper field orientation, whether it is a PMSM or IPM. With a PMSM, it's easy. You simply put all of your current vector at 90 degrees to the rotor flux to obtain MTPA. But with an IPM, you need to split your current between the positive Q axis, and the negative D axis. The ratio of this split is dependent on the amplitude of the current vector, and the difference in inductance along the D and Q axes. InstaSPIN does not tell you how to split this current. You need to do that yourself. If you can provide the current amplitude, Ld, and Lq to the formulaes mentioned in the link you provided, you can determine the values for Id_ref and Iq_ref. But the problem is even more complex. The values for Ld and Lq change in most motors as a function of current due to iron saturation. That is why motor loading changes the Ld and Lq values, with higher current levels resulting in the difference between Ld and Lq becoming less, which then shifts the MTPA angle towards 90 degrees. That is why many IPM drives utilize a table to account for the inductance changes as a function of current. I don't know how you get around this. But once you accurately have Ld and Lq, you can then calculate the current split, and thus the optimum commanded control angle.
    Regards,Dave
  • Thank you, I understand now what you mean.
    Ignore the second part of my question - I didn't realize that you see only the "magnets" in the back EMF, therefore you cannot rely only on back EMF to help you find the MTPA.

    Let me rephrase my question - Can the controller judge on it's torque per amp efficiency just by observing it's own behavior during operation? Or is an external system measuring the produced torque necessary to produce such information (table)?

    The process would look like this - motor applies certain torque with certain Ls_d, Ls_q (let's imagine that there is some load on the shaft). You are able to monitor the DC current/voltage. Then you sweep Ls_d and look for lowest DC current (while having constant output torque). This gets repeated for different torque setpoints.
  • Hi Michal,
    I see what you are saying. In other words, try to find the local minimum in the current/torque ratio. But I don't follow why you only do this for Ls_d. Ls_q is also a changing variable which will impact the current/torque ratio.
    But in general I like the idea. What if instead of sweeping Ls_d, you instead sweep the orientation angle w.r.t. the rotor flux angle? The other thing you would have to worry about is that if you don't have the correct values for Ls_d and Ls_q, the FAST angle estimation will be wrong. But if it is close enough, it might still work. It just means that you will settle on a different angle w.r.t. the estimated flux angle, but still land on the correct angle for MTPA. What do you think about that approach?
    Regards,Dave
  • I like it! Yes, you are right - both Ls_d and Ls_q changes. So when sweeping the rotor flux angle, there is only one parameter to be stored.
    As every IPM motor comes with a resolver, the Ls values should not be a problem then. I would just stick with the resolver for the whole range of operation, and have rotor flux angle setpoints.
  • I still think there are some problems that need to be worked through. If the torque is NOT constant, then you need to have an estimate of the torque value at all times to insure that MTPA is achieved, not just minimum current. Otherwise, the optimum angle algorithm could run away with a constantly increasing or decreasing load. The FAST observer calculates torque, but the torque calculation is very much dependent on knowing the Ld and Lq values.
    Let me vet this with some of my colleagues to see what they think...Dave
  • Hello Dave, any new research or things that you can add?
  • We do not have any new developments for MTPA we can offer you today, but it is in development for release with a future package from the motor control team

    Sean