Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI
This Document is not yet Rated  Rate this Document

Why Does My Vertical Stage Drop Several Counts Instead of Stopping When it Finds Home?

Primary Software: Driver Software>>NI-Motion/FlexMotion
Primary Software Version: 7.0
Primary Software Fixed Version: N/A
Secondary Software: N/A
Hardware: Motion Control

Problem:
I am using a servo motor and I have written a LabVIEW program to find a home limit switch on my vertical stage. The stage moves appropriately while searching for home. It first moves in the forward direction and if it reaches a forward limit, it moves in the reverse direction until it finds the home switch. At this point, instead of stopping smoothly, the stage suddenly drops several centimeters before stopping. What is the cause and how can I prevent this behavior, as it could eventually damage my stage?

Solution:
This sudden drop is a result of three main factors: holding torque, following error, and the halt function that is executed as a result of finding home.

Holding torque is the force that is applied by a motor to prevent motion when no move is being executed. The holding torque of the system may have to overcome several factors to prevent motion. For example, a motor that is controlling a vertical or sloped stage has to overcome gravity to keep the stage from moving. The motor is aided in this by the inertia of the stage and the friction of the track.

To implement holding torque, the motion controller reads the following error for the axis. Following error is the difference between the current and desired positions of the stage. In the event that no moves are currently being sent to the motor, the following error is constantly read to ensure that the axis is not moving. An increase in following error indicates that the stage is moving when it should not be. To prevent this, additional holding torque is applied. The amount of torque applied is directly proportional to the following error that is read from the axis.

For a servo motor, the amount of following error that is required to counteract external forces on the motor is inversely proportional to the proportional constant (Kp) that is specified in the Control Loop Settings for that axis. This relationship is demonstrated in the following set of equations:

Kp * error = Holding Torque
(Holding Torque) / Kp = error

When a limit or home switch is encountered, a halt command is sent to the controller to either stop motion in the current direction or stop motion completely, depending on which type of switch was encountered. When a halt command is executed, the desired position is set to be the same value as the current position. Thus, the following error becomes zero.

Since the holding torque is proportional to the following error, this results in a holding torque of zero. This is why the stage suddenly drops. As the stage moves further away from the newly assigned desired value, the following error increases, as does the holding torque, until the forces that caused the axis to move are fully counteracted.

Thus, some amount of motion will always be present after a limit or home switch is encountered. The amount of motion can be limited to prevent damage to the stage. One way to do this would be to increase the Kp value for the axis control loop. This would reduce the amount of following error that is required to prevent motion and the distance of the drop would be reduced. Another way to limit the drop would be to increase the friction of the track that the stage moves along. Increased friction would decrease the amount of holding torque needed to prevent motion.

Related Links:
Motion Control Support

NI-Motion User Manual

Fundamentals of Motion Control

Understanding Servo Tune


Attachments:





Report Date: 09/14/2005
Last Updated: 08/17/2007
Document ID: 3PDCK3B1

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
  1 2 3 4 5
Please Contact NI for all product and support inquiries.submit