My heating controller "Thermostat" uses PWM of the water valve to control the heating power to the room. It has a fixed cycle length and varies the proportion of on-time to manage the temperature, using a PI controller.
I've slowed the PWM down to reduce wear and tear on the valve. With a 30-minute period the room fluctuates only 0.2 degrees over the cycle.
However it is slow to respond to sudden changes in temperature or setpoint, because of the long cycle. Ideally it would immediately start (or stop) heating when the error is greater than 1 degree. Possible solutions could include:
- Shorter PWM cycle (but most of the time this is a waste)
- Breaking out of the PI-PWM control into a special fast-ramp mode when a major disturbance is detected
Is there a type of PI-followed-by-PWM that encapsulates this completely, in a single algorithm?