PID tuning in closed loop is not exactly possible because of noise

7 years 1 week ago - 7 years 1 week ago #29532045 by Arowana
I am using a SDC2130 to control a motor in closed loop. Optical encoders on the motor shaft is used for feedback. The encoder power supply is connected to the 5V. The reading is a pulse and connected to the roboteq.

The control works nicely with low values of P and I. However even with very low values of D (0.1), the motor shaft vibrates at a high frequency.

I looked at the speed readings coming from roboteq and there is a noise peak of 10% of the speed at low speed, and around 3% at moderate speed.

My question is do you think this noise is reasonable and good enough to be able to do a complete PID tuning? If not what are the solutions? I wonder what is wrong in the setup.

Please Log in or Create an account to join the conversation.

7 years 1 week ago #29532054 by blake
When PID is tuned correctly you should have no vibration. Unfortunately PID tuning can be tedious as there are no exact gain values I can give you to just make it work right. PID gains will differ from motor to motor and always require some trial and error to get them right.

The first thing to recognize is exactly which closed loop operating mode you are operating in:

If you are using closed loop speed/torque, then the Integral gain is going to be most important. We suggest beginning with P=0, I=1, D=0 and working from there. You should only need to tune the I gain, if you do need to add any P it should only be a very increment, such as 0.1 or 0.2.

If you are using a closed loop position mode, then the Integral gain is most important. Like the P gain in speed/torque mode, you will want to mostly adjust I in closed loop position. If you need to add any P it should only be a very small increment.

Please Log in or Create an account to join the conversation.

7 years 1 week ago #29532060 by Arowana
I don't those are vibrations. I did a table top test with no load closed loop or open loop. I can still see slight variations.
I mean for 500 RPM I will get a value oscillating between 504 and 496 RPM in closed loop. Or the same range in open loop.

The problem is that when the load is added and the power supply from a battery the noise is raised to 10 RPM approximately. It seems that we can still change KP, KI, KD properly now (after a small bugfix). However I wonder what is an acceptable limit for this noise so it doesn't interfere with the D gain.

Please Log in or Create an account to join the conversation.

7 years 1 week ago #29532061 by blake
What RoboteQ controller are you using? I am assuming you are operating in closed loop speed mode is that correct? What is the maximum RPM you have set for your motor? It sounds like you are trying to operate in a lower velocity that is a lower percentage of your motors maximum RPM. If this is correct you would get better results using closed loop speed position mode. This closed loop operating mode works better for lower speeds. You'll want to begin with a PID of 1, 0, 0 for closed loop speed position mode. Additionally, ensure that your controller has the latest firmware, v1.6 available on our website.

Please Log in or Create an account to join the conversation.

7 years 6 days ago #29532062 by Arowana
I use the SDC2130 in closed loop speed mode. The maximum speed for the motor is 2600 RPM. However it will be used in operation from 0 RPM to approximately 2400 RPM.

During my test I was using it at 500 RPM to 1000 RPM.

We use firmware 1.4, we will think about updating. In which way will it improve?

I can't see the speed position mode you are referring to in the documentation.

Please Log in or Create an account to join the conversation.

7 years 6 days ago #29532063 by blake
There have been several bug fixes since that 1.4 firmware. It is very outdated since v1.4 was released 2 years ago. Please update the firmware and see if the problem persists.

Please Log in or Create an account to join the conversation.

Moderators: tonysantoni
Time to create page: 0.068 seconds