Program Listing for File PIDController.hpp
↰ Return to documentation for file (src/LouLib/Controllers/PIDController.hpp
)
#ifndef LOULIB_PIDCONTROLLER_HPP
#define LOULIB_PIDCONTROLLER_HPP
#include "../Units/Time.hpp"
namespace LouLib {
namespace Controllers {
class PIDController {
private:
double kp;
double ki;
double kd;
double errorTolerance;
double derivativeTolerance;
double integratorMin;
double integratorMax;
double maxOutput;
double minOutput;
double deltaTime;
double setpoint;
double error;
double derivative;
double integral;
public:
PIDController(double _kp, double _ki, double _kd);
void setTolerance(double _errorTolerance, double _derivativeTolerance = (1<<30));
void setIntegratorRange(double _integratorRangeMin, double _integratorRangeMax);
void setOutputRange(double _minOutput, double _maxOutput);
void setDeltaTime(Units::Time _deltaTime);
void setSetpoint(double _setpoint);
bool atSetpoint();
double getOutput();
void update(double measurement);
};
} // LouLib
} // Controllers
#endif //LOULIB_PIDCONTROLLER_HPP