Source code for housemodel.sourcesink.boilers.boilers_without_PID

[docs] class GasBoiler: """class for modelling PID-controlled gas boiler. """ def __init__(self, P_max, P_min): """ Args: kp (float): proportional PID gain [W/C] ki (float): integral PID parameter kd (float): derivative PID parameter T_setpoint (float): setpoint (SP) temperature T_node (float): process value (PV) temperature T_amb (float): outdoor temperature used for outdoor dead_band (float): dead band in [C] P_max (float): maximum power of boiler [W] P_min (float): minimum power of boiler [W] """ self.P_max = P_max self.P_min = P_min
[docs] def update(self, requested_power): if requested_power < self.P_min: return 0 if requested_power < self.P_min: return self.P_min if (self.P_min < requested_power and requested_power < self.P_max): return requested_power return self.P_max
if __name__ == "__main__": g = GasBoiler(P_max=10000, P_min=1500) print(g.update(5000)) print(g.update(1000)) print(g.update(15000))