Kalibracja Ekstrudera PID

Kalibracja ekstrudera, PID głowicy

We wpisie tym zostanie opisana kalibracja regulatora PID głowicy drukarki 3D z użyciem komend G-CODE.

Kalibracja ekstrudera to prosty zabieg który pozwoli dostosować regulator proporcjonalno-całkująco-różniczkujący w skrócie PID. Pozwala on na utrzymanie temperatury głowicy drukarki 3D na stałym poziomie, regulując jej wahania. Dla osób bardziej dociekliwych więcej o regulatorach PID można przeczytać np. tutaj.

Do czego przydaje się kalibracja głowicy drukującej a dokładniej regulatora PID? Ano po złożeniu drukarki 3D (lub kupnie gotowego urządzenia) właściwie i bez tego można otrzymać całkiem zadowalające wydruki. Jednak większość drukarzy z pewnością po jakimś czasie będzie czuło niedosyt i zacznie poszukiwanie rozwiązań poprawiających jakość wydruku. Wbrew pozorom jednostajna temperatura ekstrudera a dokładniej głowicy drukarki 3D ma całkiem spory wpływ na wydruk.

Jest to sprawa związana z gęstością materiału jakim jest filament i różnicą lepkości w różnych temperaturach. Przy niższej temperaturze lepkość filamentu może być odrobinę większa, przy wyższej zaś filament do drukarki 3D może być nieco bardziej płynny. Przy warstwach rzędu 0.1-0.2 mm i niewielkich głowicach np. 0.3 może to mieć jakiś wpływ. Badań nie przeprowadzaliśmy, ale skoro mamy jakiś regulator, to warto go „podregulować”.

Zatem do pracy.

Są dwie metody regulacji, obie w miarę proste. W pierwszej z nich wartości PID podajemy bezpośrednio G-code’m do firmware’u, w drugiej przepisujemy te dane po prostu do pliku configuration.h w środowisku Arduino. Aby kalibracja ekstrudera została przeprowadzona należycie najpierw musimy te wartości znaleźć.

Krok 1. Na zimnej głowicy w dowolnym oprogramowaniu (np. Pronterface – Printrun download) musimy uruchomić tzw. Autotuning PID za pomocą komendy M303.

Używamy jej w ten sposób: M303 S220 C6

gdzie: S230 – oznacza temperaturę w ºC

oraz: C6 – oznacza ilość powtórzeń cyklu

 

Jeżeli drukujemy najczęściej jednym typem materiału, warto rozważyć autokalibrację PID dla temperatur zbliżonych do temp. roboczych konkretnego filamentu. Dla PLA lepiej ustawić bliższą temu filamentowi temperaturę w granicach 200-220 ºC, dla ABS np. ok. 240-260 ºC.

Po 6 cyklu (może ich być mniej lecz dokładność raczej spadnie) w oknie programu pojawi się wyliczona wartość PID która zostanie oznaczona Kp, Ki, Kd.

I teraz 2 możliwości:

Krok 2a. Wpisujemy wartości Kp, Ki, Kd komendą M301.

Komendę M301 stosujemy w następujący sposób:

M301 P1 I2 D3

gdzie:

1 – Kp, 2 – Ki, 3 – Kd.

Czyli M301 P56.78 I1.34 D72.12

Krok 2b. Lub wpisujemy Kp, Ki, Kd bezpośrednio w pliku konfiguracyjnym (configuration.h)

Odszukujemy linijki:

#define DEFAULT_Kp 18.89
#define DEFAULT_Ki 1.15
#define DEFAULT_Kd 77.53

i podstawiamy wyliczone wartości.

Krok 3. Zatwierdzamy konfigurację.

W przypadku zapisywania konfiguracji G-Codem zapamiętujemy ustawienia za pomocą komendy M500. Twój firmware musi mieć włączoną obsługę EEPROM. Można jeszcze sprawdzić czy się wszystko zapamiętało za pomocą komendy M503.

Wybierając drugą metodę, po edycji pliku konfiguracyjnego wgrywamy po prostu nowe ustawienia do sterownika.

Drukarki 3D z serii Printo H3 proces autokalibracji PID mają mocno uproszczony. Wystarczy uruchomić funkcję z menu drukarki i poczekać na wynik. Całość zapisuje się automatycznie w pamięci EEPROM i po 2 minutach sprawa jest załatwiona.

I to by było wszystko w tym temacie. Jak widać kalibracja ekstrudera i regulatora PID nie jest aż taka trudna. Warto jeszcze pamiętać, że wszelkie zmiany i zabiegi przy głowicy takie jak owinięcie taśmą kaptonową, wymiany termistora czy grzałki, zamontowanie dodatkowego chłodzenia i tym podobne mogące mieć wpływ na temperaturę należy zakończyć ponowną regulacją.

Modyfikacja zasilacza ATX

Modyfikacja zasilacza ATX

Często klasyczne zasilacze ATX przy znacznym obciążeniu linii  12 V potrafią płatać figle. Chodzi mi tu dokładnie o nagłe wyłączenie się zasilacza, co w przypadku wykorzystania ich do zasilania drukarek 3D może być mocno frustrujące.

 

Taka sytuacja..

