- GUI: fixed initial of heatrate
- added constants for DT
This commit is contained in:
@@ -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"))
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user