Digital servo driver not working?
#16
Tech Champion
Feedback loop gain is different than EPA adjustment. Feedback gains change how the servo system reacts to inputs, the time constant & frequency response, control overshoot, maintain level, etc. Doesn't change the size of the output eventually reached like EPA just how it gets there.
#17
Tech Elite
iTrader: (37)
Feedback loop gain is different than EPA adjustment. Feedback gains change how the servo system reacts to inputs, the time constant & frequency response, control overshoot, maintain level, etc. Doesn't change the size of the output eventually reached like EPA just how it gets there.
The first method is to convert the incoming pulse width to a number (which happens anyway), then multiply that number by a constant to set the throw. Reducing the constant reduces the throw. (This is equivalent to reducing the EPA on the transmitter.) Since this multiplication is not within the feedback loop, changing the throw doesn't change the loop gain, and therefore doesn't affect loop stability. That's a good feature. If the servo uses this method, then reducing the servo's EPA setting will reduce the sensitivity of the servo speed to incoming pulse width variations when the servo is operated open-loop. This is what kiwibex wants, and is as you stated.
Another method to adjust throw in a digital servo is to convert the feedback potentiometer position to a number (which happens anyway), then multiply that number by a constant to set the throw. In this case, reducing the throw requires INCREASING the constant. But then the loop gain also increases, since the potentiometer is within the feedback loop. To maintain loop stability, a correction must be made via a second multiplication (or division) somewhere else in the loop (after the summing node) to maintain the same total gain. If the software does this second correction automatically (which would be wise, so the end user doesn't end up with an unstable servo), then all ends well; the result is again what kiwibex desires. (And this behavior is entirely due to changing the loop gain.) But if this correction doesn't happen automatically, then changing the servo's EPA setting will have no effect on the motor speed when the servo is operated open-loop.
Which method is used, or if the correction is included when the second method is used, depends on the software or hardware contained in the servo. I have no idea what is done in the Hitec servo mentioned.
If the servo has a separate adjustment for loop gain, and this occurs after the summing node, then reducing that gain will always give the desired result of reducing the sensitivity of the servo speed to incoming pulse width variations when the servo is operated open-loop.
As an aside, changing the loop gain is easy on analog RC servos: all we need to do is change the time constant of the difference-pulse stretcher, by changing a resistor or capacitor. That's what the adjustment pot did on old speed controls, before they used microprocessors. (Many servos and speed controls used the exact same integrated circuit, too-- the NE544 is one example. Many people used the guts of an analog servo as a speed control in micro cars way back when, and decreased the sensitivity in this manner.)
Dave, you always keep me thinking. I love it!
Last edited by howardcano; 07-27-2013 at 12:27 PM.