Servomotor position signal max frequency?

Discussion in 'The Projects Forum' started by maverik007, Sep 12, 2010.

  1. maverik007

    Thread Starter Member

    Feb 6, 2009
    25
    0
    Hi,

    I was just fooling around with a servomotor by observing the effects of changing the PWM signal characteristics (duty cycle and frequency). All this while, I kept the T_on time within the permissible limits as specified by the datasheet. I was using a HiTEC servo (don't remember the model number), but the permissible range of T_on was 0.5ms to 2.5ms (without stall).

    Now, as the update signal frequency was increased from 50Hz to about 500 Hz, I noticed that the servo had started humming, and the current consumption was going down. Also, the servo was heating up and eventually it died. :D

    So my question is - What's the highest frequency of the PWM signal that's going to keep the servo operating within safe limits. Any rules-of-thumb would be great ...

    From what I know, a 20ms period for the PWM is the bare minimum. I'd like to know about the upper limit.

    Thanks in advance! :)
     
  2. windoze killa

    AAC Fanatic!

    Feb 23, 2006
    605
    24
    We use hitec servos in one of our "projects" at work and we have been operating them at 50hz and they work for an hour at a time and barely get warm. We have also run them at 100hz without problems except they seem to lose info. From memory the Hitec website has all that sort of info available.
     
  3. jpanhalt

    AAC Fanatic!

    Jan 18, 2008
    5,672
    899
    I can second windoze observations. Using a PIC PWM with limited low frequency, I started getting problems at about 120 Hz with the Hitec mini-servos. 100 Hz sounds about right.

    For fun, try less than 50 Hz and see what happens.

    John
     
  4. maverik007

    Thread Starter Member

    Feb 6, 2009
    25
    0
    @jpanhalt I've gone below 50Hz and had my fun there ;) I was doing a stress-analysis on the servos to get an idea of an upper limit on PWM input signal frequency. Since I went beyond 120Hz, I can now understand what happened.

    Another observation - I was measuring current consumption of the servo, and about 5 minutes before the servo died, I noticed that the current consumption was falling down at a rate of almost 10mA per second.

    @windoze killa I'll look up the HiTEC website. Thanks for the suggestion! :)
     
  5. windoze killa

    AAC Fanatic!

    Feb 23, 2006
    605
    24
    By the way. The Hitec manual clearly states 50Hz is the operating frequency. Going up in frequency will lose accuracy because of any tuned circuits or filters will not pass the correct signals. This would also account for the increase in temperature. This is also why they pay their engineers to do all the hardwork for you. I realise you have been playing around to quell your curiosity and now you know your answers.
     
  6. sceadwian

    New Member

    Jun 1, 2009
    499
    37
    Windowze, a tuned circuit that would have problems with 50 vs 100hz refresh? Are you smoking something? There are no tuned circuits in a typical hobby servo that would be affected measurably by a 25% frequency change, if you can prove otherwise I'd LOVE to see the schematics that show it.

    The increase in temperature was probably over 100hz and was because the pulse stretchers were overlapping and the motors driver circuitry was running in it's linear region, this has NOTHING to do with it being a tuned circuit. A pulse stretcher operated outside of it's design boundaries will do weird things like that.

    The increase of say 50hz to 75hz or 100hz will increase available torque and response rate of a servo and will in no way shape or form affect accuracy. Accuracy isn't even a value that is applied to hobby servo's that I'm aware of except possibly in the form of a deadband value.

    Careful overdriving of standard servos can get you near 'digital servo' performance. without the extra cost. You just do have to be aware of the limits so you don't fry the driver circuitry.
     
  7. windoze killa

    AAC Fanatic!

    Feb 23, 2006
    605
    24
    Firstly a frequency change from 50hz to 100hz it a 100% change not 25%. As far as tuned circuits are concerned ALL circuits are tuned either accidently or deliberately. If there is capacitance and inductance (which there will be) it will have an effect. Sometimes insignificant but other times very significant. If a servo was design for operation at 50hz who knows what sort of stray capacitance or inductance maybe having an effect.

    The OP said he was kepping T_ON within the limits specified by the manufacturer, 0.5ms to 2.5ms so where is the pulse stretcher?

    Maybe so but the OP went to 500hz... Thats a 1000% increase. And maybe accuracy wasn't the right word to use.

     
  8. sceadwian

    New Member

    Jun 1, 2009
    499
    37
    Windoze, stray capacitance or inductance at 50-100hz? Come on... that's not even funny. The only reason servo's have trouble at higher update rates is because the pulse stretcher starts to overlap, they'll start tweaking to random positions and the drive circuitry will end up stuck in it's linear range meaning the drive circuits is absorbing the power not the motor, which kills the drive transistors.

    This is signal dependent so if you're at the low end of servo throw you can update at a faster rate than if the servo were at a further point in it's available movement, 100hz is the far limit of updating a servo, trying for 500hz is someone that simply doesn't know how servo's work.

    The pulse stretcher is the servo electronics, that's how they work, except for more modern digital servos, which is a completely different story. I'm not sure of the specifics of the internal timing but basically what happens is that those 1-2ms pulses are sent through a circuit that uses feedback from the POT which is then fed through a pulse stretcher directly to the h-bridge that drives the motor. Every time the servo gets a pulse the motor gets a power pulse directly proportional to the error of the 1-2ms pulse width and the feedback from the POT. When you send too many pulses to the servo it's still outputting a signal to the bridge when the next pulse comes in even though the last one is done with because the pulse is stretched internally for the actual output, and depending on the exact circuitry weird things start to happen.

    The reason you do this is because the normal number of pulses (20-50 per second) do not fully utilize the available torque of the motor when it's near it's set position. So if you over drive the servo refresh to 75-100hz what you'll see is that, one the servo will be a bit faster and it will also hold harder at it's set position, this obviously stresses everything out but just a bit more but all servo's can handle some degree of extra refresh.
     
  9. jpanhalt

    AAC Fanatic!

    Jan 18, 2008
    5,672
    899
    Yes, a pulse stretcher (saw tooth wave generator) is used in common analog servos. I found it quite difficult to find useful information on how model servos actually work. Here are two sources:

    http://www.rcgroups.com/forums/showthread.php?t=1173308

    http://secure.oatleyelectronics.com/files/K243notes.pdf

    For the first link, go to the pdf file and click on it to get the data sheet for the AA51880, which explains how the controller works. Alternatively, the second link is to a kit that works essentially the same way.

    I wish there was a better explanation out there, and if anyone knows of one, I hope they will post the link here.

    John
     
  10. sceadwian

    New Member

    Jun 1, 2009
    499
    37
    Windoze, I do apologize if I sounded a bit harsh, but parasitic inductance and capacitance don't occur at 50-100hz, except under freakishly coupled circuits, of which a servo is not.

    Large changes in circuit design occur when you go from 50hz to 10-20khz, not 50 to 100hz.
     
  11. windoze killa

    AAC Fanatic!

    Feb 23, 2006
    605
    24
    sceadwian, no apology needed. Thats why these are called discussions. If you had started calling me names I might have spat it but no need.

    Anyway after some of the dealing we have had here and the research we have done with low pass filtering and the types of components we have had trouble with you would be absolutely amazed at what a change from 50Hz to 100Hz can have. We have been trying to come up with better ways of controlling servos and actuators for our "toys". Some have worked and others have failed badly. We have even modified some servos with amazing results. Unfortunatley some of these "amazing" results were negative. Like expolosions. (Thought to self.....Maybe that much current is not good)
     
  12. sceadwian

    New Member

    Jun 1, 2009
    499
    37
    There are no filter components to speak of in a servo per say, not such as you're describing at least, they're effectively digital devices, they just operate on pulse width modulated signals, which is kind of an analog form of digital, the only truly critical timing component for a servo would be the ramp generator and the pulse stretcher.

    Digital servo's are the biggest advance I've seen in hobby circles in years because it effectivly throws all the old servo mechanics out the window. A digital servo could in theory be overdriven past 100hz if there aren't any filters or limiter on it, but they work in a totally different way. If I'm not mistaken generally they read and interpret the incoming servo position signal and internally regenerate it into a much higher frequency pulse train that actually drives the motor.

    If you want to see what I'm talking about there are some easy experiments that will dramatically help your understanding. Try UNDER driving the servo. Only send the 1-2ms pulse 1 time per second and run the servo from one extreme of throw to the other. You'll see it twitch gradually over to the set position, if you try to restrain it with your fingers it'll never actually get to the set position because the servo is 'resting' for too long a period of time between pulses to ever overcome the physical restraint.

    After that generate those servo pulses 5 times per second and you'll get a much better feel for what's going on, you'll hear and see the ticks as it trys to move to it's commanded position, if you try to restrain it you'll feel a dramatically increased perception of torque. Go to 10 times per second, then 20.

    A digital servo internally regenerates the otherwise long duration pulses into a much higher frequency pulse train, the advantage is that although the incoming servo signal doesn't come any faster the error signal refresh is increased perhaps a few HUNDRED times. So if you only send that servo update signal once every second a digital servo will maintain full torque and speed to it's set position. It's exact response depends on the maker, there's a dead band, and some are even programmable, so that if they stop getting the servo command signal they'll go to a set 'safe' position and maintain it till the next servo signal is received.

    A digital servo in theory should be able to be overdriven well past 50hz, to 200-600hz or so, but I have no experience with them just their theory of operation, however you won't get any added torque out of it like you would an analog servo, what you'd get is a dramatically increased refresh rate (response) which would only be useful for non-human based devices, like mini robots. This however is highly limited by the mechanical construction of the servo itself, ovdriving the servo signal of a digital servo may get you no useful abilities, you'd need to create a custom control loop to do any better.
     
Loading...