Seite 1 von 2

Druckbetttemperatur wird nicht erreicht

Verfasst: Sa 3. Jun 2017, 11:56
Hi!

Ich hätte (neben meinem z-Problem) noch ein nerviges Problem: Mein Druckbett erreicht die eingestellte Solltemperatur nicht.
Und zwar liegt die IST Temperatur immer um 2,5 bis 3 Grad über der eingestellten (und wird dort elektronisch geregelt konstant gehalten).
Beim Drucken sind mir die 3 Grad wurscht - aber beim HeatBedScan ist das sehr nervig, da es Gluckssache ist, wann das Bett mal in das "Akzeptanzfenster" fällt, aber dem der Scan überhaupt startet...

An welcher Schraube muss ich drehen, damit die Steuerung die Solltemeperaturen erreicht?

Danke im Voraus!

cu. Tim

Re: Druckbetttemperatur wird nicht erreicht

Verfasst: Sa 3. Jun 2017, 12:36
von Nibbels
Die Temperaturen werden von einem PID-Regler eingestellt.

1) Der Regler benutzt Konstanten = Regelparameter aus dem EEPROM, welche man im EEPROM durch Repetier-Host, Repetier-Server oder besondere G-Codes einstellen kann. Hat der Regler keine Werte im EEPROM werdem sie über die Configurationsdateien initialisiert. (rf?000.h und configuration.h)
Dazu gehört http://www.rf1000.de/wiki/index.php/GCo ... _ermitteln
Die Erklärung was M303 macht steht hier:
http://www.rf1000.de/viewtopic.php?f=67 ... ler#p15610

2) Wenn jemand Temperaturen nach dem Ausführen des PID-Programms nicht mehr erreicht: Es gab da noch sone Drive-Max oder Drive-Min-Problematik. (Wenn man 250°C einstellt und nur 240°C erreicht werden.)
http://www.rf1000.de/viewtopic.php?f=72 ... max#p17986
Ich würde heute das Wertepaar prüfen, ob es auf (40/255) oder (80/255) steht oder auf was anderem. Problematisch war bei mir (40/40). Mir ist nicht ganz klar, was diese Zahlen im Detail bedeuten (hab nie genau nachgeschaut, aber es gibt einige Infos, wenn man nach "drive max" und "drive min" im Forum sucht.)

