Hírek:

Fontos tudnivalók a migrációval kapcsolatban, kérlek olvasd el:

A régi fórumról áthozott hozzászólásoknál a felhasználó neve adatvédelmi megfontolásokból véletlenszerűen generált értékekre lett  lecserélve. Ez akkor tud a valódi értékre visszaállni, ha az adott felhasználó a régi fórumon nyilatkozik, hogy beleegyezik az adatainak az új fórumra továbbításához, majd ezután itt a régi felhasználónevével és email címével regisztrál.
8~20 óra között, 1~30 percen belül megtörténik a jóváhagyás, 30 percenként ellenőrizd email fiókodat (SPAM-ot is) mindenképp kapsz mail-t, a sikeres regisztrácioról, vagy a hibáról és, hogy mi a teendőd.
Nézd meg  "A régi fórumról, az új fórumra költözés útmutatót."
A régi fórumon használt email címmel de más felhasználói azonosítóval érkező regisztrációs kérelmek törlésre kerűlnek.

Main Menu

Léptetőmotor

Indította gaben, 2025 február 03, 18:30

Előző téma - Következő téma

fs9s63xkf

Rosszul érezted :)
Komolyan ilyen amatőrnek nézel??? Hízelgő!
Namost először is 66666.66666 jelet dolgoztam fel másodpercenként a 4x-es jelfeldolgozás miatt, ezt is írtam korábban...
És azt is írtam, hogy egy PCI-os enkóderólvasóval mérem a jeleket, ami 6MHz-es jelet is képes feldolgozni. Ezt eltárolja egy 32-bites regiszterben és én ebből veszek mintát 1ms-onként. Természetesen jobb lenne sűrűbben mintavételezni, de már ez az 1ms is nehezen megvalósítható a remek multitaskos oprendszer miatt.  
De mi is történik, én 1ms-onként megnézem ezt a 32-bites tárolót, és látok benne két értéket ahol biztosan járt az enkóder és a step jel. Két mintavételezés közzött persze ha nő az eltérés, aztán gyorsan visszacsökken, akkor én arról nem tudok, de akkor is az amit én látok a monitoron, annál már csak rosszabb lehet, nagyobb eltéréseket nem fogok kapni, mint ami ténylegesen előfordult.
Mellesleg, ha tényleg úgy mintavételeznék, ahogy Te mondod, akkor hogy magyaráznád, hogy a grafikonok jobb oldalán amikor már nincs eltérés, a mozgásnak vége van akkor mindig visszatértünk a 0 eltéréshez??? Elég nagy mázlinak kéne lennie, nem?
 
 
Step jeles kép:
Ez a fentiek értelmében nem a step jel maga, hanem a 32-bites regiszte értéke...
Nem nulla értéknél van az eltérés az elején, ott már elindult a step jel természetesen csak nem látszik mivel össze kellett nyomnom a grafikont hiszen a 384 eltérésre jutott 1000000 step jel, ezért nem lehet látni rendesen és ezért nem is akartam betenni...
 
Örülnék, ha a nem tennél olyan kijelentéseket, hogy átverek mindenkit anélkül, hogy pontosan tudnál minden részletet, és tényleg bebizonyosodott volna, hogy tévedek.

3k74cecek

Mivel nem ismerlek így csak az általad írtak alapján tudok következtetni. Mivel ez egy hobby fórum, így akár amatőrnek is nézhetlek, minden sértő szándék nélkül, míg más nem derül ki.
Félreértés ne legyen nem cikizni akarlak, szeretném én is megérteni a mérésed eredményét, de eddig ez nem sikerült.
 
Akkor menjünk sorba. Most a #1629-től kezdődő dolgokat nézzük csak, mert a téma ott kezdődött.
Azóta nem olvastam sehol, hogy 66666 jelet dolgoztál fel másodpercenként.
Szintén nem olvastam sehol, hogy a PCI-os kártyád 6MHz-es jelet is képes feldolgozni.
Így nincs miért a szememre hánynod, hogy úgy tünik mintha amatőrnek néznélek.
Próbáltam kideríteni a mérésed körülményeit,  mert továbbra is alapvető hibákat látok az eredményben, amire eddig még nincs magyarázat. Eddig nem adtál olyan adatokat amik a felvetett és elvi hibának tartott részeket megmagyaráznák.
 
Amit most írtál annak alapján még mindíg nem vagyok meggyőződve arról, hogy hibátlan a mérésed.
Ha veszed a fáradtságot és elmagyarázol néhány dolgot, akkor kiderülhet, hogy hol van az igazság, ha nem, akkor részemről befejezem, mert sötétszobában nincs értelme tapogatódznom.
Ha ezek után kiderül, hogy én tévedtem, készséggel megkövetlek. Az átverést azért ne úgy értsd, hogy tudatosan, rosszindulatúan  becsaptál minket. Én úgy értettem, hogy egy fel nem ismert tévedés, hiba folytán az eredményed nem a valóságot tükrözi. Ezért is volt a smájli a szemfülesek vagyunk után.
 
 
A következőket nem tudom egyelőre:
A 32 bites regiszter milyen formában milyen adatot tárol?
Mennyi ideig tárolja ezt az adatot? Amíg ki nem olvasod, vagy amíg egy újabb adat nem jön?
Ha jól értem egy darab ilyen regiszter van, és ezt 1ms-ként kiolvasod.
Hogyan dolgozod fel a kiolvasott adatokat?
 
 
"..és látok benne két értéket ahol biztosan járt az enkóder és a step jel."
Ezt a mondatot nem tudom értelmezni, de lehet, hogy világos lesz ha tudom, hogy mit tartalmaz a regiszter.  
 
 
"Két mintavételezés közzött persze ha nő az eltérés, aztán gyorsan visszacsökken, akkor én arról nem tudok,"
Ez viszont azt eredményezheti, hogy a grafikonod jellege eltér a valóságtól. Pont ez az ami gyanús lett nekem.
 
Azért remélem sikerül kiderítenünk az igazságot.
 

fs9s63xkf

Azt hittem egyértelmű, hogy mit csinál egy enkóderolvasó kártya, ha nem akkor bocsi.
 
Van 4 tengelye, és mindegyikre köthetek enkódert, vagy stepdir jelet. Mindegyik tengelynek van egy regisztere amiben tárolja az impulzusok számát. 0-ról indulunk, és ha érkezik egy jel akkor hozzáadja a regiszterhez vagy levonja a regiszterből, attól függ merre megy... Ezt a számítógép kikapcsolásáig tárolja, de felül is írhatom bármikor.
 
Na ebből veszek mintát 1ms-onként, ami az enkóder pillanatnyi értékét fogja mutatni, illetve, hogy a step jel hol tart. A mintavételezés csak annyiból áll, hogy eltárolom egy tömbben a későbbi feldolgozáshoz, de akár ki is vonhatom ott helyben, 1ms alatt rengeteg dolgot lehet csinálni...
Miután vége a "felvételnek" kivonom a két tömbben ugyanazon indexű értékeket. Ezt most egy kicsit átírtam, hogy ne nézzen ki úgy mintha sietne...
Ugye a két mintavételezés között a kártya tovább számolta a jeleket, itt történik egy kis veszteség, mert itt ugye a két pont közé én csak egy egyenest tudok húzni. Ez nem is veszteség, inkább pontatlanság, mert ugye megszámolta a kártya azokat a jeleket is, de nincs rajta a grafikonon. Ennyi pontatlanság nem változtat a jellegen!!  
 
Én "elég" korrektnek tartom ezt a mérést, és szervóknál már bizonyított. Ha lehet hallani kis rezgéseket menet közben, akkor az a grafikonon egyből megjelenik, ha megállásnál nagyon sok a lengés, amit már szemmel is lehet látni, akkor az a grafikonon is látható. A különböző gyorsítások görbéje által okozott eltérések is teljesen jól láthatóak. A Gecko 128-as tárolója is látható, mivel a grafikonon látható, hogy 128-nál nagyobb eltérésnél lekapcsol.  
Nekem ennyi elég volt ahhoz hogy elhiggyem így viselkedik egy léptetőmotor. A grafikonon is lehet látni a mikrolépés jótékony hatását, sokkal finomabban jár a motor. Lehet, hogy nincs is elvi hiba a grafikonon? Persze lehet hogy tévedek...

3k74cecek

