Replicate BrewPi behavior

I’m using a fresh install of BrewBlox and set up my fridge via the fridge wizard. For now, the beer temperature is directly controlled, while the fridge temperature sensor is not used. Beer temp is perfectly stable, but the fridge temp swings around it a lot and there is quite some unnecessary heating and cooling.

I’d like to replicate the old BrewPi behavior. I noticed there’s a small chapter in the brewblox docs about that, but it’s really very brief:
https://brewblox.netlify.com/user/control_chains.html#controlling-beer-temperature-with-a-dynamic-fridge-setpoint

Does anyone have experience setting this up in BrewBlox?

This was the original output of the wizard, but it is harder to tweak and get right.
In our tests, we had very good results with direct beer control, so we made the simpler setup the default.

The indirect control method is still possible, by creating the setup documented there.

With correctly configured PIDs and mutex, it shouldn’t alternate between heating and cooling much. When did you run the wizard?

Can you share some settings, internal PID graphs and perhaps a photo of the real world setup?

I ran the wizard about a week ago. I am very happy with the constant beer temperature, it works great. I just think there’s unnecessary heating and cooling going on which could use some damping.

Here’s a couple of pictures:
My fridge with a tube heater behind the fermentation vessel and a fan which only switches on when the heater is active.

The temperature curve.

PID history of the heater.

PID history of the cooler.

Can you zoom in on just a few cycles?

Sure, here goes. Thanks for your time!
Temperature:

Heater:

Cooler:

I think both your heater and cooler are a bit too aggressive.
The integral seems fairly steady, so that’s not the problem.

Try to just divide Kp by 2 for both. Maybe the heater a bit more, because it raises the fridge temp pretty quickly. I don’t know what your current value is, but Td should be roughly the expected overshoot duration.

You could also increase Td for both, to decrease the output when it is moving in the right direction quickly.

To block the heater and cooler from alternating, you can increase the lock time in the mutex constraints. Please note that it can now also be set in the individual constraints, which will override the default fallback set in the target mutex block.

Thanks, I will try that and report back! :slight_smile: