PID beállítás
(szervo szabályzó ráhangolása a motorra)

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. 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 felbontása határozza meg. Ezt a
vezérlés bizonyos mértékben fölfele és lefele is módosíthatja.
A DSP az Encoder-t 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álja.
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.
Ezen kívül a DSP képes a Step jel többszörözésére is („Step multiplier”
regiszterén keresztül, 1× - 10×)!
Erre a CNC szoftverek miatt van 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]
fmax.=elérhető maximális motor fordulatszám
[1/min],
FKerner= a CNC szoftver maximális léptetési frekvenciája [Hz],
Step multiplier= a DSP Step szorzó belső regiszter értéke,
Efelbontás= az encoder alapfelbontása [vonalainak száma, PPR],
Eüzemmód= a DSP „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 (túllövések,
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 DSP!
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éscsillapí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.

(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 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:
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 a
beépített soros Monitort (Quantum Sentinel vagy Hyperterminal szoftverekkel)!
Megismerése feltétlenül szükséges, ezért előtte kérem olvassa át alaposan ezek
leírásait!!!

(karakteres hibaszint analízis, Hyperterminal segítségével)

(grafikus analízis, Quantum Sentinel segítségével)
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!
Hangolás előtt a Mach3-mat be kell konfigurálni, valamint a
CNC gép alapfelbontásait és sebesség/gyorsulásait be kell állítani! A gyorsítási
adatoknál figyelembe kell venni a motor adatit is, mivel a motor alap
gyorsíthatóságától (az áttételezést is figyelembe véve), nagyobb gyorsítási
beállítások hamis hibaszinteket fog eredményezni! Érdemes a gyorsítási értékeket
alulról - felfelé haladva tesztelgetni!
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
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 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 felülete is kínál lehetőséget (a Windows Jegyzettömb-jén keresztül).
Hangolás menete:
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 motor elszalad egyik irányba, teljes sebességgel!
Ezt úgy ellenőrizhetjük, hogy szétkapcsolt motornál, ha bekapcsoljuk és
megpróbáljuk kimozdítani a tengelyét, nem szabad felpörögnie! 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 trimmer).
3. A hangolás idejére egyenlőre ne kössük össze a védelmi kioldást (FAULT kimenetet)!
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 trimmert (a csúszka a GND felé legyen letekerve)! Majd a P és a D trimmeré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, állítsunk a P tagon!
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 - 10 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-3 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 (lassú gyorsításon) egy jól behangolt Vezérlő minden ponton (irányváltásokkor is) 0 hibával (max. ±3 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 növelé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 alacsonyabb sebességeknél is a rendszert)!
14. Nem szabad semmiből sem túladagolni semmit! Épp ott kell megállni a trimmerek 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 (impulzusszerű) 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ó ± 3 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! Fennmaradó 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álik!

(vizsgálat Test gombbal)
Vizsgálatához ideális, a Quantum Sentinel grafikus megjelenítése Triger on módban!
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! A pozíció tartás
erőségét főleg az I-tag emelésével, kismértékben a P-tag emelésével lehet
fokozni. Állításuk esetén ismét mozgási állapotban is ellenőrizni kell!
Álló helyzetben morgó, remegő motornál az Antitremb(l)e regiszter emelésével
lehet a rezgést megszüntetni. A minél jobb pozícióban tartáshoz, ezt a
regisztert lehetőleg alacsony értéken tartsuk (1-2 javasolt)!
19. Ha minden pontban kielégítő eredményeket mérünk, a beállítás sikeres volt.
További tippek:
A precízebb beállítás érdekében a Quantum Sentinel szoftver
használata javasolt (Triger off módban). A program erőforrás igénye miatt külső
PC használata szükséges (ellenkező esetben a Mach3 impulzusai hibásak lesznek)!
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).