I was asked by Adamdb of team #1583 to post a code example of what we did to execute a PID loop. The two files, pid.c and pid.h are attached below.
in order to use a pid loop, you must do a couple of things. first, you create the data structure, for example:
in some initialization code later, you need to initialize the constants
PHP Code:
init_pid(&arm, 100, 10, 10, 100, 5);
(see the included file for the argument list)
then finally, you can execute the loop by doing this
PHP Code:
pwm03 = pid_control(&arm, errorValue);
It really isnt that bad, and if you notice a lack of comments/explanation, please make a note of it. Also, this code doesnt go into the theory behind it, it only executes the theory. so if you dont know what a proportional coefficient is, then i suggest that you read this:
PID without a PhD
happy control-loop-ing.
Edit: i added the default code plus the PID code for those of you who are having trouble getting started.