I’m fairly satisfied with my servo tuning results. Pretty much within a 10 micron bound at the path reversals with acceleration set to 800mm/s2 and velocity at 300mm/min.
The deviation from the planned path is within a couple of microns during the constant velocity sections of the motion. I think I can reduce that further by compensating for the error measurements I’ve made of the analog drive system.
An analog +/- 10V signal commands the velocity of the servo drive. That signal is derived from a filtered PWM source. Sweeping the signal range while measuring the servo velocity gives a scatter graph like this:
Applying the mean to a sliding bin of size 0.1mm/s shows that both axes have very similar responses once the gain has been nulled.
Overall the velocity of the servos are within 0.3mm/s of the commanded speed over a range of +/- 67mm/s. (2000rpm @ 2mm/rev). While very good, this error feeds into the PID loop, and is quite characterizable, so there is room for improvement.
Here a short video of the test system running. The first portion shows the high speed performance while following the ‘EMC AXIS’ path. The second portion shows holding a tolerance of better than 20 microns over a simple path programmed at 300mm/min.
The first part of that video should probably have been in slow motion.