HobbyCNC fórum
FTP tárhely: http://cnctar.hobbycnc.hu v0.9.6 Régi HobbyCNC oldal: http://archiv.hobbycnc.hu

Új regisztráció / Átregisztráció a régi fórumról
    
   


DC szervó motoros vezérlés

Step/dir vezérlő programmal...

 

Időrend:
Oldal 266 / 266 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   262  263  264  265  266  

  Fórum főoldal  |  A lap aljára

Törölt felhasználó    2007-01-20 23:20:00 [27]

Üdv Gépész!
Minden soroddal egyetértek, pár kiegészítést
azért fűznék még hozzá:
- ma már a nagyfelbontású encoderek miatt
nem kell feltétlenül használni tachodinamót,
mivel a sebesség az a poziciójel
deriváltjaként előállítható.
- az interpolátor nem csak step-dir kimenetű
lehet, sőt komoly ipari CNC-nél ez a ritkább.
- a helyzetet tovább bonyolítja, hogy a relatív
digitális útmérésen kívül van abszolut, és
preciziós analóg eszköz is erre, ezek
variációja kicsit befolyásolhatja az általad
teljesen helyesen felvázolt irányítástechnikai
elemeket.

Előzmény: gépész, 2007-01-20 22:59:00 [26]


gépész | 89    2007-01-20 22:59:00 [26]

Szóval kedves Kollégák, valóban nem kis fába vágjuk a fejszénket, ha jól működő szervórendszert akarunk építeni, de nem akarunk érte bokáig zsebbe nyúlni.
Egy kis törtánelem:
Az első szervó hajtású ipari termelésre alkalmas esztergát az amerikaiak a II. V.h.-után pár évvel, tehát csaknem 60 éve! építették. Ekkor már megvolt a szervómotor, a szervóerősítő. Ez még NC, azaz Numerical Controlled gép volt, a Computerre várni kellett a 70-es évekig, hogy elkészüljön a mikroproci. Ettől kezdve beszélünk CNC-ről, de ennek is már több mint 30 éve!
Hogyan is néz akkor ki egy ilyen rendszer?
A Computer memóriájában tárolt alkatrészprogramot a G-kód interpreter soronként értelmezi, melyik tengelynek hova, milyen sebességgel, esetleg szinkronban a többi tengelyjel kell emozdulni. Az adatokat átadja az inerpolátornak, ami tengelyekre lebontva megtervezi a mozgást, és az adott géphez tartozó inerfészprogramban megadott léptékezéssel - 1 inkrement hány mikron - kiküldi az elmozdulás nagyságához tartozó számú impulzust a sebességnek megfelelő frekivel - step jel, a megfelelő irányba - dir jel. Esetünkben ez jelenik meg az LPT port valamelyik 2 vonalán.
Ez növeli vagy csökkenti a parancs számláló aktuális értékét. Az enkóderből jövő jelet az enkóder interfész fogadja, és az előbb említett interfész programban eltárolt módon értékeli ki - 1x, 2x, 4x - és előállítja az irány jelet. Ezek előjelhelyesen léptetik a referencia számlálót. A parancs és referencia számláló különbsége kerül a DA átalakító bemenetére, a kimenetén megjelenő max +-10V-os analóg jel lesz a szervó erősítő sebességi alapjele - klasszikus renszerekben. Általában ez a jel jön ki a CNC vezérlőkből is. A sebességi alapjel és a tachodinamóból kijövő sebességi referenciajel előjelhelyes különbsége adja a sebességi hibajelet. A hibajel kerül a PID szabályzóra. A PID kimeneti jele vezérli a PWM áramkört, ami meghajtja a H-hidat. A H-híd kimenetét kell a szervómotor kapcsaira kötni.
Ami tehát látható: szervó renszer esetén, csak akkor nincs helyzeti hiba, ha a tengely pozícióbal ÁLL! A tengely sebességét egy megfelelő, arányos nagyságú helyzeti hiba "hozza létre". A nagy tengelysebességű szervó renszereket kiszolgáló komolyabb inerpolátor programok ezt figyelembe is veszik.
Esetünkben, ha nem tisztán analóg szervóerősítőt használunk, a DA átalakítás természetesen elmarad.


Törölt felhasználó    2007-01-20 22:54:00 [25]

Hello Péter!
Aranyos ez a kis gyufásdoboznyi termék,
de ezzel folyamatosan a paraméterei alapján
kb. 0.1-0.3 Nm igényű gépet tudnál csak hajtani.
Ezért meg kicsit drága jószágnak tűnik, én
akkor már az ugyancsak ott látható 3-szor
annyiba kerülőre (325$-os, 25A-es) szavaznék,
az már bizalomgerjesztőbb, komoly cuccnak néz
ki.:)

Előzmény: Varsányi Péter, 2007-01-20 22:25:00 [23]


