# Applied Scientific Instrumentation

### Site Tools

stage_accuracy_settling_time_for_asi_stage

# Differences

This shows you the differences between two versions of the page.

 stage_accuracy_settling_time_for_asi_stage [2016/05/24 19:34]vik stage_accuracy_settling_time_for_asi_stage [2019/04/18 23:35] (current) Both sides previous revision Previous revision 2016/09/07 22:26 asiadmin ↷ Page moved from documentation:stage_accuracy_settling_time_for_asi_stage to stage_accuracy_settling_time_for_asi_stage2016/05/24 19:34 vik 2016/05/24 19:33 vik 2016/05/24 19:31 vik 2016/05/24 19:29 vik created Next revision Previous revision 2016/09/07 22:26 asiadmin ↷ Page moved from documentation:stage_accuracy_settling_time_for_asi_stage to stage_accuracy_settling_time_for_asi_stage2016/05/24 19:34 vik 2016/05/24 19:33 vik 2016/05/24 19:31 vik 2016/05/24 19:29 vik created Line 1: Line 1: + ====== Stage Accuracy and Settling Time for ASI Stages ====== + The ultimate accuracy of a servo system often depends upon the behavior of the stage after it has made the traverse to its destination and is seeking its final position. ​ In high accuracy systems, the stage may be required to come to rest within one to a few encoder counts of the desired location. ​ Mechanical effects such as vibration, inertia and friction coupled frustrate the efforts of the system to position precisely. ​ Careful tuning of the servo feedback parameters can help the system to quickly settle on target, but ultimately we find that it always takes longer to land “exactly on target” than if we allow a little “finishing error”.  ​ + + ASI’s servo controllers have two parameters that are used to control the final accuracy of a move.  The “finish error” is the allowable deviation from the target that must be achieved before a move is completed and the motors are turned off.  The “drift error” the amount of error allowed before the motors are re-energized to once again bring the stage to target. ​ Often the “drift error” is set to a value approximately twice the “finish error” to provide sufficient hysteresis so that the stage will not constantly be attempting to re-adjust its position. + + What does this mean in terms of stage speed and settling time?  We tried to answer that question by running a test where we recorded the time to make many short moves using different accuracy and acceleration parameters. ​ We used Image Pro software, which queried the stage for its busy status about every 12 milliseconds. ​ As soon as the busy would clear, the program would issue the next move command. ​ We measured the time to make a whole series of moves, so besides the actual move and settling time there is also the serial communications overhead and the average polling time included in the measurement. + + [{{ stage_acc_settling_time_1.jpg?​direct&​400 |Click to Enlarge}}] + + The chart above shows the results of this test on a typical ASI stage equipped with linear encoders. ​ The encoder resolution was 20nm, so the best accuracy tested required that the stage settle to within one encoder count. ​ Top speed for this stage is about 6.5mm/s but for short moves the stage never gets up to full speed. ​ However, since acceleration is an adjustable parameter, we show move times for three different rates of acceleration. ​ Note that lower values of acceleration reduce the time per move when high accuracy moves are desired. ​ The jerky motion takes longer to settle, but if you don’t care as much about accuracy, then the higher acceleration will get the stage to target somewhat sooner. + + A look at the fastest settling times gives an account of the effect of communications overhead. ​ With allowable error of more than 5 microns, the stage essentially gets to target without having to correct its initial move.  The table below shows the observed move time and the calculated time it would take to actually ramp up and down to get to the target for the given acceleration used.  ​ + + ^Average Move Time ^Acceleration^ $$t=2\sqrt{d \over a}$$ ^Overhead ^ + |129 ms |65 mm/​s<​sup>​2​ |78 ms |51 ms| + |105 ms |130 mm/​s<​sup>​2​ |55 ms |50 ms| + |91 ms |260 mm/​s<​sup>​2​ |38 ms |51 ms| + + The difference is the amount of overhead left in the control system. ​ We see that when we subtract out the actual time the stage is moving we are left with overhead of about 50ms.  Of this 50 ms two major components will be 1) the time it takes to send the move command via the serial interface at 9600 baud, and 2) the average wait time for the serial polling process to detect the not-busy condition once it occurs. ​ Sending the approximately 20 characters for the move command at 9600 baud will take about 20ms.  The polling delay will be about 10ms, making the total accountable overhead about 30ms.  This leaves 20ms unaccounted for, which may be due to a combination of sources including latency in the Image Pro macro program, 2 to 8 ms latency in the MS2000 controller to set up the moves and clear busy flag, and additional computer serial port latency. + + A related issue to settling time is how to best choose the lead screw pitch for quick moves. ​ Again, accuracy becomes an issue, since doubling the speed of the stage by using a fast pitch lead screw will in general double the inaccuracy. ​ The rate of acceleration is also a parameter that needs consideration. ​ The motors used in ASI stages are brushed DC motors that will give years of trouble free use if not abused. ​ Multiple rapid acceleration and de-acceleration are not good for the motor and can lead to failures. ​ A ramp time of 50ms or more is recommended to ensure long motor life.  The chart below shows the theoretical time it should take to make sub-millimeter moves for various lead screw and ramp time combinations. ​ The top speed of our standard 6.35mm pitch lead screw stage is about 6.5mm/​s. ​ ASI can also supply stages with 12.7mm pitch lead screws with 13mm/s top speed for applications where the added speed is desirable. + + [{{ stage_acc_settling_time_2.jpg?​direct&​400 |Click to Enlarge}}] + + [{{ stage_acc_settling_time_3.jpg?​direct&​400 |Click to Enlarge}}] + + The chart above shows the measured average move time for different length moves assuming the controller doesn’t have to correct for the error on the move.  This usually means allowing errors of one to two microns. ​ Using various ramp times from 100ms to 25ms and top stage speed of 6.4mm/s, the time to complete moves is shown as a function of move length. ​ The calculated time for ramp up and down at a given acceleration is also shown. ​ The measured data closely matches the expected value if we include about 50ms of communications overhead that we observed previously. + + For systems that need to minimize all sources of latency, the MS2000 may be commanded to move via TTL pulses, with move-completion signaled by TTL pulses from the controller. ​ In this mode, a ring buffer is used to store move locations. ​ + + {{tag>​xystage ms2000 tech_note}}