PID with stepper motors

Damping ratio . . . . AKA coefficient of 1 means critically damped. The main goal is to not drive the output so hard that it causes overshoot. With the propensity of steppers to loose synchronicity, it is best to handle the output of any controller with a soft touch . . .
therefore a critically damped loop is best.
I usually used stepping motor with ready made sequencer/driver. All I have to do is send output the pulse train I need.

Considering your PID control, is it mean you want to control the freq of pulse train. I think it is possible but
1. You could not set up speed profile at same time because this is the output of you PID control. It is only for point to point system.
2. If it is overloaded, the stepping motor will miss step and even held.

If you design your driver,your PID control is on driver current, the system will not be the same as general stepping motor system. I will be much like BLDC motor control. Your PID control output set up driving current level to build up the required torque. All the function will be much like the pulse driving servo motor. If so, why don't you use BLDC motor directly?

While I am in institute, my teacher assign the subject of stepping motor closed loop control. After collecting many papers, I concentrate on point to point application. Using the feedback signal of encoder to get best pulse train for stepping driver. It can get max acceleration without missing step.

Hope you can get another excellent idea.

Cameron Anderson

PID in steppers, hmmmm.....

OK, first of Steppers are open loop and do not use PID. Servo's use PID. But, you can use steppers with PID. I sound like an idiot now don't I.

Steppers systems are open loop devices that do not need encoders for feed back like servo systems. You can put encoders on the back of steppers but usually for position verification or stall detection. Stepper drives are becoming more and more advanced today where they can acutally utilize the the encoder feedback to do what I call "<i>Pseudo Servo</i>." This is where the stepper controll actually uses the feedback to add a post-move position. So if the system over/under shoots, we can correct for it.

IDC has their SmartStep that has this ability. API Motion has their DM-2400 series steppers that can do almost everyting a servo can, including gearing and caming. I have also used Servo controllers with stepper cards that close the loop of the stepper motor. Hope this helps you, but pry didn't answer your question.

Cameron Anderson - Power/mation division
Motion Control Specialist - St. Paul, MN
API Motion - Baldor - Bayside - CT
DSPCG - Emerson - IDC - Normag
Superior - Warner Electric
Phone: 651-605-4437 or 800-843-9859
Fax: 651-605-4400 Pager: 888-500-5780
Email: [email protected]

Virgilio Vásquez

Hi, Sandra, I have the same problem that you and I am interested in know how do you implement your pid in your system?

In the IEEE Trans. Aut. Control, a control algorithm is applied in closed loop.

Regards, Virgilio Vásquez L., México, D.F.
[email protected]
Hi Willy.........
your help has been very important. All links are interesting.


I haven't done step motor control engineering in years and only worked with the open-loop applications. However, I think closed-loop
(encoder feedback) stepper applications are either only for position verification (as step
motors can lose synchronization and stall or have step errors) or for step command intervention vs. rotor position to prevent exceeding the critical step angle error. Along these lines, I don't think the classical PID technique is used. You should research step motor control textbooks, industry literature or talk to manufacturers for specific information.