How do servos work?

I'm wondering if anybody here has a link to a website that explains *in detail* how servos (like Hitec and Futaba) work? I found a few websites
but none of them really dig into the logic of the servo controller.
Here's why I'm asking: when I was first exposed to servos (in an EE class), I thought that the control was based on the length of the duty cycle. It wasn't until lurking around here for a while (yay ivy league education) that I finally realized that it was actually based only on the length of the positive pulse, hence the name.
So if you send servo pulses at 25khz instead of 50khz, you substantially improve the torque? This leads to the question, when manufacturers quote torque in the tech specs, what refresh rate are they generally using? And also, what is the relationship between refresh rate and torque. If I double the refresh rate, does that double torque? Or is it log(2)?
Finally, if this is what PWM truly refers to, then when we use a similar technique on a DC motor (varying the duty cycle by keeping a constant refresh rate and changing the pulse widths), is that still considered PWM? Because its really more like duty-cycle modulation, with true PWM seeming to refer to the scheme that servos use.
So if my understanding is right, how do servos actually work? I understand that they compare the desired signal to the actual signal, and I think the response is proportional (?) to the error signal. But how often does this compare-respond cycle operate...just when positive pulses are received? If so, then 50khz seems very low to provide the torque that I know servos have. Thanks for any light you can shed--
Mark
--
|\/| /| |2 |<
mehaase(at)sas(dot)upenn(dot)edu
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I meant, of course, "hz" everywhere where I put "khz" above.
Thanks
--
|\/| /| |2 |<
mehaase(at)sas(dot)upenn(dot)edu
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Mark Haase wrote:

There are two varieties of servos, analog and digital. I have not been inside a digital servo, so all I could offer is speculation. Analog servos have not changed substantially since the mid 1970's. Mitsubishi makes an IC that is widely used in the analog servos: M51660L and the data sheet was avalibble as a PDF file from their website. If it is not, email me and I will send you a copy.
In a thread a few months ago, someone measured torque vs input data rate and posted about it. I think it might have been Gordon McComb who did this.
Good Luck, Bob
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Sat, Jul 23, 2005 at 08:28:02PM +0000, MetalHead wrote:

While Gordon was involved in that thread, I believe it was Dan Michaels who did the experiment and posted the results. However, I think Gordon correctly predicted the outcome to a large degree before the experiment was performed :-)
-Brian
--
Brian Dean
ATmega128 based MAVRIC controllers
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Thanks for the pointers. I did a little bit of research. Here is a link to some preliminary tests done by Paul Crouch:
http://www.outsider.plus.com/Overclock_Servo.html
Dan Michaels did a lot of testing with a GSW servo, but didn't test this aspect too heavily.
Here's a good explanation of the servo, the one that I was looking for:
http://groups-beta.google.com/group/rec.models.rc/browse_frm/thread/66eb0 3c59cafd62b/aba918e5e3636ead?lnk=st&q=servo+torque+frame+rate&rnum=6#aba9 18e5e3636ead
But still no in depth data on torque vs frame rate.
My hypothesis?
The pulse stretcher circuit in the motor doesn't produce square pulses, instead they seem to demonstrate exponential decay. (If there's an RC circuit controlling it, which I think there is, then this would be expected behavior.) So at 50hz, the motor is receiving new input pulses before the old pulse has completely decayed. So this means that maybe the motor voltage is about 10% of Vcc. When the frame rate is doubled, the new pulse is coming in when the motor voltage is somewhere between 20% and 10% of Vcc, say 15%. So if we integrate this function, the increase in voltage is nowhere near double. So I suppose that the relationship can be modeled as
t = k log(fr) or t = k log^2(fr)
Where t is torque and fr the frame rate (refresh rate).
Maybe if I get bored at work I will put some more thought into this.
--
|\/| /| |2 |<
mehaase(at)sas(dot)upenn(dot)edu
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I have seen sites that answer the nitty gritty, but do not recall them.

The reason for this scheme, is that all the pulse widths are encoded in the packets being sent by the transmitter. There is some sort of start pulse of some sort, followed by pulses for each servo. The start pulse comes at about 60 hz, the servo pulses are shifted in time relitive to the start pulse.

If yous send pulses twice as fast, you in effect double ( or some increse ) the duty cycle of the current at the motor. I have burned out servos doing this.

Pulse width is pulse width. I suppose one could get into the semantics of it all...

I think internally it involved converting the square wave into a saw tooth wave by integrating it or some such. It was an entirely analog process. The feedback pot and the back EMF of the motor figured into the analog mixing internally, if I remember correctly.
Now I have to imagine it is digital in the new digital servos. They can be parameterized via their signal line, which implies a microcontroller. They take a much faster PWM rate as well, something like 300 Hz if memory serves. Digital servos have improved deadband because they can take a single pulse and act on it instantly.

http://webpages.charter.net/rcfu/HelpsHints/RadioOps.html http://www.airmedia.se/Receiverfacts.htm http://www.veetail.com/HowRCworks.shtml
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

There is no start pulse - the gap between the "packets" of pulses is used to delimit the packets. Early R/C decoders were simple counters, with the outputs of the counter feeding individual servos - the counter was reset by an RC network with a time constant less than the inter-packet gap, but longer than the inter pulse gap.
Deep.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Yup, my bad, I over simplified things.

to
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Deep Reset wrote:

Current PPM decoders still use the RC network to load a single 1 into the shift register that drives all the servo channels. I bought a Hitec receiver last summer and opened it up to pick off the serial data stream so I could decode all the transmitted channels with a single timer. Other than surface mount IC's and 74Cxxx parts instead of 74Lxxx parts, the design is almost identical to the ones I messed with in the late 1970's!
I have heard from a friend that did the same thing with a PCM receiver that the JR PCM receivers also use a shift register to convert a single output from the microcontroller into the 8 outputs for individual servos. The microcontroller translates the proprietary PCM data stream from the receiver into the familiar 1-2mS pulse stream for the servos.
Bob
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.