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.

Rs online and offline calibration

Hi - our application has the motor working against a spring; total travel end to end is only 4 turns. It must start up in ~100 ms and can spend hours exerting a significant torque, but either not moving, or barely (<12° rotor, <60° electrical). Can we run online calibration in this instance? If we are using sensored MOTION, does it make much difference?

Thanks for any help

  • if you're using sensored motion it won't really help you. RsOnline is primarily for updating the Rs value into the FAST sensorless observer for proper tracking (especially at lower speeds).

    If you think your Rs is changing significantly it could also be used to update the current controller gains (which are based on Rs / Ls, so if Rs doubles your Ki would double), but this is a pretty minor improvement and IMO not worth the effort of running RsOnline. I would do testing on the different Ki values to see if there is an improvement. If so you could probably get the same effect by using a look up table based on the current.
  • Thanks for the quick response Chris - we will do as you suggest. It would be nice (although not necessary) to know the temperature of the motor from the Rs - does the online require the motor to move or to be powered?
  • yes, RsOnline requires the motor to be powered and actively driven. Hmmm, I don't think movement is necessary, no. The Rs portion doesn't rely on any Bemf calculations (where the motor would have to be moving).
  • Hello Chris,

    just to make sure I get you right: You say that the motor does not have to actually spin for online recalibration? So it would work for a torque controller where the motor is under load but not moving?
    How about a position controller where the motor is at the reference position without load (i.e. no or only minimal torque applied).

    Background: I also would like to use Rs to estimate the temperature. In our application (robotic leg) the motor does not spin continuously, though, but is run with a position controller and might often be under load but not moving (and sometimes not even under load).

    Best, Felix

  • Felix,
    My previous answer is not quite correct. How we have used RsOnline (not RsOffline) is that the motor is running.

    We haven't used it in a non-continuously running application.
  • So do you mean it is in principle not possible to use RsOnline without the motor spinning or that this is just untested?
    I tried it both with a torque controller (lab4) and speed controller (lab5b). The result looked reasonable, even when the motor was blocked. Are there any pitfalls I should be aware of? Note that I don't need a very exact measurement, I only want to get a rough idea of the motor temperature to avoid overheating.

    One problem I noticed is that the motor does small random movements when IqRef/SpeedRef = 0. Could the reason for this be, that the FAST estimate of the electrical angle is not very good when the motor is not moving? If this is the case, would it be possible to solve this by using an encoder?

  • RsOnline do not care if the motor is running, it inject a current on d-axis. But it need enough time to finish the process if you want to get a more accurate Rs, and you need to inject a enough current also.

    Any sensorless algorithm is difficult to get a very accurate position if the motor speed is vey low or zero except using high frequency inject mode. Of course, high precision encoder can solve this issue.