Skip to content
Snippets Groups Projects
Commit 9bb7a06b authored by Pascal Engeler's avatar Pascal Engeler
Browse files

Added turn on/off functionality

parent 70bb59fb
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,7 @@ std::vector<double> Pid_controller::pid_vec_ = {0., 0., 0.}; //current values of
std::vector<double> Pid_controller::kpid_vec_ = {0., 0., 0.}; //coefficients Kp Ki Kd
double Pid_controller::I_reset_ = 0.; //reset value of I
double Pid_controller::I_reset_errsq_ = 0.5; //value of error*error above which the I-term is held in reset
bool Pid_controller::enabled_ = true;
void Pid_controller::init(double setpoint, std::vector<double> kpid, double I_reset, double I_reset_errsq){
......@@ -33,6 +34,11 @@ void Pid_controller::init(double setpoint, std::vector<double> kpid, double I_re
}
void Pid_controller::update_pid(double temperature){
if(!enabled_){ //if we have been turned off, stay off
output_ = 0.09;
Ltc6992::set_level(output_);
return;
}
//calculate error from setpoint
double error = setpoint_ - temperature;
//update P,I,D
......@@ -92,3 +98,12 @@ double Pid_controller::get_I_reset(){
double Pid_controller::get_setpoint(){
return setpoint_;
}
void Pid_controller::turn_off(){
output_ = 0.09;
enabled_ = false;
}
void Pid_controller::turn_on(){
enabled_ = true;
}
\ No newline at end of file
......@@ -21,6 +21,9 @@ public:
static double get_I_reset();
static double get_setpoint();
static void turn_off();
static void turn_on();
private:
static double setpoint_; //target temperature in °C
static double output_; //output to LTC6992
......@@ -28,6 +31,8 @@ private:
static std::vector<double> kpid_vec_; //coefficients Kp Ki Kd
static double I_reset_; //reset value of I
static double I_reset_errsq_; //value of error*error above which the I-term is held in reset
static bool enabled_;
};
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment