Akcelerace a Jerk

Last modified date

v dnešním příspěvku se podíváme na další dva důležité parametry, které přímo ovlivňují kvalitu tisku, zejména pak tvoření tzv. Ghostingu (duchů) a posunu tisku. Jak již z názvu vypovídá budeme se bavit o akceleraci tedy rozjezdu tisku do námi požadované plné rychlosti a Jerku, parametru který právě tomuto rozjezdu předchází.

Pojďme se podívat na každých z samostatně. Akcelerace nám udává rychlost jakou budeme provádět rozjezd až do plně rychlosti tisku, tedy z nuly (v případě použití Jerku nemusí být nula) až např. na 100mm/s. Pro lepší orientaci a popis se podívejme na následující obrázek.

Jerk je pak hodnota která předchází k akceleraci a tvořila náš rozjezd plynulejší, Jerk tedy může být při zmíněné rychlosti 100mm/s např. 20 mm/s, nebudeme tedy akcelerovat z nuly na plnou rychlost, ale akcelerace proběhne plynuleji již z rozjetých 20mm/s.

Proč jsou tyto parametry důležité? Tiskárna během tisku několikrát zastavuje a opět akceleruje, ať už je to konec lineárního pohybu nebo samotné přejezdy. Při těchto pohybech dochází při vyšších rychlostech k velkým rázům, v závislosti na konstrukci (rámu) tiskárny pak vlivem těchto rázů může dojít k posunu tisknuté vrstvy, tvorbě artefaktů a u detailů jako jsou texty pak k tvorbě tzv. Ghostingu (duchů).

Tak abychom určili správnou konfiguraci, je nutné provést kalibraci, kterou provedeme jednoduchým tiskem kalibračního modelu, na kterém vyzkoušíme jednotlivé rychlosti akcelerace a vybereme tu hodnotu, kde je náš tisk nejkrásnější. Ještě než toto uděláme, je důležité zjistit, pro jakou vůbec maximální rychlost je náš extruder schopen spolehlivě dodávat tiskový materiál (filament), tedy zjistit hodnotu feedrate.

Zjištění feedrate

Pro zjištění feedrate budeme potřebovat jakýkoliv software, kde budeme mít přístup k termínálu tiskárny. Osobně nejraději používám Pronterface, kde můžeme zároveň provést i doladění os tiskárny a ovládat jednotlivé její části. Aˇuž použijete cokoliv, doporučuji si nejprve posunout osu Z např. do výšky 10cm, tak abychom získali přístup k hotendu a mohli kontrolovat průtok filamentu. Zahřejeme hotend dle použitého filamentu na běžnou hodnotu a vložíme filament.

Jakmile máme vše přichystané, otevřeme terminálové okno tiskárny a zadáme následující příkaz pro přepnutí do relativního režimu podávání:

G91

poté vysuneme prvních 5cm filamentu, pro začátek s rychlostí 120mm/min (2mm/sek):

G1 E50 F120

Nyní budeme zvyšovat hodnotu F až do doby dokud nezaznamenáme zůžení (podextrudování) výstupního vlákna nebo neuslyšíme přeskakování kolečka extruderu což v našem případě znamená problémy s podáváním z důvodu zvýšené rychlosti.

Hodnotu F doporučuji zvedat po 1mm/sek tedy po 60mm/min. Výsledné příkazy budou následující:

G1 E50 F180 (pro 3mm/sek)

G1 E50 F240 (pro 4mm/sek)

G1 E50 F300 (pro 5mm/sek)

G1 E50 F360 (pro 6mm/sek)

G1 E50 F420 (pro 7mm/sek)

G1 E50 F480 (pro 8mm/sek)

Výpočet nejvyšší možné rychlosti

Jakmile nalezneme optimální hodnotu F, kde jsme ještě schopni dodávat filament bez podextrudování či prokluzování kolečka extruderu, jsme schopni vypočíst maximální možnou rychlost tiskárny pomocí následujícího vzorce:

((D/2)^2)*PI()*F/60)/(V*S)

D – průměr filamentu

F – zjištěná hodnota feedrate

V – výška vrtsvy

S – šířka extruze

příklad: ((1,75/2)^2)*3,14*380/60)/(0,2*0,48) = 158mm/sek

Nyní známe naší nejvyšší možnou rychlost tisku pro zvolený filament, výšku vrstvy a samozřejmě možnosti naší tiskárny resp. extruderu.

Akcelerace

Než se pustíme do samotného testování, zjistíme si aktuální hodnoty nastavené pro naší tiskárnu. To provedem v terminálovém okně, příkazem:

M503

Z výsledku nás zajímá řádek M201, který nám určuje maximální možné hodnoty definované pomocí firmware a řádek M204, kde vidíme naše nastavené hodnoty. Příklad by mohl vypadat následovně:

M201 P2000.00 R2000.00 T2000.00

M204 P1400.00 R2000.00 T2000.00

Hodnota P (print) znamená maximální rychlost akcelerace pro tisk, tedy jakoukoliv G1 hodnotu, kde je použit parametr E např. G1 X10 Y10 E3.8 F2500. Na příkladu vidíme, že bezpečné maximální hodnoty jsou v M201 nastaveny na 2000, aktuální hodnota pak v M204 nastavena na 1400.

Hodnota R (retraction) je maximální akcelerace použitá pro retrakce. Na příkladu vidíme, že bezpečné maximální hodnoty jsou v M201 nastaveny na 2000, aktuální hodnota pak v M204 nastavena na 2000.

Hodnota T (travel) je maximální retrakce použitá pro jakýkoliv G1, kde není parametr E (extruze. Na příkladu vidíme, že bezpečné maximální hodnoty jsou v M201 nastaveny na 2000, aktuální hodnota pak v M204 nastavena na 2000.

Naše hodnoty známe, proto překročíme k samotnému testu. Pro tento test jsem použil jeden z hotových STL, konkrétně https://www.thingiverse.com/thing:4169896.

Na tomto STL vidíme, že nám umožňuje provést 6 kroků. Naše hodnoty akcelerace tedy budeme testovat stejně jako autor v krocích 400.

Abychom provedli test správně, nastavíme Slicer následovně:

výška vrstvy 0.2mm, výplň nastavíme na 0, perimetry 2, horní a spodní vrstvy na 0, 1 skirt vrstva, skirt offset 0mm, počet skirt outlines např. 5 aby nám díl díky absenci spodní vrstvy držel hezky u podložky.

Po vygenerování je nutné upravit změny akcelerací jednotlivých segmentů dle obrázku výše. To můžeme provést dvěma způsoby, buď přímo ve sliceru nastavíme rozdělení model po 5mm a každému segmentu nastvíme jinou hodnotu akcelerace nebo přímou editací vygenerovaného G-Code v editoru jako je Notepad++ nebo Sublimetext.

V Simplify3D v textu hledáme:

; layer 1 Z = 0.200

V Cura v textu hledáme:

; LAYER:0

Nejprve hned za tento kód vložíme M201X3000 Y3000, tím navýšíme maximum pro akceleraci os X a Y na 3000, poté vložíme hned za tento řádek M204 P400, kde hodnota reprezentuje akcelaraci 400 pro první segment.

Pro další segment vyhledáme pomocí CTRL+F hodnotu Z = 5 (5mm), v Cura pak z5 a vložíme M204 P800 kde 800 reprezentuje akceleraci pro druhý segment.

Takto opakujeme pro Z 10, 15, 20, 25. Po úpravě uložíme G-Code nejlépe na SD kartu a vytiskneme. Výsledek by měl vypadat jako na následujícím obrázku.

Z obrázku je patrno, že nejlepší výsledek byl dosažen okolo hodnoty 1200 a 1600, test tedy zopakujeme, ale v G-Code vyměníme hodnoty 400 – 2400 za hodnoty 1100 – 1600.

Z obrázků nám vyplynulo, že naše nejlepší hodnota je 1400. Její uložení do EEPROM provedem buď prostřednictvím softwaru nebo v terminálovém okně příkazem:

M204 P1400

pro uožení pak zadáme M500.

Jerk a Junction deviation

Stejně jako u kacelerace si nejprve zjistíme, jaké hodnoty máme nastaveny a zda používáme funkci Jerk nebo Junction Deviation. Junction deviation je funkce používaná vce u tiskáren typu Delta.

Aktuálně nastavenou funkci opět zjistíme pomocí příkazu:

M503

Zkontrolujeme řádek M205, který pokud obsahuje parametr J, máte zpnutý Junction Deviation, pokud neobsahuje parametr J, používáte klasický Jerk.

M205 neobsahuje parametr J, používá se klasický Jerk
M205 obsahuje parametr J, používá se Junction deviation

V našem testu použijeme shodný STL model jako pro test akcelerace, pro každý 5mm segment použijeme jinou hodnotu Junction deviation nebo Jerk jako je znázorněno na obrázku. Pokud chceme používat Jerk hodnoty M205 jsou reprezentovány parametry pro osy X a Y. okud chceme použít Junction deviation, vložíme pouze hodnotu J.

junction deviation a Jerk hodnoty pro každý 5mm segment

Pro náš test použijeme stejný G-Code jako v testu akcelerace. Náš předešlý G-Code otevřeme opět v našem oblíbeném textovém editoru a předešlé vložené řádky nahradíme novými. Tedy M204, který sme vložili pro test akcelerace nahradím M205 a hodnotou pro Jerk či Junction deviation dle předešlého obrázku.

Vložení M205 do G-Code

Výsledný G-Code vytiskneme a opět nalezneme nejlepší hodnotu.

vybrání nejlepší hodnoty už stačí provést uložení pomocí příkazůvrminálovém okně viz příklady níže:

M205 X15 Y10 pro Jerk

M205 J0.03 pro Junction deviation

M500 uložení změn do EEPROM.

Výsledkem této kalibrace pro Akceleraci a Jerk popř. Junction deviation bude tisk bez posunutých vrstev, hran, rohů a zamezení tvorby duchů.

Kalibrace Akcelerace, Jerk popř. Junction deviation