View Single Post
  #1   Spotlight this post!  
Unread 26-02-2007, 13:42
Uberbots's Avatar
Uberbots Uberbots is offline
Mad Programmer
AKA: Billy Sisson
FRC #1124 (ÜberBots)
Team Role: College Student
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Avon
Posts: 739
Uberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond reputeUberbots has a reputation beyond repute
Generic PID control code

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:
PHP Code:
DT_PID arm
in some initialization code later, you need to initialize the constants
PHP Code:
init_pid(&arm10010101005); 
(see the included file for the argument list)

then finally, you can execute the loop by doing this
PHP Code:
pwm03 pid_control(&armerrorValue); 
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.
Attached Files
File Type: zip pid.zip (1.5 KB, 524 views)
File Type: zip pidController.zip (206.3 KB, 515 views)
__________________
A few of my favorite numbers:
175 176 177 195 230 558 716 1024 1071 1592 1784 1816
RPI 2012
BREAKAWAY

Last edited by Uberbots : 26-02-2007 at 22:30. Reason: added default code + pid code