Profi2S Motor Tuning
(PID paraméterek beállítása és finomhangolása)


(Profi2S)

Módosítva: 2007. december 01. szombat

Tartalom:
Elmélet
PID hangolása
Servo Frekvencia Generátor

Új lehetőség: Servo Frekvencia Generátor (Mach3-ban)!

Elmélet:

A szervo vezérlések működése teljes mértékben különböznek a léptetőmotoros vezérlésektől, ezért sajátos motor tuning eljárás alkalmazása szüksége! Maga a szabályzás elvei és a lezajlódó folyamatok összetettek, ezért itt csak tömören érdemes vele foglakozni (felhasználói szinten).

Encoder illesztés:
A DC motoroknak nincsen előre meghatározott léptetési pozíciójuk mint a léptetőmotoroknak, ezt a funkciót teljesen a vezérlés valósítja meg a motorra szerelt encoder segítségével. Ez folyamatos és dinamikus (kimozdítása esetén vissza fog állni) pozícióban tartást jelent.
A motor felbontását alapvetően az encoder felbontsa határozza meg. Ezt a vezérlés bizonyos mértékben fölfele és lefele is módosíthatja.
Profi2S Servo Vezérlő az encoder alapfelbontását kettő módon képes kezelni:

1.  duplázva (szorozza 2-vel)
2.  1:1 (változtatás nélkül)

Erre a Mach CNC szoftverek alkalmazása esetén különösen nagy szükség van, mivel a szoftver max. 45kHz-es léptetési frekvenciájára lehet optimalizálni az alkalmazott szervomotort (encoderét)! Az elérhető maximális fordulatszám a következő képlettel számítható:

fmax.=45000/Efelbontás×60    [fordulat/perc]

fmac.=elérhető maximális fordulatszám  [1/min],
45000 = a Mach3 maximális léptetési frekvenciája [Hz],
Efelbontás= a beállított (Jumperelt) encoder felbontás,
×60 = percre átszámítás

Egy példa:
egy 500 alapfelbontású encoderrel szerelt DC motorral, duplázott Encoder kezeléssel és Mach3 CNC vezérlővel (45kHz-es módban) elérhető maximális szervo fordulatszám:

45000/1000×60=2700 1/min.

Amennyiben a kapott fordulatszám vagy felbontás számunkra nem kielégítő, a DSP konfigurálásával lehetőség van, az encoder felbontások manipulálására! Az elérhető max. fordulatszámoknál figyelembe kell venni a Vezérlő sávszélességét is, ezért a számításra érdemes a Profi2S Servo Monitor Fordulatszám kalkulátorát használni!


(Profi2S Servo Monitor kalkulátora)

Fontos:
Mivel az egész rendszer visszacsatolása teljes mértékben az encoderen keresztül történik, annak felbontása minden egyéb dinamikai jellemzőkre (lemaradás, lengési hajlam, stb.) is kihatással van! Alkalmazzuk a lehető legnagyobb felbontásokat a minél finomabb és precízebb hajtásminőség eléréséhez!

A beállíthatóságot figyelembe véve, a Profi2S Servo Vezérlőnek a 200-tól, 1000-ig terjedő encoder felbontások a legmegfelelőbbek!

Pozícióhű követés, lengések, PID:
Egy Step/Dir rendszerben mivel a vezérlés előre nem tudja hova kell mennie, bizonyos időkéséssel követi a kiadott mozgási utasításokat. Ez egyenletes mozgások esetén rendkívül kicsi és így elhanyagolható. Durva sebességváltozások esetén (pl irányváltásokkor) ez már jóval tetemesebb. Ez a késés a mechanikai tehetetlenségekből (lendületekből) és motor+elektronika reakcióidejéből adódik.


(erősen stilizált mozgási pálya)

A fenti ábrán egy erősen stilizált mozgási pálya eltérést ábrázol. A piros szaggatott vonal képviseli a kívánt mozgási görbét (gyorsítások és lassítások nélküli irányváltásokkal), a kék vonal a tényleges mechanikai utat ábrázolja. Látható, hogy a sebességek változása környékén a szabályzás csak bizonyos lengésekkel és eltérésekkel képes követni. Ennek a problémának lekezelésére született az u.n. PID szabályzási eljárás, melyet teljes egészében tartalmaz a vezérlő!

