Regelung Maischetemperatur/Heizleistung CBPi mit Hendi

Antworten
juju1337
Posting Klettermax
Posting Klettermax
Beiträge: 172
Registriert: Mittwoch 15. Mai 2019, 15:59

Regelung Maischetemperatur/Heizleistung CBPi mit Hendi

#1

Beitrag von juju1337 » Mittwoch 3. März 2021, 10:53

Hallo zusammen,

ich braue seit einiger Zeit mit CBPi, einer modifizierten Hendi-Induktionsplatte (s. andere Threads hier) und Brew-in-a-Bag. Ich habe schon mein eigenes CBPi Plugin zur Regelung der Hendi gebastelt (Gradientenregelung), welche die Platte über die interne Elektronik steuert (an/aus, Leistung einstellen).

Nun braue ich allerdings sehr kleine Sude (zwischen 6l und 12l Ausschlag) und habe das Problem, dass die Leistung der Hendi eigentlich viel zu groß ist und die Überschwinger beim Maischen sehr groß sind (bis zu 5°), trotz auf die Hälfte oder weniger reduzierte Leistung. Nicht nur beim ersten Hochheizen, sondern durch die Trägheit auch wenn ich die Temperatur halten will.

Meine Idee wäre jetzt, die Ansteuerung wie folgt anzupassen:

1. Modus: Aufheizen auf nächste Rasttemperatur
- definierte Leistung fahren bis Schwellwert A unter Rasttemperatur erreicht
- Leistung halbieren bis Schwellwert B unter Rasttemperatur erreicht
- Leistung halbieren bis Schwellwert C unter Rasttemperatur erreicht
- usw. bis Rasttemperatur erreicht

2. Modus: Temperatur halten
- minimale Leistung fahren und über Hysterese +/- 0,5°C regeln

3. Modus: Kochen
- maximale Leistung fahren bis Kochtemperatur-Schwelle (97°) erreicht, dann auf definierte kleinere Leistung zurückfallen

Hat jemand sowas schon gemacht in CBPi und Ideen, wie sich die Schwellwerte überschlagweise ermitteln lassen? Oder vielleicht sogar eine "kontinuierliche" Leistungsregelung umgesetzt?
Oder eine ganz andere Idee, wie ich die starken Überschwinger vermeiden kann mit dem Setup?

Benutzeravatar
Bitter
Posting Freak
Posting Freak
Beiträge: 1048
Registriert: Samstag 19. September 2015, 15:32
Wohnort: Bochum

Re: Regelung Maischetemperatur/Heizleistung CBPi mit Hendi

#2

Beitrag von Bitter » Mittwoch 3. März 2021, 12:24

Wenn du mit den Gradienten regelst, gehe ich mal von folgendem Algorithmus aus:

Code: Alles auswählen

HendiEin wenn Tist < (Tsoll - (gradient)
         sonst HendiAUS
Wenn du nun den Gradienten mit einem Gradientenfaktor (GF) versiehst, dann kannst du das Regelverhalten beeinflussen, es gilt:

Je größer die thermische Masse, umso kleiner GF!

Code: Alles auswählen

HendiEin wenn Tist < (Tsoll - (gradient*GF)
         sonst HendiAUS
Durch GF schaltet die Platte vor dem Erreichen der Solltemperatur früher ab.

Meine Maischepfanne hat ein Bruttovolumen von 32L, da hat sich ein GF von 1,2 bewährt.

Bei den von dir angegebenen Mengen würde ich, je nach Leistungseinstellung an der Hendi, GF bei ca. 2-3 sehen.Letztendlich musst du das testen.

Gruß Lothar

juju1337
Posting Klettermax
Posting Klettermax
Beiträge: 172
Registriert: Mittwoch 15. Mai 2019, 15:59

Re: Regelung Maischetemperatur/Heizleistung CBPi mit Hendi

#3

Beitrag von juju1337 » Mittwoch 3. März 2021, 12:29

Ja, so sieht der Algorithmus aus. GF von 2 oder 3 hab ich noch nicht probiert, hatte bisher auch so 1,2 das war wohl zu wenig.
Parallel dazu versuche ich mal was zu schreiben, was dann auch die Leistung anpasst.

Danke schonmal!

juju1337
Posting Klettermax
Posting Klettermax
Beiträge: 172
Registriert: Mittwoch 15. Mai 2019, 15:59

Re: Regelung Maischetemperatur/Heizleistung CBPi mit Hendi

#4

Beitrag von juju1337 » Dienstag 16. März 2021, 15:48

Ich habe das jetzt mal so ähnlich umgesetzt als Plugin für CBPi3:

1. Gradientenregler mit einstellbarem Gradientenfaktor (für 10-12l Maische fahre ich mit 2,5 wohl ganz gut)
2. Leistungsregelung: Je näher an der Zieltemperatur, desto weniger Leistung (mehr oder weniger kontinuierlich, nicht halbiert, wie oben angedacht)
3. Umschalten auf "Kochleistung" ab konfigurierbarer Schwelle (z.B. 90°C)

juju1337
Posting Klettermax
Posting Klettermax
Beiträge: 172
Registriert: Mittwoch 15. Mai 2019, 15:59

Re: Regelung Maischetemperatur/Heizleistung CBPi mit Hendi

#5

Beitrag von juju1337 » Dienstag 30. März 2021, 14:40

Im Prinzip funktioniert das super, ich hab mir da ein eigenes Plugin gebaut (Kettle_Controller und Actor). Aber ich habe ein Problem, wo ich mir noch nicht ganz sicher bin, woran das liegt:

Wenn die Platte sich für eine längere Heizpause abschaltet und dann wieder heizen will, startet sie immer mit 500W (Minimum). CBPi zeigt aber die "korrekte" Leistung an. Wenn ich dann die Automatik aus und wieder einschalte, reagiert die Platte wieder korrekt... Jemand eine Idee?
Kurze Pausen von wenigen Sekunden scheinen ihr nichts auszumachen...

Code: Alles auswählen

while self.is_running():
            gradient = float(temps[-1] - temps[0]) #subtract first and last temp in array (lookback time)
            temps.append(float(self.get_temp())) #update array
            
            diff = abs(self.get_target_temp() - self.get_temp())
            mashPower = pmax - (pmax/((0.5 * diff) + 1)) #leistungsregelung
            
            if start == True: #initially switch heater on with mashPower
                self.actor_power(mashPower)
                self.heater_on(power=mashPower)
                start = False
            
            #boil mode
            if self.get_temp() >= boilTemp:
                self.actor_power(boilPower)
                self.heater_on(power=boilPower)
            
            #mash mode
            elif self.get_temp() >= self.get_target_temp() - float(gradient * gradientFactor):
                self.heater_off()
                
            elif self.get_temp() < self.get_target_temp():
                self.actor_power(mashPower)
                self.heater_on(power=mashPower)
                
            else:
                self.heater_off()

Antworten