- use Valuechanged mechanism

This commit is contained in:
jens
2020-11-29 12:37:18 +01:00
parent 135f2b6898
commit d16b6b272a
9 changed files with 1713 additions and 1673 deletions
+25 -3
View File
@@ -5,7 +5,7 @@ from ws.server.ws_server_multi_user import WsServerMultiUser
from components.sensor.tempSensorSim import TempSensorSim, ATemperatureSensor
from components.plant.pot import Pot, APlant
from components.actor.heater import Heater, AHeater
from components.pid import kalman
from components.pid import kalman, temp_controller
from ws.message import MsgIo, MessageDispatcher
from utils.value import Value, ValueChanged
@@ -179,14 +179,36 @@ if __name__ == '__main__':
"kn" : 0.2
}
pot = Pot(pot_params)
pot.connect_theta_changed(sensor.set_fake_temp)
pot.set_on_changed("temp", ValueChanged(sensor.set_fake_temp, prec=1))
taskmgr.add(PotTask(pot, 0.1, dispatcher.msgio_get("Pot")))
# Heater
heater = Heater()
heater.connect_power_changed(pot.setPower)
heater.set_on_changed("power_eff", ValueChanged(pot.setPower, prec=0))
taskmgr.add(HeaterTask(heater, 0.02, dispatcher.msgio_get("Heater")))
# Temperature Controller
tc_params = {
"dt": 1.0,
"Hold": {
"Pid": {
"kp": 0.5,
"ki": 0.0,
"kd": 0.5,
"rho": 1.0
}
},
"Heat": {
"Pid": {
"kp": 0.002,
"ki": 0.0002,
"kd": 0.0,
"rho": 1.0
}
}
}
tc = temp_controller.TempController(tc_params)
h_dispatcher = taskmgr.start()
h_server = server.listen("localhost", 8765)
asyncio.gather(h_dispatcher, h_server)