Char Broil Elektro Smoker // PID für ext. Relais (MQTT => Shelly on/off), ich verstehe Pitmaster nicht?!

s.ochs

BOFH
Teammitglied
Admin
Sorry, wurde kurz noch wo anders gebraucht.

Aufsummiert werden nun die Abweichungen von ca. 3 K bis runter auf Null in einer Zeit von etwa 60 Sekunden (der Regler arbeitet mit einer zeitlichen Auflösung von 1 Sekunde). Kann man sich bildlich etwa als Dreieck vorstellen, mit einer Fläche von (3 * 60)/2 = 180. Mulitpliziert mit Ki muss da etwa 40 % rauskommen (nicht ganz, da wir den Überschwinger noch etwas abfangen müssen). Nehmen wir Ki = 0,2 wären wir bei ca. 36 %. Damit würde ich mal anfangen.

Also Ki = 0,2 belassen und Kp absenken auf 30. DCmax = 70 %.
Damit bitte mal aufheizen im Modus "auto" und bei einer Vorgabe von 105 °C.
 

Juwei

New member
Nochmals zum Verständnis:
Du kamst auf die 40%, da die Heizleistung auf 40% reichen würde, um die 105 Grad zu erreichen.
Bei den 180 komme ich nicht mit - woher kommen die (3*60/2 sind ja 90)?
Also habe ich 3K Abweichung (Überschwingen). Bei 1s Auflösung und würde ich jede Sekunde (für 60 Sekunden) den Abweichungswert aufsummieren (z.B. 0,1+0,2+0,3+...), kommt das Ergebnis (180?) raus. Die Heizleistung von 40% sollte beim Ki raus kommen und so ergibt das dann 0,222 => 0,2 weils nicht so genau geht.
Richtig?

Ganz schön kompliziert :D
 

s.ochs

BOFH
Teammitglied
Admin
Bei den 180 komme ich nicht mit - woher kommen die (3*60/2 sind ja 90)?
Gut aufgepasst :) Hab vergessen zu schreiben, dass da noch eine Art "Sicherheitsfaktor" drauf kommt, der liegt in der Regel bei 2 bis 4.

Die Heizleistung von 40% sollte beim Ki raus kommen und so ergibt das dann 0,222 => 0,2 weils nicht so genau geht.
Richtig. Die genauen Kommazahlen sind nicht entscheidend. Wir schätzen das meiste ja eh grob. Die 40 % notwendige Leistung für 105 °C sind geschätzt und sind im Sommer sicherlich anders als im Winter. Auf ist die genaue Zeit, die der I-Anteil zum Aufbau hat geschätzt und bei jedem Schwinger veränderlich, jenachdem was gerade aufs System eingewirkt hat. Es geht hier auch gar nicht darum Parameter auf die 4 Kommastelle zu berechnen. Es gibt nicht den einen optimalen Regler-Parametersatz. Ist immer eine Schar von Parametersätzen, in denen sich der Regler sehr ähnlich verhält.

Ich hoffe ich konnte dir die Idee hinter dem PID etwas näher bringen. Schauen wir jetzt mal, wie er sich nach dem 2-3 Schwinger macht. Kp muss wohl noch etwas weiter runter. Das System ist doch noch etwas langsamer, sodass sich der I-Anteil nicht halten kann. Aber wenn du dir die Werte genau ansiehst, hast du beim ersten Durchschreiten von Soll einen Pitmasterwert von ca. 40 % gesehen, der kam vom I-Anteil.
 

Juwei

New member
Macht es nicht Sinn, dass er bei Soll-Temperatur (105) schon 40% Leistung hat? Hat erst langsam bei 104°C angefangen wieder Leistung drauf zu geben.
 

s.ochs

BOFH
Teammitglied
Admin
Ja, weil der I-Anteil wieder komplett aufgelöst wurde. Das System ist weniger dynamisch als der Regler. Also müssen wir den Regler noch etwas runter nehmen.

Versuch mal bitte:

Kp = 20
Ki = 0,07
 

s.ochs

BOFH
Teammitglied
Admin
Also Regler aus, Tür kürz auf, bis auf etwa 90 °C runter und dann wieder mit den neuen Werten starten.
 

s.ochs