PID:
A PID szabályzás próbálja a kívánt pályán tartani a mechanikát. Ez három fő komponens eredőjéből számított motorgerjesztés révén valósul meg. E három komponens nevéből származik a PID rövidítés.

P = Proportional (arányos tag);
I = Integral (lassúbb, hibaösszegző tag);
D = Derival (gyorsabb, a változások sebességére reagáló tag).

P = arányos tag:
A kért és a tényleges pozíció eltéréssel arányosan emeli a motor gerjesztését (előjel helyesen). Mértéke a motor dinamikáját befolyásolja (milyen erővel reagáljon a növekvő hibákra).

I = hibaösszegző. Ha pici hiba maradt a pozícióban, akkor idővel ezeket összeadva, felerősíti, és a motort berántja a pontos (kért) pozícióba. Pici hibák megszüntetésére szolgál. Reakciója viszonylag lassú.

D = gyors reakciójú tag. Gyors, ugrásszerű változásokra adott reakció, extra dinamikájú gerjesztés. A változás sebességével arányosan növeli, vagy csökkenti a gerjesztést, ezzel fokozva a motor reakcióját illetve lengés csillapítását (negatív reakciót). Elsősorban a rendszer lengés csillapításáért (stabilitásáért) fele. Csak változó sebességeknél működik és a változások sebességével arányos.


(PID szabályzás, tranziens görbe)

A fenti görbe egy gyors (ugrásszerű) pozícióváltozást igénylő pályára adott mechanikai válaszgörbét ábrázol (mechanikai beállás). A fenti állapot egy nagysebességgel közeledő motort mutat a 0-pontba zuhanva, majd a mechanika lengésekkel megáll és beáll a 0-lára. Megfigyelhető a PID szabályzó egyes beavatkozásai.

P adja az alapgerjesztést mely az eltérés mértékével arányosan nő (alapnyomatékot a motornak). D adja a beesés max. szögét (csillapítását), mely a lengés csillapításért felel. Minél nagyobb a szög (kisebb a D tag hatása), annál több és nagyobb túllövés (a+b) mérhető, és annál tovább tart a rendszer megnyugvása. I tag felel a maradék pozíció hiba kijavításáért (idővel felerősítve azokat annyira, hogy a motort behúzza a kért pozícióba). Nagy jelentőséggel bír a pálya hű mozgatás megvalósításában!

A PID tagok hatásai:

- P tag: emelésével fokozódik a motor pálya hű mozgatása, nő a motor nyomatéka.
- Kevés P tag : nagy pozíció eltérési hibák, lomha reagálások, gyenge motor.
- Sok P tag: túlreagáló, lengő rendszer (oszcilláció), rángatózó motor, irányváltások után lengési hajlam.

- I tag emelésével szigorodik a pozíciókövetés, keményebben tartja a 0 hibaszintet. Követési hiba esetén gyorsabban és erősebben akar pozícióba állni.
- Kevés I tag: maradék hiba nem szűnik meg (nem pálya hű követés, irányválások után maradékhiba kialakulása és fennmaradása).
- Sok I tag: belengő, oszcilláló mechanika (túlkompenzálás), vadul rángatózó, lengő motor. Nem szűnő, erősödő vad oszcilláció.

- D tag emelésével a gyorsítások dinamikusabbak lesznek, a lassítások jobban csillapítva történnek. Növekszik a rendszer stabilitása (lengés csillapítás), viszont a reakció idők is megnőnek.
- Kevés D tag: oszcilláló (lengő) rendszer, lassan vagy egyáltalán nem csillapodó lengések az irányváltások után.
- Sok D tag: túlfékezett (csillapított), merev motorhajtás (erős melegedés a motorban és lomha reagálás, morgó motorhangok).

Motor beszabályozásánál mindhárom tagot kell együttesen szabályozni, a három tag együttese határozza meg a szabályzás jóságát, ezért lehet több ponton (összállásban is) jó beszabályzást találni!

PID szabályzó behangolása:


(PID)

Mivel a jelenségek szabad szemmel nehezen, vagy egyáltalán nem követhetőek, ezért a szabályzó precíz behangolásához használni kell (érdemes) a Profi2S Servo Monitort, melyről részletesen a Servo Monitor menü alatt olvashat!
Megismerése feltétlenül szükséges, ezért előtte kérem olvassa át alaposan!!!