"van egy regisztere amiben tárolja az impulzusok számát."
Így már értem  az általad piros step jelnek nevezett jelet.
Erre én azt mondtam volna, hogy a diagramon a kiadott  step jelek száma látható, nem pedig a step jel. A kettő ugyanis egészen más. Én step jelnek négyszög jelet vártam, és nem értettem a lassan emelkedő egyenest.
 
Most már kb.  értem a mérés működését, viszont továbbra is azt mondom, hogy az 1ms-es mintavételezés nagyon ritka.
 500-as fordulat esetén, csak minden 66. enkóder jelnél fenálló állapotot látod (4*2000 esetén). Ez a motornál 3 foknyi elfordulásnak felel meg.
Ez már majdnem két egész lépést jelent. A méréseddel tehát lehetetlen a lépésen belüli késés jellegét bemutatni.
Véletlenszerüen és ritkán veszel ki értékeket és ezeket összekötve egy egyenessel, teljesen hamis lesz a kép.
Talán megérted ha végiggondolod a következő gondolatmenetet.
Érthetetlen, hogy az induláskor a hiba miért szép lassan növekszik a nulláról indulva.  
Amikor megjön az első step jel, és a motor még meg se moccant, akkor a hiba rögtön egy mikrolépésnyi. Ezt azt hiszem elfogadod. Ez viszont nem látszik a képeiden. Ez szerintem valószinűleg a túl ritka mintavételezés miatt van, de lehet szoftver hiba is. De mindenképpen hibája a jelleggörbének. Nem tudom, hogy a kiértékelő programod ezt helyesen számolja-e, vagyis 1 step jel és nulla enkóder jel az egy mikrolépésnyi hibát jelent-e. Ezután elindul a forgórész és a hiba szépen csökken. Ha addig nem jön újabb step jel, amig a forgórész be nem áll a kivánt pozicióba, akkor a hiba szépen nullára csökken, esetleg előjelet is vált ha kicsit túllendül a forgórész. Még egy két lengés is lehet, de az egyszerűség kedvéért most ettől tekintsünk el. Ha a következő step jel mindíg ezután jön, akkor a hibára egy fűrészjelszerű jelsorozatot kell  kapnunk. Ha te ebből az állandó aplitúdójú és állandó szintű (mert mindíg nulla és egy mikrolépésnyi között lesz)  jelsorozatból,  fordulattól függően  kb. minden 50-100-dik periódus véletlenszerű poziciójában (mert a mintavételezés nincs szinkronban a jellel) veszel mintát és ezeket az értékeket összekötöd egy egyenessel akkor azt hiszem belátod, hogy a valóságtól teljesen eltérő jelleget fogsz kapni.
A mintavételezésed értéke mindíg nulla és egy mikrolépésnyi között lesz, viszont a jellege garantáltan nem adja vissza a valós frekvenciájű fűrész jelet, hiszen csak minden 50-100 periódust látod, így a legideálisabb esetben is 50-100-ad akkora frekvenciának fogod látni. Ezen belül aztán bármilyen jelleg is adódhat, de az már nem a valóságos.
 
Ha viszont hamarabb jön step jel, akkor az előző step jelből még meglévő hibához hozzáadódik egy újabb mikrolépésnyi hiba. Tehát a hiba már nagyobb lesz mint az indulás pillanatában volt. A növekedés persze nem minden határon túli, amíg a motor határfordulatszáma alatt vagyunk, mert a késéssel nő a nyomaték és beáll az egyensúly. Viszont ebben az esetben sosem fog lemenni nulláig a hiba.  
 
A mérésed annál kisebb hibalengést fog mutatni állandó fordulatszámon, minél közelebb áll a valódi lengés periódusidejének egész számú többszöröse  a mintavételi idődhöz. Vagyis minél inkább szinkronba kerül a mintavételed a jelhez. A hiba értéke viszont a valódi amplitúdón belül akármennyi is lehet.
 
Remélem sikerült elmagyaráznom, hogy miért nem elég az 1ms mintavételezés.

s7manbs8

itt a mintavétel olyan ritka, mintha egy cintányér hangját akarnánk jó minőségben felvenni egy telefonkagylóval, valahogy nem ad visza minden információt a jelről

fs9s63xkf

