27 lines
638 B
C++
27 lines
638 B
C++
#ifndef PI_CONTROLLER_H
|
|
#define PI_CONTROLLER_H
|
|
|
|
#include "p_controller.h"
|
|
|
|
class PI_controller : public P_controller
|
|
{
|
|
private:
|
|
static constexpr double U_MAX = 100.0; // %
|
|
static constexpr double U_MIN = -100.0; // %
|
|
|
|
double Ti;
|
|
double default_Ti;
|
|
double T;
|
|
double integral;
|
|
public:
|
|
PI_controller(double Kp, double Ti, double T);
|
|
double update(double ref, double actual) override;
|
|
void reset() override;
|
|
void restore_defaults() override;
|
|
|
|
bool set_Ti(double value) override;
|
|
double get_Ti() const override { return Ti; }
|
|
};
|
|
|
|
#endif
|