Running hobby servos at speeds greater than 50Hz.

I've been reworking some of my motor controller code today - and just
for shits and giggles I decided to try changing the frequency of the
PWM pulses going to my servos, which are Hitec HS-81MGs. I've been
running them at 50Hz, and their performance has been OK, but not
I tried 100Hz and they just completely freaked out - massive
oscillations, unable to reach a steady state - completely unstable.
I tried 90Hz, and they were a bit more stable, the amplitude of the
oscillations was less, but they never seemed to reach a steady state
Then I tried 80Hz. This seems to be the sweet spot for these guys. The
torque has increased a very large amount at this speed. Disturbance
rejection is much better as well. Oscillations are gone, as long as
you slowly change the PWM pulse. A sudden change in the PWM pulsewidth
will cause it to oscillate some for a second or two - but it does
stabilize. This isn't a problem. After initial power up it oscillates
for a couple seconds - but again nothing too bad, and much better than
at 100Hz. When gradually turning the servo (linearly increasing the
pulse width), the turn seems to be substantially smoother and more
accurate than at 50Hz.
So this seems pretty good - but I have a couple worries. First of all
- I haven't measured it yet - but current consumption seems to be
substantially higher. I say this because the motors are getting
noticeably warm to the touch. Definitely warmer than at 50Hz. When is
warm too warm? Also - could this wear the servo out?
Anything else I should know or be worried about? Is all of this normal
behavior, and what I should expect from other hobby servos?
Reply to
Loading thread data ...
Servo makes and even models vary, so your findings here are not necessarily reflective of all analog servos. However it serves as a starting point. There may be differences even among the same model if they are made some time apart. More servos are being redesigned to use microcontrollers rather than the older all-analog or analog IC controller, so it's important to test a relatively new servo.
In any case, it's always useful to try increasing the frame rate of servos to improve their torque, and it's a shame more servo controller boards don't have this feature. I've been whining about it for several years. You should also experiment with dynamically changing the refresh rate to see if that helps performance. Most applications do not require high holding torques, you can fall back to lower frame rates. Use the faster rate when the motor is moving a load.
You do have to be careful about the increased current load, and the possible affects the added heat has on the motor itself. Assuming a servo with a standard PM motor, these motor don't use "brushes" per se, but just a copper wire that will probably not last as long at the higher currents. The trade off is higher performance but a shorter motor life. For some applications and budgets this is acceptable.
-- Gordon
Reply to
Gordon McComb

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.