- some twaeks to pot_params
- increased sample rate of TC by factor 10
This commit is contained in:
@@ -9,6 +9,7 @@ from components.pid import kalman, temp_controller
|
||||
from ws.message import MsgIo, MessageDispatcher
|
||||
from utils.value import Value, ValueChanged
|
||||
|
||||
TC_DT = 0.1
|
||||
|
||||
class ATask:
|
||||
def __init__(self, interval):
|
||||
@@ -198,7 +199,7 @@ if __name__ == '__main__':
|
||||
|
||||
# Sensor
|
||||
sensor = TempSensorSim()
|
||||
taskmgr.add(TempSensorTask(sensor, 1.0, dispatcher.msgio_get("Sensor"), kalman))
|
||||
taskmgr.add(TempSensorTask(sensor, TC_DT, dispatcher.msgio_get("Sensor"), kalman))
|
||||
|
||||
# Plant
|
||||
pot_params = {
|
||||
@@ -206,18 +207,18 @@ if __name__ == '__main__':
|
||||
"theta" : 20,
|
||||
"C" : 4190,
|
||||
"M" : 10,
|
||||
"L" : 0.1,
|
||||
"L" : 0.02,
|
||||
"Td" : 12,
|
||||
"kn" : 0.2
|
||||
}
|
||||
pot = Pot(pot_params, 20)
|
||||
pot.set_on_changed("temp", ValueChanged(sensor.set_fake_temp, prec=1).set)
|
||||
taskmgr.add(PotTask(pot, 1.0, dispatcher.msgio_get("Pot")))
|
||||
pot.set_on_changed("temp", ValueChanged(sensor.set_fake_temp, prec=3).set)
|
||||
taskmgr.add(PotTask(pot, TC_DT, dispatcher.msgio_get("Pot")))
|
||||
|
||||
# Heater
|
||||
heater = Heater()
|
||||
heater.set_on_changed("power_eff", ValueChanged(pot.setPower, prec=0).set)
|
||||
heater_task = HeaterTask(heater, 1.0, dispatcher.msgio_get("Heater"))
|
||||
heater_task = HeaterTask(heater, TC_DT, dispatcher.msgio_get("Heater"))
|
||||
taskmgr.add(heater_task)
|
||||
|
||||
# Temperature Controller
|
||||
@@ -242,9 +243,9 @@ if __name__ == '__main__':
|
||||
}
|
||||
tc = temp_controller.TempController(tc_params)
|
||||
tc.set_on_changed("y_hold", heater_task.actor)
|
||||
tc_task = TcTask(tc, 1.0, dispatcher.msgio_get("Tc"))
|
||||
tc_task = TcTask(tc, TC_DT, dispatcher.msgio_get("Tc"))
|
||||
taskmgr.add(tc_task)
|
||||
sensor.set_on_changed("temp", ValueChanged(tc.set_theta_ist, prec=1).set)
|
||||
sensor.set_on_changed("temp", ValueChanged(tc.set_theta_ist, prec=2).set)
|
||||
|
||||
# Message dispatcher
|
||||
h_dispatcher = taskmgr.start()
|
||||
|
||||
+16
-3
@@ -20,15 +20,19 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
self.msg_pot = self.msg_dispatch.msgio_get('Pot')
|
||||
self.msg_sensor = self.msg_dispatch.msgio_get('Sensor')
|
||||
self.msg_heater = self.msg_dispatch.msgio_get('Heater')
|
||||
self.msg_tempctrl = self.msg_dispatch.msgio_get('Tc')
|
||||
|
||||
self.msg_pot.set_recv_handler(self.on_pot_changed)
|
||||
self.msg_sensor.set_recv_handler(self.on_sensor_changed)
|
||||
self.msg_heater.set_recv_handler(self.on_heater_changed)
|
||||
self.msg_tempctrl.set_recv_handler(self.on_tempctrl_changed)
|
||||
|
||||
self.setupUi(self)
|
||||
self.actionStart.triggered.connect(self.connect)
|
||||
self.actionStop.triggered.connect(self.disconnect)
|
||||
self.Slider_pwr_soll.valueChanged.connect(self.on_slider_changed)
|
||||
self.Slider_pwr_soll.valueChanged.connect(self.on_slider_pwr_soll_changed)
|
||||
self.Slider_temp_soll.valueChanged.connect(self.on_slider_temp_soll_changed)
|
||||
|
||||
self.checkbox_heater_activate.stateChanged.connect(self.on_checkbox_changed)
|
||||
self.send_data = Queue()
|
||||
self.slider_initial_update = True
|
||||
@@ -40,10 +44,14 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
def disconnect(self):
|
||||
self.ws_client.disconnect()
|
||||
|
||||
def on_slider_changed(self, value):
|
||||
print("on_slider_changed {}".format(value))
|
||||
def on_slider_pwr_soll_changed(self, value):
|
||||
print("on_slider_pwr_soll_changed {}".format(value))
|
||||
self.msg_heater.send_from_thread({'Power': value})
|
||||
|
||||
def on_slider_temp_soll_changed(self, value):
|
||||
print("on_slider_temp_soll_changed {}".format(value))
|
||||
self.msg_tempctrl.send_from_thread({'Soll': value})
|
||||
|
||||
def on_checkbox_changed(self, value):
|
||||
print("on_checkbox_changed {}".format(value))
|
||||
self.msg_heater.send_from_thread({'Activate': int(value == 2)})
|
||||
@@ -58,6 +66,11 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
if "Temp" in msg:
|
||||
self.lcdNumber_3.display(str(msg['Temp']))
|
||||
|
||||
async def on_tempctrl_changed(self, msg):
|
||||
print("on_tempctrl_changed {}".format(msg))
|
||||
# if "Tc" in msg:
|
||||
# self.lcdNumber_3.display(str(msg['Temp']))
|
||||
|
||||
async def on_heater_changed(self, msg):
|
||||
print("on_heater_changed {}".format(msg))
|
||||
for key in msg:
|
||||
|
||||
Reference in New Issue
Block a user