AC servo is nonstable at very low speed?

More
06 Dec 2018 04:13 #121923 by thang
" reposting because of wrong index"
Currently, i'm using mesa combo: 5i25 + 7i74 + 7i83 to control AC servo in analog velocity mode. Everything are ok till i run this servo at very low speed, the system become nonstable, i tried retunning pid but it doesnt work. I tried google and found out this problem may happen because of this mode control. Is there any solution to solve this problem. There are some solutions that i found out on google like:
  • Running ac servo at one speed level: my application require many speed lvl
  • decrease encoder resolution: i guess it mean decrease encoder resolution in linuxcnc ( the scale)
  • changing gains on velocity loop inside driver: mhm, i dont know how to do this when driver is running, it maybe impossible for me
How do you guys solve this problem?
More
06 Dec 2018 13:43 - 06 Dec 2018 13:49 #121949 by Todd Zuercher
How could you be controlling the drives in analog velocity mode when those Mesa cards don't have any analog outputs (or encoder inputs)?

Edit
Oops, for some reason I saw 7i84 instead of 7i83, never mind.
Last edit: 06 Dec 2018 13:49 by Todd Zuercher.
More
06 Dec 2018 13:48 #121950 by Todd Zuercher
If your encoder resolution isn't high enough your may have trouble with very slow velocity commands, because you can't accurately calculate the velocity feed back.

What is your encoder resolution (pulses/unit) and at what velocities are you having trouble?
More
06 Dec 2018 17:41 #121972 by alan_3301
How does it perform with the drive enabled but no velocity command?
What is the model of drive and motor?

I have delta 400w servos that perform perfectly, but my 1kw servo will not sit still or perform well at low speeds. It works great at higher speeds. I am in the process of changing the 1kw drive to position control to try and fix this problem.
More
06 Dec 2018 18:00 #121976 by andypugh
It is possible to alter the PID tuning parameters depending on commanded speed.
In fact this was the main motivation for writing the "lincurve" component.

It is quite often useful to be able to alter the PID terms in the fly. For reference, this is the I-gain map for something related to my day-job:



You can see that it is asymmetrical around the zero-error point, and varies with temperature.
And this is only one of 10 that can be chosen dependant on gear.

Compared with this, lincurve is very limited (though you could multiply several together)

I can see it being useful to have large I-gain at zero velocity command, for example, but low P-gain to avoid instability on encoder dither.
Attachments:
More
11 Dec 2018 06:57 - 11 Dec 2018 06:58 #122181 by thang
Sorry for the late replay,

Here is my config:
+ This is an arm robot.
+ AC servo mrj3-A (mitsubishi) + driver is using auto-tunning to close velocity loop
+ 5i25-7i74-7i83 combo for analog control
+ linuxcn config is using pid to close position loop with 5khz at servo-thread
Here is how system work:
+ At high speed, everything seem work OK
+ joint 1 sometime happen this after move done, change Kp doesnt fix it



+ At very low speed, the joint 0 sometimes vibrate heavy but not happen at all position this happen so random that i can understand it :sick:



I also wonder, is there any gain that can eliminate slight vibration at low speed?
Attachments:
Last edit: 11 Dec 2018 06:58 by thang.
More
11 Dec 2018 10:41 #122199 by andypugh
You could try a tiny amount of D, that can (sometimes) have a damping effect.
More
11 Dec 2018 13:44 #122207 by PCW
If changing KP does not change the oscillation, this suggests that the issue is velocity loop tuning in the drive, not LinuxCNC
Time to create page: 0.155 seconds
Powered by Kunena Forum