(mérés és analízis)


(Profi2S Servo Monitor)

A PID szabályzót mindig teljes mechanikával együtt kell beszabályozni (annak fékező ellenállásával és tömegével), lehetőleg a használni kívánt (pl. Mach3) CNC vezérlőprogrammal működtetve (az ott beállított sebességekkel és gyorsulásokkal)! A monitort és a Mach3-mat egyszerre futtatva, tengelyenként haladva kell végezni a beállítást.

A Mach3 CNC vezérlő program alapismerete szükséges a hangoláshoz! Információt a Mach3 leírásánál talál!


(Profi2B felület Mach3-nál)

Hangolás előtt a Mach3-mat a Profi2B kártára kell konfigurálni, valamint a CNC gép alapfelbontásait és sebesség/gyorsulásait be kell állítani!

A hangolás alatt a mechanika oda-vissza mozgásokat fog végezni, és e mozgásokat mérve (Monitorral) történik a hangolás. Cél az, hogy a mechanika minél kisebb hibával kövesse a PC által megkívánt mozgási pályát!
A mozgási pályát egy egyszerű G-kód programocska fogja végezni, amit majd a Mach3-ba kell betölteni és különböző sebességekkel és gyorsulásokkal kell végrehajtatni.

Mozgást generáló kisprogram (G-kód):

(File Szogteszt.tap )
(Wednesday, April 14, 2004)
G90G80G49
F2000
G1 X0.0000 Y0.0000 Z0.0000 A0.0000
M98 P1234 L50
G1 X0.0000 Y0.0000 Z0.0000 A0.0000
M5M30
O1234
G1 X0.0000 Y0.0000 Z0.0000 A0.0000
G1 X700.0000 Y00.0000 Z0.0000 A0.0000
M99

Alternatív frekvencia generálási lehetőség, az új Profi2B V1.2-es felület alól!

Ekteszt.tap

A program F sorában (itt F2000) meghatározott sebességgel (itt 2000 mm/perc) elmozgatja a meghatározott tengelyt (itt az X-et) 50×, 0 és 700 mm között, oda-vissza (ciklikus, subrutin hívásokat hajt végre). A világossal jelzett sorokat a teszt folyamán, időnként szerkeszteni szükséges. Az F sort (itt F2000) ha a sebességet szeretnénk fokozni (mm/percben), a G1 X700.0000 ... sort pedig ha a többi tengelyt szeretnénk mozgatni (pl. a Z-re így néz ki: G1 X00.0000 Y00.0000 Z700.0000 A0.0000 )! Ha az elmozdulás mértéke (itt 700mm) nem megfelelő, ezt bármire át lehet írni (mm-ben értendő)!

A szerkesztéséhez a Mach3 Profi2B felülete kínál lehetőséget (a Windows Jegyzettömb-jén keresztül).


(A Mach3 Szerkeszt gombja szolgál a G-kód módosításához)

Hangolás menete (vezérlőnként):

Fontos!
Tesztelés előtt győződjünk meg az encoder helyes bekötése felöl! Fordított (A és B csatorna) bekötése esetén a Vezérlő elszalad egyik irányba teljes sebességgel! Ezt úgy ellenőrizhetjük, hogy szét kuplunggólt motornál, ha bekapcsoljuk és megpróbáljuk kimozdítani a tengelyét, nem szabad elszaladnia! Fordított bekötés esetén a motor két végét cseréljük meg!

1. Be kell állítani (jumper-elni) a DSP Config-ján a kívánt encoder kezelést (lásd fentebb)! Ez egyben meghatározza az elérhető felbontás mértékét, amit a Mach3-ba be kell állítani, az adott tengelyre vonatkoztatva! A Jumper áthelyezése esetén a Vezérlőt újra kell indítani, vagy a Test gombot kell megnyomni!

2. Be kell állítani a motor megengedett maximális csúcsáramához az áramkorlátot (P4-es Limit trimert). A trimmert az óramutató járásával megegyező irányba forgatva csökkentjük (véghelyzetében kb. 0.1A), ellentétes irányba növeljük (véghelyzetében kb. 14A) a csúcsáram korlátozás mértéke. Meg kell becsülni a motorunk csúcsáramának helyét és a trimmert oda kell állítani!


