diff --git a/components/pid/temp_controller.py b/components/pid/temp_controller.py index 79d171e..43f785f 100644 --- a/components/pid/temp_controller.py +++ b/components/pid/temp_controller.py @@ -16,8 +16,8 @@ class TempController(AttributeChange): def __init__(self, params): AttributeChange.__init__(self) dt = params['dt'] - self.pid_hold = Pid(params['Hold']) - self.pid_rate = Pid(params['Heat']) + self.pid_hold = Pid(dt) + self.pid_rate = Pid(dt) self.theta_ist_set = 20 self.theta_soll_set = 0 self.heatrate_ist_set = 0 @@ -26,11 +26,13 @@ class TempController(AttributeChange): self.theta_ist = 0 self.heatrate_ist = 0 self.params = params - self.kalman = Kalman(params['Kalman']) + self.kalman = Kalman(dt, params['Kalman']) self.y = -1 self.state = States.IDLE self.use_kalman = True self.kalman.initial((self.theta_ist_set, 0)) + self.pid_hold.set_params(params['Hold']) + self.pid_rate.set_params(params['Heat']) def set_theta_ist(self, value): self.theta_ist_set = value @@ -109,7 +111,6 @@ if __name__ == '__main__': tc_params = { "dt": 1.0, "Kalman": { - "dt": 1.0, "var_P" : 1.0, "var_Q" : 0.0001, "var_R" : 1.0 @@ -122,10 +123,9 @@ if __name__ == '__main__': "kt": 0.0 }, "Heat": { - "dt": 1.0, - "kp": 0.2, - "ki": 0.01, - "kd": 2.0, + "kp": 0.05, + "ki": 0.005, + "kd": 1.0, "kt": 1.5 } }