From c4ea00bd939b7ea5c13551e8c654692518cd8b82 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Tue, 23 Apr 2019 13:15:42 +0000 Subject: [PATCH] - reset PID_hold git-svn-id: http://moon:8086/svn/projects/HendiControl@260 fda53097-d464-4ada-af97-ba876c37ca34 --- Control/brewpi/controller.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Control/brewpi/controller.py b/Control/brewpi/controller.py index 1c00661..8e9353c 100644 --- a/Control/brewpi/controller.py +++ b/Control/brewpi/controller.py @@ -24,7 +24,7 @@ class Controller(TimerListener): self.stirrer = stirrer self.dt = params['dt'] self.params = params - self.pid = Pid() + self.pid_hold = Pid() self.pid_rate = Pid() self.timer_ist = 0 self.sensorTime_v = np.empty(0) @@ -229,10 +229,10 @@ class Controller(TimerListener): ovenStateNext = ovenStates.NOP if self.ovenState != ovenStates.NOP: - self.pid.process(self.dt, self.params['Hold']['Acqu']['Pid'], ctrl_theta_err) + self.pid_hold.process(self.dt, self.params['Hold']['Acqu']['Pid'], ctrl_theta_err) self.pid_rate.process(self.dt, self.params['Heat']['Acqu']['Pid'], ctrl_heatrate_err) - power_hold = max(self.params['P_min'], min(self.params['P_max'], self.params['P_max']*self.pid.get_y())) + power_hold = max(self.params['P_min'], min(self.params['P_max'], self.params['P_max'] * self.pid_hold.get_y())) power_heat = max(self.params['P_min'], min(self.params['P_max'], self.params['P_max']*self.pid_rate.get_y())) power_soll = min(power_hold, power_heat) self.plant.setPower(power_soll) @@ -255,6 +255,7 @@ class Controller(TimerListener): self.stirrer.setDutyCycle(1.0) if ovenStateNext == ovenStates.HOLD: + self.pid_hold.reset() self.stirrer.setSpeed(self.stirrSpeedRast) self.stirrer.setDutyCycle(self.stirrDutyRast)