(Limit)


(csúcsáram korlátozó, Limit trimmer)

3. A hangolás idejére egyenlőre ne kössük össze a védelmi kioldást (Error vezetéket) a Profi2B kártyával (felesleges leoldásokat ne generáljon még most)!

4. Be kell állítani a Mach3-ason a tengelyek felbontását, sebességét (egyenlőre min. 15000 mm/perc legyen) és a gyorsulásokat (egyenlőre 100 mm/s2 legyen)! A gyorsulást és esetleg a max. sebességet a teszt folyamán még változtatni szükséges lesz!

5. Be kell tölteni a G-kódot a Mach3-ba és a szerkesztésével be kell állítani az elmozdulást a tesztelni kívánt tengelyre (ha pl. Y-ont akarjuk tesztelni, akkor az Y koordináta mutasson 700.0000-ra, a többi 00.0000 legyen)!

6. Állítsuk minimumra a három PID trimert (óramutató járásával megegyező irányba van a 0)! Majd a P és a D trimerét emeljük fel kb. 1/3-ad állásba!


(P és D trimmerek beállítása)

7. A gép minden tengelyét állítsuk középállásba és győződjünk meg róla, hogy innét van bőségesen 700 mm mindkét irányba (ha nincs, akkor a teszt G-kódban vegyük lejjebb az elmozdulás mértékét)!

8. Indítsuk el a programokat és a tesztet! Figyeljük meg a mozgást és ha vad lengésbe kezdene a rendszer, csökkentsük a P tagot!

9. A Monitor programmal mérjük Folyamatos módban (oszlopdiagrammal) a lemaradásokat és a P tag szabályzásával állítsunk be 10 - 20 Step közötti késést (az egyenletes szakaszban mérve)!


(Folyamatos mód)

10. Ha nagyon beleng az irányváltásokkor, akkor emeljünk addig a D tagon, míg nem válik kezelhetővé a folyamat (túl erős nem ideális)!

11. Az I tag nagyon finom emelésével (óramutató járásával ellentétes irányba tekerve) állítsuk be a rendszert úgy, hogy az egyenletes mozgásokkor a szabályzó kb. 0 hibára kihozza a hibát (enyhe lengéssel a 0 környékén)! Csak óvatosan, mert túladagolt I tag, vad lengésbe viheti a rendszert! Ha ez bekövetkezne, kapcsoljuk ki a motort és vegyünk visszább az I tagból, majd folytassuk a hangolást!


(I tag trimmere)

12. Ezen a Mach beállításon egy jól behangolt Vezérlő minden ponton (irányváltásokkor is) 0 hibával (+-1 Step) dolgozik! Addig végezzük a hangolást (P-I-D állításokkal), mígnem elérjük ezt az állapotot! Ha a mechanika lüktet, szorul, üt, akkor kisé rosszabb hibával is megelégedhetünk!

13. Ellenőrizzük több sebességen is a hibát (pl. 10, 100, 500, 1000, 3000, 4000 mm/perc, stb.)! A sebesség emelésével az irányváltás pillanatában kicsit megugorhat a hiba, de ezt a Vezérlőnek gyorsan javítania kell (a P-tag esetleg az I-tag emelésével javítható). fokozódó lengés esetén emelhető a D-tag is (de ilyenkor ismét ellenőrizzük a lentebbi sebességeknél is a rendszert)!

14. Nem szabad semmiből sem túladagolni semmit! Épp ott kell megállni a trimerek emelésével, ahol a hiba épp megszűnik! Ellenkező esetben ideges, túlreagáló szabályzást fogunk kapni.

15. Ha minden ok, emelhetünk a Mach3 motorgyorsítás értékén és ellenőrizzük a váltáskor fellépő hibacsúcsokat.

16. Az a legjobb gyorsulás beállítás, ahol még képes a Vezérlő 0 környékén (max. +-3 Step) tartani a hibát fékezés és gyorsítások alatt is! Ha ezt megtaláltuk, akkor erre a gyorsulásra képes a rendszerünk! Gyorsjáratban megengedet a rövid (impulzus szerű) hibajel akár 50 Step-es értékkel is! Amennyiben a hibát az I-tag még képes kikompenzálni a lineáris szakaszban, használható ez a gyorsulás is (csak gyorsjáratban)! Általában a hibaszint beállítható +- 1 Step közötti értékre!


