- GUI: fixed initial of heatrate

- added constants for DT
This commit is contained in:
jens
2020-12-06 21:43:12 +01:00
parent e39323f694
commit fcd100ef0e
2 changed files with 16 additions and 15 deletions
+15 -15
View File
@@ -10,7 +10,7 @@ from ws.message import MsgIo, MessageDispatcher
from utils.value import Value, ChangedFloat, ChangedInteger from utils.value import Value, ChangedFloat, ChangedInteger
TC_DT = 0.1 TC_DT = 0.1
PARAMS_DT = 0.1
class ATask: class ATask:
def __init__(self, interval): def __init__(self, interval):
@@ -22,13 +22,12 @@ class ATask:
class TempSensorTask(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) ATask.__init__(self, interval)
self.msg_handler = msg_handler self.msg_handler = msg_handler
msg_handler.set_recv_handler(self.recv) msg_handler.set_recv_handler(self.recv)
self.sensor = sensor self.sensor = sensor
self.kalman = kalman
def on_temp_changed(self, value): def on_temp_changed(self, value):
asyncio.create_task(self.send({'Temp': value})) asyncio.create_task(self.send({'Temp': value}))
@@ -206,21 +205,13 @@ if __name__ == '__main__':
server = WsServerMultiUser(listener=dispatcher) server = WsServerMultiUser(listener=dispatcher)
taskmgr = TaskManager() taskmgr = TaskManager()
# Kalman Filter
kalman_params = {
"dt" : 1.0,
"var_P" : 1,
"var_Q" : 0.0001,
"var_R" : 1
}
# Sensor # Sensor
sensor = TempSensorSim() sensor = TempSensorSim()
taskmgr.add(TempSensorTask(sensor, TC_DT, dispatcher.msgio_get("Sensor"), kalman)) taskmgr.add(TempSensorTask(sensor, TC_DT, dispatcher.msgio_get("Sensor")))
# Plant # Plant
pot_params = { pot_params = {
"dt" : 1.0, "dt" : PARAMS_DT,
"theta" : 20, "theta" : 20,
"C" : 4190, "C" : 4190,
"M" : 20, "M" : 20,
@@ -241,20 +232,29 @@ if __name__ == '__main__':
# Temperature Controller # Temperature Controller
tc_params = { tc_params = {
"Hold": { "Hold": {
"dt": 1.0, "dt": PARAMS_DT,
"kp": 0.5, "kp": 0.5,
"ki": 0.005, "ki": 0.005,
"kd": 0.0, "kd": 0.0,
"rho": 1.0 "rho": 1.0
}, },
"Heat": { "Heat": {
"dt": 1.0, "dt": PARAMS_DT,
"kp": 0.1, "kp": 0.1,
"ki": 0.01, "ki": 0.01,
"kd": 0.0, "kd": 0.0,
"rho": 1.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 = temp_controller.TempController(tc_params, kalman_params)
tc.set_on_changed("y", heater_task.actor) tc.set_on_changed("y", heater_task.actor)
tc_task = TcTask(tc, TC_DT, dispatcher.msgio_get("TempCtrl")) tc_task = TcTask(tc, TC_DT, dispatcher.msgio_get("TempCtrl"))
+1
View File
@@ -44,6 +44,7 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
self.slider_pwr_initial_update = True self.slider_pwr_initial_update = True
self.slider_temp_soll_initial_update = True self.slider_temp_soll_initial_update = True
self.checkbox_heater_activate_initial_update = True self.checkbox_heater_activate_initial_update = True
self.heatrate_soll_initial_update = True
self.ws_client.connect(uri="ws://localhost:8765") self.ws_client.connect(uri="ws://localhost:8765")
def disconnect(self): def disconnect(self):