Quote:
|
Originally Posted by TedP
Some Simple Benefits (and Cons) of Feedback Control
Being able to count on a controller to deliver a very simple task is so important. This allows the driver to simply "suggest" a speed with his or her joystick and the robot will handle all the rest. The driver can then get up the step at a slow speed, for example. Rather than running straight into the step, the driver holds the joystick constant and the feedback controller figures out how to get up the step to maintain its own speed.
Additionally, for that same reason, a real feedback controller actually makes the torque-speed curve of a motor almost entirely horizontal (within a certain range). This actually can be dangerous because the robot will perform CONSISTENTLY under ANY BATTERY POWER and it may be easy to forget to monitor it's battery life.
Plus, these controllers are extremely robust. People spend hours dealing with open-loop filters on joystick inputs and often come up with odd non-linear controllers which have no easy way to optimize. The linear feedback control system uses the motors own natural low-pass effects to smooth out its own input. The linear feedback control system needs very little tweaking to be operational, and will do its hardest to perform as close to optimally as possible even on a low battery or when facing an odd load.
However, there is a much stronger dependence on hardware. There is a tremendous increase in complexity. There simply are costs for all the things that the feedback gains you.
Anyway, I hope that code might help some people. I'm afraid my post might be too long to help pepole directly, but hopefully some will read it. The system works great on our robot; I hope it can help yours.
|
TedP, let me start by saying that was an excellent post that explained several things i wasn't clear about. I know that you said for most applications in FIRST, a simple linear PID loop does the trick, but i have a drive system application in which i need an accurate velocity needs to be reached pretty quickly (much quicker than a simple skid steer design requires) and also needs to be accurate and fast for a pretty wide range of velocities. Maybe the best way would be to use some more complex non linear feedback loop, but i thought that maybe a simpler solution would be to use both an open loop (a calibration curve) and a linear feedback loop. We are starting this project now, so time to tweak all the coefficients and the calibration curve is not a major consideration. Is there any reason against doing something like this, or were you just saying that, in general, a linear PID feedback loop should do the trick, and that open-loop systems take too much time?