BOFH
Teammitglied
Admin
Macht es nicht Sinn, dass er bei Soll-Temperatur (105) schon 40% Leistung hat?
Meinst du "schon" im Sinne von zu viel oder zu wenige? So wie der I-Anteil bei einer Abweichung unterhalb von Soll aufgebaut wird, wird er bei einer Temperatur über Soll abgebaut. Mit jedem "Schwinger" kommt der Regler also selbst an den aktuell notwendigen I-Anteil näher ran. Im Idealfall fallen die Schwinger aber sehr klein aus. Nachteil bei allen Grills: sie können nur aktiv heizen, aber nicht aktiv kühlen. Also muss der Regler bei einer Temperatur über Soll immer abwarten und kann nichts machen. In deinem System nicht so wild, da die Heiz- und Kühlrate sehr ähnlich ist.
 

s.ochs

BOFH
Teammitglied
Admin
Versuch mal bitte:

Kp = 20
Ki = 0,07
Wenn das auch noch mit mehr als 1 Grad schwingt, gehst bitte mal noch mit der Dynamik runter auf:

Kp = 12
Ki = 0,02

Noch weiter runter mit der Dynamik würde ich nicht gehen. Außerdem müssen wir auch bedenken, dass noch kein Fleisch drin liegt. Der nächste Schritt wär dann mit diesen Werten mal einen realen Durchlauf mit PP zu machen.
 

s.ochs

BOFH
Teammitglied
Admin
Wenn du die Werte änderst, dann bitte immer kurz Pitmaster deaktiviern und die Temperatur runter auf unter 90 °C. Andernfalls kann es dir passieren, dass vorherige Regelereignisse mit in den aktuellen Versuch reinspielen.
 

Juwei

New member
Hab jetzt mal
"Kp": 20,
"Ki": 0.07,
"Kd": 0,
"DCmmin": 0,
"DCmmax": 70,
"opl": 1,
eingestellt.

Mal sehen. Bin jetzt unterwegs, aber kann das auch von unterwegs steuern und testen. :)
 

Juwei

New member
Wenn Fleisch drin ist, nimmt das natürlich Energie, aber der I sollte das abfangen, weil er mit den letzten 60 Temperatur-Ist-Werten arbeitet, richtig? Also im Zweifel heizt er dann länger um auf sein Soll zu kommen.
Oder meinst Du, dass sich das mit Fleisch nochmal gänzlich anders verhält?
 

s.ochs

BOFH
Teammitglied
Admin
Wenn Fleisch drin ist, nimmt das natürlich Energie, aber der I sollte das abfangen, weil er mit den letzten 60 Temperatur-Ist-Werten arbeitet, richtig? Also im Zweifel heizt er dann länger um auf sein Soll zu kommen.
Oder meinst Du, dass sich das mit Fleisch nochmal gänzlich anders verhält?
Genau richtig.
Es verhält sich nicht komplett anders, aber etwas träger. Aktuell haben wir immer noch etwas zu viel ungenutze Leistung, daher der erste Schwinger. Die würde ich aber jetzt nicht weiter weg nehmen, da ja noch kein Fleisch drin ist. Wird der erste Schwinger kleiner, werden auch die nächsten Schwinger kleiner, weil sich der I-Anteil ja bereits "besser" aufbauen konnte.

Dieser Zeitversatz von gut 4 Minuten hindert uns aktuell noch etwas an einem besseren Systemverhalten.

Systemverhalten.png

So lange dauert es, bis an der Messposition eine Änderung ankommt. Der Regler erwartet hier natürlich eine deutlich schnellere Antwort auf sein Tun. Bis es zu einer Reaktion kommt, ist der Regler schon wieder bei 100 % (wir bräuchten aber nur gut die Hälfte), weil er davon ausgeht, dass nichts passiert. Deshalb müssen wir aktuell die Dynamik des Reglers runter nehmen, damit er quasi "langsamer" arbeitet und nicht so schnell hoch- bzw. runterregelt.

Eine nähere Position des Fühlers an der Heizung könnte hier auch helfen. Wenn du einen Testlauf mit Fleisch machst, würde ich mal einen zweiten Garraumfühler deutlich näher am Heizelement platzieren. Damit man ein besseres Gefühl über die Temperaturverteilung im Grill bekommt.

Bin jetzt auch unterwegs.
 

s.ochs

