Firmware 1.37 development PID Autotune wie geht das?

Firmware Veröffentlichungen und Einstellungen können hier angekündigt und diskutiert werden.
Antworten
Schraubeer
Gelegenheitsdrucker
Gelegenheitsdrucker
Beiträge: 48
Registriert: Do 12. Mai 2016, 00:10
Wohnort: Sörzen
Has thanked: 6 times
Been thanked: 4 times

Firmware 1.37 development PID Autotune wie geht das?

Beitrag von Schraubeer »

Hallo zusammen,

hab mir jetzt die 1.37 auf meinen RF1000 geknallt und hab hier gelesen dass man den PID Autotune machen soll. Ich kapier aber jetzt nicht ganz ob man nach dem Autotune die ganz Sache noch wo abspeichern muss oder der Drucker das automatisch dann in den EEPROM übernimmt? :wundern:
In der Gerätebedienung von S3D wird mir nämlich danach angezeigt man soll die angezeigten Werte in die configuration.h oder den EEPROM eintragen?

Wenn er den Z-Offset-Scan macht fährt er auch immer auf die gleiche Stelle? Ich dachte der sucht sich jedes Mal automatisch eine andere? So hat sich das in der changelog zumindest gelesen.

Danke euch für eure Antworten.
Grüße Johannes/Schraubeer

Wird schon - Renkforce RF1000 :prost:
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 598 times

Re: Firmware 1.37 development PID Autotune wie geht das?

Beitrag von Nibbels »

Hallo Schraubeer,

Ich nehme an, du hast die 1.37r (oder fast aktuelle 1.37s) drauf.

In diesem Drucker gibts ein EEPROM und in der Firmware ist das Feature EEPROM Support aktiviert. Das war nicht immer normal. Dadurch werden beim Druckerstart Werte aus diesem Speicher geladen und verwendet. Ohne EEPROM-Support oder auch wenn die Daten im EEPROM nicht valide scheinen werden die Werte beim Druckerstart aus der Configuration.h übernommen.
Da wir das EEPROM nutzen werden in so einem Fall die Werte von den Standardwerten in der Configuration.h ins EEPROM geschrieben und ab dann wieder von dort benutzt.

D.h. wenn du Werte in die Configuration.h eintragen würdest, werden die nur dann benutzt, wenn der Datensatz im EEPROM verworfen wird. Man kann das erzwingen, wenn man die EEPROM-Version leicht ändert. (Das ist ein Marker in der Configuration.h der mit einem Wert im EEPROM übereinstimmen muss. Ist das nicht so, wird angenommen die Daten im EEPROM sind veraltet oder Zufallsdaten sind.)

Ich habe inzwischen seit Version 1.37s o.ä. die Daten in der Mod-Configuration.h so angepasst, dass zumindest einigermaßen sinnvolle Werte geladen werden wenn aus der Configuration.h wegen Werksreset oder ähnlichem die Daten neu geladen werden.


Soviel zum EEPROM allgemein :)

Jetzt zum PID. Diese Autokalibrierung misst quasi das Überschwingen und trimmt die Reglerwerte so, dass es minimal wird und der Regler die Temperatur konstant halten kann.
Dazu müssen 3 Rechenkonstanten mathematisch sauber mit der Dynamik des Hotendheizelementes und seiner Masse zusammenarbeiten. Sind diese Werte nicht perfekt ermittelt, funktioniert das Hotend meist auch, aber je weiter die vom Ideal weg sind eben immer schlechter. Wenn daran irgendwas überhaupt nicht stimmt, kann es sein, dass die Temperatur die erreicht werden soll nie erreicht wird oder dass man zum erreichen von z.B. 230°C zuerst mal auf 250°C heizt und dann wieder abkühlt. (Überschwingen) Ohne dass man das will.
Ideal ist, wenn die Temperatur extrem schnell erreicht wird und die Temperatur sauber in die Zieltemperatur einbiegt, ohne sich zu lange Zeit zu lassen oder drüber rauszuschießen.

