Elco (or other BrewPi gurus), I have a question about the attached screenshot of my current fermentation. As you can see, when I reached the cold crash stage, the beer temp followed the profile very closely, except when the cold crash temp was reached. It then overshot going down almost 2F lower than the profile. This seems to be because the fridge setting was not changed until the cold crash temp was reached. I would have expected BrewPi to start easing up on cooling as the final temp was close, not when it was reached. I reset my parameters back to the BrewPi default before starting this ferment, but would still ask, do I need to tweak any of the parameters?
Let me add that I am VERY impressed by the BrewPi performance during the rest of the ferment, the beer temp was kept to, on average, +/- 0.2F profile temp, with a very occasional spike of +/- 0.5F.
I have already coded something to improve ramp behavior for the next version.
There are 2 reasons for this for the overshoot, both are caused by the setpoint continuously moving away.
The beer derivative is non-zero. This reduces actuator action.
The integrator increases to compensate for this to increase actuator action again.
In the code scheduled for next release, I have made some changes to improve this, the biggest one is that the derivative is taken from the error, not the actual temperature.
I have upgraded (successfully) to 0.4.4 but now have this strange result. After fermentation (not on a profile), I adjusted the temperature down for a cold crash. BrewPi took the temperature down but then ended up about 4 deg F (2 C) lower, and it does not seem to go correct? What other information would help troubleshoot this issue?
I think you should adjust your beer-to-fridge PID settings to get a smoother fridge setting.
Try setting both filters to max. You can also try setting the dead time to 60 instead of 30 minutes to prevent alternating between heating and cooling.
The adjustment of the Beer to Fridge PID settings to max seems to have worked well. I did change the dead time parameter, but only back to the default of 30 minutes, since it was set to 15 minutes from some earlier playing around with the advanced parameters. I thought I had returned all changed values back to default, but obviously missed that one.