diff --git a/Control/brewpi/controller.py b/Control/brewpi/controller.py index b7063cc..b68a09c 100644 --- a/Control/brewpi/controller.py +++ b/Control/brewpi/controller.py @@ -241,6 +241,7 @@ class Controller(): # ----------------------------------------- if ovenStateNext != self.ovenState: self.log("{} -> {}".format(self.ovenState, ovenStateNext)) + self.pid.reset() if ovenStateNext == ovenStates.HEAT: self.stirrer.setSpeed(self.stirrSpeedHeat) self.stirrer.setDutyCycle(1.0) diff --git a/Control/brewpi/pid.py b/Control/brewpi/pid.py index 0692675..687e02d 100644 --- a/Control/brewpi/pid.py +++ b/Control/brewpi/pid.py @@ -11,7 +11,7 @@ class Pid(): # Auto windup self.y_min = 0.0 - self.y_max = 100.0 + self.y_max = 500.0 self.diff_aw = 0.0 # Output @@ -23,6 +23,10 @@ class Pid(): p = dict(kp=kp, ki=ki, kd=kd, rho=rho) return p + def reset(self): + self.yi = 0 + self.xd = 0 + def process(self, dt, params, err, derr=None): kp = params['kp'] ki = params['ki']