Overshoot correction help

Hey Elco,

Could you help me out with my PID settings, there is a little overshoot in both directions and although it’s not too bad I know this can be totally eliminated. Mainly the cooling overshoot I want to fix. Am I right in assuming I need to increase Td? Would like to get your best guess before I play around with the values as it takes time to raise and cool 30L of water… Default settings:

Kp = 10
Ti = 600
Td = 60

Kp = 10
Ti = 1800
Td = 200

Shall I also change the PWM periods and delay times?

Separately I recall reading somewhere that you had scripted the software to auto-learn and auto-adjust settings based on behaviour (I cannot find this back). Was this just a thought that never materialised or is the software doing this to some extent?


You mainly have to adjust the beer to fridge PID. This is what determines the fridge setpoint.
The heat and cool PID seem to work okay, because the fridge temp tracks the fridge setting nicely.

There are 3 things you can do:

  • Prevent the integral from becoming active. It is disabled when the max difference between fridge and beer temp is reached, which is configurable. A higher Kp will make it more likely that it will clip. Or a lower max difference.
  • Increasing the beer to fridge integral time constant, so it accumulates slower.
  • Increasing Td

Thanks. Will try these things out and report back. Will start with the fridge to beer max diff reduced to 5c.

No real improvement. Settings changed:

Beer-to-Fridge integral time constant (Ti): from 7200 to 5200
Maximum difference between fridge and beer set point (= output of PID): from 10c to 5c

Will increase Td unless there are other suggestions?

nevermind, I just realised that you said to increase Beer-to-Fridge integral time constant (Ti), I reduced it. Doh!

Based on that chart, I think you mainly want to increase beer to fridge Kp and increase Td.