15.02.2021, 14:06
When only Kp is set each run will change the output value by the delta between the current temperature and the setpoint. You might need several runs for the output value to change if the delta is small. Resident script sleep time controls how frequently the algorithm runs. You can edit the PID library and add log(self.output) before selfetoutput() to see the raw output value (floating point).
As I've already told simulating PID like this is pointless. In real world situation changing the output value will change the temperature so the algorithm will produce different output values based on how the temperature changes. It's possible to make a script that will change the temperature based on the output value to check how gain values affect the speed of change. But you need a different sets of objects for each PID controller and it will still be very approximate unless you have some complex calculations that can simulate system inertia which is quite big for underfloor heating.
As I've already told simulating PID like this is pointless. In real world situation changing the output value will change the temperature so the algorithm will produce different output values based on how the temperature changes. It's possible to make a script that will change the temperature based on the output value to check how gain values affect the speed of change. But you need a different sets of objects for each PID controller and it will still be very approximate unless you have some complex calculations that can simulate system inertia which is quite big for underfloor heating.