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

Módosítva: 2009. február 03. kedd

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

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 "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.
A Vezérlő az Encoder kétféle üzemmódban tudja használni:

- 2×-es (duplázó) üzemmódban az encoder alapfelbontását (vonalainak számát) megduplázva,

- 4×-es (négyszerező) üzemmódban az encoder alapfelbontását meg négyszerezve használva.


(Encoder élkezelések)

Javasolt a 4×-ező mód, a pontosabb pozíció követés érdekében! Nagyon nagy Encoder alapfelbontás (>2000) esetén a 2×-es mód a javasolt.

Ezenkívül a Vezérlő képes a Step jel többszörözésére is (Step multiplier regiszterén keresztül, 1 - 10)!

Erre a CNC szoftverek alkalmazása esetén lehet szükség, mivel a szoftverek (általában az LPT porton keresztül) korlátozott frekvenciájú Step jel kiadására képesek! Nagy felbontású Encoderek esetén ez túl alacsony max. fordulatszámot eredményezne.

Az elérhető maximális fordulatszám a következő képlettel számítható:

fmax.=((FKerner×Step multiplier)/(Efelbontás×Eüzemmód ))×60    [fordulat/perc]

fmac.=elérhető maximális motor fordulatszám  [1/min],
FKerner= a CNC szoftver maximális léptetési frekvenciája [Hz],
Step multiplier= a Profi2Q Step szorzó belső regiszter értéke,
Efelbontás= az encoder alapfelbontása [vonalainak száma, CPR],
Eüzemmód= a Profi2Q Encoder mode belső regiszter értéke [2 vagy 4],
×60 = percre átszámítás

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!

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 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 (hibaösszegző tag);
D = Derival (gyors 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 hirtelen 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ást). A fenti állapot egy nagysebességgel közeledő motort mutat a 0-pontba zuhanva, majd a mechanika lengésekkel megáll és végül 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ályahű 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 trimmerek)

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 (legalább is erősen ajánlott) a belső Monitort, melyről részletesen a Profi2Q Monitor leírás alatt olvashat!
Megismerése feltétlenül szükséges, ezért előtte kérem olvassa át alaposan!!!


(hibaszint 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):

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. Állítsuk be a belső regisztereket (Encoder mode és a Step multiplier)! Ez egyben meghatározza az elérhető felbontás mértékét, amit a Mach3-ba be kell állítani (lásd fenti képletet), az adott tengelyre vonatkoztatva! Az Encoder mode megváltoztatása esetén a Vezérlőt újra kell indítani!

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


(trimerek)

3. A hangolás idejére egyenlőre ne kössük össze a védelmi kioldást (F 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! Majd a P és a D trimerét emeljük fel kb. 1/3-ad állásba!

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 a lemaradásokat és a P tag szabályzásával állítsunk be 0 - 20 Step közötti késést (az egyenletes szakaszban mérve)!

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 finom emelésével á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!

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!

17. Stressz vizsgálat:
Ehhez le kell állítani a Mach3-ast és a Vezérlő Test gombját kell megnyomni! Akkor jó, ha oszcillálás nélkül ugrik és áll be a motor! Fenmaradó oszcilláció esetén vagy az I és/vagy P tagot kell csökkenteni, vagy a D tagon emelni! Ha szükséges volt az állítás, akkor a fenti sebességek ellenőrzése ismét fontossá vált!


(beállási görbe)

18. Pozícióban tartási vizsgálat:
A Monitor figyelve, 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 adatain 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)!

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 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 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!

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.