Hallo zusammen, ich stelle gerade einen PID Regler für die Temperatur an meinem 3D Drucker ein. Da die Elektronik von mir selbst entworfen wurde und die Software auch, besitzt dieser 3D Drucker auch kein Auto-Tuning system wie es bei anderen 3D Druckern der fall ist(RepRap's und der Gleichen). Ich hab mit der Ziegler-Nichols Schwingmethode meine Werte errechnet und ausprobiert. P = 7.5 I = 1.126126 D = 34.6875 Das funktioniert auch so ganz gut, nur habe ich damit am Anfang einen nicht zu übersehenden Overshoot. Jetzt stellt sich für mich die Frage welche der drei Variablen geändert werden muss, damit das nichtmehr so stark/gar nicht auftritt. Ich hatte I vermutet, doch wenn ich ich kleiner oder größer mache, tut sich wenig bis gar nichts an der Overshoot-Stelle. Nur die Schwingungen werden stärker. Danke für alle Antworten! PS: y-Achse ist Temperatur in °C, x-Achse Zeit in Sek (eig. normal, aber damit keine Verwechselungen vorkommen..)
:
Bearbeitet durch User
Hallo, ich würde P kleiner wählen, danach noch vielleicht I größer. Aber PID-Regler einstellen ist bei mir immer ein Rumprobieren, aber eigentlich fange ich immer mit P an. Gruß Florian
Also ich weiß nicht wie du das genau gelöst hast, aber es kann unter Umständen hilfreich sein den I-Anteil zu begrenzen. Gerade wenn man hier "zum Limit hin" regelt, dann hat der nämlich sonst nen deftigen Überschuss drinnen und wird den ja auch nichtmehr los bevor man nicht angekommen ist.
Florian schrieb: > Hallo, > > ich würde P kleiner wählen, danach noch vielleicht I größer. Aber > PID-Regler einstellen ist bei mir immer ein Rumprobieren, aber > eigentlich fange ich immer mit P an. > > Gruß > Florian Ok, ich werds probieren ;) Max D. schrieb: > Also ich weiß nicht wie du das genau gelöst hast, aber es kann > unter > Umständen hilfreich sein den I-Anteil zu begrenzen. Gerade wenn man hier > "zum Limit hin" regelt, dann hat der nämlich sonst nen deftigen > Überschuss drinnen und wird den ja auch nichtmehr los bevor man nicht > angekommen ist. Ich hab schon eine Begrenzung für den Integrator eingebaut, so dass er bei einem bestimmten Wert(100, weil PWM output max. 100 ist) nicht mehr aufsummiert.
Hier: http://www.atwillys.de/content/explained/pid-controller/example/ kannst Du deine Werte und die I-Begrenzung simulieren.
hp-freund schrieb: > Hier: > > http://www.atwillys.de/content/explained/pid-contr... > > kannst Du deine Werte und die I-Begrenzung simulieren. Ok das hilft mir ein bisschen Gefühl dafür zu bekommen, aber ohne eine Funktion die mein System simuliert ist das glaub ich nicht so funktionell für diesen Zweck. Zumal ich noch nicht mal eine Funktion dafür hab. Trotzdem Danke
Eine Beschreibung der Funktion findet sich im Quelltext: http://www.atwillys.de/content/cc/pid-controller-in-c/ So ähnlich sollte deine auch aussehen oder?
hp-freund schrieb: > Eine Beschreibung der Funktion findet sich im Quelltext: > > http://www.atwillys.de/content/cc/pid-controller-in-c/ > > So ähnlich sollte deine auch aussehen oder? Ja tut er, nur ich meine, dass mein Hotend anders/spezifisch auf den Output reagiert und damit ein anderes plant-Modell hat als der simulator
Glenn R. schrieb: > Jetzt stellt sich für mich die Frage welche der drei Variablen geändert > werden muss, damit das nichtmehr so stark/gar nicht auftritt. Dazu guckst du dir einfach an, welcher der drei Anteile (P,I,D) dafür sorgt, dass dein Heizelement so kräftig angesteuert wird. Lass dir mal zusätzlich die Beiträge der drei Wege zum Gesamtsteuersignal ausgeben und trage die mit auf.
Wolfgang schrieb: > Glenn R. schrieb: >> Jetzt stellt sich für mich die Frage welche der drei Variablen geändert >> werden muss, damit das nichtmehr so stark/gar nicht auftritt. > > Dazu guckst du dir einfach an, welcher der drei Anteile (P,I,D) dafür > sorgt, dass dein Heizelement so kräftig angesteuert wird. Lass dir mal > zusätzlich die Beiträge der drei Wege zum Gesamtsteuersignal ausgeben > und trage die mit auf. ich habe jetzt mal alles aufgezeichnet und das durchgängige Resultat ist, dass der P Anteil gut arbeitet(bei großem Error großer Ausgangswert und beim dichtverkommen an den Sollwert klein genug wird), I arbeitet auch gut nur das es dort etwas dauert bis es von 100 runter ist und D fluktuiert immer mal wieder(lässt sich schwer beschreiben). Mein Verdacht ist, dass die Werte schon so gut sind, aber das Hotend ist zu träge. Ich könnte vor dem Sollwert den Strom abschalten und es würde trotzdem um die 8°C überschwingen. Aber wie sag ich das dem PID Regler...?
Gibts da Ideen? Schon genutzte Lösungen dafür oder Ansätze? Ich will jetzt nicht aktiv im PID Regler rumpfuschen, denn der ist mit anderen Systemen wunderbar stabil und regelkonform.
Imho ist für den Überschwinger ein mangelnder D-Anteil schuld, denn der widersetzt sich jeder Änderung und soll so den Overshoot verhindern.
Glenn R. schrieb: > Mein Verdacht ist, dass die Werte schon so gut sind, aber das Hotend ist > zu träge. Bei jedem Regelkreis ist die Strecke das Problem. Aber die läßt sich nun mal nicht vermeiden ;-) Sofern dein Hotend keine Totzeit ins System bringt, sondern eine normale Zeitkonstante darstellt, musst du diese erste Zeitkonstante mit dem Hochpass (bestehend aus P und D-Anteil) kompensieren. Zeitkonstante runter bedeutet bei konstantem P-Anteil den D-Anteil zu erhöhen.
Die harte Begrenzung des I Anteils auf einen festen Wert ist noch keine so gut Lösung. Zumindest könnte man da eine engere Schranke probieren. Viel mehr als den Ausgleich des statischen Fehlers braucht man da nicht. Die meist bessere Strategie ist es für das Anti Windup, bei Begrenzung des Stellgliedes (Heizung auf 100% oder 0%) den I Anteil neu zu berechnen, so dass man die Grenze nur gerade noch so erreicht. Wenn der Überschwinger nach einen Sprung im Sollwert auftritt, kann man auch überlegen Sprünge durch eine annähernd realistische Rampe zu ersetzen und ggf. eine Art Feed-forward dazu zu nehmen. Etwa als 2 zusätzliche Anteile, die vom Sollwert abhängen. Damit ändert sich nichts an der Stabilität, aber die Antwort auf einen neuen Sollwert kann unabhägig optimiert werde.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.