PID Autotune

Hi Leute,

ich möchte eine Temperaturregelung für einen Grill selber bauen. Dazu soll ein PWM PC-Lüfter die Kohle anblasen. Als Temperatursensor wird Typ K Thermoelement genutzt.

Da ich für den PID-Regler nicht lange rechnen wollte habe ich die PID-Autotunefunktione gefunden.

Allerdings offenbart sich mir nicht wirklich wie sie funktioniert, bzw. was ich machen muss, dass die Funktion mir meine drei Regelparameter ausspuckt.

Könnt ihr mir weiterhelfen?

Grüße
T-Bird

Ich finde eine PID-Steuerung für einen Ventillator eines Holzkohlegrills etaws übertechnisiert.
Kann man wegen stark von der Kohle bzw Verteilung abhängen der Heizleistung bzw die Regelung der Heizleistung überhaupt generell gültige PID Faktoren finden?

Grüße Uwe

vermutlich meinst du dies http://playground.arduino.cc/Code/PIDAutotuneLibrary
?

Das Ding ist allerdings Version 0.0, Copyright (c) 2004, und seit es vor 4 Jahren mal dort abgelegt wurde, ziemlich tot.

Würde mich wundern, wenn "autotune" mit Arduino einfacher ginge als generell.
Aber deine Erfahrungen damit und hoffentlich positiven Ergebnisse würden mich schon sehr interessieren.

Da ich für den PID-Regler nicht lange rechnen wollte

Sehr witzig ... :wink:

Ich schätze mal, durch mehr oder weniger stark anblasen eines Haufen Holzkohle die Temperatur regeln ist zwar möglich, aber sehr nichtlinear und von vielem abhängig, ausser dem PWM-Wert für den Lüfter. Ob PID da überhaupt sinnvoll ist: ich bin gespannt.

Kohle nachlegen willst du nicht automatisieren, hoffe ich. 8)

Bei deiner Frage zu Autotune kann ich dir nicht helfen.

Aber ich habe bei meinem Grillregler die Koeffizienten selbst ermittelt, und das ist kein Hexenwerk.
Im Gegenteil: durch die extreme Variabilität des System wird die Autotune überfordert sein.
Den D-Anteil habe ich nach einigen Versuchen auf Null gesetzt. Für den Grill reichte ein PI-Regler völlig aus.

Für eine erste Abschätzung reicht es, die Werte aus der Sprungantwort zu rechnen (zweite Einstellregel nach Ziegler/Nichols).

Das Verfahren ist hier ganz gut beschrieben: Reglereinstellung nach der Sprungantwort

Für die Sprungantwort stellst du den Grill mit viel Kohle und kleiner Luftzufuhr stabil ein (Temperatur < 100°C), schaltest dann den Lüfter ein und läßt einen Temperaturlogger mitlaufen, bis die maximale Temperatur erreicht ist.

Dann die Werte nach Anleitung ermitteln, und eher die für aperiodischen Regelverlauf nehmen.

Edit: An alle Zweifler: Grillregler gibt es schon viele und meiner läuft seit über 2 Jahren anstandslos. Mit PID-Lib und ausreichender Regelgüte.
Mein Grillregler ist hier dokumentiert: forum.mybbq.net: mir ist langweilig… der Grill-O-Mat entsteht

echt coole Sache :slight_smile:
Ist das Grill ringsherum geschlossen? Kein offenes grillen, mehr für schmoren usw. ?

Ja, das geht nur mit geschlossenen Grills, z.B. Kugelgrill.
Der meinige ist auch geschlossen, aber selbst gebaut.

Eine sehr schöne Regelungsdoku:


Karma+

Auch schön zu sehen, dass Änderungen der Abluftklappe und das Abbrennen der Kohle gut ausgeregelt werden.

Und dass die automatische Regelung nur die eine Hälfte ist, der erfahrene Grill-Operator ist Voraussetzung.

