3D-Drucker PID Tuning für Extruder und Heizbett

PIDPID Regler beim 3D-Drucker optimieren

Im Druckbetrieb sollten die Temperaturwerte für  Extruder und Heizbett möglichst konstant bleiben.
Sollten größeren Schwankungen auftreten lohnt es sich die Einstellungen des PID Reglers anzupassen.
Da die Bauteile über eine gewisse Masse und Wärmekapazität verfügen, verwendet man keine einfache Zweipunktregelung. Die Schwankungen wären zu groß. Zum Glück muss man sich nicht mit den mathematischen Feinheiten des Regler auseinander setzen. Der PID Regler ist Bestandteil der Firmware und diese stellt auch G-Code Kommandos für die Einstellung der Regler bereit.

Überprüfen der Temperaturen

Verfügt der Drucker über ein Display, werden in der Regel dort die Temperaturen angezeigt. Damit kann man Schwankungen kaum beurteilen. Zuverlässiger sind bei Octoprint, Repetier Host und Pronterface die Temperaturkurven.
Im abgebildeten Repetier Host sieht man nach Beginn des Druck noch einen Einschwingvorgang der durch das Einsetzen der Filamentkühlung bedingt ist. Im weiteren Verlauf bleiben die Temperaturen konstant.
Bei der Ermittlung der PID Werte für den Extruder hatte ich den Filament-Lüfter eingeschaltet, da er auch im Druckbetrieb bist auf die erste Lage ständig an ist.

Vorgehen
Man beginnt mit abgekühltem Extruder/Heizbett. An einer Console wie Pronterface oder Octoprint gibt man den entsprechenden G-Code Befehl 303 nebst Parameter ein. Nach einigen Messzyklen werden die PID Werte angezeigt.
Die Min und Max Werte zeigen in welchem Bereich der Regler die Temperatur konstant hält.
Die ermittelten K-Werte schreibt man in den EPROM des Prozessors(Arduino) oder bei der Firmware Marlin in die Configuration.h.
In Repetier Host kann man zwar den G-Code in der Konsole absetzen, aber nur bei der Repetier Firmware bekommt die Antworten angezeigt.
Im Fall der Configuration.h muss man die geänderte Firmware per Arduino IDE auf den Arduino übertragen. Das setzt voraus, das die Firmware als Sourcedatei vorliegt.

Autotuning PID Extruder

Befehl: M303 E0 S210 C8

M303 = Autotuning PID
E0 = Extruder 1
S210 = 210 Grad Celsius
C8 = 8 Messzyklen

Beispiel ermittelte PID Werte:
bias: 91 d: 91 min: 206.48 max: 213.59
Ku: 32.59 Tu: 26.48
Classic PID
Kp: 19.56
Ki: 1.48
Kd: 64.72

Speichern im EPROM:

M301 P19.56 I1.48 D64.72
M500

Speichern in der Configuration.h bei Merlin:

// Hephestos (i3)
#define DEFAULT_Kp 19.56
#define DEFAULT_Ki 1.48
#define DEFAULT_Kd 64.72

 

Autotuning PID Heizbett

Befehl: M303 E-1 C8 S53

M303 = Autotuning PID
S53 = 53 Grad Celsius
C8 = 8 Messzyklen

Beispiel ermittelte PID Werte:
bias: 50 d: 50 min: 52.97 max: 53.13
Ku: 814.87 Tu: 11.80
Classic PID
Kp: 488.92
Ki: 82.89
Kd: 720.98

Speichern im EPROM:

M304 P488.92 I82.89 D720.98
M500

Speichern in der Configuration.h bei Merlin:

#define  DEFAULT_bedKp 488.92
#define  DEFAULT_bedKi 82.89
#define  DEFAULT_bedKd 720.98

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.