- put calculated power from heater into tc model
This commit is contained in:
@@ -61,8 +61,16 @@ if __name__ == '__main__':
|
||||
taskmgr.add(TracerTask(sensor, heater, tc, trace_tc, DT_TASK_TRACER, dispatcher.msgio_get("Tracer")))
|
||||
|
||||
# Assign data flow
|
||||
# Assign tc control value to heater
|
||||
tc.set_on_changed("y", heater_task.actor)
|
||||
|
||||
# Assign temp. sensor readings to tc
|
||||
sensor.set_on_changed("temp", ChangedFloat(tc.set_theta_ist, prec=2).set)
|
||||
|
||||
# Assign heater power set to tc model
|
||||
heater.set_on_changed("power_set", tc.set_model_power)
|
||||
|
||||
# For simulation
|
||||
if "sim" in config['Controller']['sensor_name']:
|
||||
pot.set_on_changed("temp", ChangedFloat(sensor.set_fake_temp, prec=3).set)
|
||||
sensor.set_fake_temp(pot.temp)
|
||||
|
||||
@@ -31,6 +31,9 @@ class TempController(APid):
|
||||
self.model = Pot(dt, model_params)
|
||||
self.is_startup = True
|
||||
|
||||
def set_model_power(self, power):
|
||||
self.model.set_power(power)
|
||||
|
||||
def set_theta_ist(self, value):
|
||||
self.theta_ist_set = value
|
||||
if self.is_startup:
|
||||
@@ -154,7 +157,6 @@ class TempController(APid):
|
||||
else:
|
||||
self.y = self.pid_rate.get_y()
|
||||
|
||||
self.model.set_power(max(0, 3500 * self.y))
|
||||
self.model.process()
|
||||
|
||||
def get_power(self):
|
||||
|
||||
Reference in New Issue
Block a user