RF2000 :: Meine Erfahrungen zu Jerk, Acceleration und Geschwindigkeit

Hier könnt Ihr Probleme und Fragen zum Antrieb des RF2000 behandeln. Damit sind ausschließlich die Schrittmotoren, Kugelgewindetrieb und Zahnriemen gemeint
Antworten
Benutzeravatar
Nibbels
Developer
Developer
Beiträge: 2264
Registriert: Mi 17. Aug 2016, 17:01
Has thanked: 831 times
Been thanked: 598 times

RF2000 :: Meine Erfahrungen zu Jerk, Acceleration und Geschwindigkeit

Beitrag von Nibbels »

Das ist eine Antwort auf das hier:
http://www.rf1000.de/viewtopic.php?f=72 ... 458#p20458
Und ich habe den Post nun separiert, weil dort wirklich das Thema untergehen würde ;)
Wenn noch jemand seine Erfahrungen zu dem Thema posten würde: Super!

Wer ausschließlich ohne viel Text lesen wissen will welche Werte ich eingestellt habe:
  • V-Max bei PLA: 65mm/s
  • V-Max ohne Drucken: So schnell wies geht.
  • Acceleration: X=1000 Y=1000 Z=100 (oder XY für schöne Teile zwischen 500 .. 1500)
  • Jerk: Z=0.3 XY=13
  • DoubleStep-Frequency: 7500 = 49mm/s
Hier zwei Videos von gestern Abend, mit genau den Settings, die ich hier notiert habe:
Firmware: 1.37v3.Mod
Teilegröße: 170x170 entlang der Tragachsen.
https://youtu.be/oomt0t1ASPY

https://youtu.be/jkdp25TRTyg

Das Teil war am Schluss tadellos ;)

Man sieht im einen RF2000 mit E3D-Umbau:
  • 2.85er PLA von Material4Print (Braun mit glitzernden Metallkrümeln drin)
  • 0.4er Düse (Microswiss)
  • Heatbreak M6 (Microswiss)
  • Heizpatrone 40Watt
  • Original Conrad Extruder des RF2000
  • Kossel-Ritzel (innen ausgerundet)
  • Eigenbau Partfan
Geschwindigkeit:

Ein Limit liegt in der Aufschmelz-Masse pro Sekunde, die das Hotend schafft. Kommt man an die Grenze des Möglichen hilft ein Temperaturboost noch etwas nach. Irgendwann bräuchte man ein Vulcano oder ähnliches. Aber da reden wir von Druckern die 100mm/s ... 200mm/s bedienen wollen.
Ich bin der Meinung, dass meine Teile aus PLA immer noch sehr sehr schön sein können, wenn ich sie mit 65mm/s drucke.

Ab einer bestimmten Geschwindigkeit ändert sich allerdings das Oberflächenbild am äußeren Perimeter etwas. Der Druck schillert dann etwas in einem anderen Muster. Einen Teil dieser Muster bekommt man nie richtig weg, denn das liegt am Zahnriemen. Der hinterlässt immer und bei so gut wie allen Druckern seine Zähne auf dem Teil.
Man kann diesen Trapezeffekt anscheinend minimieren, aber nicht auslöschen. (Geschicktes Riemen-Umlenken über eine Achse als Zitterausgleich)

Wird die Schmelzmasse zu zäh und unaufgeschmolzen oder der Innenwiderstand des Hotends zu hoch, dann steigen die Digits. Steigende Digits bedeuten Schlupf am Ritzel: Die kommandierte Materialförderrate wird nicht mehr eingehalten (-1% .. -35%) und das Druckteil wird leichter als es sein sollte. Dementsprechend leidet je nach Problemstärke die Qualität.
Man sieht auch manchmal ganz plump, dass z.B. beim schnellen verlegen von Infill die Plastikmade reißt.
Da sehe ich die obere Grenze der Geschwindigkeit.

