PID verhalten?

OP #4261497
Lesenswert?

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..)
Angehängte Dateien:
#4261519
Lesenswert?

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.
OP #4261525
Lesenswert?

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.
OP #4261562
Lesenswert?

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
Gast #4261653
Lesenswert?

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.
OP #4261661
Lesenswert?

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...?
Gast #4261819
Lesenswert?

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.
Gast #4261892
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren