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...?