Robotics! We've got a rotation device controlled with Kollmorgen S300 servodrive. The official support is silent as Jesus, so I've decided to ask here instead.

When it is given a task to set into a direct position, it comes to that position and then oscillates around it with a radius of 4-5 degrees. As we are simply C++ programmers and our job is NOT related with any mechanical devices (we don't know physics), we are stuck. So, the question comes to that:

  1. What are the general reasons for drive oscillation?
  2. How do we fix that?

Thank you very much in advance!


1 Answer 1


I just looked up the model number and it's a servo drive. If you did not tune your servo axis then you will have very bad performance, and what is happening is to be expected. You need to tune your PID loop.

Servo systems are closed loop. This means that the encoder (or resolver) in the servo motor is sending feedback to the drive. The drive using the PID values you provided will use an algorithm which modifies the voltage output to the motor to eliminate the error (actual position vs. the position the motor is supposed to be in). If your PID is not properly set up, a mild oscillation means you are lucky... Your servo could run away and start shaking violently until the drive faults.

To solve your problem you need a tuning guide. I prefer Applied Motion Products, and as a sample of what needs to be done have a look at this document: https://www.applied-motion.com/sites/default/files/QuickTuner_920-0022C_0.pdf. You need the same document for Kollmorgen (who I have worked with, and at the time I was not a fan.. but it was over 10 years ago, maybe they are better now).


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.