For brushless DC motors we have hall sensors to keep track of rotor; however, for stepper motor we don't know the actual position of the rotor and therefore while changing pulses with some speed it may happen that the rotor cannot keep up with the rotating magnetic field and lags behind. Then some unexpected behaviors may occur. How do we make sure that this is not going to happen? In practice, does it happen just above some speed value, i.e. below that speed everything is ok and no such problem occurs? Or what are some other aspects to consider for avoiding such scenarios.



1 Answer 1


Although the advertised advantage of a stepper is that it can be driven "open loop" (no position or velocity feedback required for accuracy, instead you just keep count of the steps) this is only true when the speed with which the step signals are being fed to it are below a certain rate threshold. Beyond that threshold, the stepper armature begins to lag behind the steps and position errors then occur.

Furthermore, the "stepper approximation" only holds when the compliance and inertia of the load fall within certain bounds. Outside those bounds, the relationship between the number of steps sent to the stepper and its angular position is broken and position errors again result.

This limits the use of steppers to certain applications where the stepper speed and its load are well-specified to be within the stepper's accuracy envelope, as specified by the manufacturer.

Outside that envelope, the designer must use a DC motor and shaft encoder, plus a closed-loop control system that uses position reports from the encoder to "juice" the motor in such a manner as to minimize or eliminate position errors.

This stepper-versus-DC motor-and-encoder tradeoff is well-known within the design community.

  • $\begingroup$ You can use a shaft encoder with a stepper to verify the output too - if you need both low-speed high-torque precise motion and fast motion on the same output (e.g. CNC milling and moving between workpieces), steppers tend to be better than DC. $\endgroup$
    – SF.
    Jan 28, 2020 at 11:01
  • $\begingroup$ Thank you. It is quite clarifying. For low speeds what seems as a problem to me is when you want to achieve this by changing pulses with lower frequency the rotor comes one step ahead and waits there until the next pulse. Then the rotor is working like step - stop - step - stop ... Isn't it very inefficient way of operation when compared to relatively smooth operation of DC motor? It seems that the step motor is good for position control, but for speed control DC motor is better, do you agree? $\endgroup$
    – Pasha
    Jan 28, 2020 at 15:05
  • $\begingroup$ Also, by "stepper approximation fails", do you mean that the torque will not be enough to bring the rotor to the commanded position?? $\endgroup$
    – Pasha
    Jan 28, 2020 at 15:10
  • $\begingroup$ yes, or the dynamics of the load force the stepper shaft to keep turning after the pulse string to the stepper ends, causing it to overshoot. $\endgroup$ Jan 28, 2020 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.