Kristály Árpád | 3084    2007-01-20 22:52:00 [24]

Hát ez az....
A Step Dir kevesebb........
Sajnos semmit nemtrudtam kideriteni róla, pedig gondolhatod, hogy próbálkoztam, de még nem adtam fel


Varsányi Péter | 11584    2007-01-20 22:25:00 [23]

Persze, hogy olcsóbban is van... de itt volt hirtelen a legjobb leírás...
Tök egyszerűnek néz ki... Milyen cél IC hajthatja...? Ismered?

Persze gondolom rengeteg szervo vezérlő IC van a piacon mert az ipar zabálja őket... persze step/dir rendszerű már kevesebb....

Ez egy pofon egyszerű kapcsolásnak tűnik...

Nemsokat tudok a szervoról de pc-t sem csinálnák 7400-as IC-k ből... nem tudom érted mire gondolok... Ha egyszer valaki valahol kitalálta és gyártja az IC-ket akkor az nem kevés darabszámban készül... és az ára sem lehet magas...

Előzmény: Kristály Árpád, 2007-01-20 22:06:00 [22]

Kristály Árpád | 3084    2007-01-20 22:06:00 [22]

Halllihó Péter!
Igen ezt ismerem, de jóval ólcsóbban láttam, sőt darabszámtól is függ az ára!
Sajna nem látni semmi egyébb infot.....
Nagyon közkedvelt a GEKO után....


n/a (inaktív)    2007-01-20 20:17:00 [21]

Az enyém full digitális (dual PIC-es).

Előzmény: Amatőr, 2007-01-20 18:21:00 [16]


Amatőr | 2184    2007-01-20 19:53:00 [20]

Nincs valakinek blokkdiagramja az analóg és a digit szervó vezérlésről? Talán könnyebb volna átlátni.


Varsányi Péter | 11584    2007-01-20 19:03:00 [19]

Ez a szervo vezérlő nem tünik bonyolultnak:
1 pici IC és egy nagy Fet... ha jól látom:



leírás itt...


Törölt felhasználó    2007-01-20 18:36:00 [18]

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

Előzmény: Amatőr, 2007-01-20 18:21:00 [16]


Törölt felhasználó    2007-01-20 18:24:00 [17]

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.

Előzmény: n/a (inaktív), 2007-01-20 17:52:00 [6]


Amatőr | 2184    2007-01-20 18:21:00 [16]

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?

Előzmény: Törölt felhasználó, 2007-01-20 18:11:00 [13]


Amatőr | 2184    2007-01-20 18:18:00 [15]

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.

Előzmény: Varsányi Péter, 2007-01-20 18:12:00 [14]


Varsányi Péter | 11584    2007-01-20 18:12:00 [14]

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

Előzmény: Amatőr, 2007-01-20 17:53:00 [7]


Törölt felhasználó    2007-01-20 18:11:00 [13]

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.

Előzmény: Varsányi Péter, 2007-01-20 17:36:00 [3]

n/a (inaktív)    2007-01-20 18:08:00 [12]

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

Előzmény: Amatőr, 2007-01-20 18:05:00 [11]


Amatőr | 2184    2007-01-20 18:05:00 [11]

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?

Előzmény: n/a (inaktív), 2007-01-20 17:56:00 [8]


n/a (inaktív)    2007-01-20 18:01:00 [10]

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

Előzmény: Varsányi Péter, 2007-01-20 17:44:00 [5]


n/a (inaktív)    2007-01-20 17:56:00 [8]

igen, ez a PID dolga!

Előzmény: Amatőr, 2007-01-20 17:53:00 [7]


Amatőr | 2184    2007-01-20 17:53:00 [7]

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!

Előzmény: Varsányi Péter, 2007-01-20 17:44:00 [5]


n/a (inaktív)    2007-01-20 17:52:00 [6]

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!

Előzmény: Törölt felhasználó, 2007-01-20 17:30:00 [2]


Varsányi Péter | 11584    2007-01-20 17:44:00 [5]

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

Előzmény: Amatőr, 2007-01-20 17:37:00 [4]


Amatőr | 2184    2007-01-20 17:37:00 [4]

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?

Előzmény: Törölt felhasználó, 2007-01-20 17:30:00 [2]


Varsányi Péter | 11584    2007-01-20 17:36:00 [3]

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

Előzmény: Törölt felhasználó, 2007-01-20 17:30:00 [2]

Törölt felhasználó    2007-01-20 17:30:00 [2]

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ű.:))

Előzmény: Varsányi Péter, 2007-01-20 16:58:00 [1]


Varsányi Péter | 11584    2007-01-20 16:58:00 [1]

Itt kellene elkezdeni...

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


  Fórum főoldal  |  A lap tetejére

Időrend:
Oldal 266 / 266 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   262  263  264  265  266  


 ◊ 
[ 0.7002 ]