Folyamatos mérés videó (wmv, 9 MB)

17. Stressz vizsgálat:
Ehhez le kell állítani a Mach3-ast és a Vezérlő Test gombját megnyomva a Monitor Trígerezett módjában megrajzoltatható a tranziens görbe! Akkor jó, ha minél kisebb túllövésekkel és lengésekkel be áll a rendszer 0 hibára! Ilyenkor a rendszer kap egy 255 Step hibájú alapjel ugrást, és neki le kell tudnia kezelnie ezt.


(tranziens görbe)

Ha a lengések nagyon soká, vagy egyáltalán nem szűnnek meg, akkor a beállítás nem kielégítő! Ilyenkor általában vagy sok az I-tag, vagy kevés a D-tag értéke!
Többször ismételjük meg ezt a tesztet!


(D-tag változtatás hatása a tranziens görbére)

Ahogyan csökkentjük a D-tagot, nő a beesés szöge (alfa), és nő a túllövések mértéke, száma (D<D<D<D). Túl erős D-tag esetén viszont nagyon megnő a motor csillapítása és jobban melegszik is.
A görgetősávot megfogva a görbe időben nagyítható és teljes részleteiben tanulmányozhatóvá válik!

18. Pozícióban tartási vizsgálat:
A Monitor Folyamatos módjában és leállított Mach3 mellett a hibajelnek 0 (+-1) -ben kell állnia! Ezután fogjuk meg a motor tengelyét kézzel, és próbáljuk meg kimozdítani! A motornak nyomatéka erejéig vissza kell kényszerítenie a tengelyt 0 pontba! Ez szépen nyomon követhető a Monitor diagramjain is!

19. Ha minden pontban kielégítő eredményeket mérünk, a beállítás sikeres volt.

Servo Frekvencia Generátor használata Mach3 P2BV1.2 felület alkalmazása esetén


(P2BV1.2 Magyar felület)

A V1.2-es felület telepítése után a diagnosztikai menüben (Angol) lehetőség nyílik a Mach3-ba épített Servo Frekvencia Generátor (Servo Test) használatára! A beépített frekvencia generátor beállítható frekvenciával és váltási periódus idővel mozgathatja a vezérlőt (egyszerre csak 1 tengelyét). Ez a funkció helyettesítheti a fentebb ismertetett teszt G-kódot is, bár ilyenkor nincs gyorsítási szakasz (szélsőségesebb teszt).


(Servo Test gomb a Diagnostic panelen)

Az új funkció (Servo Test) előhívása után egy párbeszéd ablak nyílik meg, melyet a tesztelni kívánt jelsorozatnak megfelelően kell kitölteni.


(Teszt jelsorozat párbeszéd ablak)

A generátor a paramétereknek megfelelően a tengelyt előre, majd gyorsítások nélkül azonnal hátra fogja mozgatni! A mozgatást a Start-al indíthatjuk és a Stop-pal állíthatjuk meg (az ablak bezárása is megállítja)!


(Pl: X tengely 10kHz-es Step-jelet kap, 1s-os irányváltásokkal)

Az Axis mezőben a mozgatni kívánt tengelyt kell kijelölni.
A Hz mezőben a kívánt Step frekvenciát kell beírni (0 - Kernel Speed [Hz]).
Reversal Period-ba az irányváltások közötti időt másodpercben (0.01-...s).

Tesztelés közben a diagnosztikai panelen leolvashatóak az elmozdulások mértékei és sebességei.

Az felület beállításokkal és azok nélkül is letölthető a Profi2B Setup menüje alól!

További tippek:

Amennyiben a G-kódban magasabb sebességet állítunk be mint a Mach3-ban megadott tengelysebesség, a program visszafogja a motort (ilyenkor a Mach3 motor tuningnál feljebb kell venni a tengely max. sebességét)!