Bei 8-Bit-CPUs muss bei hohem Microstepping auch die Rechenpower mitspielen, um eine hohe Geschwindigkeit -nicht- zu erreichen. Darum gibts Double und Quad-Stepping, denn damit wird Rechenleistung eingespart. Mit diesem Trick kann der Mikrocontroller mehr Steps/Sekunde schaffen als Bewegungs-Interrupts pro Sekunde. Ich habe die Grenze an der umgeschaltet wird im Mod einstellbar gemacht. Original: 12000=79mm/s, meine Wahl: <<7500 <<49mm/s. Man kann diesen Wert mit der maximalen Motordrehzahl beim Auto im ersten Gang vergleichen. Man sollte in den 2.Gang umschalten bevor der Motor Öl aus dem Auspuff kotzt und nicht erst danach :D
Generell sind 8-Bit-CPUs bei unseren kartesischen Druckern kein Beinbruch. Auch die neuesten Prusas sind noch 8-Bitter. Bei Delta-Druckern hat man damit aber ein Problem, weil man wirklich ständig und schnell mit Winkelrechnungen/Wurzelrechnungen seinen Weg planen muss.

Die Geschwindigkeit im Slicer ist bei unserem Drucker als Maximal-Geschwindigkeit anzusehen. Sind die Wege zu kurz und die Beschleunigungen/Jerk zu klein wird die geforderte Geschwindigkeit unter Umständen nie erreicht.
Man kann das im Video etwas unten bei Acceleration klar sehen.

Ganz interessant und unerwartet: Es gibt je nach Beschleunigungswerten eine minimale Grenze an Geschwindigkeiten die man fahren kann. Bei hohen Beschleuningungswerten kann man nicht mehr sehr sehr langsam fahren. Darum hat der Mod nun fürs Milling immer winzige Beschleunigungen eingestellt. Das soll Ganz-Zahl-Rechenfehler verhindern. Ähnlich dem Kommentar zum minimalen Jerk etwas weiter unten.

Acceleration:

Um eine Druckgeschwindigkeit zu erreichen muss der Druckkopf anfahren und dann Beschleunigen.
Jedes Stück Drucklinie hat im Grunde einen Beschleunigungsweg, dann ein Stück Weg bei gleichförmiger Geschwindigkeit und anschließend wird wieder abgebremst.
https://github.com/repetier/Repetier-Fi ... nt-quality
(Wobei im Erklär-Bild im Link noch die Bezeichnung der Farben vertauscht ist.)
Video:
Erst eine Beschleunigung von ca. 15 und dann meine normale Beschleunigung von ca. 1000 1000 100
https://youtu.be/SQkCWGyiiKs


Hängen mehrere Stücke Weg aneinander, berechnet der Drucker eine Übergangsgeschwindigkeit. Es wird also nicht zwingend zwischen allen Wegstücken voll abgebremst, das wäre nicht optimal. Siehe Path-Planning:
https://github.com/repetier/Repetier-Fi ... h-planning

Es gibt aber hier ein Problem, wenn die Wegstücke nicht gerade hintereinander folgen, was eigentlich immer der Fall ist.
Fährt man ums Eck, muss theoretisch X voll abbremsen und Y voll durchstarten.
Tatsächlich verwendet man hier wie beim Anfahren von 0 eine Formel, die eine Übergangsgeschwindigkeit festlegt. -> Der Jerk.

Jerk:

https://github.com/repetier/Repetier-Fi ... -constrain
Hier muss man aufpassen, denn es gibt zwei Arten von Jerk, wenn man Literatur liest.
Manche verstehen Jerk als Begrenzung der Änderung der Beschleunigung. -> mm/s³ das gilt z.B. für Industriemaschinen. Damit bekommt man abgerundete Geschwindigkeitsverläufe anstatt der Trapeze, so als würde man sanfter einkuppeln, was bei schweren Industriemaschinen hilft.
Wir verstehen in unserer Firmware den Jerk als möglichen Anfahr-Ruck.
Man kann eigentlich nicht mit einem Ruck anfahren, aber z.B. unser Zahnriemen, die Motorwelle etc. können etwas nachfedern. Also können wir den Ruck kommandieren, er wird aber dann doch zu einer fließenden Anfahrbewegung, wenn die Stärke des Rucks noch passt.
  • Ist der Jerk zu klein, wird das Druckbild schlechter. Material landet dort, wo man es nicht haben will.
  • Ist der Jerk zu groß, bekommt man "Ringing". Quelle: Bild
