BrewBlox and FTSS

#1

After being on a brewing hiatus, my controller decided not to keep its mind about itself. Reviewing what has changed since I’ve been gone and WOW, what a change from BrewPi to BrewBlox. I have v2 sparks USB cabled to Raspberry PI v3B and setup the blox flow as I think they need to be. wanting to be sure that the PID is setup as it should be before I put a batch of wort in the SSBretech Brewmaster Conical. This is the PID thats linked to the PWM blox:

Cooling is a pump in a SSBrewtech Glycol unit and heating is from the FTSS silicon heating pad. Any other settings that need to be done or will it figure itself out on its own?

#2

This is what I use for the same setup (14g conical + heating pad + cooling pump):

Cool PWM: 10m period
Heat PWM: 10s period

Cool PID:
Kp: -5/C , would b -9/F. Note the negative sign for coolers!
Ti: 2h
Td: 5m
Filter: 10m, Fast step threshold: 1C

Heat PID:
Kp: 30/C
Ti: 2h
Td: 5m
Filter: 10m, Fast step threshold: 1C

Also create a mutex and give both your digital actuators a ‘Mutually exclusive’ constraint. Set the wait time in the mutex to 1 hour to prevent switching between heating and cooling.

And add a 10 second minimum ON time for the cooler so that when it cools, the cold water will reach the fermenter and not stop in the hose for low values.

My fermentation temperature is pretty accurate with these settings:

Worst deviation is 0.2 degrees overshoot after the ramp.

#3

Did you mean to have -30C for the heating PID?
The 1C fast step threshold is a 1 degree difference, doesn’t mater if C/F?

Thank you in Advance!

#4

Oops, that should be +30 per degree C. Copy paste error.
The heater is pretty weak, so it can run near full power for even small deviations. This means 30% power at 1 degree error.

The filter threshold doesn’t really matter. It is the threshold for an input step that should ‘reset’ the filter when we detect that the filter rising/falling fast.

#5

Thank you for the settings Elco. Seems I’m holding about a 0.4F swing. I will take that as acceptable.

#6

If you can show your pid internals perhaps we can iron that out too. :slight_smile:

#7


#8

The graph of your heating PID would tell us a lot more than this single moment.

#9

#10

I think a lower Kp would help here. It is doing too much for just a small deviation.

Tomorrow’s update will have some updates to how filters work and how the PID uses them.
It makes filtering for the derivative automatic and separate from the input filtering allowing the input filter for proportional gain to be much faster than the filter for the derivative.

It also has improvements for how the achieved PWM value is calculated.

Please try tomorrow’s update and see if things are better :slight_smile:

#11

After applying the update, its not held the temp at 68F. it’s driffted up over 71F.

#12

Can you share your exported blocks again?

After the update, I would recommend slightly different settings. You can reduce the filtering, because the derivative filter is now automatic and separate.

Also check that your PID, Setpoint and PWM are enabled and have the correct input and output.

Can you please share the graph of the PID, that will have a bit less noise.

#13

After looking at this further, I see that the actuators (Glycolpump, heating pad) are no longer showing but I see 2 objects with errors and it won’t delete the opbject that are in error.

#14

Which firmware version are you running? We rolled back the 7-11 update because it broke things.

#15

I just getting done running the update process again. I see now that the objects that were in error are now gone and im going through and resetting the SparkPin assignments and linking them to the correct PWM. Things are coming back to working order.