BOFH
Teammitglied
Admin
Aktuell ist zu viel überschüssige Energie im System, daher wird der zweite Schwinger sogar stärker als der Erste. Durch den oben gezeigten recht großen Zeitversatz aus Aktion und Reaktion stimmt das Timing zwischen Regler und Grill nicht. Du kannst den Datensatz mit Kp = 12 noch probieren, aber ich vermute mal, es wird auch schwingen. Bevor man da jetzt weiter macht, würde ich mir erstmal das Verhalten mit Fleisch ansehen. Wie gesagt, am besten auch mal mit zwei unterschiedlichen Garraum-Messstellen.
 

Juwei

New member
Der ist jetzt bei 104,9°C (heizen) immernoch bei 91% Leistung. Wie kann ich das so beeinflussen, dass er früher runterfährt?
Wenn ich mir die Kurven so ansehe, müsste er, wenn er abfällt, früher wieder hochfahren und auch früher das Gas runter nehmen, wenn er auf beim Aufheizen auf die 105 zusteuert.
 

s.ochs

BOFH
Teammitglied
Admin
Der ist jetzt bei 104,9°C (heizen) immernoch bei 91% Leistung. Wie kann ich das so beeinflussen, dass er früher runterfährt?
Soll er gar nicht. Wir brauchen einen gewissen Pitmasterwert beim Überqueren von Soll ansonsten kommt es nie zu einem konstanten halten. Das er mit 91% recht hoch ist, kommt aus dem nicht stimmenden Timing. Das "Problem" ist, dass es scheinbar erst dann zu einem "Einknicken" der Temperatur kommt, wenn der Regler auf Null bzw. kurz davor ist (die Steigung der Kurve ist nahezu konstant, egal welcher Pitmasterwert zwischen 5-100 %). Also haben wir noch zu viel Leistung (wir bringen zu viel Energie in kurzer Zeit ein). Um hier was zu verbessern müsste man jetzt noch weiter runter mit DCmax oder JumpPower aktivieren. Aber, es fehlt noch das Fleisch. Deshalb würde ich hier nicht weiter machen.

Ein Absenken von Kp sorgt dafür, dass der Regler früher runterregelt. Das wäre, was man intuitiv erwarten würde. Aber wie man sieht, bringt das nicht wirklich eine Besserung. Denn der Grill reagiert weiterhin mit diesem zeitlichen Verzug. Es sorgt nur dafür, dass der Regler so "langsam" wirkt, dass er später nicht mehr richtig auf Umgebungseinflüsse eingehen kann. Wär das System jetzt so wie es ist fix, könnte man noch mit einem D-Anteil etwas gegenwirken, was das System aber instabil macht. Ist hier akuell nicht notwendig, da das Fleisch das Verhalten eh nochmal verändert.
 

s.ochs

BOFH
Teammitglied
Admin
müsste er, wenn er abfällt, früher wieder hochfahren und auch früher das Gas runter nehmen, wenn er auf beim Aufheizen auf die 105 zusteuert.
Genau das macht er bereits, aber es kommt keine entsprechende Reaktion vom Grill:

Systemverhalten.png

Von Beginn der ersten Linie (Druchgang durch Null) bis zur zweiten Linie fährt er die Leistung kontinuierlich hoch bis auf 100 %, aber es passiert nichts an der Messposition. Die Abkühlrate bleibt nahezu konstant. Was fehlt ist also die entsprechende Reaktion vom Grill. Senkt man Kp noch weiter runter (um "früher Gas raus zu nehmen"), verlängert sich dieser Zeitraum nur noch mehr, weil es länger dauert um die 100 % zu erreichen.
 

s.ochs

BOFH
Teammitglied
Admin
So schaut's im Elektro-Smoker aus, Temp-Fühler habe ich unter die Ebene gehängt. Noch nicht 100% so wie ich es haben will, aber der Fühler ist zu dick für die Klammer, die ich habe.

IMG_3603.jpeg

Eine "Ablufteinstellung" hat er nicht, nur diese beiden Abluftgitter oben.

Möglich, dass die Luft links und rechts von der Messposition vorbei zieht. Und sich in der Mitte eine Art "Schatten" bildet. Eine zusätzliche Zuluft, neben der des Heizelements gibt es ja nicht? Bzw. ist geschlossen.
Beim nächsten Mal auf jeden Fall mal einen zusätzlichen Fühler am unteren Rost anbringen. In der Nähe des Auslasses der heißen Luft.
 
Oben Unten