Jon Elson
2011-06-18 02:55:55 UTC
I have had a couple reports of strange things happening with the CUI AMT
encoders,
that are so nicely affordable from Digi-Key. Well, I was fiddling with
a Keling brushless
motor fitted with one of those encoders, and couldn't seem to get it to
run smoothly, and
started thinking about those reports and the fact that the CUI encoder
is by definition an
interpolating device. So, I decided to fit a HEDS optical encoder to
the same motor AT
THE SAME TIME and compare the results. I was hoping for a smoking gun,
but did
not find anything completely outstanding. However, the two encoders
definitely show
significant differences, and I believe that is the cause of the tuning
difficulty.
So, I have 4 HalScope shots if anyone is interested in looking at them.
In Loading Image...
the velocity derived from timestamp estimation is compared.
ppmc.0.encoder.00.velocity (red) is the CUI encoder, and
ppmc.0.encoder.01.velocity
(white) is the HEDS. There are a number of jagged features in the CUI
trace that are
absent in the HEDS one. Also, one momentary deviation seen by the HEDS
encoder is
totally missed by the CUI! The jagged artifacts may be due to time
jitter when movement
is reported by the CUI.
in Loading Image...
I show the servo cycle-by-cycle velocity in raw encoder count units, not
helped at all
by velocity estimation. The CUI encoder seems to suppress some of the
typical dithering
seen in optical encoders at near zero speed. But, it also seems to
flatten out places where
velocity is not changing rapidly.
In both of these plots, EMC was controlling motion using the CUI encoder.
In Loading Image...
I show a well-tuned servo response with the HEDS encoder providing
position feedback.
Note following error is easily held within an equivalent 200 u-In band.
In Loading Image...
I show the same setup with the CUI encoder providing feedback, and the
best tuning
I could accomplish. Peak error is at least 3 times worse, and the
velocity trace also
shows lots of velocity fluctuation.
Does anyone see a smoking gun that I missed? I THINK I can see a phase
lag in the CUI
encoder in the encoder2 (raw delta) plot. There are some places where
this delay could
be up to a couple millisecond, that would be enough to really foul up
the servo loop.
On the encoders plot (velocity estimate) it seems to be kind of
one-sided, delay when
velocity is rising, early when velocity is falling. That seems even
more perverse.
I will bring this stuff to the Workshop if anyone wants to see it and
play with it live.
Thanks,
Jon
encoders,
that are so nicely affordable from Digi-Key. Well, I was fiddling with
a Keling brushless
motor fitted with one of those encoders, and couldn't seem to get it to
run smoothly, and
started thinking about those reports and the fact that the CUI encoder
is by definition an
interpolating device. So, I decided to fit a HEDS optical encoder to
the same motor AT
THE SAME TIME and compare the results. I was hoping for a smoking gun,
but did
not find anything completely outstanding. However, the two encoders
definitely show
significant differences, and I believe that is the cause of the tuning
difficulty.
So, I have 4 HalScope shots if anyone is interested in looking at them.
In Loading Image...
the velocity derived from timestamp estimation is compared.
ppmc.0.encoder.00.velocity (red) is the CUI encoder, and
ppmc.0.encoder.01.velocity
(white) is the HEDS. There are a number of jagged features in the CUI
trace that are
absent in the HEDS one. Also, one momentary deviation seen by the HEDS
encoder is
totally missed by the CUI! The jagged artifacts may be due to time
jitter when movement
is reported by the CUI.
in Loading Image...
I show the servo cycle-by-cycle velocity in raw encoder count units, not
helped at all
by velocity estimation. The CUI encoder seems to suppress some of the
typical dithering
seen in optical encoders at near zero speed. But, it also seems to
flatten out places where
velocity is not changing rapidly.
In both of these plots, EMC was controlling motion using the CUI encoder.
In Loading Image...
I show a well-tuned servo response with the HEDS encoder providing
position feedback.
Note following error is easily held within an equivalent 200 u-In band.
In Loading Image...
I show the same setup with the CUI encoder providing feedback, and the
best tuning
I could accomplish. Peak error is at least 3 times worse, and the
velocity trace also
shows lots of velocity fluctuation.
Does anyone see a smoking gun that I missed? I THINK I can see a phase
lag in the CUI
encoder in the encoder2 (raw delta) plot. There are some places where
this delay could
be up to a couple millisecond, that would be enough to really foul up
the servo loop.
On the encoders plot (velocity estimate) it seems to be kind of
one-sided, delay when
velocity is rising, early when velocity is falling. That seems even
more perverse.
I will bring this stuff to the Workshop if anyone wants to see it and
play with it live.
Thanks,
Jon