Fully Closed Loop Servo and Effect on Vibrations
The Mitsubishi Servo Controller that I have been using for the previous vibration measurements has a really cool feature: It supports a fully closed loop. What that means is that in addition to the encoder on the motor shaft, there is another encoder on the actual table that is moving. This allows to correct for sources of inaccuracy past the motor loop. This could be thermal expansion, inaccuracies in the ball screws, uneven pulleys, belt stretching, etc...
The Mitsubishi manual for the fully closed loop functionality shows that the controller supports a number of different electrical standards for the outer loop encoders. This includes the standard differential signal incremental encoders.
Mitsubishi will happily sell you a cable with the right connector, but I found the connector itself on eBay and made an adapter from the DB9 connector on the linear scale I had to the one Mitsubishi uses here. I found the right connector under the name "3M 36310-3200 AND 36210-0100PL SHIELED COMPACT RIBBON CONNECTOR".
The result of all this is that the controller is able to remove the large fundamental oscillations that I have seen in the previous experiment, but can't do anything about the high frequency deviations. I did expect this, as all of the sources for inaccuracies I mentioned above (thermal expansion etc.), are typically slow changes. I would say that the excursions went from about 30 microns to about 15 microns. I think this is a solid improvement.
Here a typical vibration measurement before closing the outer loop:
And here afterwards (note the scale on the y axis):