04-07-2017, 08:29 PM
I just scanned the arduino code and noticed what I think is an error in the PID code
float dInput = (setPoint - currentTemp);
should be something like
float dInput = (error - prevError) / timeChange
if it is like this because there will be negligible change in 1 second, then only run the pid calc every minute
otherwise dInput will be the same as pInput and no weight is given to the rate of change
lots of suggestions http://brettbeauregard.com/blog/2011/04/...mple-time/
float dInput = (setPoint - currentTemp);
should be something like
float dInput = (error - prevError) / timeChange
if it is like this because there will be negligible change in 1 second, then only run the pid calc every minute
otherwise dInput will be the same as pInput and no weight is given to the rate of change
lots of suggestions http://brettbeauregard.com/blog/2011/04/...mple-time/