Hier gibts noch EEPROM-Werte von rf1k_mhj11:
http://www.rf1000.de/viewtopic.php?f=67 ... max#p14958
rf1k_mjh11 hat geschrieben:
Log Ausgabe Z Verringerung
18:37:21.159 : N15 M205 *48
18:37:21.384 : EPR:2 75 115200 Baudrate
18:37:21.384 : EPR:2 79 0 Max. inactive time [ms,0=off]
18:37:21.384 : EPR:2 83 600000 Stop stepper after inactivity [ms,0=off]
18:37:21.384 : EPR:3 3 152.3809 X-axis steps per mm
18:37:21.384 : EPR:3 7 152.3809 Y-axis steps per mm
18:37:21.384 : EPR:3 11 2560.0000 Z-axis steps per mm
18:37:21.384 : EPR:3 15 500.000 X-axis max. feedrate [mm/s]
18:37:21.384 : EPR:3 19 500.000 Y-axis max. feedrate [mm/s]
18:37:21.384 : EPR:3 23 50.000 Z-axis max. feedrate [mm/s]
18:37:21.384 : EPR:2 1038 220 Z-Offset [um]
18:37:21.389 : EPR:0 1045 1 Z Scale
18:37:21.389 : EPR:3 129 176.036 Filament printed [m]
18:37:21.389 : EPR:2 125 158762 Printer active
18:37:21.389 : EPR:3 27 165.000 X-axis homing feedrate [mm/s]
18:37:21.389 : EPR:3 31 165.000 Y-axis homing feedrate [mm/s]
18:37:21.389 : EPR:3 35 10.000 Z-axis homing feedrate [mm/s]
18:37:21.389 : EPR:3 39 10.000 Max. jerk [mm/s]
18:37:21.389 : EPR:3 47 0.100 Max. Z-jerk [mm/s]
18:37:21.389 : EPR:3 133 0.000 X home pos [mm]
18:37:21.389 : EPR:3 137 0.000 Y home pos [mm]
18:37:21.389 : EPR:3 141 0.000 Z home pos [mm]
18:37:21.389 : EPR:3 145 245.000 X max length [mm]
18:37:21.389 : EPR:3 149 245.000 Y max length [mm]
18:37:21.389 : EPR:3 153 200.000 Z max length [mm]
18:37:21.389 : EPR:3 51 1000.000 X-axis acceleration [mm/s^2]
18:37:21.389 : EPR:3 55 1000.000 Y-axis acceleration [mm/s^2]
18:37:21.389 : EPR:3 59 100.000 Z-axis acceleration [mm/s^2]
18:37:21.389 : EPR:3 63 1000.000 X-axis travel acceleration [mm/s^2]
18:37:21.389 : EPR:3 67 1000.000 Y-axis travel acceleration [mm/s^2]
18:37:21.389 : EPR:3 71 100.000 Z-axis travel acceleration [mm/s^2]
18:37:21.389 : EPR:0 106 1 Bed Heat Manager [0-3]
18:37:21.389 : EPR:0 107 255 Bed PID drive max
18:37:21.389 : EPR:0 124 80 Bed PID drive min
18:37:21.389 : EPR:3 108 53.740 Bed PID P-gain
18:37:21.389 : EPR:3 112 7.480 Bed PID I-gain
18:37:21.389 : EPR:3 116 96.520 Bed PID D-gain
18:37:21.389 : EPR:0 120 255 Bed PID max value [0-255]
18:37:21.389 : EPR:3 200 256.200 Extr.1 steps per mm
18:37:21.389 : EPR:3 204 25.000 Extr.1 max. feedrate [mm/s]
18:37:21.389 : EPR:3 208 18.000 Extr.1 start feedrate [mm/s]
18:37:21.389 : EPR:3 212 6000.000 Extr.1 acceleration [mm/s^2]
18:37:21.389 : EPR:0 216 1 Extr.1 heat manager [0-3]
18:37:21.389 : EPR:0 217 40 Extr.1 PID drive max
18:37:21.389 : EPR:0 245 40 Extr.1 PID drive min
18:37:21.389 : EPR:3 218 70.0000 Extr.1 PID P-gain/dead-time
18:37:21.389 : EPR:3 222 40.0000 Extr.1 PID I-gain
18:37:21.389 : EPR:3 226 30.0000 Extr.1 PID D-gain
18:37:21.394 : EPR:0 230 255 Extr.1 PID max value [0-255]
18:37:21.394 : EPR:3 231 0.000 Extr.1 X-offset [mm]
18:37:21.394 : EPR:3 235 0.000 Extr.1 Y-offset [mm]
18:37:21.394 : EPR:1 239 20 Extr.1 temp. stabilize time
18:37:21.394 : EPR:1 250 150 Extr.1 temp. for retraction when heating [C]
18:37:21.394 : EPR:1 252 0 Extr.1 distance to retract when heating [mm]
18:37:21.394 : EPR:0 254 255 Extr.1 extruder cooler speed [0-255]
18:37:21.394 : EPR:3 246 0.000 Extr.1 advance L [0=off]
18:37:21.394 : EPR:0 1000 1 beeper mode [0=off]
18:37:21.394 : EPR:0 1003 1 operating mode [1=print, 2=mill]
18:37:21.394 : EPR:0 1016 1 Z endstop type [1=single, 2=circuit]
18:37:21.394 : EPR:0 1018 0 Miller type [1=one track, 2=two tracks]
18:37:36.975 : N19 G4 P2 *119 hier habe ich bloß ein paar doofe Befehle eingetippt, um Abstand zu gewinnen
18:38:00.282 : N24 M3001 *7
18:38:00.305 : M3001: the z compensation can not be enabled because the home position is unknown
18:38:14.983 : N28 G4 P1 *118
18:38:35.802 : Warning: Seems like we missed a ok, got a wait - continue sending.
18:39:05.254 : N39 M206 T3 X198 P153 *117
18:39:14.531 : N42 G4 P2 *121
18:39:15.493 : N43 G4 P2 *120
18:39:18.962 : N45 M205 *53
18:39:19.232 : EPR:2 75 115200 Baudrate
18:39:19.232 : EPR:2 79 0 Max. inactive time [ms,0=off]
18:39:19.232 : EPR:2 83 600000 Stop stepper after inactivity [ms,0=off]
18:39:19.232 : EPR:3 3 152.3809 X-axis steps per mm
18:39:19.232 : EPR:3 7 152.3809 Y-axis steps per mm
18:39:19.232 : EPR:3 11 2560.0000 Z-axis steps per mm
18:39:19.232 : EPR:3 15 500.000 X-axis max. feedrate [mm/s]
18:39:19.232 : EPR:3 19 500.000 Y-axis max. feedrate [mm/s]
18:39:19.232 : EPR:3 23 50.000 Z-axis max. feedrate [mm/s]
18:39:19.232 : EPR:2 1038 220 Z-Offset [um]
18:39:19.232 : EPR:0 1045 1 Z Scale
18:39:19.232 : EPR:3 129 176.036 Filament printed [m]
18:39:19.232 : EPR:2 125 158762 Printer active
18:39:19.232 : EPR:3 27 165.000 X-axis homing feedrate [mm/s]
18:39:19.232 : EPR:3 31 165.000 Y-axis homing feedrate [mm/s]
18:39:19.232 : EPR:3 35 10.000 Z-axis homing feedrate [mm/s]
18:39:19.232 : EPR:3 39 10.000 Max. jerk [mm/s]
18:39:19.232 : EPR:3 47 0.100 Max. Z-jerk [mm/s]
18:39:19.232 : EPR:3 133 0.000 X home pos [mm]
18:39:19.232 : EPR:3 137 0.000 Y home pos [mm]
18:39:19.232 : EPR:3 141 0.000 Z home pos [mm]
18:39:19.232 : EPR:3 145 245.000 X max length [mm]
18:39:19.232 : EPR:3 149 245.000 Y max length [mm]
18:39:19.232 : EPR:3 153 198.000 Z max length [mm]
18:39:19.232 : EPR:3 51 1000.000 X-axis acceleration [mm/s^2]
18:39:19.232 : EPR:3 55 1000.000 Y-axis acceleration [mm/s^2]
18:39:19.232 : EPR:3 59 100.000 Z-axis acceleration [mm/s^2]
18:39:19.237 : EPR:3 63 1000.000 X-axis travel acceleration [mm/s^2]
18:39:19.237 : EPR:3 67 1000.000 Y-axis travel acceleration [mm/s^2]
18:39:19.237 : EPR:3 71 100.000 Z-axis travel acceleration [mm/s^2]
18:39:19.237 : EPR:0 106 1 Bed Heat Manager [0-3]
18:39:19.237 : EPR:0 107 255 Bed PID drive max
18:39:19.237 : EPR:0 124 80 Bed PID drive min
18:39:19.237 : EPR:3 108 53.740 Bed PID P-gain
18:39:19.237 : EPR:3 112 7.480 Bed PID I-gain
18:39:19.237 : EPR:3 116 96.520 Bed PID D-gain
18:39:19.237 : EPR:0 120 255 Bed PID max value [0-255]
18:39:19.237 : EPR:3 200 256.200 Extr.1 steps per mm
18:39:19.237 : EPR:3 204 25.000 Extr.1 max. feedrate [mm/s]
18:39:19.237 : EPR:3 208 18.000 Extr.1 start feedrate [mm/s]
18:39:19.237 : EPR:3 212 6000.000 Extr.1 acceleration [mm/s^2]
18:39:19.237 : EPR:0 216 1 Extr.1 heat manager [0-3]
18:39:19.237 : EPR:0 217 40 Extr.1 PID drive max
18:39:19.237 : EPR:0 245 40 Extr.1 PID drive min
18:39:19.237 : EPR:3 218 70.0000 Extr.1 PID P-gain/dead-time
18:39:19.242 : EPR:3 222 40.0000 Extr.1 PID I-gain
18:39:19.242 : EPR:3 226 30.0000 Extr.1 PID D-gain
18:39:19.242 : EPR:0 230 255 Extr.1 PID max value [0-255]
18:39:19.242 : EPR:3 231 0.000 Extr.1 X-offset [mm]
18:39:19.242 : EPR:3 235 0.000 Extr.1 Y-offset [mm]
18:39:19.242 : EPR:1 239 20 Extr.1 temp. stabilize time
18:39:19.242 : EPR:1 250 150 Extr.1 temp. for retraction when heating [C]
18:39:19.242 : EPR:1 252 0 Extr.1 distance to retract when heating [mm]
18:39:19.242 : EPR:0 254 255 Extr.1 extruder cooler speed [0-255]
18:39:19.242 : EPR:3 246 0.000 Extr.1 advance L [0=off]
18:39:19.242 : EPR:0 1000 1 beeper mode [0=off]
18:39:19.242 : EPR:0 1003 1 operating mode [1=print, 2=mill]
18:39:19.242 : EPR:0 1016 1 Z endstop type [1=single, 2=circuit]
18:39:19.242 : EPR:0 1018 0 Miller type [1=one track, 2=two tracks]

