# Measure the load on a servo very precisely?

I am trying to make a servo turn a dial. At certain points in the revolution, the dial will "stick" on certain points, where there is more resistance.

I would like the servo to be able to very precisely determine the location of these points. Is this possible?

The position should be accurate to around 1/1000 of a revolution. The changes in torque I am looking to detect are less than one mN M. The servo should be able to turn with about 1.5 N m of torque when needed, although precise measurement and positioning is not required when it's doing this.

I've heard that servo load can be approximated by measuring current, but is this accurate enough to detect such small changes?

Would it work to somehow make the servo apply a very constant amount of torque, and infer load from the speed?

• What is the minimum level of torque needed to turn the dial when there is no sticking point present? Jun 11, 2018 at 17:07
– 888
Jun 11, 2018 at 17:28
• So running at this low torque will always halt the servo when it hits a sticking point? Jun 11, 2018 at 17:37
• @Andyaka I don't know, I haven't tried it. But I think I could achieve this by running the servo at a low torque and observing where it halts. I don't know how constantly a servo can apply torque.
– 888
Jun 11, 2018 at 17:49
• That's the sort of line along which I was thinking. Jun 11, 2018 at 17:51

All servos consist of an electrical and a mechanical interface but there are dozens of different types and millions of variations and thus hundreds of possible solutions to this problem . Unknown is your skill level, time and budget.

The object is to force the motor to an electrical equivalent position for a servo. But here it is different. The task must have detailed specs;

• start from some known initial position with attachment or random and them seek to the known start
• it must seek to overcome stiction and detent forces which change direction (and thus transition thru zero torque in between the resting positions thus there are 2 minimum torque crossings per increment.

• the most precise servos use some kind of rotary (or linear) digital quadrature or Gray Code encoder (or pot for limited angle) for feedback.

The Gray Code is a parallel logic expensive but absolute encode, while the rotary encoders are far simpler yet have no absolute position feedback so an optical interruptor switch is needed for “home” or zero. Then a decoder take the 2 quadrature signals and converts to step and direction for an up down (hardware/software) counter.

However a normal servo tries to seek to the next position with zero error (offset voltage) and here you want to seek and then float and measure the resulting position error of the detent. (Common to all fans and BLDC magnet motors. While a normal servo responds with “seek complete” signal here you want to float by turning off the motor to find its nearby resting position to wait for a suitable settling time such that the position error does not change more than 0.05% between suitable time intervals. Then you may want to reverse the seek direction later to this spot to measure hysteresis.

The problem arises that your drive motor must not have resting torque to bias the results of your measurement or in other words no magnetic cogging. So a reluctance style serving motor without magnets is needed.

If you were measuring the Hall sensor errors in MFG of BLDC motors , this is a critical requirement but there are many better ways that also involve temperature effects so that fans don’t stall and motors turn after power up (very common design / process flaw. It Hall sensor errors can result in stuck rotors or dither back and forth because the torque direction change is optimized by this method of placing Hall sensors just before but never past the resting detent position. Otherwise failure in any one of the resting positions. Same is true for all BLDC motors.

# Anecdotal

In my past , I have disqualified 2 vendors due to >1% failure rate in at least 1 resting position and gave them a test jig design to perform on all outgoing products to get requalified.