Thanks for the info Jon. We are seeing a small (about 0.001) position error just on initial acceleration and deceleration that we cannot account for. It may be due to the encoder. Since this is mainly a plasma machine we will probably live with it. If we need to do better we'll look at replacing the encoders. We now know the string attached to our cheap encoder :-)
Post by Jon ElsonYes, that is EXACTLY the kind of problem I saw. This encoder is highly
interpolated, so
it has a tracking counter that is incremented or decremented by an
estimate of the current
velocity. If you don't do these computations correctly, there is a lag
in responding to
changes in velocity. As far as I can tell, the interpolator in such
devices as the Analog
Devices AD2S1200 has a really fine 2nd or 3rd order filter to make this
work well.
Obviously, CUI did not go to the trouble of such mathematics.
After never being happy with these encoders and having a bit of customer
feedback,
I decided to compare to a standard HP optical encoder (with no
interpolation.)
So, I put the optical encoder on the other end of the motor, and fed
both to encoder
inputs on my PWM controller board. Most useful was to plot velocity
derived from
both encoders at the same time. This comes up often enough, I have the
plots
permanently on my web site. See
http://pico-systems.com/images/compare_encoder2.png
The red trace is the CUI encoder, which was controlling the motor
(badly). The white
trace is the HP encoder. Both are providing 4000 counts/rev. You can
clearly see
the velocity peaks of the CUI encoder are higher, and if you look
closely at the
slopes, you can see the CUI is slow to react to velocity changes, and
then has to
overshoot significantly so the position can catch up. This of course
accounts for
the bad servo behavior. As the Halscope is set for 20 ms/div, the
velocity lag
is easily 3-5 ms in duration!
If you have a plain optical encoder handy, you could easily set up the same
arrangement to compare the encoders.
Jon