- refactored
This commit is contained in:
@@ -117,7 +117,6 @@ class TempController(APid):
|
|||||||
elif diff < THRESH_HEAT_HOLD:
|
elif diff < THRESH_HEAT_HOLD:
|
||||||
state_next = States.HOLD
|
state_next = States.HOLD
|
||||||
self.pid_hold.reset()
|
self.pid_hold.reset()
|
||||||
self.pid_rate.reset()
|
|
||||||
|
|
||||||
if state_next != self.state:
|
if state_next != self.state:
|
||||||
self.state = state_next
|
self.state = state_next
|
||||||
@@ -143,7 +142,7 @@ if __name__ == '__main__':
|
|||||||
"var_R" : 1.0
|
"var_R" : 1.0
|
||||||
},
|
},
|
||||||
"Hold": {
|
"Hold": {
|
||||||
"kp": 0.5,
|
"kp": 0.2,
|
||||||
"ki": 0.0,
|
"ki": 0.0,
|
||||||
"kd": 0.0,
|
"kd": 0.0,
|
||||||
"kt": 0.0
|
"kt": 0.0
|
||||||
|
|||||||
@@ -117,24 +117,24 @@ class TempController(APid):
|
|||||||
# Process state
|
# Process state
|
||||||
state_next = self.state
|
state_next = self.state
|
||||||
if self.state == States.IDLE:
|
if self.state == States.IDLE:
|
||||||
self.pid_rate.reset()
|
if diff >= THRESH_IDLE_HEAT:
|
||||||
if diff > THRESH_IDLE_HEAT:
|
|
||||||
state_next = States.HEAT
|
state_next = States.HEAT
|
||||||
elif diff > -THRESH_IDLE_HOLD:
|
self.pid_rate.reset()
|
||||||
|
elif diff >= -THRESH_IDLE_HOLD:
|
||||||
state_next = States.HOLD
|
state_next = States.HOLD
|
||||||
|
self.pid_rate.reset()
|
||||||
elif self.state == States.HOLD:
|
elif self.state == States.HOLD:
|
||||||
self.pid_rate.reset()
|
if diff >= THRESH_HOLD_HEAT:
|
||||||
if diff > THRESH_HOLD_HEAT:
|
|
||||||
state_next = States.HEAT
|
state_next = States.HEAT
|
||||||
elif diff < -THRESH_HOLD_IDLE:
|
self.pid_rate.reset()
|
||||||
|
elif diff <= -THRESH_HOLD_IDLE:
|
||||||
state_next = States.IDLE
|
state_next = States.IDLE
|
||||||
elif self.state == States.HEAT:
|
elif self.state == States.HEAT:
|
||||||
if diff < -THRESH_HEAT_IDLE:
|
if diff <= -THRESH_HEAT_IDLE:
|
||||||
state_next = States.IDLE
|
state_next = States.IDLE
|
||||||
elif diff < THRESH_HEAT_HOLD:
|
elif diff <= THRESH_HEAT_HOLD:
|
||||||
state_next = States.HOLD
|
state_next = States.HOLD
|
||||||
self.pid_hold.reset()
|
self.pid_hold.reset()
|
||||||
self.pid_rate.reset()
|
|
||||||
|
|
||||||
if state_next != self.state:
|
if state_next != self.state:
|
||||||
self.state = state_next
|
self.state = state_next
|
||||||
@@ -145,9 +145,11 @@ class TempController(APid):
|
|||||||
self.pid_rate.process(heatrate_err, -self.heatrate_ist)
|
self.pid_rate.process(heatrate_err, -self.heatrate_ist)
|
||||||
|
|
||||||
self.y = self.pid_rate.get_y()
|
self.y = self.pid_rate.get_y()
|
||||||
|
|
||||||
self.model.set_power(max(0, 250 + 3500 * self.y))
|
self.model.set_power(max(0, 250 + 3500 * self.y))
|
||||||
self.model.process()
|
self.model.process()
|
||||||
|
|
||||||
|
|
||||||
def get_power(self):
|
def get_power(self):
|
||||||
return self.y
|
return self.y
|
||||||
|
|
||||||
@@ -170,7 +172,7 @@ if __name__ == '__main__':
|
|||||||
"var_R" : 1.0
|
"var_R" : 1.0
|
||||||
},
|
},
|
||||||
"Hold": {
|
"Hold": {
|
||||||
"kp": 0.50,
|
"kp": 0.2,
|
||||||
"ki": 0.0,
|
"ki": 0.0,
|
||||||
"kd": 0.0,
|
"kd": 0.0,
|
||||||
"kt": 0.0
|
"kt": 0.0
|
||||||
|
|||||||
Reference in New Issue
Block a user