Schnell erreichen heißt normalerweise dass man ein leichtes Überschwingen in kauf nimmt, aber man kann das manuell experimentell abdämpfen, wenn man das PID drive Max so weit absenkt, dass es weniger bis minimal wird. Damit greift man manuell in den Regelvorgang ein.

Grundsätzlich kann man diese Werte ändern, in dem man im EEPROM die Werte ändert. Man kann das EEPROM im Repetier-Host oder Repetier-Server tabellarisch abrufen lassen und dort in den Feldern die Werte ändern und in den Drucker abspeichern.
In unserem Fall mit dem PID Autotune ist das aber nicht immer nötig.

Denn es gibt 2 Arten, wie man in dieser Version den Autotune starten kann, um die drei Konstanten P und I und D zu finden:
  • Gcode M303
  • Menü im Drucker: Configuration - Temperatures - Hotend0/Heizbett
Dafür sollte man jeweils bei einem abgekühlten Sensor starten. Also nicht erst auf 200°C heizen und dann starten, sondern danach wieder kleiner 50..100°C oder so abwarten.

Zusätzlich gibts unterschiedliche Regelsätze, in welches Optimum man den Regler trimmen will. Bisher war immer der Regelsatz "Classic PID" verwendet worden.
Ich finde aber für die Hotends "Pessen Integral Rule" besser und fürs Heizbett "No Overshoot" passender.
(Meine persönliche Preferenz, ich habe diese Autotunes mehrmals gemacht und bei Temperaturänderung die jeweilige TemperatukKurve betrachtet, die man nach stufenweiser Zieltemperaturändeung sehen kann. Stichwort Sprungantwort.)
Ganz einfach geht das übers Druckermenü.
Beim GCode muss man für Classic PID J0 dranhängen. für Pessen Integral Rule J1 dranhängen, für Some Overshoot Rule J2 dranhängen und für No Overshoot J3 dranhängen.

Die Funktion im Druckermenü speichert das Ergebnis immer ins EEPROM, man muss bis zum nächsten EEPROM- oder Werksreset also nichts weiter tun. Beim GCode kann man X0 als Schalter anhängen, um dasselbe zu erreichen.
Siehe http://www.rf1000.de/wiki/index.php/GCo ... _ermitteln
Man könnte z.B. mit "M303 ... J1 X0" erreichen, dass Pessen Integral Rule verwendet wird und das Ergebnis direkt im EEPROM und nicht nur in der Console von Repetier-Host landet.
Per GCode kann der Spezialist auch unterschiedliche Iterationen wählen. Früher war die Erkennung immer nach 5 Zyklen abgeschlossen, ich habe aber beim Heizbett und schlechten Werten bemerkt, dass die Konstanten ein paar weitere Verfeinerungszyklen gerne gehabt hätten. Darum kann man nun im Mod auch wie in der aktuellen offiziellen Repetier die Zyklen auswählen. Übers Menü werden passende Zyklen automatisch gewählt, der GCode macht Standard 5 ausser man gibt das anders an.

Ist der Autotune fertig durchgelaufen, ob per GCode oder Menü, dann kann man abkühlen lassen, die Temperatur auf z.B. 200°C stellen und beobachten, ob die Temperatur genau das tut, was sie soll. (Sauber in die Zieltemperatur einregeln.)
Allerdings ist das normalerweise nicht nötig. Man kann auch erst dann nachschauen, wenn was nicht korrekt zu funktionieren scheint ^^.
Es sei denn, rein Hobbyregelungstechniker will es perfekt machen. :grinsen:

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: 598 times

ZOS Position

Beitrag von Nibbels »

Wenn man den Z-Offset-Scan mit X0 und Y0 startet,

M3900 X0 Y0

Dann wird eine Zufallsposition gewählt. Wessix hat mir mal gemeldet, dass er vermutet, dass diese Zufallszahlen nicht sauber verteilt scheinen. Aber das Gefühl kann auch wieder Zufall sein.
Startet man übers Menü oder nur per

M3900

