Szia Amatőr! Én a célszerű munkamegosztás híve vagyok, ezért én vegyes rendszert használok. D az encoder és step jel lekezelés, vegyes AD (analóg-digitál) a PID szabályzás, és a vége teljesítmény PWM. Így sehol nincs jelfeldolgozási sebesség gondom, igaz így nem is csak egy IC-ből áll össze a vezérlő.
István! Kérdésedre válaszolva, természetesen a hibajel nálam állandóan mérhető, ez alapvető volt a fejlesztés kapcsán is. Opcionálisan ezt érdemes telepíteni, mert pl. így beteheted + szolgáltatásba, hogy ha x ideig y abszolut értékénél nagyobb a hibajel, a szervo adjon vissza a vezérlő számítógépnek egy stop hibajelet, és álljon le. Hiszen ilyenkor valószínűleg túlterhelés van. Abban pedig teljesen igazad van, hogy a lengéshajlam a 0 hibajelhez való közelítéskor megnő, ezért nem olyan egyszerű egy szervót behangolni.
Itt ugye Te és István is digitális elektronikáról írtok. Hogy néz ki egy analóg vezérlés? Csak azért kérdezem hátha könnyebb átlátni. Ott is alkalmazzák a PID szabályzást?
Olyan IC amiben benne lenne a PID logika? Akkor miért fejlesztenék hónapokig a vezérlést készítők a saját programjukat? Szerintem vagy nincs, vagy szörnyű drága lehet.
Tényleg bonyolult... A látja hogy egy kicsit kell mennie akkor nem szerencsés ha full gázzal teszi ezt?... De biztos gyártanak olyn IC-ket amiben minden benne van...?
Nos a válaszok: A 100KHz-et csak példaként írtam, ez attól függ, milyen gyors a szervo elektronikád, és digitális vagy analóg. Az analógnál nincs probléma, a legrosszabb is 1 Mhz fölött szanbályzási sebességgel dolgozik. A digitális az más világ, ott adott esetben 100 Khz is probléma lehet, attól függ mekkora a procid teljesítménye is miket csinál. Ne felejtsd el, integrálni, deriválni, osztani, szorozni, összadani, kivonni kell ilyen ütemben. A nagy sebesség igény pedig már az előzőekből kiderült. Egy átlagos 1000-es encodernél már 100 kHz -el is zúdulhatnak az inkremuntumok, azaz már éppen határeset. Tehát minél gyorsabb a jelfeldolgozás, egy teljes döntési ciklus kivitelezése annál minőségibb és biztosabb a szervó. Ezért általában egy PIC-el alig lehet ezt a sok feladatot ilyen sebességgel megoldani, valahol ott már kompromisszimukat kell kötni.
Túllendülést úgy kell érteni, hogy ez max., 1-5 inkrementum lehet, és csak gyorsmenetben. Munkaelőtoláskor szigorúan max. +- 0.5-1, erről alapvetően a perecíz integrátor szabályzás gondoskodik, és nullához közeli értékre beszorítja a hibát. Abban pedig tévedésben vagy, hogy egy léptető motor nem lendül túl, hiszen tömege van a rotornak, vedd elő a mikronos mérőórádat, és mérd ki a stepközeli rezonanciákat, ha kételkedsz.
Pontosan! Ez (is) a dolga a PID-nek, hogy mindenféle mathematikával igyekezzen a kívánt pozíciót megtartani és ilyenkor extra gyorsítással igyekszik a motort felpörgetni. A motor szabályzása PWM-el történik (nálam), ami azt jelenti, hogy a PWM kitöltési tényezőjével állítgatja a motor fordulatszámát (gerjesztését). A PID algoritmus ezt piszkálgatja (és a híd gerjesztési irányait is)!
Köszönöm, ez egy gyertyaláng nekem a sötétben. Tehát folyamatosan, a motor mozgása közben is mérni kell hogy mekkora a hibajel, és ennek függvényében kell piszkálni a motort. Mi történik ha szoftveresen nagyobb gyorsítást adok mint amennyit a motor/mechanika tud? Jó nagy lesz a hibajel és ezért nagyobb áramokat vagy nagyobb kitöltési tényezőjű PWM-t küld a vezérlő a motorra?
A szoftveres gyorsítás és lassítás nagyon sokat segít a PID-nek, de a servo pont azért jó, hogy brutálisabban lehet vele bánni, mint a léptetőmotorokkal.
Amatőr | 2184
2007-01-20 17:58:00
[9]
Ezt adta a Gugli elsőre a "pid algorithm" kérdésre, itt a hibajel képzése és kezelése volna látható.
A szoftveresen a motorokra megadott gyorsítás, sebesség, lassítás egy dolog. Kell itt lennie a vezérlőben is valami trükknek hogy hogyan kezeli le a motor pillanatnyi pozíciója és az elérni kívánt közti különbséget/hibajelet.
Hozzáértők most evezzetek más oldalakra, két biciklista éppen arról tárgyal mire való egy Harley Davidson!
A Te szervódnál az eltérést (deviation-t) tudod valós időben mérni? Én erre kidolgoztam egy remek módszert, amivel valós időben is és rekorder formában is tudom mérni (PC-n keresztül), és lineáris P-taggal és időben lineáris I-taggal nem tudom nagy fordulaton 30 Step alá vinni az alapjelet. Mivel a motor látszólag állandó fordulaton is lengedezik, a 0-hoz közelítés fokozása rendkívül hajlamossá teszi lengésre a motort! És akkor még nem is beszéltünk a mechanika esetleges ütéséből származó lengések plusz hatásáról!
Ez alapvető szerintem egy szervó hajtásnál, hogy gyorsítani és lassítani is tudjon... De szerintem ezt a szoftver teszi meg ahogy a lépetető motorral is. Ha léptető motorod van akkor a túllengés nem is probláma... mert nincs mit csinálni... úgy szereted ahogy van...mert nem megy vissza...
Ez a túllendülés a szoftver által meghatározott pozíción nem éppen kellemes dolog pl. egy gravírozás közben. Itt jön képbe a PIC vagy AVR által tárolt algoritmus hogy a közeledő pozíció előtt lefékezze a motort?
Tökéletes. köszi. Csak egy kérdés: "A szervo vezérlő állandóan (minimum 100 kHz-es frekivel) azt kérdezi a számítógéptől..."
Ez a 100 Khz hol kérdezi aszámítógépet, hol megy bele? És miért ilyen szaporán... miért nem csak akkor csinál valamit amikor a step jel érkezik. A többi mind világos...
Nos akkor játékosan, egyszerűen próbálok válaszolni. A szervo vezérlő állandóan (minimum 100 kHz-es frekivel) azt kérdezi a számítógéptől: elmozduljak az adott pozícióba, amit adsz nekem? Egyszercsak jön egy Step jel. Erre észbe kap a vezérlő, és addig pofozgatja impulzusokkal a szerencsétlen szervomotort, ameddig annak enkódere azt nem mondja: elég, a motor teljesítette a pozíció uatsítást. Ha netán túlbuzgó lett volna a motor, és túllendül, akkor a szervo ellentétes taslikkal megint intézkedik, azaz állandóan egy adott pozícióba (ezt nevezik alapjelnek) tekeri a motort. És ez így megy minadaddig, ameddig a főkacsoló tápfeszt ad a rendszernek, azaz állandó egyensúly fenntartására törekszik. Ilyen egyszerű.:))
Van egy step jel az LPT porton... Ez egy lépés a léptetőmotornál (maradjunk egyszerűség kedvéért egész lépésesben...) Hogyan fordul 1,8 fokot a DC motor...?