May 22, 2020

MMT Servo work, May, 2020

The telescope at the MMT has its motions controlled by a computer running VxWorks. This was once a VME based motorola mvme147 board, but is now a rack mounted everyday PC with a PCI bus -- now as out of date as the VME was when the PC was acquired.

In May of 2020 interest was aroused towards making some changes in the elevation servo control. The current elevation servos were generated using Simulink Real Time Workshop and currently exist only in binary form. New work would involve replacing these with algorithms coded in C, which should be much more maintainable if nothing else.

The original servo work was done around 2007. At least this is strongly indicated by the version of Matlab (2007b) that has been preserved along with the servo source files. Limited work was done with Mathlab_2009. The hand coded C work was done in 2012.

An issue is worth mentioning which may or may not be important. The simulink generated elevation servo runs at 1000 Hz. The rest of the mount code (and other servos) run at 100 Hz. It would be nice (in theory anyway) to run the astronomy code at 1000 Hz so as to generate position targets for the elevation servo at 1000 Hz. Care would need to be taken to decouple this from the azimuth and rotator servos, which would still need to run at 100 Hz. The current setup generates position targets which do no change for 10 ticks of the elevation servo. This is clearly not the end of the world since we have run this way for over 10 years. Some kind of interpolation scheme could be used in lieu of changing the rate of the astronomy code, or this could simply be left as it is.

And that is all for now.