-> In der Log steht drive-max und drive-min auf 40, was bei mir zu Problemen geführt hatte.

3) Du kannst auch die PID-Werte manuell justieren, wenn du weißt was du tust :D

4) Und sollten dir 3°C egal sein, kannst du in der Firmware die Grenze lockern:
configuration.h hat geschrieben:

Code: Alles auswählen

/** \brief Temperature range for target temperature to hold in M109 command. 5 means +/-5 degC
Uncomment define to force the temperature into the range for given watchperiod. */
#define TEMP_TOLERANCE                      2.0                                                 // [°C]
und hier:

Code: Alles auswählen

/** \brief Skip wait, if the extruder temperature is already within x degrees. Only fixed numbers, 0 = off */
#define SKIP_M109_IF_WITHIN                 2
Mit diesen Infos solltest du vermutlich erfolg haben :)
Oder die nötigen Suchbegriffe fürs Forum.

LG

Re: Druckbetttemperatur wird nicht erreicht

Verfasst: Sa 3. Jun 2017, 13:05
Danke!
Die Infos sollten reichen! :)

Re: Druckbetttemperatur wird nicht erreicht

Verfasst: So 4. Jun 2017, 12:54
Nachtrag:
M303 hat zwar zügig neue PID-Werte berechnet, die führten aber zu identischem Verhalten.
Erst das Absenken von Drive-Max auf 128 (alt: 255) und Drive-Min auf 0 (alt:80) nach "trial and error" führte zu zuverlässigem Erreichen der Solltemperatur.

