In a previous article, Gerard Bush of INMOCO explained the fundamentals of stepper motor design and usage. Here he delves into some advanced control techniques that improve their motion smoothness and stability.
All stepper motors show some degree of cogging in their motion. Motion smoothness is least-good in full-step stepper motors, better in half-step and even better in microstepping – but it is still not perfect. Some stepper designs address this with ‘skewed rotors’ designs to smooth the magnetic field interactions, so if your application requires a high level of smoothness, motor selection can make a contribution.
The current controller, or chopper, also plays a part. Ideally, the phase generator outputs a continuously varying desired current through each coil, and the current controller drives the coil to precisely match the actual current with the desired current command. In reality this is seldom the case, there is some element of mismatch and therefore some cogging.
A full four-quadrant controller is the gold standard, but expensive. A ‘fixed off time’ PWM (Pulse Width Modulation) controller provides two-quadrant control, and is used for most applications. The theory behind current control is very complicated, but an expert can help you select a suitable amplifier for each application.
For high-accuracy applications (camera tracking, XY tables, microscope stations, semiconductor equipment, etc) the controller can ‘shape’ the power supply’s sinusoidal waveforms to alter the microsteps’ size. The general idea is to use a high-accuracy encoder to measure the motor response to a standard sinusoidal lookup table. Then the lookup table can be modified by slightly advancing or retarding the values, compensating for the non-linear response of the stepper motor. Current control techniques are also used to address mid-range instability. The simplest approach is adjusting the trajectory profile to accelerate through the unstable frequency range and thus zoom past the problem frequency. Other straightforward approaches include adjusting the drive voltage, the winding configuration of the stepper motor, and adding mechanical damping. There are also amplifiers which incorporate anti-resonance control.
When operated without an encoder, the bane of stepper motors is lost steps. This can be due to a loss of synchrony or if the motor encounters momentary drag. The simplest remedy is to install a sensor somewhere on the driven machine to compare the theoretical step count with the actual position. This may allow corrections to be made on the fly, an alarm activated, or shut down of the system. This solution, though simple. has the problem of not reacting immediately, which may be an issue in some applications.
The next approach is ‘automatic step loss detection’ in the amplifier. This approach is implemented in the amplifier and relies on the fact that the voltage/current profile of the motor’s coils looks different under normal operating conditions than it does under anomalous conditions such as when steps are lost. Broadly speaking, this technique ‘knows’ what the anticipated motor current feedback waveforms should look like, and detects when they go out of tolerance. Some amplifiers need to be tuned for this; others, particularly those that are mated to a specific motor, come ready to operate.
None of these techniques are infallible. For perfect step loss detection an encoder is required. In practice many stepper motor applications use an encoder, fortunately nearly always of the low-cost quadrature variety.
There are a number of ways you can use encoders in combination with trajectory moves. The simplest is to make the move and then compare the final position provided by the encoder with the anticipated location. The vast majority of applications use this approach.
A more sophisticated approach is to specify an error window or tolerance, measured in encoder counts, and continuously compare the commanded step position with the received encoder position.
There are also more elaborate ways to use an encoder with a stepper motor, but they compromise the simplicity of stepper systems, so you may be better off with a servo approach.
There is a hybrid motion control approach, where a servo-like speed adjustment is implemented in an open loop stepper system. This is bespoke to individual applications, so generalisations are not appropriate and the best advice is to seek specialist support.
Another approach is to operate the stepper motor as if it were a brushless motor, and commutate it actively based on encoder feedback. In this approach, the torque requested of the stepper motor is not fixed (as it is for a normal step motor driver), but rather is continuously adjusted by the controller. This technique has the advantage of running your motor more efficiently, as the torque is matched to demand rather than always at maximum.
Operating a step motor as a brushless DC motor is by no means common, perhaps because it requires an expensive high-resolution encoder. But the motor run more quietly and its motion is smoother.
Advanced electronics have significantly improved what you can do with a stepper motor, and many of the techniques add little or even no cost to the controller. Ultimately, however, you may find that stepper motors are not suitable for your application and that a servo is the best answer.
For further information about stepper motor design, usage and control techniques, please visit the Inmoco website at www.inmoco.co.uk/.