Dann wird soweit ich weiß immer die Standardposition oder eben die letzte gewählte Position verwendet. Dafür habe ich soweit ich mich erinnern kann auch einmal EEPROM Support eingebaut. Kann sein, dass 0 und 0 im EEPROM immer zufällig wählt. Das müsste ich jetzt aber nochmal testen, nur bin ich gerade nicht zuhause.
Ihr könnt das einfach testen, wenn ihr das EEPROM abruft und dann unten bei Z-Offset Scan X und Y schaut.

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.
Schraubeer
Gelegenheitsdrucker
Gelegenheitsdrucker
Beiträge: 48
Registriert: Do 12. Mai 2016, 00:10
Wohnort: Sörzen
Has thanked: 6 times
Been thanked: 4 times

Re: Firmware 1.37 development PID Autotune wie geht das?

Beitrag von Schraubeer »

Hallo Nibbels,

vielen Dank für die ausführliche Antwort. Ich denke ich habs kapiert. :danke:
Grüße Johannes/Schraubeer

Wird schon - Renkforce RF1000 :prost:
Schraubeer
Gelegenheitsdrucker
Gelegenheitsdrucker
Beiträge: 48
Registriert: Do 12. Mai 2016, 00:10
Wohnort: Sörzen
Has thanked: 6 times
Been thanked: 4 times

Re: ZOS Position

Beitrag von Schraubeer »

Nibbels hat geschrieben:Wenn man den Z-Offset-Scan mit X0 und Y0 startet,

M3900 X0 Y0

Dann wird eine Zufallsposition gewählt. Wessix hat mir mal gemeldet, dass er vermutet, dass diese Zufallszahlen nicht sauber verteilt scheinen. Aber das Gefühl kann auch wieder Zufall sein.
Startet man übers Menü oder nur per

M3900

Dann wird soweit ich weiß immer die Standardposition oder eben die letzte gewählte Position verwendet. Dafür habe ich soweit ich mich erinnern kann auch einmal EEPROM Support eingebaut. Kann sein, dass 0 und 0 im EEPROM immer zufällig wählt. Das müsste ich jetzt aber nochmal testen, nur bin ich gerade nicht zuhause.
Ihr könnt das einfach testen, wenn ihr das EEPROM abruft und dann unten bei Z-Offset Scan X und Y schaut.

LG
Mit

M3900 X0 Y0

hat es funktioniert. Am Druckermenü ist er mir immer auf die gleiche Stelle gefahren.
Grüße Johannes/Schraubeer

Wird schon - Renkforce RF1000 :prost:
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 598 times

Re: Firmware 1.37 development PID Autotune wie geht das?

Beitrag von Nibbels »

:)

Noch ein Tipp:
Wenn man nicht immer an derselben Stelle per ZOS scannt, dann gleicht man die Z-Höhe die gemessen wird ständig mit unterschiedlichen auch fehlerbehafteten Infos aus der Matrix ab. D.h. man kann ein paar Hundertstel unterschiedliche Ergebnisse bekommen, jenachdem wo man misst. Ich habe lange gesucht, ob das von Hardware oder Messunregelmäßigkeiten bedingt oder ein Fehler in der Software ist, aber ich habe nichts gefunden, was auf einen Fehler hindeuten könnte.
Ich glaube, dass eine leichte Schwankung innerhalb der Matrix-Mess-Punkte eine leichte Schwankung im Gesamtergebnis nach dem Scan bedeutet.
Misst man immer über demselben Messpunkt, hat man immer denselben Fehler als Grundlage. Also ein eher konstantes Ergebnis. Allerdings ist das bei DDPs blöd, weil man unter Umständen heißer antippt, als das Material DDP auf Dauer ertragen kann.

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
AtlonXP
3D-Drucker Erfinder
3D-Drucker Erfinder
Beiträge: 3374
Registriert: So 15. Nov 2015, 20:55
Has thanked: 742 times
Been thanked: 588 times

Re: Firmware 1.37 development PID Autotune wie geht das?

Beitrag von AtlonXP »

Hallo,

