A PIDProfile is a data structure for storing PID Gains. This allows us to swap between profiles depending on the conditions (for example, we could have a profile for concrete, and a profile for carpet).
To create a profile, just pass in the gains.
// PID new PIDProfile(p,i,d); // PI new PIDProfile(p,i); // P new PIDProfile(p);
These profiles can be passed into the constructor of a PID object.
new PID(new PIDProfile(p,i,d));
PIDProfile can also automatically generate a profile based on the Zeigler-Nichols tuning method.
// Auto-generated profile with a maximum P of 5, and an oscillation period of 1 second PIDProfile profile = PIDProfile.autoConfig(5.0,1.0);
This will generate the
You may want to auto-generate a profile, but make a slight change to a value. This is where
PIDProfile.modify comes in to play.
// Same generated profile from above, but we are going to increase the P gain by 1 PIDProfile profile = PIDProfile.autoConfig(5.0,1.0).modify(new PIDProfile(1,0.0,0.0));