![]() |
A port of the ROBOTC pidlib library, macros and prototypes. More...
Go to the source code of this file.
Data Structures | |
| struct | _pidController |
| Structure to hold all data for one instance of a PID controller. More... | |
Macros | |
| #define | kPidLibVersion 102 |
| Current pidlib Version is 1.02. More... | |
| #define | PIDLIB_USE_DYNAMIC 1 |
| Use heap for pid controller data rather than static data. More... | |
| #define | MAX_PID 4 |
| Allow 4 pid controllers. More... | |
| #define | PIDLIB_LUT_SIZE 128 |
| size of linearizing table More... | |
| #define | PIDLIB_LUT_FACTOR 20.0 |
| severity pf the linearize power function More... | |
| #define | PIDLIB_LUT_OFFSET 10 |
| offset below which the linearize function is not used More... | |
| #define | PIDLIB_INTEGRAL_DRIVE_MAX 0.25 |
| This causes the motor never to be given more than a 0.25 drive command due to integral. More... | |
Typedefs | |
| typedef struct _pidController | pidController |
| Structure to hold all data for one instance of a PID controller. More... | |
Functions | |
| pidController * | PidControllerInit (float Kp, float Ki, float Kd, tVexSensors port, int16_t sensor_reverse) |
| Initialize the PID controller. More... | |
| pidController * | PidControllerInitWithBias (float Kp, float Ki, float Kd, float Kbias, tVexSensors port, int16_t sensor_reverse) |
| Initialize the PID controller - includes bias. More... | |
| int16_t | PidControllerUpdate (pidController *p) |
| Update the pid process variables. More... | |
| void | PidControllerMakeLut (void) |
| Create a power based lut. More... | |
A port of the ROBOTC pidlib library, macros and prototypes.
| #define kPidLibVersion 102 |
Current pidlib Version is 1.02.
| #define PIDLIB_USE_DYNAMIC 1 |
Use heap for pid controller data rather than static data.
| #define MAX_PID 4 |
Allow 4 pid controllers.
| #define PIDLIB_LUT_SIZE 128 |
size of linearizing table
| #define PIDLIB_LUT_FACTOR 20.0 |
severity pf the linearize power function
| #define PIDLIB_LUT_OFFSET 10 |
offset below which the linearize function is not used
| #define PIDLIB_INTEGRAL_DRIVE_MAX 0.25 |
This causes the motor never to be given more than a 0.25 drive command due to integral.
| typedef struct _pidController pidController |
Structure to hold all data for one instance of a PID controller.
| pidController* PidControllerInit | ( | float | Kp, |
| float | Ki, | ||
| float | Kd, | ||
| tVexSensors | port, | ||
| int16_t | sensor_reverse | ||
| ) |
Initialize the PID controller.
| pidController* PidControllerInitWithBias | ( | float | Kp, |
| float | Ki, | ||
| float | Kd, | ||
| float | Kbias, | ||
| tVexSensors | port, | ||
| int16_t | sensor_reverse | ||
| ) |
Initialize the PID controller - includes bias.
| int16_t PidControllerUpdate | ( | pidController * | p) |
Update the pid process variables.
| void PidControllerMakeLut | ( | void | ) |
Create a power based lut.