Mein Umbau auf Ganzmetallhotend
-
- Profi 3D-Drucker
- Beiträge: 464
- Registriert: So 7. Feb 2016, 11:04
- Wohnort: Rinteln
- Has thanked: 16 times
- Been thanked: 237 times
Re: Mein Umbau auf Ganzmetallhotend
Nix da, ich habe R10... in späteren Versuchen habe ich mal R40 gemacht, worauf dann alles sauber beendet wurde, nach etwa 20 Zyklen. Es ist damit soweit ok, die PID Werte stimmen ziemlich überein
PeterKa
PeterKa
- Nibbels
- Developer
- Beiträge: 2264
- Registriert: Mi 17. Aug 2016, 17:01
- Has thanked: 831 times
- Been thanked: 599 times
Re: Mein Umbau auf Ganzmetallhotend
Ok, dann ist mir das Auch nocht nicht 100% klar
LG
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.
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.
-
- Profi 3D-Drucker
- Beiträge: 464
- Registriert: So 7. Feb 2016, 11:04
- Wohnort: Rinteln
- Has thanked: 16 times
- Been thanked: 237 times
Re: Mein Umbau auf Ganzmetallhotend
Die Temperatur hat mir bisher nach dem Umbau die allergrößten Probleme bereitet. Zuletzt konnte ich das Kaugummitool von Nibbels einfach nicht zu Ende bringen, weil die Temperatur niemals richtig erreicht wurde, sprich die Abweichungen waren immer größer als 2 Grad.
Na ja da musste ich mich dann doch ordentlich eingraben, was bekanntlich dauert. Ich stelle das hier vor, weil möglicherweise auch andere davon profitieren könnten. Leider ist es etwas komplexer... na ja das ist man hier ja gewohnt und keiner muß es lesen
Also der letzte Stand war der, daß die Soll Ist Temperatur abweichen. Bei 100 Grad kaum und bei 250 Grad Soll sind es dann schon deutlich über 5 Grad.
Alles was ich mit dem Tuning gemacht hatte war mehr oder weniger oder gar nicht erfolgreich gewesen.. Beim Beobachten des Autotunings war dann auch keine ordentliche Konvergenz der Parameter festzustellen.
Ich habe dann mal den Sensortyp auf 8 (E3D) gestellt, da wurde es noch schlechter.. Keine Ahnung warum, ich hab mir die Kalibrierungskurven für die verschiedenen Sensoren nicht angeschaut, ob da etwa ein Bug drin ist. Also habe ich wieder mit Typ 3 (V2 Hotend) gearbeitet, das geht am Besten. Die absoluten Temperaturen sind ja weniger bedeutend als die Konstanz und Reproduzierbarkeit.
So, viel weiß ich ja nicht von Regelungstechnik, aber eines hat sich mir eingeprägt... Wenn die Abweichung proportional dem Sollwert ist, ist der Integralteil zu klein. Je nach Versuch hatte das Autotuning Gainwerte zwischen 0,5 und 0,8 ergeben. Das ist deutlich zu wenig. Schlimmer noch, dieser Wert konvergiert nicht.
Das führt dann zu dem Verdacht, daß die Grenzwerte nicht passen. Hier speziell der negative Fehlersammler (=Summe der negativen Abweichungen über die Zeit)
Der wird in der Config vorgegeben (EXTR1_PID_IDRIVE_MIN) zu 5.
Ich habe diesen Wert nun behutsam angehoben... und siehe da, der IntegralGain wuchs kontinuierlich. Bis zu MIN =20 hatte er sich verdoppelt.
Das heißt nix anderes, als daß der PID Regler nicht balanziert wurde.. so einfach ist das.
Wenn der MIN_Wert dann weiter gesteigert wird (ich habe ihn bis 40 erhöht) steigt der I-Gain nicht weiter an... Er hat einen stabilen Wert erreicht (sprich er konvergiert).
So und was ist dann dabei herausgekommen ?
So hatte ich mir das vorgestellt
Ich muß mal mit Nibbels besprechen, ob wir das so verändern wollen.. Aber es kann ja sein, daß es beim V2 anders aussieht.
Hier bleiben also 2 Baustellen damit nicht jeder so eine Odysee zu erdulden hat wie ich: Temperaturkurve E3D und ein angepasster EXTR1_PID_IDRIVE_MIN jedenfalls für alle die Hotend typ E3D wählen.
Kleinere Probleme hatte ich dann gestern noch mit dem Anpressdruck am Vorschubritzel.. hmmm... manchmal möchte man in die Tischkante beissen
PeterKa
Na ja da musste ich mich dann doch ordentlich eingraben, was bekanntlich dauert. Ich stelle das hier vor, weil möglicherweise auch andere davon profitieren könnten. Leider ist es etwas komplexer... na ja das ist man hier ja gewohnt und keiner muß es lesen
Also der letzte Stand war der, daß die Soll Ist Temperatur abweichen. Bei 100 Grad kaum und bei 250 Grad Soll sind es dann schon deutlich über 5 Grad.
Alles was ich mit dem Tuning gemacht hatte war mehr oder weniger oder gar nicht erfolgreich gewesen.. Beim Beobachten des Autotunings war dann auch keine ordentliche Konvergenz der Parameter festzustellen.
Ich habe dann mal den Sensortyp auf 8 (E3D) gestellt, da wurde es noch schlechter.. Keine Ahnung warum, ich hab mir die Kalibrierungskurven für die verschiedenen Sensoren nicht angeschaut, ob da etwa ein Bug drin ist. Also habe ich wieder mit Typ 3 (V2 Hotend) gearbeitet, das geht am Besten. Die absoluten Temperaturen sind ja weniger bedeutend als die Konstanz und Reproduzierbarkeit.
So, viel weiß ich ja nicht von Regelungstechnik, aber eines hat sich mir eingeprägt... Wenn die Abweichung proportional dem Sollwert ist, ist der Integralteil zu klein. Je nach Versuch hatte das Autotuning Gainwerte zwischen 0,5 und 0,8 ergeben. Das ist deutlich zu wenig. Schlimmer noch, dieser Wert konvergiert nicht.
Das führt dann zu dem Verdacht, daß die Grenzwerte nicht passen. Hier speziell der negative Fehlersammler (=Summe der negativen Abweichungen über die Zeit)
Der wird in der Config vorgegeben (EXTR1_PID_IDRIVE_MIN) zu 5.
Ich habe diesen Wert nun behutsam angehoben... und siehe da, der IntegralGain wuchs kontinuierlich. Bis zu MIN =20 hatte er sich verdoppelt.
Das heißt nix anderes, als daß der PID Regler nicht balanziert wurde.. so einfach ist das.
Wenn der MIN_Wert dann weiter gesteigert wird (ich habe ihn bis 40 erhöht) steigt der I-Gain nicht weiter an... Er hat einen stabilen Wert erreicht (sprich er konvergiert).
So und was ist dann dabei herausgekommen ?
So hatte ich mir das vorgestellt
Ich muß mal mit Nibbels besprechen, ob wir das so verändern wollen.. Aber es kann ja sein, daß es beim V2 anders aussieht.
Hier bleiben also 2 Baustellen damit nicht jeder so eine Odysee zu erdulden hat wie ich: Temperaturkurve E3D und ein angepasster EXTR1_PID_IDRIVE_MIN jedenfalls für alle die Hotend typ E3D wählen.
Kleinere Probleme hatte ich dann gestern noch mit dem Anpressdruck am Vorschubritzel.. hmmm... manchmal möchte man in die Tischkante beissen
PeterKa
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- Nibbels
- Developer
- Beiträge: 2264
- Registriert: Mi 17. Aug 2016, 17:01
- Has thanked: 831 times
- Been thanked: 599 times
Re: Mein Umbau auf Ganzmetallhotend
Cool!
Das System das du beschreibst ist mir bekannt.
http://www.rf1000.de/viewtopic.php?f=23 ... =10#p20749
40/40 passt nicht, weil der positive Anteil nicht vernünftig reinpasst.
Ok, min = 5 passt wohl auch nicht bei jedem Nutzer.
Was schlägst du vor, sollen wir dort als Voreinstellung bei EXTRx_PID_IDRIVE_MIN einstellen?
In jedem Fall nicht mehr 5.
= 20?
= 30?
= 40?
Das System das du beschreibst ist mir bekannt.
http://www.rf1000.de/viewtopic.php?f=23 ... =10#p20749
Aber nicht, dass manche Hotends so viel mehr brauchen wir ich an zwei Hotends testen konnte.Nibbels hat geschrieben: Das was du eben ändern solltest, "PID-I-Drive-Min und PID-I-Drive-Max" bedeutet, dass dein Integratoranteil in seiner maximalen Wucht beschränkt wird. Damit kannst du z.B. das Überschwingen etwas abdämpfen. Ist der Max-Wert zu klein, hast du quasi wieder einen PD-Regler der aber als PID ausgelegt ist und nicht gut funktioniert.
Ist der Min-Wert zu klein wird die Temperatur im Betrieb evtl. leicht oberhalb der Zieltemperatur verbleiben. 5 ist für mein Hotend perfekt. Trage zur Not 10 ein (oder mache 6..8 aus der 5) wenn deine Temperatur nach der Einschwingphase anschließend nicht ca. +-0.5 um die Zieltemperatur schwingt.
40/40 passt nicht, weil der positive Anteil nicht vernünftig reinpasst.
Ok, min = 5 passt wohl auch nicht bei jedem Nutzer.
Was schlägst du vor, sollen wir dort als Voreinstellung bei EXTRx_PID_IDRIVE_MIN einstellen?
In jedem Fall nicht mehr 5.
= 20?
= 30?
= 40?
Detailinfo für die Mitleser
LGRF2000
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.
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.
-
- Profi 3D-Drucker
- Beiträge: 464
- Registriert: So 7. Feb 2016, 11:04
- Wohnort: Rinteln
- Has thanked: 16 times
- Been thanked: 237 times
Re: Mein Umbau auf Ganzmetallhotend
Man muß sich vor Augen halten, warum die Begrenzung erforderlich ist. Es geht um die sehr großen Differenzen am Anfang der Heizphase, wenn der PID Regler maximalen Stellwert liefert. Sobald des Einschwingen beginnt (Heizkurve flacht ab) darf die Grenze nicht mehr wirken, da sonst der kummulierte Fehler einfach falsch wird. Insbesondere hängt der Wert von der Leistung des Heizelementes ab, daher wohl auch die großen Unterschiede zwischen V2 und E3D.
Ich möchte nicht leichtfertig eine Grenze angeben, an der sich später andere Benutzer reiben. Ich hatte um einen Effekt zu sehen 20 gewählt. Zu 40 gab es keinen Unterschied mehr. Lass mich eben noch eine Meßreihe durchführen, das Kaugummiprogramm muß halt warten. (Der Sportsgeist ist erweckt).
Dauert so etwa 2 Stunden... man liest sich
PeterKa
Ich möchte nicht leichtfertig eine Grenze angeben, an der sich später andere Benutzer reiben. Ich hatte um einen Effekt zu sehen 20 gewählt. Zu 40 gab es keinen Unterschied mehr. Lass mich eben noch eine Meßreihe durchführen, das Kaugummiprogramm muß halt warten. (Der Sportsgeist ist erweckt).
Dauert so etwa 2 Stunden... man liest sich
PeterKa
- Nibbels
- Developer
- Beiträge: 2264
- Registriert: Mi 17. Aug 2016, 17:01
- Has thanked: 831 times
- Been thanked: 599 times
Re: Mein Umbau auf Ganzmetallhotend
Schön Ich warte ab!
Dazu noch eine Info:
Es gibt die
#define PID_CONTROL_RANGE 30
Das ist quasi die deltaT-Eingrenzung um den Zielwert herum in dem der PID erst aktiv wird. Darunter heizt der voll durch.
https://github.com/Nibbels/Repetier-Fir ... r.cpp#L130
...
Wegen den Umrechnungskurven:
Das sieht für mich aus wie ein Standard, an dem niemand rütteln will.
https://github.com/repetier/Repetier-Fi ... .cpp#L1972
vs. unsere. Es ist immernoch die gleiche.
Ich habe im Menü nur 3 Sensoren hinterlegt, aber Tabellen haben wir viel mehr:
https://github.com/Nibbels/Repetier-Fir ... r.cpp#L657
bzw.:
/** \brief What type of sensor is used?
NTC-Thermistors
1: Epcos B57560G0107F000
2: 200k Thermistor
3: Hotend V2 Sensor Conrad Renkforce / mendel-parts thermistor (EPCOS G550) = NTC mit 100kOhm
4: 10k Thermistor
5: USER_THERMISTORTABLE0 als NTC
6: USER_THERMISTORTABLE1 als NTC
7: USER_THERMISTORTABLE2 als NTC
8: E3D Thermistor ATC Semitec 104-GT2 (300°C)
9: 100k Honeywell 135-104LAG-J01
10: 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
11: 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
12: 100k RS Thermistor 198-961 (4.7k pullup)
14: Thermistor NTC 3950 100k Ohm (Version 1)
15: Thermistor NTC 3950 100k Ohm (Version 2)
PTC-Thermistors
13: E3D PT100 (externe Platine, 500°C)
50: USER_THERMISTORTABLE0 als PTC
51: USER_THERMISTORTABLE1 als PTC
52: USER_THERMISTORTABLE2 als PTC
60: HEATER_USES_AD8495 (Delivers 5mV/degC)
100: AD595 */
Um die Tabellen zu erstellen gibts ein Excel-Sheet.
Zusätzlich können wir über diese "Generic-Funktion" eigene Tabellen aus den Konstanten errechnen lassen. Ich kann mich aber nicht an einen endgültig geklärten Funktionstest erinnern.
97: USE_GENERIC_THERMISTORTABLE_1 and GENERIC_THERM_NUM_ENTRIES Define Raw Thermistor and Resistor-Settings within configuration.h
98: USE_GENERIC_THERMISTORTABLE_2 and GENERIC_THERM_NUM_ENTRIES Define Raw Thermistor and Resistor-Settings within configuration.h
99: USE_GENERIC_THERMISTORTABLE_3 and GENERIC_THERM_NUM_ENTRIES Define Raw Thermistor and Resistor-Settings within configuration.h
https://github.com/Nibbels/Repetier-Fir ... ion.h#L451
(Trotzdem man im Menü nur zwischen 3, 8 und 14 wechseln kann, weil ich und meine Tester nur die gebracht hatten, kann man im EEPROM beliebige Nummern eintragen)
LG
Dazu noch eine Info:
Es gibt die
#define PID_CONTROL_RANGE 30
Das ist quasi die deltaT-Eingrenzung um den Zielwert herum in dem der PID erst aktiv wird. Darunter heizt der voll durch.
https://github.com/Nibbels/Repetier-Fir ... r.cpp#L130
Code: Alles auswählen
float error = act->targetTemperatureC - act->currentTemperatureC;
if( act->targetTemperatureC < 20.0f )
{
output = 0; // off is off, even if damping term wants a heat peak!
}
else if( error > PID_CONTROL_RANGE )
{
output = act->pidMax;
}
else if( error < -PID_CONTROL_RANGE )
{
output = 0;
}
else
{
%%%%%PID Regelung%%%%%
}
...
Wegen den Umrechnungskurven:
Das sieht für mich aus wie ein Standard, an dem niemand rütteln will.
https://github.com/repetier/Repetier-Fi ... .cpp#L1972
vs. unsere. Es ist immernoch die gleiche.
Ich habe im Menü nur 3 Sensoren hinterlegt, aber Tabellen haben wir viel mehr:
https://github.com/Nibbels/Repetier-Fir ... r.cpp#L657
bzw.:
/** \brief What type of sensor is used?
NTC-Thermistors
1: Epcos B57560G0107F000
2: 200k Thermistor
3: Hotend V2 Sensor Conrad Renkforce / mendel-parts thermistor (EPCOS G550) = NTC mit 100kOhm
4: 10k Thermistor
5: USER_THERMISTORTABLE0 als NTC
6: USER_THERMISTORTABLE1 als NTC
7: USER_THERMISTORTABLE2 als NTC
8: E3D Thermistor ATC Semitec 104-GT2 (300°C)
9: 100k Honeywell 135-104LAG-J01
10: 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
11: 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
12: 100k RS Thermistor 198-961 (4.7k pullup)
14: Thermistor NTC 3950 100k Ohm (Version 1)
15: Thermistor NTC 3950 100k Ohm (Version 2)
PTC-Thermistors
13: E3D PT100 (externe Platine, 500°C)
50: USER_THERMISTORTABLE0 als PTC
51: USER_THERMISTORTABLE1 als PTC
52: USER_THERMISTORTABLE2 als PTC
60: HEATER_USES_AD8495 (Delivers 5mV/degC)
100: AD595 */
Um die Tabellen zu erstellen gibts ein Excel-Sheet.
Zusätzlich können wir über diese "Generic-Funktion" eigene Tabellen aus den Konstanten errechnen lassen. Ich kann mich aber nicht an einen endgültig geklärten Funktionstest erinnern.
97: USE_GENERIC_THERMISTORTABLE_1 and GENERIC_THERM_NUM_ENTRIES Define Raw Thermistor and Resistor-Settings within configuration.h
98: USE_GENERIC_THERMISTORTABLE_2 and GENERIC_THERM_NUM_ENTRIES Define Raw Thermistor and Resistor-Settings within configuration.h
99: USE_GENERIC_THERMISTORTABLE_3 and GENERIC_THERM_NUM_ENTRIES Define Raw Thermistor and Resistor-Settings within configuration.h
https://github.com/Nibbels/Repetier-Fir ... ion.h#L451
(Trotzdem man im Menü nur zwischen 3, 8 und 14 wechseln kann, weil ich und meine Tester nur die gebracht hatten, kann man im EEPROM beliebige Nummern eintragen)
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.
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.
- Nibbels
- Developer
- Beiträge: 2264
- Registriert: Mi 17. Aug 2016, 17:01
- Has thanked: 831 times
- Been thanked: 599 times
Re: Mein Umbau auf Ganzmetallhotend
Idee:
https://github.com/Nibbels/Repetier-Fir ... r.cpp#L130
->
https://github.com/Nibbels/Repetier-Fir ... r.cpp#L148
Das ist die Sammelvariable für die Errorsumme.
float (Extruder::) tempIState; ///< Temp. var. for PID computation.
Ich glaube, wir sollten act->tempIState nullen, wenn wir nicht im Zielbereich sind? Kommt ein Fall vor, in dem dort Summen-"Reste" verbleiben könnten?
Würde in jedem Fall quasi "nichts kosten". LG
https://github.com/Nibbels/Repetier-Fir ... r.cpp#L130
->
https://github.com/Nibbels/Repetier-Fir ... r.cpp#L148
Das ist die Sammelvariable für die Errorsumme.
float (Extruder::) tempIState; ///< Temp. var. for PID computation.
Ich glaube, wir sollten act->tempIState nullen, wenn wir nicht im Zielbereich sind? Kommt ein Fall vor, in dem dort Summen-"Reste" verbleiben könnten?
Würde in jedem Fall quasi "nichts kosten". 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.
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.
-
- Profi 3D-Drucker
- Beiträge: 464
- Registriert: So 7. Feb 2016, 11:04
- Wohnort: Rinteln
- Has thanked: 16 times
- Been thanked: 237 times
Re: Mein Umbau auf Ganzmetallhotend
Jetzt wo Du es sagst Die Chose hätte einen gigantischen Vorteil.. Man muß nicht mehr warten bis der Extruder abgeühlt ist... Mir ist aufgefallen, daß der I-Wert extrem von der Starttemperatur abhängt. Der trick würde ein weitere Fehlerquelle eliminieren. Soll ich das dann mal probieren ? Ich bin grad im Thema.
PS: Bei MIN=10 ist der Wert noch immer nicht stabil.....
PS: Bei MIN=10 ist der Wert noch immer nicht stabil.....
- Nibbels
- Developer
- Beiträge: 2264
- Registriert: Mi 17. Aug 2016, 17:01
- Has thanked: 831 times
- Been thanked: 599 times
Re: Mein Umbau auf Ganzmetallhotend
Jo klar! Änder das mal und teste!
Ich kann auch gerne kurz mit einem Klick das Commit hochschieben und du könntest dir dann die 1.37w6 laden. Muss aber noch nicht sein, weil es nur 3 Zeilen sind.
Ich kann auch gerne kurz mit einem Klick das Commit hochschieben und du könntest dir dann die 1.37w6 laden. Muss aber noch nicht sein, weil es nur 3 Zeilen sind.
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.
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.
-
- Profi 3D-Drucker
- Beiträge: 464
- Registriert: So 7. Feb 2016, 11:04
- Wohnort: Rinteln
- Has thanked: 16 times
- Been thanked: 237 times
Re: Mein Umbau auf Ganzmetallhotend
ich komm schon klar.. Hauptsache Du behältst den Mastercode...
Also ich würde nach der Testreihe 30 vorschlagen. Auch wenn die I-Werte mit der Zeit geringfügig kleiner werden ist die Tendenz eindeutig.
Aber ich werde jetzt zuerst noch eine kleine Reihe machen, um zu testen, wie stark der I-Gain von der Starttemperatur abhägt. Ich nehme an daß das sehr stark ist. Ich halte einfach den Wert 30 jetzt fest und ändere die Starttemperatur. Das ist verflixt sage ich Dir.
PeterKa
Also ich würde nach der Testreihe 30 vorschlagen. Auch wenn die I-Werte mit der Zeit geringfügig kleiner werden ist die Tendenz eindeutig.
Aber ich werde jetzt zuerst noch eine kleine Reihe machen, um zu testen, wie stark der I-Gain von der Starttemperatur abhägt. Ich nehme an daß das sehr stark ist. Ich halte einfach den Wert 30 jetzt fest und ändere die Starttemperatur. Das ist verflixt sage ich Dir.
PeterKa