Ich habe mir vor ein paar Tagen/Wochen viele Gedanken darüber gemacht und Test-Teile gedruckt.
Der RF2000 kann mit sehr viel Jerk "überleben". Ohne Stepverluste oder anderes. Aber die Qualität leidet doch, wenn man zu hoch geht.
Meiner Meinung nach hat Conrad den Jerk für den RF2000 fast ideal eingestellt. Vielleicht leicht zu niedrig.
Ich glaube, dass ein Jerk von ca. 8 bis 18 für unsere Drucker gut ist.
Ich verwende aktuell JerkXY=13. Original Conrad: runde 10. Original Repetier für leichte Prusas und so: 20.
Bilder vom Test-Teil: Das Teil hat je Abteil +5 Jerk bekommen und fängt bei 3 an, hört bei 60 auf.
i1373^cimgpsh_orig.png
i1374^cimgpsh_orig.png
i1375^cimgpsh_orig.png
Je höher der Jerk, desto schärfer darf der Drucker in die Kurve gehen.
Je kleiner der Jerk, desto sanfter müssen Kurven befahren werden. Man merkt kleine Jerks z.B. stark am unnötigen Schneckentempo in kleinen Kreisen. (Kann auch gewollt sein.)
Die Höhe der Ums-Eck-Rest-Geschwindigkeit hängt im Grunde vom Winkel des Ecks ab. Einen flachen Winkel kann man schneller "nehmen" als einen
Repetier hat mal einen Commit einfließen lassen, der die Formel wie die Ums-Eck-Rest-Geschwindigkeit errechnet wird etwas genauer an einen Cosinus/Sinus annähert. Das macht zumindest mathematisch mehr sinn.
Natürlich habe ich diesen Commit übernommen und im Mod aktiviert. :D Siehe Config:

Code: Alles auswählen

//for a more logical jerk computation.
#define ALTERNATIVE_JERK                    1
Was evtl. noch cooler ist:

Code: Alles auswählen

//that will slowdown if you have sever direction changes in a short distance which is nearly the same as adding several jerks in a short sequence.
#define REDUCE_ON_SMALL_SEGMENTS            1
#define MAX_JERK_DISTANCE                   0.6
Es gibt eine Minimal-Einstellung für den Jerk. Die hängt von der eingestellten Beschleunigung ab. Die neue Repetier-Firmware hat eine Abfrage drin, sodass keiner den Jerk auf Werte stellt, wegen denen sich der Drucker verrechnen könnte und somit wegen Ganz-Zahl-Berechnungen unsinnige Ergebnisse produzieren könnte.
Bei meiner Acceleration von 1000 1000 100 für X, Y, Z
Ist die untere Grenze für Jerk:
Z = 0.28 (Conrad: 0.1, also zu klein!)
YX = 7.3 (Conrad: 10, also ok.)
Da unsere Drucker normalerweise kaum in Z verfahren war es mir egal, diesen Wert zu optimieren: Der steht im Mod nun als Default 0.3. Sollte jemand Mist einstellen, wird der Jerk automatisch auf ein Minimum nach Formel korrigiert. Das sieht man dann in der Console.


Ich kann mir zudem gut vorstellen, dass die Höhe des besten Jerks ein bisschen mit der angelegten Riemenspannung korreliert. Aber nicht sooo viel, wenn der Riemen "gut angelegt" ist.

Fazit:

Zum einen besteht das Fazit aus den oben genannten Werten, die ich für ideal halte.
Ich wollte den RF2000 leise haben, schnell und ruhig laufend, möglichst langlebig und die Qualität maximieren. Natürlich sind das meine subjektiven Ideal-Werte.