Ezt én mind értem de...
Vegyük az első esetet, amikor van ideje beállni a motornak két step jel között:  
Nézzük a 8000-es mikrolépéssel készült képeket, miért nem látszik ezen, hogy az első step jel hatására 1 eltérés keletkezik? Ahol látod a képeken az első eltérést, na ott kezdődik a mozgás, előtte 0 eltérés van hisz áll a motor,a mozgásnak meg akkor van vége amikor már 0 az eltérés illetve természetesen egy kicsit előtte. Természetesen a kép elején nem rögtön kezdődik a mozgás, valamennyi időt a mozgás előtt és után is fel kell venni, hogy rendesen lehessen látni a mozgás kezdetét, végét.
Itt ugye nem fogok minden egyes fűrészjelet látni, csak minden 50-100-adikat, de nem is érdekel mindegyik! Ha már azt látom, hogy mozog a motor, nem mindig 0-án áll akkor az nekem már bőven elég.
 
A másik eset, amikor hamarabb jön a step jel, akkor Te is írtad, hogy beáll az egyensúly, és egy adott sebességnél egy adott értékű eltérést tapasztalok. Ez is látszik a képen, a gyorsítás és lassítás között állandó sebesség mellett kb állandó az eltérés is. Itt is igaz, az hogy nem látok minden tüskét csak minden 50-100-adikat, de itt szintén nem érdekel annyira pontosan. Az biztos, hogy 500-as fordulaton, kb 26 eltérést produkál, míg 1200-as fordulaton kb 55 eltérést. Ez biztos, hisz azokban a milliszekundumokban amikor megnéztem, akkor ennyi eltéréseket mértem. Ezen kívül ugye nem látom a köztes pontokat, ez azt jelenti hogy két 26-os eltérés között még lehetett 30 eltérés is vagy mondjuk 15, de a 26 az biztos. Egyébként sem egy egyenes vonalat kaptam a 26-os eltérésnél hanem ingadozott 22 és 26 között.
 
Ha tényleg olyan kevés lenne a mintavételezési idő, akkor ha megismétlem a mérést teljesen más eredményeket kapnék hiszen az 1ms nem mindig ugyan oda esik. Viszont ha én 20szor megismétlem az 500-as fordulaton a kísérletet, akkor 20szor azt fogom kapni, hogy az eltérések csúcsértéke 25-26-27 körül lesz. Ez szerintem több mint meggyőző, ilyen mázlim nem lehet :) És ha a fordulatszámot növelem vagy csökkentem akár 50rpm-el akkor látszik, hogy az eltérés 2-3 értékkel csökkent vagy növekedett az 500rpm-hez képest.

fs9s63xkf

Nagy különbség, hogy én nem jó minőségben akarom felvenni, hanem csak azt akarom megállapítani, hogy cintányérról van-e szó, illetve hogy egyáltalán van-e valamilyen hang. Erre a telefon is alkalmas, ha már nincs más...

3k74cecek

"Ezt én mind értem de... "
Amint látom nem érted.
Most már meg kell, hogy kérdezzem, hogy milyen végzettséged van, hogy legyen valami támpontom, nehogy a 2*2-vel kezdjem és az a vád érjen részedről "hogy ennyire amatőrnek nézlek". Túl magasan sem akarom magyarázni, mert akkor meg az lesz a baj. Szeretném ha megértenéd, hogy a kirajzolt jelleggörbédnek semmi köze a valósághoz.
Hangsúlyozom a jelleggörbét ! A mérési pontok mind előfordulnak a valóságban, csak az azokból kirajzolt görbéd teljesen más, mert véletlenszerűen TÚL RITKÁN vettél ki pontokat. Ezáltal viszont a motor működésére levont következtetés is hamis lesz.
Majd ha megérted a dolog lényegét (ha sikerül a megfelelő szinten elmagyaráznom), akkor rájössz, hogy mennyire becsaptad magadat.

fs9s63xkf

Jelenleg harmadéves vagyok a Budapesti Műszaki Főiskola Mérnök Informatika szakán...

000000000

Borítékolnám, hogy nem lehet arról meggyőzni, hogy 3+2 az nem kilenc.

3k74cecek