Re: Druckbetttemperatur wird nicht erreicht

Verfasst: Mo 5. Jun 2017, 14:40
von Nibbels
Sauber!!!!
Screenshot_3.png
Beide Hotends 127/0
Vorher gingen die mir teilweise 5°C bis 10°C drüber. (Überschwingen und dann runter auf ca. den Zielwert)
Hätte ich gerade Zeit, würde ich nochmal die Gegenprobe machen, aber ich tippe mal, dass diese Strategie absolut zielführend ist.

Hotend 1 bekommt ein neues Auto-Tune oder weniger als 128/0. ^^
Screenshot_4.png
Dort ist allerdings zum Testzeitpunkt kein FIlament eingelegt gewesen. Vorher sah die Situation schlimmer aus!

LG

Re: Druckbetttemperatur wird nicht erreicht

Verfasst: Fr 9. Jun 2017, 23:14
von Nibbels
Frisch nachgeschaut: In der Firmware sind Standardwerte hinterlegt:
Die sind je nach Hotend leicht anders eingestellt.

Hotend V2:

Code: Alles auswählen

/** \brief The maximum value, I-gain can contribute to the output. */
#define HT3_PID_INTEGRAL_DRIVE_MAX          180

/** \brief lower value for integral part. */
#define HT3_PID_INTEGRAL_DRIVE_MIN          40
Hotend V1

Code: Alles auswählen

/** \brief The maximum value, I-gain can contribute to the output. */
#define HT2_PID_INTEGRAL_DRIVE_MAX          130

/** \brief lower value for integral part. */
#define HT2_PID_INTEGRAL_DRIVE_MIN          60
Heizbett
Hier steht im Kommentart etwas mehr über den Sinn und Zweck dieser Werte:

Code: Alles auswählen

/** \brief The maximum value, I-gain can contribute to the output.
The precise values may differ for different nozzle/resistor combination.
 Overridden if EEPROM activated. */
#define HEATED_BED_PID_INTEGRAL_DRIVE_MAX   255

/** \brief lower value for integral part
The I state should converge to the exact heater output needed for the target temperature.
To prevent a long deviation from the target zone, this value limits the lower value.
A good start is 30 lower then the optimal value. You need to leave room for cooling.
 Overridden if EEPROM activated. */
#define HEATED_BED_PID_INTEGRAL_DRIVE_MIN   80

Re: Druckbetttemperatur wird nicht erreicht

Verfasst: Sa 10. Jun 2017, 01:12
von Nibbels
Noch was:
https://github.com/repetier/Repetier-Fi ... ion.h#L548

Code: Alles auswählen

/** PID control only works target temperature +/- PID_CONTROL_RANGE.
If you get much overshoot at the first temperature set, because the heater is going full power too long, you
need to increase this value. For one 6.8 Ohm heater 10 is ok. With two 6.8 Ohm heater use 15.
*/
#define PID_CONTROL_RANGE 20

Re: Druckbetttemperatur wird nicht erreicht

