What characteristics can I look for which could be reliable early warning signs that a DC motor on my robot, say one used for the drive, could be failing? I'm looking for an answer that deals in terms of sensors rather than manual inspection, so a circuit could be constructed to warn of a potential failure before it happens.

I have a few ideas such as an increase in current draw or decrease in rotation speed / voltage, but I want to guard against false warnings caused by reasonable wear and tear, or just the robot struggling on tough terrain.

Obviously such a system will never be foolproof, but are there any points I can look out for?


There are two key things to look for from a control system point of view. The first is the root mean square of the torque applied and the second is the following error on moves.

Root mean square (RMS) torque

As motors degrade over time, they require more torque to be applied for the same acceleration, so if you have tuned your PID loop for a new, low loss motor then as it ages, and the losses increase, the motor will drift out of tune. At some point the motor will become worn enough that you will be unable to tune the PID parameters to give you the performance you need. Before this happens though you may already have started tripping a torque limit in your motion controller (it may not allow 100% toque for more than a given number of ms for instance).

The problem with just looking at torque though, is that it can be difficult to keep track of. Looking at the max value will tell you nothing because many situations can cause 100% torque for short periods, especially with an aggressively tuned PID controller.

As it is constantly changing, setting up monitoring could easily be too lenient (resulting in false negatives) or too strict (resulting in false positives). This is why you probably want something closer to an RMS of the torque which you monitor over a long period and look at the trends.

In a temperature controlled environment, motor temperature (as user65 suggests) is a pretty good approximation of RMS power usage over a long time constant. If ambient temperature isn't controlled though, this is more difficult, as different absolute temperatures will probably require different thresholds for temperature above ambient triggers for worn motors.

Following error

Another tool to look for failing motors is the maximum following error over a move. This is the maximum difference between where the motor was supposed to be and where it actually was at any point during the move. It is a single value for the whole move and is something that many motion controllers keep track of for their own use. In fact, many have soft limits on maximum following error and error if you exceed them.

Again, tripping a max follow error can just be an indication that you just need to retune your PID loop, but the frequency with which you need to retune your PID and the difficulty you have in achieving your desired performance can be valuable tools in determining when a motor is getting to the end of it's life.

| improve this answer | |

Temperature is a very simple number to measure and is a good aggregation of all the other factors since a weakening motor will be driven harder.

Generally a motor that is about to fail will be significantly hotter than the rest of the motors.

| improve this answer | |
  • $\begingroup$ If in a temperature controlled environment, motor temperature is a pretty good approximation of RMS power usage over a long time constant. $\endgroup$ – Mark Booth Feb 9 '17 at 16:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.