MESA encoder velocity output 'staircase'

More
09 Feb 2016 21:45 #69885 by DaBit
I got the servo on the spindle of my lathe working today. The servo is a 1.1kW unit driving the spindle using a timing belt:



Servo drive is running in velocity mode with analog speed input. The control is:
5i25 pwmgen 20kHz -> Mesa 7i85S diff output -> 2nd order lowpass -> drive analog in -> motor -> encoder -> drive-> pos output 5000counts/rev -> 7i85S -> 5i25 encoder.
The 5i25 is running 'custom' firmware with 4x encoder, 3x stepgen and 1x pwmgen.


This system runs, but the velocity value given by the encoder is weird:


Scale is revs/sec, motor speed is 3000rpm.
Thus, in 2.5 milliseconds the motor RPM varies almost 6rps = 350rpm? Hard to believe; there is a lot of inertia, RPM display on the servo drive is stable (and correct), motor does not sound like it is varying in RPM that much.

When rotating the servo by hand, there are no missing counts or errors. At speed the encoder signals (coming from the drive, btw) look clean on the scope.

Any idea what is causing these varying velocity values?

Please Log in or Create an account to join the conversation.

More
09 Feb 2016 22:07 - 09 Feb 2016 22:26 #69886 by PCW
Probably something to do with the somewhat crazy servo thread rate

That is, what does it look like at a more normal 1 KHz thread rate?

Also, drive generated quadrature very often has substantial phase jitter
At 3000 RPM and 30 KHz sample rate you have about 8 counts per sample
even though the edge-edge time stamping should give much better than 1/8 noise
velocity estimation, any significant phase modulation will compromise this
Last edit: 09 Feb 2016 22:26 by PCW. Reason: expand

Please Log in or Create an account to join the conversation.

More
09 Feb 2016 23:04 - 09 Feb 2016 23:08 #69889 by DaBit

Probably something to do with the somewhat crazy servo thread rate

That is, what does it look like at a more normal 1 KHz thread rate?


Oh, sorry, it is only Halscope running at the base thread which I did not remove yet.
I only converted tonight from a parport setup to a 6i25+7i85S.
(sorry for that too; I said 5i25. Just saw too many '5i25's everywhere tonight. But from a LinuxCNC point of view 5i25/6i25 in normal mode makes no difference)

Servo thread rate is 1kHz.

any significant phase modulation will compromise this


It might be phase modulation after all. With a Q=0.5/Fc=200Hz biquad on the velocity signal it looks quite clean and 200Hz is plenty for the given rotor inertia.



I did increase servo rate in the picture above (4kHz); the higher servo rate gives higher frequency noise which is better rejected by the biquad.
Last edit: 09 Feb 2016 23:08 by DaBit.

Please Log in or Create an account to join the conversation.

Time to create page: 0.122 seconds
Powered by Kunena Forum