|
|
|
![]() |
|
|||||||
|
||||||||
|
|
Thread Tools |
Rating:
|
Display Modes |
|
#13
|
||||
|
||||
|
Re: Jaguar Speed Control Only Reaches 50% of Setpoint
From the RDK (pid.c):
// By using a derivitive gain of zero, this reduces to a simple PI controller. // By using a integral and derivitive gain of zero, it reduces to an even // simpler P controller. The response requirements of the process being // controlled determines the terms required to achieve that level of response. // Controlling motors can typically be done with a simple PI controller. Yeah okay. Now in reality when you set the I and D to zero whatever those units are supposed to be, not only does it not reach the set point even with a small value, but when you make the P value too large it overshoots and becomes unstable. So no...this comment is not correct, we can confirm this as our system is one CIM in a gear box driving a tire with an optical encoder on the output of the gear box and the tire is suspended in mid air. We should be able to reach the desired set point like this if this comment from the Jaguar source code is to be believed. Even if we become unstable at the set point, the actual Jaguar doesn't actually get there it stops short of that goal by a not so trivial amount. Normally P loops do experience offset from the disturbances that weren't factored into reaching the set point, but in this case what is the source of the disturbance? The gear box maybe? Course I'll have to dig more, but maybe the Jaguar thinks the motor response is linear and it's really not, so it when it tries to compensate it misses but can't continue to reduce the value as it now see's zero in the P gain. P is gain so it's essentially without a unit (at least if I believe the way the source code names the variables). I allows you to change the I gain, but it doesn't tell you the repeat time. D allows you to change the D gain, but it doesn't tell you the preact time or rate time. So this brings me back to the question of actual Jaguar PID characteristics... The deadtime or deadzone isn't just a product of code. The I and D are dependent on the speed at with the PID loop can execute. Last edited by techhelpbb : 31-01-2011 at 13:30. |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|