From fcd100ef0ea496eb1f8b8721bf86525e199346f1 Mon Sep 17 00:00:00 2001 From: jens Date: Sun, 6 Dec 2020 21:43:12 +0100 Subject: [PATCH] - GUI: fixed initial of heatrate - added constants for DT --- brewpi.py | 30 +++++++++++++++--------------- brewpi_gui.py | 1 + 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/brewpi.py b/brewpi.py index 6816d1c..579c29a 100644 --- a/brewpi.py +++ b/brewpi.py @@ -10,7 +10,7 @@ from ws.message import MsgIo, MessageDispatcher from utils.value import Value, ChangedFloat, ChangedInteger TC_DT = 0.1 - +PARAMS_DT = 0.1 class ATask: def __init__(self, interval): @@ -22,13 +22,12 @@ class ATask: class TempSensorTask(ATask): - def __init__(self, sensor: ATemperatureSensor, interval, msg_handler: MsgIo, kalman: kalman.Kalman): + def __init__(self, sensor: ATemperatureSensor, interval, msg_handler: MsgIo): ATask.__init__(self, interval) self.msg_handler = msg_handler msg_handler.set_recv_handler(self.recv) self.sensor = sensor - self.kalman = kalman def on_temp_changed(self, value): asyncio.create_task(self.send({'Temp': value})) @@ -206,21 +205,13 @@ if __name__ == '__main__': server = WsServerMultiUser(listener=dispatcher) taskmgr = TaskManager() - # Kalman Filter - kalman_params = { - "dt" : 1.0, - "var_P" : 1, - "var_Q" : 0.0001, - "var_R" : 1 - } - # Sensor sensor = TempSensorSim() - taskmgr.add(TempSensorTask(sensor, TC_DT, dispatcher.msgio_get("Sensor"), kalman)) + taskmgr.add(TempSensorTask(sensor, TC_DT, dispatcher.msgio_get("Sensor"))) # Plant pot_params = { - "dt" : 1.0, + "dt" : PARAMS_DT, "theta" : 20, "C" : 4190, "M" : 20, @@ -241,20 +232,29 @@ if __name__ == '__main__': # Temperature Controller tc_params = { "Hold": { - "dt": 1.0, + "dt": PARAMS_DT, "kp": 0.5, "ki": 0.005, "kd": 0.0, "rho": 1.0 }, "Heat": { - "dt": 1.0, + "dt": PARAMS_DT, "kp": 0.1, "ki": 0.01, "kd": 0.0, "rho": 1.0 } } + + # Kalman Filter + kalman_params = { + "dt" : PARAMS_DT, + "var_P" : 1, + "var_Q" : 0.0001, + "var_R" : 1 + } + tc = temp_controller.TempController(tc_params, kalman_params) tc.set_on_changed("y", heater_task.actor) tc_task = TcTask(tc, TC_DT, dispatcher.msgio_get("TempCtrl")) diff --git a/brewpi_gui.py b/brewpi_gui.py index e6f23b7..85dee3c 100644 --- a/brewpi_gui.py +++ b/brewpi_gui.py @@ -44,6 +44,7 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow): self.slider_pwr_initial_update = True self.slider_temp_soll_initial_update = True self.checkbox_heater_activate_initial_update = True + self.heatrate_soll_initial_update = True self.ws_client.connect(uri="ws://localhost:8765") def disconnect(self):