Motor "vibrations" when in closed loop position mode

14 years 9 months ago #8943760 by gadaga
<P style="MARGIN: 0px">Hi,
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">I am running the AX 2550 in closed loop position mode on both chanels. When selectinga new position via rs232 I get overshoot and heavy vibrations. I have both the proportional and differential params on theit default "16" value.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">I set the integral part to 0 as this generates "pumping" (as the integral component is reset each time the position is reached and as I have some "rest force" when this position is reached, the motor is no longer held by the integral part and moves).
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">I've tried many different settings of the P and D params in the PID algorithm but is does not seem to solve the problem.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">What to do ? When will the new firmware come out, correcting this resetting of the integral part ?
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">Thanks for your good support

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

14 years 9 months ago #8952756 by cosma

The first thing to do is to try to tune the PID the best possible.
<P style="MARGIN: 0px">To see what is happening throughout the process, use Roborun to see the set point, the analog feedback position, and the power applied to the motor. Note that the power value is displayed unsigned which make this monitoring a bit tricky.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">Try first to have D and I at 0. You should be able to get the the position loop to close. D will make the loop to respond quicker to change so it can be omitted to start.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">However, depending on how much pull there is applied to your motor at rest and depending on the motor's efficiency, you may find that the motor never exactly reaches the setpoint. Still, try to use a P value that will get you as close as possible with minimal overshoot.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">Then start rising I. It position mode, you will find that I is extremely sensitive. So start with a minimal value and increase one step each time.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">If your motor is pulled at rest, there will be no escaping to get some kind of vibrating. When the desired position is reached, power to the motor is cut off. With our algorithm, this is done very quicky (because the Integrator is reset), but even if it was not, the Integrator would eventually decrease to 0 and power to the motor stop. Without power, the external force will cause your motor to move away from the destination and reactivate the PID.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">Without the Integrator reset, we found that there was a lot of overshoot. Reseting it makes it work much better.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">If you cannot make the loop sufficiently stable, we could issue a modifed version of the software without the integrator reset, for you to try. It will be an unsupported version.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">Also, we should be able to quickly release a beta version of the software with the PID loop timing of 4ms vs 16ms. This should bring more stability to your system than a non reseting integrator

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

14 years 9 months ago #8955000 by gadaga

Thanks again for your quick and acurate replies !
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">The 4ms version sounds very promising. So indead, yes I think it would be very worthwhile as in that case the algorithm works 4 times faster and would, I suppose, better manage the position as it has much more intermediate position feedbacks and therefore it can more smootly correct the currents outputted to the motors. Could you provide me with it please ?
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">For what is the non reset "I" version, what would be the behaviour be in case of a quite high "rest force" when reaching the desired position. I suppose the Integral part will increase the current over time as long as there is a position error. Then, when position is reached, if it maintains that current at the momement the position was reached, I suppose that the motor should now remain in place (the good position) and not drop away from it as when the "I" current would be reset (and will be again 0 initially). So yes it seems an interesting solution to maintain the power.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">However, I am interested by the I current only because I thought it might help to smooth the arrival at the position and not have the violent vibrations and overshoots. The fact that I do not obtain the exact position is not a problem for my application so that is not my reason for wanting to use the I current. Do you think that the I parameter would help to smooth ? If yes I am interested to have this firmware version, if not, then no.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">Thanks for your feedback

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

14 years 9 months ago #8955663 by cosma
<P style="MARGIN: 0px">Please allow a few days for us to clean up and verify the 4ms version.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">Regarding the resetting I, I suggest that you try to get the best results off the current setup. If the rest force is high, it will be difficult to have a solution that will cause your motor to stay at a stable position. Playing with P alone may do the trick, if you accept that the position may not be exactly reached and allow power to flow even as the motor no longer spins.

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

14 years 9 months ago #8976918 by gadaga
<P style="MARGIN: 0px">Thanks,
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">I'll wait for the 4Ms version (impatiently)
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">For what is your suggestion (P only) : I get reasonable behavior with a
<P style="MARGIN: 0px">^11 0A setting (10 and 0F set to 00) but still with ocasional vibrations. However I find 0A way too low as the motors are less reactive and I miss minor detailed movements!
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">Do you think that I could go to higher P settings in putting a little condensator over the pot output ? That might smooth eventual noise coming out of the pot ?
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">My pots are linear 5Kohm pots. Should I try higher? Lower ?

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

14 years 9 months ago #8977166 by cosma
<P style="MARGIN: 0px">Adding some D should make your system a bit more responsive without necessarily adding instability.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">You can try putting a capacitor but doing so may make the feedback to be a bit sluggish depending on the value. Doing so is more likely to add instability but you can try.
<P style="MARGIN: 0px">
<P style="MARGIN: 0px">5K pot is fine. A different value will not make any difference in this case

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

14 years 8 months ago #9274490 by cosma

We are sending you a beta version of the firmware with 4ms loop via personal email

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

Moderators: tonysantoni
Time to create page: 0.177 seconds