Re: SERVO
Posted by
Jon Elson
on 1999-09-18 22:09:40 UTC
"Arne Chr. Jorgensen" wrote:
comments. It is because I spent several years of spare time
researching what was out there, and finally went through about
4-5 months of very serious effort building several prototype servo
amplifiers that worked poorly before finding the right combination of
servo techniques and physical chips to do the EXACT job we are
discussing here.
friction than a small one.
when moving, because it tells the servo amp in effect "we have not
moved at all, yet". So, the servo loop compensates by quickly
increasing current demand (to the current servo loop) until motion
breaks free from the friction. The tach doesn't help with settling
to precisely the commanded position, however, you just need
a lot of DC gain in the positioning loop for that. But, the tach
allows the DC gain to be turned up to massive levels without
causing instability. SO, in a way, it does help there, too.
If the extremely high DC gain causes the system to start to
move, the tach senses in immediately, and the velocity loop
stops the motion even before the CPU senses it through the
encoder.
(current, velocity and position), each with a zero, a DC gain, and an
AC gain rolloff (or loop compensation). The servo amp is responsible
entirely for all adjustments to the first two loops, the positioning loop
is partially compensated with the servo amp, and partially within the
software (in EMC, they are loadable parameters).
To get minimal following error at all velocities and accelerations, all
these things need to be set up JUST right! There is a procedure that
I have developed for my amps, and the later versions of EMC make this
MUCH easier, as it includes essentially a digital storage oscilloscope
that can plot various parameters against time. So, you tune for the
smallest following error, while still remaining stable during transients.
a file. But, then!! it can call up a 'perl' script to re-massage the raw data
into a format that a graphical plotting package converts into a labeled,
scaled, color plot, right on the X-windows screen. When somebody
gets to this point in their development, I'll have to write up a little text
on how to do all this.
rollover of sign, with the bits going from all ones to all zeroes (or vice
versa) causes the probability of this error to increase. The system
seems to do the 'clicks' under some set of circumstances such that
most of the time, you never hear them. But, once in a while, it starts
to do them a few times a minute. But, if you happen to return the
machine to the exact location it was in when the EMC program was
started, (and where, it appears, the physical coordinate system in
the LS7166 chips has its zero reference) then it will start clicking
like a morse-code receiver - sometimes more than once a second.
Also, it seems that if one axis is put into this position, the other axes
start to click often, too. So, it probably is not a design problem
in the LS7166 ITSELF, but in the design of the STG board.
It looks like a very common digital systems phenomena like 'ground
bounce'. Someday, I'll get a logic analyzer in there and try to
actually catch an event. But, of course, connecting the analyzer
will probably CURE the problem, instead of measure it!
Damn Heisenberg!
Jon
> To Jon Elson:Thanks! But, I must tell you why you are pleased with my
>
> I have to hand it to you - You are good ! do you know that ;-)
> I treasure everything you say !
comments. It is because I spent several years of spare time
researching what was out there, and finally went through about
4-5 months of very serious effort building several prototype servo
amplifiers that worked poorly before finding the right combination of
servo techniques and physical chips to do the EXACT job we are
discussing here.
> I am worried though, - I don't like to burden you with all the workNot necessarily. Larger motors could actually have more static
> that we create for you. ( or - I do ) .. . because I have more
> questions.
>
> Your answers to my 1,2,3 -
>
> 1.
> In my first question I pointed out that we have some trouble to
> understand what size of motor needed, and then you point out the
> "wind up" problem to overcome friction. This problem would be
> smaller if you select a larger motor ? ( I did understand what you
> said, and I know you always will have a following error - you also
> said this in an earlier mail )
> A: But would you have less problems if you "oversize" your motors?
friction than a small one.
> B: Would this also be the case even if you add tacho ?No, the tach almost completely removes this problem, at least
when moving, because it tells the servo amp in effect "we have not
moved at all, yet". So, the servo loop compensates by quickly
increasing current demand (to the current servo loop) until motion
breaks free from the friction. The tach doesn't help with settling
to precisely the commanded position, however, you just need
a lot of DC gain in the positioning loop for that. But, the tach
allows the DC gain to be turned up to massive levels without
causing instability. SO, in a way, it does help there, too.
If the extremely high DC gain causes the system to start to
move, the tach senses in immediately, and the velocity loop
stops the motion even before the CPU senses it through the
encoder.
> 2.Oh, I don't mean constant tuning. I mean that there are 3 servo loops
> Tuning: You say ALWAYS - I am not sure I understand this. Many
> years ago I tuned some Glentek servo amps, - I did fine tune them,
> or checked them once a year or so. In a five year period. That is
> why I find it a little odd. Or are you referring to the tuning of
> the EMC parameters ?
(current, velocity and position), each with a zero, a DC gain, and an
AC gain rolloff (or loop compensation). The servo amp is responsible
entirely for all adjustments to the first two loops, the positioning loop
is partially compensated with the servo amp, and partially within the
software (in EMC, they are loadable parameters).
To get minimal following error at all velocities and accelerations, all
these things need to be set up JUST right! There is a procedure that
I have developed for my amps, and the later versions of EMC make this
MUCH easier, as it includes essentially a digital storage oscilloscope
that can plot various parameters against time. So, you tune for the
smallest following error, while still remaining stable during transients.
> 3.Well, EMC itself, internally, just puts 'logging' data of your choice into
> A digital oscilloscope ? I have not found anything like that in EMC
> - I must have missed it, or do you refer to the programs that come
> with the
> board ?
a file. But, then!! it can call up a 'perl' script to re-massage the raw data
into a format that a graphical plotting package converts into a labeled,
scaled, color plot, right on the X-windows screen. When somebody
gets to this point in their development, I'll have to write up a little text
on how to do all this.
>Yes, sort of. The errors seem to happen rather randomly, but the
> One of the thing that I started to wonder about. Could this error
> have something to do with a "roll over" in the LS7166 counters ?
rollover of sign, with the bits going from all ones to all zeroes (or vice
versa) causes the probability of this error to increase. The system
seems to do the 'clicks' under some set of circumstances such that
most of the time, you never hear them. But, once in a while, it starts
to do them a few times a minute. But, if you happen to return the
machine to the exact location it was in when the EMC program was
started, (and where, it appears, the physical coordinate system in
the LS7166 chips has its zero reference) then it will start clicking
like a morse-code receiver - sometimes more than once a second.
Also, it seems that if one axis is put into this position, the other axes
start to click often, too. So, it probably is not a design problem
in the LS7166 ITSELF, but in the design of the STG board.
It looks like a very common digital systems phenomena like 'ground
bounce'. Someday, I'll get a logic analyzer in there and try to
actually catch an event. But, of course, connecting the analyzer
will probably CURE the problem, instead of measure it!
Damn Heisenberg!
Jon
Discussion Thread
Arne Chr. Jorgensen
1999-09-18 19:35:44 UTC
SERVO
Bertho Boman
1999-09-18 20:07:17 UTC
Re: SERVO
Steve Carlisle
1999-09-18 22:34:16 UTC
Re: SERVO
Jon Elson
1999-09-18 22:09:40 UTC
Re: SERVO