33 lines
515 B
C++
33 lines
515 B
C++
#ifndef PID_H
|
|
#define PID_H
|
|
|
|
class PID {
|
|
public:
|
|
PID(float kp, float ki, float kd);
|
|
|
|
void setTunings(float kp, float ki, float kd);
|
|
void setOutputLimits(float min, float max);
|
|
void setSampleTime(int sampleTime);
|
|
|
|
void reset();
|
|
|
|
float compute(float setpoint, float input);
|
|
|
|
private:
|
|
float kp;
|
|
float ki;
|
|
float kd;
|
|
|
|
float minOutput;
|
|
float maxOutput;
|
|
float lastOutput;
|
|
|
|
int sampleTime;
|
|
unsigned long lastTime;
|
|
|
|
float integral;
|
|
float lastInput;
|
|
};
|
|
|
|
#endif
|