I just took the time to read the entire article. Some really smart fella
wrote that <G> I really like the simple tuning approach on page 6. If I ever
get my plasma torch height control built, this article is exactly what I
need to know.
Ironically enough, that's not much more than what they teach union
millwrights to do when tuning a loop.
The biggest shortcoming of that article is that it gives a tuning
procedure that is almost guaranteed to give you a loop that is pretty
safe but not optimal. If you want guaranteed stability and the best
tuning ever then you have to crack the theory books, and _then_ you have
to figure out how to _apply_ the theory books (which the theory books
don't tell you, because they're so busy admiring all the pretty math).
Fortunately 99% of the control loops out there can get by just fine with
its sub-optimal, "probably safe" tuning. And I get the challenge of
working on some of the rest, and people actually pay me for having fun!
Encoders always jitter unless perfectly in the center between state
transitions. And, the elastic nature of the whole machine keeps it
creeping all the time.
You first need to find out whether it is the servo amps themselves or
the positioning loop that causes the buzzing. If you can keep the amps
enabled and hit F2 to shut off EMC's positioning loop, and the buzz goes
away, then it is EMC that is causing it. First, you need to set the
DEADBAND to at least 1.5 x the size of an encoder count, in user units.
Too large a deadband can cause discontinuities in the transfer function,
but a small amount helps suppress the servo jittering. Some servo
jitter is unavoidable, but I have my machine set up so you can't hear
it. (I have bar graphs on the current and voltage of the amp, so I know
it is jittering, but it is of very small amplitude and only a couple
bumps a second.
P is raw position gain, you want it as high as you can to minimize
error. D is a damping term, but it doesn't work as well as one might
want. The reason is the encoder position is quantized, and so when
moving you get a fluctuation in number of counts per servo period. If
you were moving at a rate equal to 1500 counts/second, and the servo
loop is updated 1000 times a second, the counts would come in at a rate
of 1,2,1,2,1,2 etc. So, the PID algorithm would perceive a huge jump in
velocity every other cycle. The D term magnifies this and feeds it back
into the velocity command output, so too much D causes worse vibrations.
You can partially help out the finite gain situation with FF1 and FF2 to
correct for steady-state error (FF1) and error on acceleration (FF2).
But, hopefully, if you can put in enough D without causing worse
rattling, it should help with the buzz. Turning the servo amp gain as
high as possible allows you to run with a lot LESS gain in the
positioning loop, which makes tuning easier.
On Thu, 22 Jul 2010 07:58:44 -0500, Ignoramus24043
On most..most AMC amps..turn the micopots clockwise until the buzzing
starts..then back off 2-3 full turns. On most machines..2 works fine.
That works for MOST of my applications. And the buzzing when it starts
isnt very loud. If you go until the servo is hammering...thats not good.
It is not loud, but it is bad for the servo, the ballscrew, encoder,
pretty much everything.
Your method of turning the gain pot clockwise until buzzing starts,
and then backing out 3 turns, works very well.
This is something I've used for PID loops at times. I don't know where I
grabbed it but
I've used it for various PID loops. I've had this note in my PDA for years.
A basic idea of what the three parameters do for you is a first step:-
1) with the integral and differential set to zero, wind up the proportional
gain. Keep increasing until you begin to see instability occurring. Note
the gain, somewhere just over half of this gain will do for starters.
2) Wind up the diff. This will has a damping effect on the response of your
system. Don't go mad on the diff. just yet, get the response a little
3) With the integral (be gentle with Int.) apply just a little. Note the
steady state error will decrease, you should increase the Int. until you
find either (i)the system can't take any more and starts to oscillate, back
off! or (ii) You achieve the required response time for steady state.
4) Go back a "tweak" Kp and Kd.
Remember, PID is an experimenters paradise.
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.