Marlin PID kalibráció

Sikeres 3D nyomtatáshoz többek között stabil hőmérsékletre van szükség a HotEnd-ben az alapanyag megolvasztásához és a HotBed-en a fűthető tálcán is. A hőmérséklet ingadozás a nyomtatás minőségét ronthatja. A minél egyenletesebb fűtéshez PID kalibrációt kell végeznünk a nyomtatón.

De mi is ez? A Wikipedia ezt írja a PID szabályzóról:


PID szabályozó egy lineáris rendszerek szabályozásánál gyakran alkalmazott, párhuzamos kompenzáción alapuló szabályozótípus. A PID rövidítés a szabályozó elvére utal, a szabályozó által kiadott végrehajtójel
– a hibajellel (Pproportional),
– a hibajel integráljával (Iintegral), valamint
– a hibajel változási sebességével, deriváltjával (Dderivative)
arányos tagokból adódik össze, azaz a végrehajtójel a jelenlegi hiba, a múltbeli hibák és a várható hibák függvénye. Ezen tagok közül nem mindig valósítják meg mindet, ilyenkor beszélhetünk P, PI, PD szabályozókról. A végrehajtójel használható a folyamat vezérlésére, például egy fűtési rendszer energiaforrásának szabályozására.

Ez elég bonyolultan hangzik, de nekünk elég annyit megérteni belőle, hogy erre a három P, I és D-nek nevezett értékre van szüksége a vezérlőnek ahhoz, hogy precízen tudja tartani a HotEnd vagy a tálca hőmérsékletét a fűtőbetét ki/be kapcsolgatásával.

HotEnd fűtés kalibrációja

Ezek az értékek természetesen függenek a HotEnd minden fizikai jellemzőjétől, tehát ha bármit cserélünk rajta, akár csak felteszünk egy szilikon burkolatot a blok-ra, akkor új PID értékekre van szükségünk.

Szerencsére nem kell kiszámolnunk őket, Marlin-ban van erre egy automata kalibrációs rutin. Többször egymásután felfűti a HotEnd-et, majd vár, hogy hűljön kicsit. Eközben figyeli a rendszer viselkedését és a mért eredmények alapján finomítja a PID értékeket. A kalibrációt az M303-as utasítással indíthatunk el:

M303 E0 S235 C10

Az E0 a HotEnd-et jelenti az S235 azt, hogy 235℃ környékén szeretnénk, ha egészen pontosan működne. (PET-G-t használok mostanában többet), a C10 pedig azt mondja meg, hogy az iterációt tíz alkalommal hajtsa végre. Minél többször végezheti el, annál pontosabb lesz az eredmény. Grafikonon így néz ki egy ilyen kalibráció:

PID kalibráció hőmérséklet grafikonja

Miután végzett, a következőket írja vissza a konzolra:

PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
#define DEFAULT_Kp 11.77
#define DEFAULT_Ki 0.74
#define DEFAULT_Kd 47.00

A három #define kezdetű sorral lecserélhetjük a korábbi értékeket a firmware Configuration.h fájljában. Ha használunk EEPROM-ot, akkor ez után vagy az EEPROM adatait frissítjük a firmware-ből, vagy a következő bekezdés szerint járunk el:

Az értékeket ekkor még csak kiszámolta a Marlin, de nincsenek a memóriában. Ha el akarjuk menteni az EEPROM-ba akkor az M500-as előtt az M301-es utasítással a fenti értékeket be kell állítanunk. Tehát így:

M301 P11.77 I0.74 D47.00
M500

Azt vegyük észre, hogy a PID beállítás csak abban segít, hogy a beállított hőmérsékletet stabilan tudja tartani a vezérlő. De hogy ez a hőmérséklet pontosan akkora-e, mint amit beállítottunk, annak nincs semmi köze a PID szabályzáshoz. Ha gyanakodunk, hogy mégsem annyi az annyi, akkor a termisztort kell kalibrálnunk.

Tálca PID vezérlés

A HotBed fűtése alapból nem PID vezérlésre van beállítva a Marlinban. Érdemes ezt is beállítanunk, sokkal egyenletesebb lesz a tálca hőmérséklete. A kontroll led gyors villogásán fogjuk látni, hogy egészen más szisztéma szerint működik PID vezérléssel, mint a beállítás előtt.

De indokként megmutathatom grafikonon is, hogyan néz ki a konstans hőmérséklet tartás PID beállítás nélkül. A kék vonal a tálca, a piros a HotEnd. Tragikus mind a kettő…

PID szabályzás nélküli hőmérséklet grafikon.

A kalibráción kívül még magát a funkciót is be kell kapcsolnunk azzal, hogy kivesszük a kommentet a következő sor elől a Configuration.h fájlban:

#define PIDTEMPBED

A kalibráció az M303-as utasítással történik:

M303 E-1 S60 C8

Hasonló az előzőhöz, csak az E0 HotEnd helyett most E-1 értéket adunk, ami a tálcát jelenti ebben az esetben. Ismét visszakapjuk majd a friss PID értékeket, amiket az M304-es utasítással tudunk aktiválni:

M304 P640.26 I118.42 D865.39
M500 

Előfordulhat, hogy megzavarodik a Marlin attól, hogy az EEPROM-ban nem volt korábban PID érték a tálcához, majd mégis feltöltöttük úgy a firmware-t, hogy PID vezérlést állítottunk be hozzá. Ha nem indul el a tálca fűtése a flash-elés után, akkor reseteljük az EEPROM tartalmát:

M502 ; reset
M500 ; saved

Persze előtte írjuk fel, vagy vezessük vissza a firmware-be azokat az értékeinket, amik így elveszhetnek, például a nozzle offset-jét.


Marlin dokumentáció: http://marlinfw.org/docs/gcode/M303.html


Minta a firmware módosításra a GitHub-on: PID beállítás: HotEnd, HotBed

Hozzászólás küldése

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük