Files
crust-craft/src/pid.h
T
2026-06-10 20:34:59 +02:00

29 lines
741 B
C++

#ifndef PID_CONTROLLER_H
#define PID_CONTROLLER_H
class PIDController
{
private:
double kp, ki, kd, setpoint, integral, prev_measurement, d_filtered;
double max_output, min_output, integral_max, dt;
bool first_run;
// Clamp function (C++11 compatible)
double clamp(double value, double min_val, double max_val) const;
public:
PIDController(double Kp, double Ki, double Kd,
double max_out = 100.0, double min_out = 0.0,
double integ_max = 50.0);
void setSetpoint(double sp);
void setSetKp(double nkp);
void setSetKi(double nki);
void setSetKd(double nkd);
void setDt(double sample_time);
double compute(double current_temp);
void reset();
};
#endif