Electronic – How to suddenly stop stepper motor without vibration

stepper motor

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.

Best Answer

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:

Wikipedia

MIT OCW

Dartmouth