- reset PID_hold

git-svn-id: http://moon:8086/svn/projects/HendiControl@260 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
2019-04-23 13:15:42 +00:00
parent 3742600b5a
commit c4ea00bd93
+4 -3
View File
@@ -24,7 +24,7 @@ class Controller(TimerListener):
self.stirrer = stirrer self.stirrer = stirrer
self.dt = params['dt'] self.dt = params['dt']
self.params = params self.params = params
self.pid = Pid() self.pid_hold = Pid()
self.pid_rate = Pid() self.pid_rate = Pid()
self.timer_ist = 0 self.timer_ist = 0
self.sensorTime_v = np.empty(0) self.sensorTime_v = np.empty(0)
@@ -229,10 +229,10 @@ class Controller(TimerListener):
ovenStateNext = ovenStates.NOP ovenStateNext = ovenStates.NOP
if self.ovenState != 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) 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_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) power_soll = min(power_hold, power_heat)
self.plant.setPower(power_soll) self.plant.setPower(power_soll)
@@ -255,6 +255,7 @@ class Controller(TimerListener):
self.stirrer.setDutyCycle(1.0) self.stirrer.setDutyCycle(1.0)
if ovenStateNext == ovenStates.HOLD: if ovenStateNext == ovenStates.HOLD:
self.pid_hold.reset()
self.stirrer.setSpeed(self.stirrSpeedRast) self.stirrer.setSpeed(self.stirrSpeedRast)
self.stirrer.setDutyCycle(self.stirrDutyRast) self.stirrer.setDutyCycle(self.stirrDutyRast)