A technique called dual-loop control is sometimes used to compensate for instabilities caused by backlash. Backlash arises in systems where a motor is coupled to a load through gears or lead screws. When a position encoder is installed on such loads, a sufficient level of backlash can make the feedback oscillate. This phenomenon can be a limiting factor for precise movements.
Dual-loop control uses two feedback encoders, one on the motor, the other attached to the load. The motor encoder closes one loop that provides motor control. The load encoder closes a second supervisory loop that monitors load-position errors and then commands the motor-control loop to move.
A dual-loop algorithm would first command the motor to move a certain interval at a specified speed. Once this move is complete, the program would check the position of the load encoder to determine if any position error remained, then command the motor to move until the error hit zero.
Another use for this algorithm is where a clutch couples the motor to a load. Dual-loop control can provide smooth motion through motor velocity and load-position profiles. For example, say that the motor must accelerate to some constant velocity, hold this velocity for a time, then decelerate to a stop. With no slippage, the load position is simply the integral of the motor velocity profile. One approach to the algorithm is to give the motor a command to reduce velocity when the load position is a certain number of counts from its final destination. When the load is a few counts closer to the end, the motor is commanded to stop.
The solution is independent of slip because it makes the motor run longer to make up for the slip in rotation. Of course, the motion profile could contain a number of set points and velocity changes for more complex profiles.