Druckbetttemperatur wird nicht erreicht

Nichts in der Suche gefunden? Keine Ahnung welche Kategorie euer Problem betrifft? Dann eröffnet hier ein Thema. Gegebenenfalls werden die Moderatoren das Thema dann in die entsprechende Kategorie verschieben
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: Druckbetttemperatur wird nicht erreicht

Beitrag von Nibbels »

Tadaaaa :D

Das hatte mich nicht mehr losgelassen.
Um die Verwirrung hier nicht länger stehen zu lassen:

Bug 1:
https://github.com/repetier/Repetier-Fi ... 911e40R503
Die original Repetier hat das vor ca. 3 Jahren gepatcht.
In unserer Firmware ist das nicht drin. Darum kann es sein, dass beim RF2000 beim rechten Extruder, wenn der T1 noch nie ausgewählt wurde komplett ohne I-Anteil geregelt wird. Erst das Kommando T1 berechnet die Limits aus dem "Drive Max" und "Drive Min". Dann hat der zumindest etwas Einfluss.
Bisher: Wählt man entweder den jeweiligen Extruder irgendwann aus oder verändert man beliebig einen Wert im EEPROM wird das korrigiert. Aber wenn man den Drucker nur startet und eine Temperatur setzt klappts nicht.

Bug 2:
https://github.com/repetier/Repetier-Fi ... r.cpp#L674
Ich bin mir ziemlich sicher, dass man hier schreiben müsste:

Code: Alles auswählen

tempIStateLimitMin = (float)pidDriveMin * -10.0f / pidIGain;
Mit einem Minus. Denn bisher ist das Limit für den Einfluss des Integrators immer im positiven. Eine positives Temperatur-Offset kann soweit ich das mit meinen müden Augen nun verstehe nie abgebaut werden. Nur ein negatives. Überschwingen bedeutet also unter Umständen ein dauerhaftes Temperaturoffset und der Autotune ist darauf ausgelegt, mit leichtem Überschwingen zu arbeiten. (Ändert man Autotune auf eine konservative Variante ab, blieb die Temperatur wegen Bug 1 teilweise unterhalb der Zieltemperatur - völlig verwirrend.)

Mit dieser Änderung macht auch
- PID drive min: 40
- PID drive max: 40
absolut sinn, denn verrechnet wird es wörtlich gesprochen dann mit "Der Integrator-Anteil darf von -40 bis +40" einfließen, nur nicht mehr oder weniger.
Bisher hieß das: Der Integrator-Anteil darf nur 40 sein. Das macht aus dem Regler einen PD-Regler, aber eigentlich wurde der vom Auto-Tune auf einen PID ausgelegt.

Mal sehen ob ich mich irre. Ich habe bei Repetier ein Ticket aufgemacht. Meine Test hier sind äußerst vielversprechend :)
Screenshot_6.png
LG
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
hal4822
Developer
Developer
Beiträge: 1102
Registriert: Fr 27. Mär 2015, 15:19
Wohnort: kann aus Nickname entschlüsselt werden
Has thanked: 47 times
Been thanked: 80 times
Kontaktdaten:

Re: Druckbetttemperatur wird nicht erreicht

Beitrag von hal4822 »

Nibbels hat geschrieben: Um die Verwirrung hier nicht länger stehen zu lassen:

LG
Der unbefangene Leser ist mehr denn je verwirrt, warum ein Thema, dass offenbar NUR den RF2000 betrifft, noch immer im RF1000-Forum steht.
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: Druckbetttemperatur wird nicht erreicht

Beitrag von Nibbels »

hal4822 hat geschrieben:
Nibbels hat geschrieben: Um die Verwirrung hier nicht länger stehen zu lassen:

LG
Der unbefangene Leser ist mehr denn je verwirrt, warum ein Thema, dass offenbar NUR den RF2000 betrifft, noch immer im RF1000-Forum steht.
Dann hake ich mal direkt nach:
Ist bei deinem RF1000 nicht auch das Problem vorhanden, dass wenn du z.B. 233°C angibst, er nicht auf 233,0°C einregelt sondern auf 234°C oder 232°C?

Wenn ich rechte habe, dann ist das ein Problem, dass alle Drucker betrifft, die Repetier als Firmware einsetzen - nicht nur RFx000. Bis zur aktuellen Version hoch, aber es kann auch sein, dass durch die positive Eingrenzung versucht wurde, irgendwas anderes zu kaschieren. Mal sehen.

LG
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: Druckbetttemperatur wird nicht erreicht

Beitrag von Nibbels »

Mit dem folgenden Patch:
https://github.com/Nibbels/Repetier-Fir ... b883c3R369

:muhaha:
Screenshot_11.png
Screenshot_12.png
Screenshot_13.png
Screenshot_14.png
Wegen dem Unterschwingen beim Temperaturmindern noch nicht perfekt, aber doch viel besser, als das was die 50Watt und 40Watt-Kartuschen bisher produziert haben.
Screenshot_15.png
Ich könnte nun die verschiedenen Auslegungs-Sets durchprobieren, die man mit Ziegler-Nichols und dem PID-Autotune hinbekommt. Das war "Pessen Integral Rule" https://github.com/Nibbels/Repetier-Fir ... .cpp#L1452
Da gibts Regeln um Regelkonstanten für schärfere Anstiege zu finden und auch welche, mit denen man auf die Temperatur zwar länger wartet, aber diese ohne Überschwingen erreicht werden soll.

Siehe auch:
https://en.wikipedia.org/wiki/Ziegler%E ... ols_method Tabelle
http://www.mstarlabs.com/control/znrule.html bei "Applying the Tuning Rule"
http://www.mstarlabs.com/control/znrule.html hat geschrieben:Why are there multiple rules? Well, remember, all of these are just heuristics. Some people find the transient overshoot levels of the classic Z-N rule excessive and will accept a slightly longer transient interval in exchange for smoother settling. Some people find that the Z-N classic rule doesn't quite achieve the disturbance rejection goals that were the original objective. Pick the rule that you think works best for you.
https://arduinoplusplus.wordpress.com/2 ... ontroller/ Tabelle bei "Zeigler-Nichols Method"
EEPROM.png
LG

Edit: Beim Heizbett hab ich nun den Regler auf "No Overshoot" getrimmt. Der geht 1-2°C drüber und bleibt dann ebenfalls exakt.
i1124^cimgpsh_orig.png
:whistle:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 599 times

Re: Druckbetttemperatur wird nicht erreicht

Beitrag von Nibbels »

Nibbels hat geschrieben: EEPROM Auslesen:
- PID drive min: 40
- PID drive max: 40

??? Ich habe das nicht geändert :D
Also habe ich daraus wieder 40/120 gemacht und [...]
Damit ist völlig klar warum das passiert:
https://github.com/RF1000/Repetier-Firm ... 000.h#L297
https://github.com/RF1000/Repetier-Firm ... 000.h#L277
Min und Max werden mit Min initialisiert. Copy-Paste-Fehler.

Immer, wenn man das EEPROM initialisiert steht ein HOTEND_TYPE_V2_DUAL oder HOTEND_TYPE_V2_SINGLE wieder auf -> 40 / 40 :10punkte:
:tanzen:
https://github.com/RF1000community/Repe ... 9244bc6670

LG
RF2000
Firmware Mod 1.45.00.Mod - geht SD wieder 100%?

Bitte 1.42.17 bis 1.42.21 meiden!
SD-Druck mit der Community-FW <= 1.43.99 aktuell meiden.
Antworten

Zurück zu „Sonstiges“