|
Re: Arm Position Control
In PID:
-P is the error of the position
-I is the accumulated error of position (steady state error)
-D is the velocity and often opposes the other two terms
A proper D gain will compensate for the velocity. With all of the gains set correctly, there will be a point where the error is so great that the sum of P, I, and D is larger than the motor's max output, so the negative D term will have no effect. As the arm slows down, the D term will compensate for the velocity (inertia) as the arm approaches the target.
When I calibrate PID loops by hand, I usually only end up with a PI controller. I have tried to add D manually with little success. When I calibrated automatically (using the ultimate stability method), I found that the D gains were many times what I was getting by hand, but the system worked beautifully.
On a side note, I autotuned a full PID loop on two VRC robots (relatively high intertia, fast gear ratio, more counterforce than gravity long arms) and found that a single PID gain set was adequate. On a cam driven linkage on our 2012 FRC robot, I needed to schedule the gains because the motion ratios changed significantly over the stroke.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor
"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
|