Verfasst: Sa 10. Jun 2017, 12:45
von Nibbels
Ich habe mich schon wieder gewundert, warum die Temperatur auf einmal 5°C unter der Zieltemperatur blieb.
Das Limit für das I (I-Anteil, integraler Anteil) ist bei mir aktuell: PID drive max = 140.

-> Der Lüfter war an, auf 1%.
Screenshot_1 (2).png
Am Ende habe ich den Lüfter abgeschaltet. Hier der weitere Verlauf:
Screenshot_2.png
Das ist ein E3D-V6-Hotend ohne Silikonsocke. Mit Socke würde das anders aussehen. Man sieht aber dass nicht mehr viel Heizkapazität übrig bleibt.
Ich könnte an dieser Stelle auch den drive-max weiter aufdrehen, denn der limitiert den maximalen Einfluss der Aufsummierung des Fehlers. I-Anteil. Limitiere ich den I-Anteil bleiben nur noch P und D übrig, aber die beiden letzten Anteile tun nicht sonderlich viel, wenn die Zieltemperatur quasi erreicht ist.
Stelle ich manuell die PID-Regelparameter um, wird das Verhalten nicht zwingend besser. Ich könnte noch versuchen mit aktivem Lüfter das PIDautotune Programm (M303) laufen zu lassen:

Fixes, die mir in den Sinn kommen:
- Zu wenig PID drive max für dieses Hotend mit Lüfter.
- Silikonsocke ist nötig
- stärkere Heizpatrone ist nötig
- Mein Bauteillüfter muss tiefer blasen, sodass er weniger den Heizblock erwischt.

Das werde ich nun machen: Hardware tunen.
Silikonsocke! -> Klarer Fall, werde ich verbauen, aber mir fehlt aktuell etwas Platz.
Heizpatrone: -> Es gibt von E3D verschiedene Heizpatronen-Watt-Zahlen für 24V, wusste ich zuerst nicht. ( 24v - 40w / 24v - 25W / ...) Ich werde mir die größeren Heizpatronen holen, sodass ich mehr Spiel nach oben habe.

Re: Druckbetttemperatur wird nicht erreicht

Verfasst: Fr 7. Jul 2017, 21:18
von Nibbels
Ich habe heute nach einem PID-Autotune wieder feststellen müssen, dass die Temperatur von 235°C nicht erreicht wurde.
Der Drucker hat ständig Werte wie 232°C angezeigt gehabt.

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 folgendes Bild entstand:
Screenshot_3.png
Ich konnte bisher keine Funktion finden, die diesen Wert automatisch in 40/40 ändern würde. WIe auch immer die 40 dort "immer mal wieder" reinwandert.
Knobelaufgabe.

LG

Re: Druckbetttemperatur wird nicht erreicht

Verfasst: Di 18. Jul 2017, 18:54
von Nibbels
Das mit den Regelparametern ist Tricky..

Historie: Ich hatte nie nachgemessen, was meine Heizpatronen wirklich leisten. Dann angenommen, die Temperatur kann nicht gehalten werden, weil die Patrone zu schwach ist und eine 40-Watt-Kartusche gekauft.
Screenshot_5.png
Heute habe ich nachgemessen, weil das Bild zwar einigermaßen hübsch ist, aber nicht stimmen kann. Das linke Hotend müsste die Temperatur schneller ansteigen lassen.
Das rechte zweite Hotend hat die alte Kartusche drin, links die neu gekaufte 40-Watt Version von E3D.

Nachgemessen: Links sind 11,4Ohm -> 50Watt!

Diese 50W-Kartusche habe ich aus einem original E3D-V6 Upgrade-Kit. Kontrolle: Das zweite Modell (alte Kartusche) hat genau denselben Ohm-Wert.
Rechts korrekt 14Ohm -> 40Watt. Wie es dazu kam, kann ich nicht sagen und eine 12V-Version kann das nicht sein, denn dann hätte die 50Watt-Kartusche nur 12 Watt (12V*12V/11,4Ohm).

Ich habs die letzten Tage mal geschafft, dass der Regler nach dem M303-Autotune ohne Bauteil-Lüfter die absolut korrekte Temperatur geregelt hat, aber mit Bauteil-Lüfter das Schwingen anfing.
Ganz viele Temperaturprobleme kommen offensichtlich nicht von der Heizleistung, sondern von der Regelung in der Firmware und von fehlerhaften PID-Parametern im EEPROM. Wenn ich herausgefunden habe, was genau ich an welcher Stelle falsch gemacht hatte oder was schief lief, melde ich mich wieder hier ^^.


LG