diff --git a/Control/brewpi/controller.py b/Control/brewpi/controller.py index 3f7a39a..be72ae5 100644 --- a/Control/brewpi/controller.py +++ b/Control/brewpi/controller.py @@ -46,15 +46,8 @@ class Controller(): self.heatrate_sm = Smoother(0.01) self.theta_err_sm = Smoother(1.0) self.heatrate_err_sm = Smoother(1.0) - - kparams = { - 'dt': 1, - 'var_P': 0, - 'var_Q': 0.00001, - 'var_R': 2, - 'var_Z': 0 - } - self.kalman = Kalman(kparams) + self.useKalman = params['useKalman'] + self.kalman = Kalman(params['kalman']) def log(self, s): now = time.time() @@ -132,7 +125,7 @@ class Controller(): def rast(self, rast): # Temperature - self.theta = self.plant.getTemperature() + theta = self.plant.getTemperature() theta_soll = rast['temp'] heatrate_soll = rast['heatRate'] self.log("Target temperature {} °C".format(theta_soll)) @@ -142,13 +135,13 @@ class Controller(): timer_soll = 60*rast['time'] # Kalman filter initial value - self.kalman.initial((self.theta, 0)) - self.theta_sm.initial(self.theta) + self.kalman.initial((theta, 0)) + self.theta_sm.initial(theta) # ------------------------------ # The loop # ------------------------------ - doLoop = theta_soll > self.theta + doLoop = theta_soll > theta if doLoop: # Stirrer self.stirrer.activate() @@ -156,7 +149,6 @@ class Controller(): self.stirrer.setCycleTime(self.stirrCycleTime) - useKalman = False while(doLoop): time_start = time.time() @@ -184,7 +176,7 @@ class Controller(): self.theta_v = np.append(self.theta_v, theta_ist) self.heatrate_v = np.append(self.heatrate_v, dtheta_ist * 60/self.dt) - if useKalman: + if self.useKalman: ctrl_theta_err = theta_soll - theta_ist_k ctrl_heatrate_err = heatrate_soll - dtheta_ist_k * 60/self.dt ctrl_theta = theta_ist_k