Electrical – Stepper Motor Accel/Decel Ramp for Fixed Frequency Input

integrated-circuitstepper motor

I have a reasonable working knowledge of electronics but am trying to find a solution to a puzzle I've come across and have not been able to find a complete answer. This involves a stepper motor and I have not worked with these before, but understand their principle.

I am trying to drive a stepper motor in the following manner. I have an encoder that is running constantly and generating a frequency that is approximately constant. This will drive my motor at a speed proportional to the encoder output frequency. I want to start the stepper motor on a signal from a sensor and stop it on a signal from a second sensor.

I've found details of how to drive a stepper motor, using ICs such as the UCN5804 series.

I've found material on the need to apply ramping to the speed of the motor on startup and shutdown and I've found a circuit on this site that will generate a trapezoidal profile using a 555 timer.
(https://m.eet.com/media/1144287/203799f1.pdf)

It seems to me that I would need to use such a circuit to ramp up the motor, then switch over to my encoder signal to drive it, then switch back to the 555 circuit when I want to ramp down. This seems a very cumbersome arrangement.

My question is, how can I ramp up my stepper motor, given that I have a continuous input pulse stream of approximately constant frequency?

Best Answer

Accelerating and decelerating stepper motors consistently can be a very challenging adventure.

Accelerate too fast and the motor can stall and just sit there screaming at you. If you are counting steps it can also lag back far enough to skip back a full cycle leaving you out of position.

Accelerate too slowly with a light inertial load and the motor can actually turn around on you during the first few steps. This of course makes it that much harder for the motor to keep up with the ramping step rate.

All this can be further aggravated if the load itself is variable, either short term or long and let us not forget the variability of the motors and drivers.

Because of all that, finding the right acceleration and deceleration profiles that work consistently can be a frustrating effort.

In order to do so it is normal to back off the acceleration and deceleration torques to give the motor some lee-way to correct itself. That is, if you try to accelerate at what you have calculated to be the best torque of the motor, and the motor falls behind, there will be no torque left for the motor to go faster than the demand and catch up.

Ultimately, for best control of a stepper motor it is best to attach a shaft encoder to it that has the same, or a multiple, number of pulses as the motor has steps and closing the control loop. Basically turning your stepper motor into a high pole count BLDC. Properly controlled, such an arrangement lets you extract the most torque, and acceleration/deceleration, out of the motor even under highly variable loads.

Related Topic