Ha az F0-ás LED folyamatosan világít, akkor túl nagy sebességgel hajtatjuk a motort. Ilyenkor vagy az encoder kezelést kell duplázásra állítani, vagy a sebességből kell visszább vetetni (Fxxxx)! Ezután a meghatározott max. (Encoder Túlpörgés Veszély nélküli) sebességet kell a Mach3 tengely sebességének beállítani (a rendszer ne tudja e sebesség felé emelni a motor fordulatát)! A jelzést a Test gombbal lehet töröltetni (1× megnyomva) futás közben is.


(A zöld jelzésben kell maradni tuning alatt is!)

Egy lengésbe került motort a végállás kapcsoló nem tudja megállítani, mivel a kapcsoló a PC-n keresztül működik!
Az E-Stop kiépítésével a Vezérlőt minden körülmények között megállíthatjuk! A Vezérlőt kihozni E-Stop-ból, csak újraindítással lehet!

Gyengébb minőségű CNC szoftverek (pl. KCam4) Step impulzusai nem elég egyenletesek. Ezek lengéseket generálhatnak a szervo mozgásokban! Ezeket ne használjuk!

A Trigerezett mód használható a teszt G-kód futtatása alatt is (vagy akár a megmunkálások alatt is)! Ilyenkor a felvétel csak akkor indul, ha a hibajel meghaladja (egy pillanatra is) a +-20 Step-es szintet! Tanulmányozható vele az irányváltásokkor fellépő lengések lekezelése.
A görbe képe elmenthető .bmp file-ba és visszatöltve etalon görbeként (összehasonlító görbeként) használható (fixen megmarad a képernyőn)!

Ha az irányváltásokkor fellépő lengéseket már nem tudjuk lejjebb szorítani, akkor lassabb gyorsításokat kell alkalmazni a Mach3 Motor tuning beállításainál.

Teszt során felléphető védelmi működések:

A védelmek részletes leírását a Vezérlő leírásánál találja!


(LED-ek)

Ha irányváltásokkor kigyullad az F4 (Túláram) LED, akkor a gyorsulás mértéke elmarad a kívánt eredménytől és a hiba ezen a ponton meg fog nőni (a motor védelme érdekében korlátozva lesz a gerjesztés)! Túláram védelem működése esetén a motor dinamikája nem fog tovább nőni. Ha a védelem 10s-ig folyamatosan működik (pl. megszorult a motor), akkor a védelem letiltja a Vezérlőt (kikapcsol a motor és kigyullad az F4-es LED és égve is marad). Ebből az állapotból a Vezérlő újraindításával lehet csak kihozni!

Ha a hibajel 10 Step felet van több mint 2s-ig, akkor az Error vezetéken keresztül a Vezérlő leállíthatja a PC-t (impulzus vesztés nélkül javítható ki a hiba, és bizonyos feltételek megléte esetén, folytatható a munka tovább)! Ezt jelzi az F2 (Slip) LED-en is! Kiépítése nem kötelező. Ha a hibaszint 10 Step alá megy, akkor a jelzés törlődik. Behangolás ideje alatt ezt a védelmet bontsuk (vagy ne építsük ki), ne okozzon felesleges leállításokat!

Túl nagy sebesség esetén a motor nem képes olyan gyorsan forogni mint azt a PC kéri és ilyenkor a hibajel megszalad (több mint 255 Step eltérés mérhető a monitoron). Ha ez az állapot 3s-ig folyamatosan fennáll, a Vezérlő motorfékkel megállítja a motor és letiltja annak további működését (ezt jelzi az F3 LED-en)! Kihozni csak újraindítással lehet belőle. Ha fordítva kötjük be az Encodert, ez a védelem fogja leállítani a motor megszaladása esetén.

Ha a Vezérlő túlmelegedne, letiltja a motort és kikapcsol (F1 LED jelzi)! Csak újraindítással (és lehűlésével) hozható ki belőle!

Ha az F0-ás LED nagyon sűrűn villogni kezd, akkor az Error regiszter túlcsordult. Valószínüleg a motor gyenge, vagy kevés a feszültsége, vagy erős a túláram korlétozása, mert nem bírja követni a PC mozgatási parancsait.

Ha az F0-ás LED folyamatosan világít, akkor túl gyorsan akarjuk az Encodert pörgettetni és ez impulzus vesztéshez vezethet! Csökkentsük a sebességét.


(F0-ás LED és törlő gombja)