|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools |
Rating:
|
Display Modes |
|
#16
|
|||||
|
|||||
|
Re: Arm Position Control
Quote:
|
|
#17
|
|||||
|
|||||
|
Re: Arm Position Control
Quote:
A sprocket-and-chain scheme can put a "virtual pivot point" anywhere convenient. |
|
#18
|
||||
|
||||
|
Re: Arm Position Control
Quote:
|
|
#19
|
||||
|
||||
|
Re: Arm Position Control
-In the context of an arm, velocity PID is useless. It would not provide the desired response at all.[/quote]
Maybe i read his question wrong but if you are wanting to move the arms from 0 deg to 180 deg and have your controller take into account the increased torque a velocity PID controller would be perfect for this. This would allow the arms to move at a constant angular rate regardless of the torque needed. However this would not allow the arm to stop right at 0 and 180 deg. To do this you would need to transition from the velocity control to a position control when you got close to your desired position. |
|
#20
|
|||||
|
|||||
|
Re: Arm Position Control
Correct, it would be more optimal between the 45's but past that it would not help as much.
|
|
#21
|
|||||
|
|||||
|
Re: Arm Position Control
Quote:
|
|
#22
|
|||||
|
|||||
|
Re: Arm Position Control
Quote:
Stacking and switching PID controls is usually a lot more work than it's worth. I agree Joe, the need for any gain scheduling or other controls is dependent on the arm. Some arms need adjustment, some do not. I have worked with both. |
|
#23
|
||||
|
||||
|
Re: Arm Position Control
Quote:
|
|
#24
|
|||||
|
|||||
|
Re: Arm Position Control
Exactly.
|
|
#25
|
|||||
|
|||||
|
Re: Arm Position Control
You could also use a gas spring to limit the speed that the arm could move. Set up the same as my last suggestion. It would give you hard stops on both ends, it wouldn't help with the torque but it would help with the reaction time of the pid being different in different locations.
|
|
#26
|
||||
|
||||
|
Re: Arm Position Control
[quote=apalrd;1339275]Or you could rely on the derivative control to slow it down properly.
The D term just slows down the response of the system not the overall speed of the system at Steady State. You are correct though that switching between two controllers needs to be done carefully. |
|
#27
|
||||
|
||||
|
Re: Arm Position Control
Quote:
|
|
#28
|
|||||
|
|||||
|
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. |
|
#29
|
||||
|
||||
|
Re: Arm Position Control
Quote:
You could also adjust your gains based on where the arm is. The way to tune this is to set up three or four different PID loops, each of which are tuned to make the arm respond nicely when going to a specific place. Then, you can take your kP/kI values that work for each of the locations and find a nice curve that fits them and use that curve to modify the gains based on where your arm is. As for preventing integral wind-up, I just turn off the I term until we are withing 10 percent of the target. |
|
#30
|
||||
|
||||
|
Re: Arm Position Control
Quote:
Quote:
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|