Hier wurde im Grunde der Stoff niedergeschrieben, den ich in den letzten 4 Wochen gesammelt habe.
Mir selbst ging es während der Recherche hauptsächlich darum, zu verstehen, warum Reptier in den letzten 2 Jahren einige Änderungen am Bewegungssystem vorgenommen hat. Ich habe das für mich in den Mod übernommen und bin in Folge dessen z.B. auf diese unteren Limits gestoßen, die in der original Firmware nicht geprüft werden
- vielleicht weils dort unnötig ist
- oder der Fehler nur theoretisch auftreten könnte
- oder man diese im Druck nicht sieht.

Und: Der Drucker läuft mit sehr vielen Einstellungen! Die RFx000 halten einiges aus ^^, anders als manche Plastik-Flansch-Druckerle die es so gibt. Sollbruchstelle wird wohl die Motorwelle bei den Steppern und der Zahnriemen sein?
Wer ein technisches Teil drucken will, das er am Ende noch ausbohrt und innerhalb kürzester Zeit braucht, stellt natürlich Acceleration auf ~4000+ und Jerk auf 20 und nimmt das Rattern des Druckers und ein verändertes Oberflächenbild seiner Teile vermutlich gerne in Kauf.

Dennoch bin ich der Meinung, dass jedes Gramm das wir in unseren bewegten Teilen sparen können die Qualität steigert. Eine Carbon-Y-Platte, kleinere Extruder-Stepper oder "Single Extruder beim RF2000" würde sicher helfen :)

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.
Maggo-3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 203
Registriert: Sa 17. Jan 2015, 11:47
Has thanked: 1 time
Been thanked: 27 times

Re: RF2000 :: Meine Erfahrungen zu Jerk, Acceleration und Geschwindigkeit

Beitrag von Maggo-3 »

Wow, vielen Dank für die ausführliche Auflistung.
Hier gab es meiner Meinung nach bisher immer zu wenige Infos diesbezüglich, daher kommt deine Ausführung hier gerade richtig.

Besonders die Forschungen zum Jerk sind wirklich Interessant.
Ich hatte mir hier ehrlich gesagt noch nie wirklich Gedanken zu gemacht und an den Werten eigentlich auch nie herumgespielt.

Bei den Acceleration- und Geschwindigkeitswerten liege ich noch deutlich unter den Werten mit den du fährst.
Das liegt daran, dass ich es nie ansehen konnte wenn der Drucker beim Homen mit Vollgas gegen alle Anschläge knallt.
Da habe ich dan einfach mal alle Werte verringert und mir da nie wieder Gedanken drüber gemacht.

In nächster Zeit werde ich mir deine Werte allerdings mal genauer ansehen und versuchen hiermit auch einige Erfahrungen zu sammeln.
Berichte werden dann bestimmt folgen.

Vielen Dank nochmals für deinen ausführlichen Post.

Grüße
Marco
RF1000 Bausatz - Repetier-Server Pro - E3DV6 Titan Total Conversion - MTPlus DDP - V1.41.11 dev Mod - Silikonsocken - Stepperkühlung - Radiallüfter
dabr0013
Gelegenheitsdrucker
Gelegenheitsdrucker
Beiträge: 31
Registriert: Di 22. Aug 2017, 10:22
Wohnort: RLP
Has thanked: 14 times
Been thanked: 4 times

Re: RF2000 :: Meine Erfahrungen zu Jerk, Acceleration und Geschwindigkeit

Beitrag von dabr0013 »

Sehr interessant was du da :tiptop: :good:
Ich bin noch relativ neu in dem Milieu und deine (bzw. eure, sind ja noch ein paar hier unterwegs die scheinbar echt Ahnung davon haben was sie hier fabrizieren) ausführlichen Berichte, Versuche und Tests sind für mich echt Gold wert!
Man wird immer wieder auf Dinge geschubst, über die man sich so noch gar keine wirklichen Gedanken gemacht :tanzen: :tanzen2:

Danke !
Antworten

Zurück zu „Antrieb“