Quote:
Originally Posted by Ether
The above makes no sense. I think perhaps you are misunderstanding what "closed loop" means.
|
Perhaps I should take a stab at explaining exactly what it means as we're referring to it...
...And reducing the variables (very few of the ones mentioned actually apply in closed-loop control).
Actually, I'll start out with: The only variables listed that would have ANY effect at ALL on, say, a shooter, would be the battery voltage (which really only affects open-loop controls--unless it's totally dead) and the load on the motors (they do have to take a bit of load when the disc goes through--but that's why you have closed-loop control). All of the others have no effect on the control system, or should have been dealt with in the design of the robot (like bearing stress--just get a bearing rated for the load, don't worry about the bearing stress).
Closed-loop control goes something like this: The cRIO sends a command to the speed controller to have the motor go speed X. The controller boosts the motor to speed X (as the controller sees it) by boosting power. A sensor on the shooter wheel indicates speed and sends a signal to the cRIO indicating the actual speed. The cRIO then compares the actual speed to the set speed and then tells the controller to increase power, decrease power, or keep the same power.
cRIO->Controller->Motor->Sensor->cRIO->Controller...
The program could look something like:
speed = 100
if (sensor < 95)
//speed increase
else if (sensor > 105)
//speed decrease
An open-loop control, by contrast, goes:
cRIO->Controller->Motor
and looks like:
speed = 100
in code.
__________________
Past teams:
2003-2007: FRC0330 BeachBots
2008: FRC1135 Shmoebotics
2012: FRC4046 Schroedinger's Dragons
"Rockets are tricky..."--Elon Musk
