Quote:
Originally Posted by Geek 2.0
So how would one go about tuning a speed-based PID? I mean, the thing is on the ground and moving, and if you have multiple PID loops going, each one will affect the others, right? It just seems like it would be a huge pain to tune. Someone have a method they wouldn't mind sharing?
|
And there lies one problem with the application of PID control... Unless you have developed a mathematical model of the whole system, an analytical/simulation solution is fairly hard to come by.
Now, to specifically answer your question I'd probably do something like the following. Note that I haven't done this specifically for multiple loops so take it all with a grain of salt. I'm sure someone here has more experience in this regards as most of my experience with successful loops has come with a fully modeled system. Most importantly you are going to want telemetry data on the system's response as you are tuning. Without this you'll be taking a stab in the dark saying "I think that was better..".
1. Assuming multiple control loops, tune them using the same constants throughout. Unless the system each controller is controlling is vastly different, this
should get you pretty close.
2. Once you've gotten pretty close with each controller, analyze your telemetry data and tune from that making only
ONE change at a time and proceeding to test and analyze. Rinse and repeat as needed.
For example, lets say you have two control loops, one for the speed of the left drive wheels and one for the right drive wheels. You've tuned them using the same constants, however your telemetry (and probably physical observations) indicate that your right drive wheels speed up slightly slower than the left leading to the robot veering to the left before the right wheels catch up and straighten out. In this situation I would probably increase Kp slightly to improve the rise time.
Again, this is all in theory and assumes an understanding of manually tuning of a PID controller. If I remember correctly back in 2005 my team used a control loops on the speed of our drive wheels. We only used one controller for both however and achieved acceptable results. The robot was fairly equally balanced though so your mileage may vary. I'd definitely suggest trying to tune them the same first and then if that doesn't work, go for individual tuning of the loops.