Wyobraźmy sobie 6 godzinny wydruk przerwany w połowie tylko przez to, że napięcie skoczyło nieco wyżej niż 12V. Chociaż sam zasilacz spokojnie dałby temu radę, to układ sterujący wewnątrz odcina napięcie. Nie ma się co temu dziwić, w końcu zasilacze ATX przeznaczone są do sprzętu komputerowego które jest znacznie czulsze na wahania napięcia, i często muszą dostarczać prąd do zestawów wartych po kilka – kilkanaście tysięcy złotych. Nie ma wtedy mowy o wysokich niedokładnościach podawanego napięcia.

Prawdę mówiąc, nie spodziewałem się u siebie takich objawów. Próbując zasilić swoją pierwszą autorską drukarkę 3D, która zarazem miała trafić niedługo do sprzedaży, napotkałem problemy podobne do większości ludzi próbujących nieco tańszymi sposobami dać swoim drukarkom nieco prądu.

Zacząłem szukać. Wszędzie, na polskich i zagranicznych forach te same odpowiedzi: „Obciąż linie 5V”, „Dorzuć żarówkę na 5V”, „Podepnij rezystor”, „Make some dummy load on 5V”… I pewnie mają rację, na wielu zasilaczach ten sposób zapewne się sprawdza. Sęk w tym, że mój stary ModeCOM 400W miał w nosie takie metody i wyłączał się nadal niezależnie od tego co i ile bym mu tam pod to 5V wpakował.

 

ModeCOM Feel III - 400W
Naklejka znamionowa niesfornego zasilacza..

 

Jak nie po dobroci to na siłę..

Nie ma rady, może i kieszeń nie jest wypchana po brzegi podobizną Władysława II Jagiełły ale nie byłoby mi raczej szkoda 100 zł na normalny zasilacz przemysłowy 12 V 20A.. Jednak mam to do siebie, że lubię postawić na swoim i stwierdziłem, że mu po prostu nie odpuszczę. Prędzej dam mu się spalić. Wiedziałem że on może, tylko że mu się nie chce..

Śrubokręt w rękę i popuszczamy mu śrubki.. Wita mnie mniej więcej coś takiego:

ModeCOM Feel III - 400W
Wnętrzności owego zasilacza ATX..

 

Szybki skan po bebechach, i… Namierzony! Teraz trzeba skorzystać ze zdobyczy cywilizacji – odpalamy Google.

 

SG6105DZ - ModeCOM Feel III - 400W - Modyfikacja zasilacza ATX
Oto zawiniątko – SG6105DZ

Znalazłem DataSheet’a SG6105DZ, po szybkim przeglądnięciu na pierwszy rzut idą wejścia 2, 3 i 7. Według schematu na piny z tymi numerami podawane jest napięcie odpowiednio 3.3V, 5V i 12V. Układ najpewniej porównuje je z jakimiś wartościami zadanymi i przy zbyt dużym lub zbyt małym napięciu robi swoje.. Czyli odcina nam zasilanie 😉 Pod lupę poszło jeszcze wejście 4 – „Over-power sense input.” Też do modyfikacji.

W pierwszej próbie zwyczajnie rozłączyłem wymienione wejścia ucinając im nóżki. Testy i.. porażka. Efekt ten sam, nieraz zasilacz wstawał tylko na ułamek sekundy i padał od razu. Nie zniechęcony rzuciłem jeszcze raz okiem w datasheet’a, rozwiązanie było przed oczami cały czas niedostrzeżone. Wymienione piny a w szczególności nr 4 kiedy nie używane muszą być podpięte do masy.

ModeCOM Feel III - 400W - modyfikacja zasilacza ATX
Ręczna robótka i zasilacz ATX śmiga jak powinien.

 

Tak też lutownica w rękę, ze dwa kabelki, trochę cyny i voilà! PrintO drukuje już którąś dobę z kolei a zasilacz ATX nie wyłącza się, jak to miał w zwyczaju nawet po pół czy po godzinie czasu. Sprawę uważam za rozwiązaną i zamkniętą 😉

 

Podsumowując..

Jeżeli wszelkie inne i łatwiejsze sposoby zawiodą, warto spróbować zmusić zasilacz do działania w wyżej opisany sposób. Należy jednak pamiętać, że:

a) nie każdy zasilacz będzie oparty o SG6105DZ. Podobnych układów jest mnóstwo, i każdy może mieć inaczej umieszczone wejścia zabezpieczeń. Przed modyfikacją sprawdź datasheet dla układu w Twoim zasilaczu.

b) po modyfikacji zasilacz ATX nie posiada już zabezpieczeń nadnapięciowych – należy w ów czas szczególnie dokładnie sprawdzać jakość połączeń gdyż jak mniemam zwykłe zwarcie może doprowadzić do usmażenia całego zasilacza. I kto wie co jeszcze..

c) klasycznie – z prądem nie ma żartów, nie wiem czy wszystkie zasilacze ATX i czy w ogóle posiadają jakiś układzik rozładowujący kondensatory. Ale dla pewności warto zasilacz przed otwarciem rozładować albo dać mu chwilę odpocząć. Raz rozładowywałem 3 kondensatory po 15’000 uF (w sumie 45’000uF) pilnikiem do metalu i dziury w nim wypalone przeszły moje oczekiwania.. 😉