Gunther:
Nicht dass das zum grillen wichtig wäre, aber …Da gehts ums Prinzip! [-(

Im Prinzip kann sich ein Regler ständig selbst nachjustieren, entsprechend der erwarteten und tatsächlichen Änderung der Regelgröße. In der Praxis kann das je nach Ausführung des Reglers einfach (P) bis hochmathematisch (Zustandsregler) werden. Dabei sind Differentialgleichungen sind nicht so mein Ding, und spätestens bei Matrizen macht ein Uno gerne schlapp :wink:

Zum Selbstoptimieren in Grenzen kannst du z.B. den I Anteil nehmen um den P-verändern. Ist der I-Anteil über einer längere Zeit(abhänig natürlich von deiner Totzeit) z.B. positv kannst du den P-Anteil vergrößern damit die Abweichung nahe Soll auch noch über den P-Anteil aufgefangen werden kann.
Vorsicht der Einfluß der Selbstoptimierung darf nur moderat sein sonst bring dich die Optimierung raus.
Ich denke das dies zu kompliziert ist um das mal eben auf dem Arduino ohne viel Kenntnisse der Regelungstechnik kaum machbar ist.
Leider geht es auch nicht das du dem PID-Regler sagst hier ist Soll-Temperatur und den Rest mach selber.

Gruß
DerDani

volvodani:
Leider geht es auch nicht das du dem PID-Regler sagst hier ist Soll-Temperatur und den Rest mach selber.

Doch, genau so geht das!

Ich habe nach den ersten Versuchen, den KP und KI nochmal etwas runter genommen, weil er teilweise leicht geschwungen hat. Nun ist er zwar langsam, aber zuverlässig.

Ich schütte kalte Kohle rein, ein paar glühende dazu, Solltemperatur einstellen und warten.

Ein typischer Plot sieht dann so aus:
Tempgraf.jpg

Und hier den P-Anteil (den I-Anteil hatte ich nicht aufgezeichnet )und die Stellgröße (OUT) dazu (normiert auf 100%)Tempgraf_p.jpg

Man kann ganz gut sehen, wie er regelt.

Und die Genauigkeit ist für Grillzwecke völlig ausreichend.

GT: Garraumtempertur. Die Lufttemperatur im Grill
KT: Kerntemperatur. Die Temperatur im inneren des Fleisches

Da habe ich mich ein bisschen unpräzise Ausgedrückt. :slight_smile:

Du hast aber P,I,D Werte vorgeben und dann bei Try and Error angepasst.
Mein Satz bezog sich darauf das du einfach einen PID-Regler nimmst, Autotune und Einschalten.
Mann muss einen Kp einen Ti und ein Kd anegeben sonst funktioniert ein Regler nicht.
Okay mindestens einen der drei.
Denn Kp=0 z.B. heist
Soll-Ist= Error
Error*Kd= D-Part
ist Kd =0 kommt nix raus also muss man hier schon ein paar Werte vorgeben.
Ist es nix kritisches kann man es mit T&E versuchen.
Gruß
DerDani

P.S.: Bei Kp kann mann einfach mal Rechnen aber welcher Abweichung man die Volle Aussterung haben will ausrechenen und als KP Startwert nutzen. Hast du ein schnelles System so wird D-Anteil Wichtiger. Die Ti habe ich Persöhnlich immer Versucht so "lang" wie möglich zu halten. Man sollte Versuchen das System mit P-D halbwegs stabil zu bekommen und mit dem I-Aneil den Reset wegzubügeln.
Ich weiß das dies __*NICHT die *__Standard Vorgehensweise ist, aber so lange etwas nicht so kritisch ist (große Schäden beim Testen zu erwarten sind) kann man es so "erfahren". Zumindest mache ich es so seit Jahren im Service ohne Schäden).

:grin:

Ok, Missverständnis.

Die Try und Error Methode funktioniert bei Grills nur bedingt, einfach weil jeder Versuchslauf Stunden dauert.
Einen Grundwert sollte man schon ermitteln.

Ich habs nach der Ziegler/Nichols Methode gemacht (Sprungantwort ausmessen), damit bekommt man eine ganz brauchbare Erstbedatung.

Aber da der Fredersteller grad noch mit dem Einlesen der Thermoelemente kämpft, wirds bis zum ersten Regelversuch wohl noch etwas dauern.