I first send continuous pulses to the stepper driver to make the motor run at high speed(fixed speed), then I stop sending pulses, I know the motor will stop quickly, but will it cause great vibration?

In my application, I need to stop the running motor suddenly, then start running the motor(not so quickly), then stop it quickly... again and again. I do need to use stepper motor for its small size, and I don't want to use electro-mechanical brake due to its limited life time.

Do you have a better way to stop the running stepper motor quickly with minimal vibration?

Thank you.

  • 1
    \$\begingroup\$ You will probably need to test what happens when you stop quickly, the mechanical system it's connected to will have some momentum and there is only so much force the motor can exert. If one overcomes the other it will over-run the motor and judder to a stop at the wrong place. You need to control the acceleration & deceleration of the motor to ensure you do not exceed the physical limitations of the system. \$\endgroup\$
    – John U
    Aug 18, 2014 at 12:35
  • 1
    \$\begingroup\$ This vibration upon stopping is exactly the same thing as the "ringing" of a system in response to a step function. It's a property of that system's limited bandwidth (frequency response). Two ways to deal with it: make the moving parts and linkages lighter and stiffer (i.e. increase frequency response) and dampen the system to limit overshoot (i.e roll off the high frequencies in the start-stop signal). \$\endgroup\$
    – Kaz
    Aug 18, 2014 at 19:05
  • \$\begingroup\$ Most mechanical systems try to "instantly stop" only when a safety mechanism trips - normally, they profile the movement with calculated acceleration and deceleration. \$\endgroup\$ Aug 18, 2014 at 20:30

2 Answers 2


There will be vibrations due to the sudden stopping of the system. Whether or not it will "cause great vibration" is really your discretion.

To understand what is happening, the motor shaft has some inertia. The angular momentum of the shaft is denoted by I * w, where "I" is the first moment of inertia of the shaft (in kg*m^2), and "w" (omega) is the angular velocity (in rad/sec). The torque generated on the motor is analogous to the force generated when a moving object suddenly stops. Thus, T = dL/dt, where "T" is torque (in N*m), and "dL/dt" is the change in angular velocity (L) per unit time. Obviously, you can't actually stop instantly, since that would require infinite torque, but you can stop rather quickly.

If you want to actually solve for the dynamics of the system, you need to understand Linear, Time Invariant (LTI) Second-Order Systems. Essentially, you can analyze your stepper motor to determine it's inertia (2nd-order term), damping (1st-order term), and springiness (0th-order term), then use the equation:

I * theta'' + b * theta' + k * theta = T = dL/dt

In this equation, I is your moment of inertia, b is your damping, and k is your springiness. Theta (and it's time derivatives) represent your angle. You could use a solver (like Mathematica/WolframAlpha or MATLAB/Octave) to solve the system given your initial conditions.

Of course, since both "b" and "k" are likely to be small, your system is really more like:

I * theta'' = dL/dt

which is far easier to solve.

If you read up more on this, you could simulate your braking system so that you can see the oscillations if you stop immediately, and find a dL/dt (or braking torque) that creates the time-optimal decay in velocity.

If you want to learn more, see these links:





There are two types of step motors, regular and hybrid. The potential energy function is very different around the poles between them. Specifically the potential energy function on a hybrid motor is flat bottomed whereas the regular is parabolic. The end result of this is that hybrid motors are very underdamped at the pole and oscillate heavily on each step. Regular step motors, less so. Conversely the potential energy shape makes it very hard to micro-step regular step motors, but easier to micro-step hybrid step motors. Please see the "phase plane step motor design" manual out of the University of New Hampshire. If you plot step motor PPS versus pull out torque you will find that there is a resonance frequency, where pull out torque approaches 0. To successfully drive a step motor you must start at a PPS rate above the resonance frequency, or you will loose steps as you go through resonance. When stopping if you decrease speed to minimum PPS, that is resonance, and then try to stop you will excite the resonance, and may oscillate several steps worth. These are the dynamics of just the motor, any energy storage in the connected mechanics would also have to be accounted for. You're better off using a DC motor and a small analog optical quadrature encoder such as the Avago HEDS9710, 200LPI = 800counts per inch, and each count can be subdivided by an A/D into 256, for a total of 204800 "counts" per inch. These encoders are inexpensive, or get yourself a old HP inkjet printer and get not only two encoders but the code wheel/strips as well. The high resolution allows controlling motor speed down to very low rates. If you have a digital servo with 1kHz period, and the minimum usable counts are 4, then the minimum resolvable DC motor speed is 4000/204800 inches per second or 0.02 inches per second. This is almost out of the friction realm, and into stiction. So when you "stop", the mechanism will immediately enter stiction and stop. No ringing or noise.

  • 1
    \$\begingroup\$ Needs more paragraph breaks. \$\endgroup\$ Aug 18, 2014 at 22:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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