zum Thema PID Autotune.

Leider musste ich mich mit diesem Thema auch auseinander setzen.
Wessix hat das nötigste in der Anleitung beschrieben.

Danke hier an die Verfasser und Künstler.

Scheinbar gibt es einen Bug, ich nenne ihn mal 5 und 5.
Dieser hat die Folge, dass die Zieltemperatur am Hot End nicht erreicht wird.

EPR:0 217 5 Extr.1 PID I-drive max
EPR:0 245 5 Extr.1 PID I-drive min

Meine Einstellwerte sehen jetzt nach ein paar Tests, so aus für das V2b.

EPR:0 217 130 Extr.1 PID I-drive max
EPR:0 245 50 Extr.1 PID I-drive min

Diese Werte hatte PID Autotune M303 ermittelt nach Wessix Anleitung.
Ich war aber so frei und habe meinen Bauteillüfter auch noch mit 5 % zugeschaltet.
Warum?
Ich hoffe, dass die Zeiten etwas schärfer ermittelt werden,
damit das V2b auch mit Lüfter noch das Brot von der Wurst zieht! :mrgreen:

EPR:0 216 1 Extr.1 heat manager [0-3]
EPR:3 218 10.7986 Extr.1 PID P-gain/dead-time
EPR:3 222 2.7324 Extr.1 PID I-gain
EPR:3 226 16.0035 Extr.1 PID D-gain

EPR:0 230 255 Extr.1 max power value [0-255]
EPR:0 294 3 Extr.1 Temp. SensorType [0=Cfg,3=V2,8=E3D,..]

Da ich von diesen Einstellungen keine Ahnung habe was ich da eigentlich genau mache,
da Frage ich doch lieber hier mal nach,
was das Zeugs am besten in Deutsch erklärt bedeutet. :coolbubble:

Sollte ich noch etwas vergessen haben, dann bitte ich auch um Ergänzung.

Danke hier im Voraus.

LG AtlonXP
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 598 times

Re: Firmware 1.37 development PID Autotune wie geht das?

Beitrag von Nibbels »

Ja :)

Da war noch einer der Min-Max-Bugs dringeblieben. Du hast ihn gefunden.
Wir hatten das ja schon per PN geklärt: Seit Version 1.37u4 ist das nun auch "höchstwahrscheinlcih" behoben, ausser es gibt noch eine dieser Falschdefinitionen in der Firmware. Früher war das mal der 40/40-Bug.

Möglicher Grund für große Lüfter-An-schwankung:
Wenn der PID-I-drive-max und PID-I-drive-min zu klein sind, kann der Regler keinen Integrator-Anteil aufbauen. Darum ist der nicht sonderlich reaktionsfreudig, was die kleinen Rückstellkräfte zur Zieltemperatur angeht. Ich vermute mal, dass nach einem sauberen PID-Autotune mit "Pessen Rule" dein Lüfterproblem nur von ganz kurzer Dauer oder behoben sein wird.

Ein paar Details:
EPR:0 230 255 Extr.1 max power value [0-255]
Dein Hotend darf voll beheizt werden, soviel wie es ziehen will bekommt es. Es wird nicht in seiner Heizleistung beschränkt.

EPR:0 216 1 Extr.1 heat manager [0-3]
0 = Bang Bang, fast update
1 = PID controlled
2 = Bang Bang, limited check every HEATED_BED_SET_INTERVAL. Use this with relay-driven beds to save life time
3 = dead time control */

EPR:0 294 3 Extr.1 Temp. SensorType [0=Cfg,3=V2,8=E3D,..]
Ist klar: Das ist der Sensor vom V2 Hotend

EPR:3 218 10.7986 Extr.1 PID P-gain/dead-time
EPR:3 222 2.7324 Extr.1 PID I-gain
EPR:3 226 16.0035 Extr.1 PID D-gain

Das sind deine Regelparameter, wobei mit 5/5 der PID I-Gain quasi nichts ausrichten konnte und lahmgelegt war.

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 „Firmware / Tweaks“