Autor |
PID Regler einstellen/ändern |
|
|
|
|
BID = 1077621
Kleinspannung Urgestein
Beiträge: 13366 Wohnort: Tal der Ahnungslosen
|
|
Hallo liebe Kollegen!
Da ich das System immer noch nicht ganz kapiert habe,frag ich mal Euch.
Ich muß es auch hinterher nicht unbedingt verstehen,Hauptsache einer kann mir sagen,welche Werte ich verändern müßte.
Geht um meine computergesteuerte Heißklebepistole.
Während er das Hotend auf Solltemp. aufheizt,heizt er erst mal ca. 15° drüber,wartet bis er wieder 5° drunter ist,heizt wieder auf Soll,und hält den Wert dann.
Nun dauert mir das ganze Prozedere zu lange.
Ich hätte gern den "Überschwinger" kleiner.
Was müßte ich anpassen?
Zur Auswahl in der Firmware hätte ich das hier:
#define DEFAULT_Kp 19.86
#define DEFAULT_Ki 1.00
#define DEFAULT_Kd 98.93
_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein) |
|
BID = 1077624
Jornbyte Moderator
Beiträge: 7193
|
|
Na da geb ich dir mal meine Werte die das Verhalten nicht zeigen
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
Da ist zunächst der P-Regler- P wie Proportional.
Der einfachste aber auch der Hauptregler des PID.
Der misst die Abweichung Soll-Ist, also des gewünschten
Wertes minus des aktuellen, tatsächlichen Wertes.
Der Reglerausgang ist die Abweichung (=error) multipliziert mit Kp.
Er reagiert sofort und unvermittelt auf Änderungen.
Aber wie geht die Regelabweichung weg,
wie bekommt man das System dazu auf 200°C zu regeln?
Hier kommt nun der I-Regler ins Spiel:
Der I-Regler (I wie integrierend) soll so eingestellt werden,
dass er eher langfristig wirkt.
Er schaut sich das Ergebnis des P-Reglers an, und wenn er
merkt, das der das nicht hinkriegt, dann greift er ein und
erhöht Stücken für Stückchen den Ausgang.
Im Gegensatz zum P-Regler, der immer nur von einem Moment
zum anderen agiert, hat der I-Regler die Vergangenheit im Blick.
Er addiert jede noch so kleine Abweichung auf und vergisst nie.
Aber da ist doch noch das "D" im Regler.
Der D-Regler (D wie Differenziell) ist der Regleranteil,
der versucht in die Zukunft zu sehen.
Er beobachtet die Veränderung des Eingangssignal,
des Istwertes. Wenn der Istwert plötzlich wegdriftet,
dann versucht der D-Regler sofort Gegenmaßnahmen zu ergreifen.
Er reagiert sofort auf Störungen
[ Diese Nachricht wurde geändert von: Jornbyte am 30 Jan 2021 21:13 ] |
|
BID = 1077642
Ltof Inventar
Beiträge: 9347 Wohnort: Hommingberg
|
Zitat :
Kleinspannung hat am 30 Jan 2021 20:08 geschrieben :
|
... Geht um meine computergesteuerte Heißklebepistole. ...
|
Soso!? Na, wenn's Spaß macht...
Da das aber von allgemeinem Interesse ist - Regelungstechnik ist spannend, aber auch gemein:
Ich glaube nicht, dass Du mit den Parametern von Jornbyte eine Verbesserung bewirkst. Eher wird es schlimmer. Ansonsten hat er die Wirkung der Anteile schön beschrieben.
Ich würde erst mal den I-Anteil kleiner machen oder, falls das in der Software geht, deckeln.
Das gesamte Verhalten hängt nicht nur vom Regler, sondern auch vom Stellglied und der Regelstrecke ab.
https://de.wikipedia.org/wiki/Regelstrecke
Wie ist das Stellglied beschaffen? Nur an/aus oder (quasi-)analog - also PWM z.B.?
Ganz gemein sind in solchen Fällen Totzeiten. Das ist die Verzögerung zwischen Stellglied und bis der Sensor überhaupt irgendwas merkt.
Kannst Du den Temperaturverlauf am Sensor nach dem Einschalten mitschreiben (ungeregelt!)? Das ist die "Sprungantwort". Daraus kann man schon was erkennen.
Vermutlich ist das eine normale Klebepistole, oder? Die hat ja ein sich selbst begrenzendes Heizelement (PTC-Verhalten). Wahrscheinlich ist das genau der Überschwinger. Der Regler mit zu großem I-Anteil lässt sich Zeit, bis er schnallt, dass er abschalten kann.
Man kann auch erst mal mit sehr großem P-Anteil und wirkungslosen D- und I-Anteilen anfangen. Dann hast Du einen Zweipunkt-Temperaturregler. Aus der Schaltfrequenz und Hysterese lässt sich schon was über die Regelstrecke lernen.
Ein perfekt eingestellter Regler strebt den aperiodischen Grenzfall an. https://de.wikipedia.org/wiki/Aperiodischer_Grenzfall
Das dürfte mit einem PID-Regler eher schwierig sein. Dafür ist der Regler gutmütig und empirisch (durch probieren) parametrierbar.
Und selbst, wenn er perfekt eingestellt ist, kann sich das gesamte Gebilde in der Praxis komisch benehmen, weil Störgrößen hinzukommen (Umgebungstemperatur, Durchsatzmenge des Klebers ...)
edit:
Such mal nach "pid-regler parametrieren". Da finden sich Anleitungen für irgendwelche Prozessregler, von denen sich sicherlich was abschauen lässt.
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
[ Diese Nachricht wurde geändert von: Ltof am 31 Jan 2021 14:44 ]
|
BID = 1077645
Jornbyte Moderator
Beiträge: 7193
|
Wir haben am späten Abend noch festgestell das eine veraltete (Fehlerhafte) Software da gewerkelt hat.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 1077912
Kleinspannung Urgestein
Beiträge: 13366 Wohnort: Tal der Ahnungslosen
|
Nicht das ihr denkt,ich bin undankbar...
Aber ein telefongespräch mit unserem geschätzen Moderator hat erst mal für Abhilfe gesorgt.
Und ich muß mich noch bei Ltof entschuldigen,für die Verwirrung die ich gestiftet habe.
"computergesteuerte Heißklebepistole" ist ne scherzhafte Bezeichnung für die (billigen) 3D-Drucker.
Jetzt noch mal zu den PID Reglern.
(weil,ich habs immer noch nicht kapiert)
Mit seinen Werten gehts besser,und die Solltemperatur hält das Ding ziemlich genau.
Aber wer oder was ist denn nun für den ersten "Überschwinger" um 10-15° verantwortlich,bzw. warum ist/muß das so,und warum wartet er bis er wieder paar Grad unter Soll ist um dann endlich nun die Temp zu erreichen/halten auf die er eingestellt ist?
Ein flinker Zweipunktregler mit enger Hysterese täts doch auch,oder?
Oder ist das nur mit einem NTC in unmittelbarer Nähe der Heizung nicht realisierbar?
Für alle,die grad nicht wissen wovon ich rede:
So sieht das ungefähr aus.
https://www.amazon.de/Redrex-Assemb.....=8-24
Gemeint ist der kleine Block rechts,wo die Kabel rauskommen.
Zwei sind Heizung,die anderen zwei sind für den NTC.
_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)
|
BID = 1077917
Jornbyte Moderator
Beiträge: 7193
|
Na da versuche ich es noch mal anders.
Der P Regler ist ein einfacher Schalter, der macht halt nur An und Aus.
Eine enge Hysterese würde die Überschwinger nicht verhindern.
Da kommt der I Regler. Der sagt dem P Regler das ist zu viel oder zu wenig. Da der I Regler in dem Fall auch die Leistung per PWM steuern kann,
sagt er dem P Regler den PWM Wert um ein besseres Ergebnis zu bekommen.
Der D Regler ist bis zu diesem Zeitpunkt ohne Funktion, aber wenn du das Fenster öffnest und ein kalter Luftzug kommt da des Weges greift der ein und wählt einen Wert um die Temp da zu halten wo sie gerade ist.
[ Diese Nachricht wurde geändert von: Jornbyte am 4 Feb 2021 23:03 ]
|
BID = 1077919
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Aber wer oder was ist denn nun für den ersten "Überschwinger" um 10-15° verantwortlich,bzw. warum ist/muß das so |
Weil oft die Solltemperatur am schnellsten erreicht wird, wenn der Regler so eingestellt ist, dass es diesen einen Überschwinger gibt.
https://de.wikipedia.org/wiki/Faust.....Regel
honeywell.de/FP/PI/regler/Reglerparametrierung.pdf
|
BID = 1077926
Ltof Inventar
Beiträge: 9347 Wohnort: Hommingberg
|
Zitat :
Kleinspannung hat am 4 Feb 2021 22:01 geschrieben :
|
... Aber wer oder was ist denn nun für den ersten "Überschwinger" um 10-15° verantwortlich,bzw. warum ist/muß das so,und warum wartet er bis er wieder paar Grad unter Soll ist um dann endlich nun die Temp zu erreichen/halten auf die er eingestellt ist? ...
|
Wie perl schon andeutete, kann der Sollwert schneller erreicht sein, wenn ein kleiner Überschwinger zugelassen wird. Im Kriechfall sieht das zwar weniger unstet aus, dauert u.U. aber insgesamt länger. Bei Dir lag aber wohl ein zu großer Überschwinger vor.
Der Regler ist zu "ungeduldig" eingestellt und schießt viel zu weit über das Ziel hinaus. Dem System kann der Regler nur Energie zufügen aber nicht entziehen. Da muss er halt warten, bis die überflüssige Wärme von alleine entschwindet. So, als würdest Du mit einem Auto eine leichte Steigung hochfahren und an einem bestimmten Punkt stehen bleiben wollen. Wenn Du zu lange und zu viel Gas gibst und zu weit rollst, kannst Du nicht bremsen und einen Rückwärtsgang gibt's auch nicht. Kannst nur auskuppeln und musst warten, bis die Karre von alleine zurückrollt. Ein geschickter Regler hört vorher schon auf Gas zu geben und rollt so aus, dass er am richtigen Punkt stehen bleibt. Oder er rollt ein kleines Stück am Ziel vorbei und dann zurück.
Der I-Anteil misst (zyklisch) den Abstand zum Ziel (Regelabweichung) und addiert das mit Faktor auf seine letzte Stellgröße auf. Damit steckt die Vergangenheit in der Stellgröße.
Der P-Anteil nimmt nur die momentane Regelabweichung und gibt den Wert mit Faktor momentan auf die Stellgröße.
Der D-Anteil betrachtet die Abstandsänderung und nimmt bei Annäherung an das Ziel vorausschauend Gas weg.
Das ist nicht einfach einzustellen. Die erwähnten Dokumente geben ein paar Faustregeln, um sich einer guten Einstellung anzunähern.
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 1078370
unlock Schriftsteller
Beiträge: 901 Wohnort: Mosbach
|
Kapern,
ich kaper´n mal, den Freed...
Habe auch so eine unterentwickelte Heisklebemascheng, diese verlangt bei Parametrierung noch einen zusätzlichen Parameter namens PID-C Wert.
Was mag das wohl sein?
Kann das einer erklären?
Und wo wird denn die Totzeit eingestellt. Kenne das nur von Heizkreissteuerungen, aber da weicht die Totzeit mit jeder positiv zu negativansteuerung (oder umgekehrt) des Mischers um das mechanische Spiel von den angaben ab.
_________________
One Flash and you're Ash !
|
BID = 1078378
Jornbyte Moderator
Beiträge: 7193
|
Mit der C wird der Mechanische Regelkeis gesteuert, so kenne ich das.
Aber meine Frage ... worüber wird deine unterentwickelte Heisklebemascheng gesteuert(Software, SPS)?
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 1078381
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| PID-C Wert.
Was mag das wohl sein? |
C würde ich als Konstante interpretieren, Offset.
Wenn man eine konstante Heizleistung etwas unterhalb der Benötigten zuführt, hat der P-Anteil der Regelung weniger zu tun, und die Schwingneigung wird geringer.
https://www.technik-und-wissen.ch/k......html
[ Diese Nachricht wurde geändert von: perl am 14 Feb 2021 5:46 ]
|
BID = 1078384
unlock Schriftsteller
Beiträge: 901 Wohnort: Mosbach
|
[/quote]
Zitat :
Jornbyte hat am 14 Feb 2021 00:07 geschrieben :
|
Mit der C wird der Mechanische Regelkeis gesteuert, so kenne ich das.
|
Ok, aber wo ist am Extruder ein mechanische Regelkeis?
Oder meinst Du eine art Kopplung, die Proportional zur Drehzahl des Fördermotors die Heizleistung erhöht?
Zitat :
|
Aber meine Frage ... worüber wird deine unterentwickelte Heisklebemascheng gesteuert(Software, SPS)?
|
Software muss ich bei Gelegenheit nachschauen.
Hardware dürfte ein AtMega 2560 sein.
Zitat :
| Wenn man eine konstante Heizleistung etwas unterhalb der Benötigten zuführt, hat der P-Anteil der Regelung weniger zu tun |
Werde ich mal testen; P, I und D runterstellen und C hoch, somit sollte das auch Heizen.
_________________
One Flash and you're Ash !
|
BID = 1078396
Jornbyte Moderator
Beiträge: 7193
|
Nu hab ich mal die Software angesehen. Marlin2.x verwendet PIDCF.
Da wird der C-Wert (PID_EXTRUSION_SCALING) bei 32Bit CPU verwendet. Da du einen 8Biter hast steht der Wert auf 1.
Der F-Wert (PID_FAN_SCALING) ist für den Lüfter gedacht. Der steht beim 8Biter auch auf 0.
C und F werden (bei 32Bit) nur beachtet wenn diese auch ENABLED sind.
Die Totzeit wird in der temperature.h eingestellt.
[ Diese Nachricht wurde geändert von: Jornbyte am 14 Feb 2021 13:11 ]
|
BID = 1078397
Jornbyte Moderator
Beiträge: 7193
|
Der C-Wert soll den Extruder in der Geschwindigkeit regulieren wenn das Filament von der Sollgröße abweicht. Da da auch die Temperatur nach zu regeln ist, ist der Bestandteil vom PID.
[ Diese Nachricht wurde geändert von: Jornbyte am 14 Feb 2021 14:37 ]
|
BID = 1078400
Kleinspannung Urgestein
Beiträge: 13366 Wohnort: Tal der Ahnungslosen
|
Ich habs nun auch in etwa kapiert wie es funktioniert.
Aber noch lange nicht,was die einzelnen Werte nun in absolut bedeuten.
Die Theorie dahinter übersteigt meinen Horizont um mindestens eine Größenordnung.
Aber weil wir grad bei Marlin sind:
Hab rausgefunden,das die Soft auch Auto-PID-Tuning kann.
Man gebe (z.B. im Repetier-Horscht) M303 E0 S210 C8 ein.
(Wobei S die Temp und C die Zyklen sind)
Dann heizt und rödelt er ne Weile,und spuckt zum Schluß die seiner Meinung nach passenden PID Werte für den Extruder aus.
Das stand Orginal drin:
Kp 19.86
Ki 1.00
Kd 98.93
das bei Jornbyte:
Kp 22.2
Ki 1.08
Kd 114
und das hat er ausgewürfelt:
Kp 11.52
Ki 0.62
Kd 54.91
Hab ich jetzt mal so in die Firmware geschrieben.
Der Überschwinger ist nur noch so viel wie unbedingt muß,und die Zieltemp. hält er auf +/- 0.1 Grad genau, und zappelt auch nicht groß rum.
(auch mit voller Kühlung und wenn man dem NTC glauben darf)
Ich laß das jetzt so ,Theorie hin oder her.
_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)
[ Diese Nachricht wurde geändert von: Kleinspannung am 14 Feb 2021 14:23 ]
|