Akkor valószínűleg találkoztál más a Shannon mintavételi törvénnyel, méréstechnika vagy valami más tantárgy kapcsán (legalábbis remélem, hogy egy ilyen fontos dolog nem maradt ki a tantervből, még az informatikusoknál sem). Ha mégse botlottál bele, akkor javaslom, hogy nézzél utána, vagy kérdezd meg valakitől (a neten is van rengeteg anyag róla). Biztosan fogsz olyan ábrát találni evvel kapcsolatban amin jól bemutatják, hogy egy a kelleténél ritkábban mintavételezett jel mennyire más jelleget mutat mint az eredeti.
Így például nem vonhatsz le olyan következtetést sem, hogy az eltérés egyenes arányos a sebességgel. Szerencsétlen esetben még olyan ábrát is kaphatsz a ritka mintavételezés miatt, ami ennek pont az ellenkezőjét mutatja a görbe egy szakaszán. Persze ez nem igaz, de ha vakon hiszel a görbéidnek, akkor ezt kellene mondanod.
Még abban sem lehetsz biztos, hogy a méréseddel a maximális hibát sikerült lemérned. Egyben lehetsz csak biztos, hogy volt olyan nagyságú hiba, mint amit mértél. De az lehet, hogy a legkisebb volt, de az is lehet, hogy a legnagyobb. Az időbeli lefolyásáról pedig semmit sem mondhatsz a mérésed alapján, mert túl ritkán vettél mintákat.
Ez egy elég becsapós része a mintavételezéses méréstechnikának, ha valaki nincs tisztában avval, hogy ez mit okozhat a mérésben.
Majd ha utána néztél, jól megrágtad, és megértetted, akkor térjünk vissza a dologra, mert addig hiába győzködlek. Nincs időm a dologról tankönyvszintű irományt összeállítani. Megtették ezt már mások nálam sokkal érthetőbben.

3k74cecek

Jaj de rosszindulatú, csúnya bácsi vagy. [#nevetes1]

fs9s63xkf

Hogyne hallottam volna Shannon bácsiról, már a szakközépbe is tanultuk, meg a főiskolán is, sőt magamtól is utánajártam még mielőtt tanultam volna... Tudom, hogy kétszeres frekvenciával kéne vizsgálni... Azt is értem, hogy milyen problémákat okozhat. Az eltérés grafikon nem egy 66kHz-es szinusz hanem egy jóval lomhább "valami". A léptetőmotor az egy igen lomha állatfaj.
 
Végeztem pár mérés azért nagyobb frekvenciával is, csak hogy megnyugodjak. Késleltetés nélkül folyamatosan vettem a mintákat, ez kb 7us-os mintavételezési időt jelent, ami 137500 minta/sec, ami véletlenül kb a duplája a 66666 enkóder impulzus / sec-nak. A mozgás itt is 500rpm, 100ms-os gyorsítás lassítás, de itt nincs visszafele mozgás. Ez lett belőle:
 
http://t2cnc.hu/images/lepteto500_01_0_8000_kicsi.jpg" border=0>
 
http://t2cnc.hu/images/lepteto500_01_0_8000_.jpg" TARGET=_fnew>Eredeti kép!
 
Javíts ki ha tévednék, de ez kb ugyan úgy néz ki, mint amit 1ms-al kaptam. A mozgás grafikonja 110000-pöttyből lett előállítva! Azok a lenyúló tüskék valószínüleg a kártya regiszterének kiolvasásának a hibája, ilyen sűrű metódushívás okozhat problémákat nála. Meg aztán ilyen dinamikára egy léptető nem képes :)
1200-as fordulattal is ugyan olyan eredményt kaptam.
Ennél többet nem tudok tenni, szerintem ez változatlanul egy elfogadható görbe egy léptetőmotornál.

s7manbs8

na ennek az álló helyzetében, hasonló pwm gerjesztés által előálló apró mozgások kisebb frekvenciájú összetevőjét lehet szépen hallani füllel is, ami egyeseket zavarni szokott.
 
Nyilván a nagyobb frekvenciájú összetevők elég kismértékűek, a mechanika nem olyan dinamikájú, még kisebb motoroknál is pár kHz fölött, már erősen kismértékű a mozgás lehetősége. Ezért kis mintavételezési frekvenciával a valóságos görbe nagyját és szélsőértékeit elég jól visszaadja így is.

000000000

Ugyan. Dehogy!
Szerintem nem a mért érték, vagy annak helyessége volt számára a fontos. Hanem, a görbéhez kerekített egy ideológiát. Azzal a mérési elrendezéssel lehetne generálni az eheti nyerőszámokat is.