microstappen

Eduard2

Golden Member

Beste forumleden,

Stappenmotoren zijn nieuwe materie voor mij. Vandaar de simplistische vraag.

Ik heb een bipolaire motor met 200 full steps. Die wordt gestuurd via een DVR8825 printje. Er werd gekozen voor 1/32e stap. Als test wordt het printje gestuurd door een pulsgenerator. Ik verwachtte dat de as zeer soepel en met nauwelijks voelbare stapjes zou draaien. Dat laatste is niet helemaal het geval. Zoals verwacht voel ik het asje heel kleine gelijkmatige stapjes nemen. Plots één voelbaar krachtiger (grotere ?) stap. Het lijkt alsof die langer duurt dan het interval tussen 2 microsteps. Ook de opgenomen stroom is tijdens die "superstap" een pak hoger. Is dit normaal? Vemits het een motor is met permanente magneet lijkt het me niet onmogelijk dat die wanneer een pool in de buurt komt doorwipt. Ergens heb ik gelezen dat microstap de zaak soepeler doet verlopen maar dat de echte nauwkeurigheid niet verhoogt.

Graag uw idee of hetgeen ik waarneem in orde kan zijn.

Vriendelijke groeten,

Eduard

Lambiek

Special Member

Als het goed is mag dat niet. Je zegt dat je driver nu op 1/32 ste stap staat, dat zijn dus 6400 stappen per/omw. Als je dat doet moet ook de stapfrequentie omhoog, welke frequentie gebruik je nu?

Wat is de voedingsspanning voor je driver?

Als je haar maar goed zit, GROETEN LAMBIEK.

Is de motor expliciet bedoeld voor microstepping, of is het een 'willekeurige' ?

Lambiek

Special Member

Iedere stappenmotor kan microstepping aan, een 200 staps motor zeker.

@ TS,
Heb je dit al door gelezen.
http://www.pololu.com/product/2132

Als je haar maar goed zit, GROETEN LAMBIEK.
Arco

Special Member

Een stepper met overbrenging werkt vaak makkelijker en 'gladder'.
Ik heb hier kleine 200 steps motortjes en met 1:20 overbrenging. Geeft je 4000 steps per omwenteling...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Eduard2

Golden Member

dag Lambiek en Aart,

De door Lambiek genoemde tekst van pololu is mijn vertrekpunt. De motor is een 42BYGHW804 van Wantai. De voedingsspanning van de DVR8825 is 20V.

Als ik het motortje op een klankbord leg hoor je bij 30 Hz een serie tikken. Die reeks wordt even onderbroken en dan herhaalt de cyclus.

Op 1 Hz merk ik dat het niet 1 maar meerdere kleine onderbrekingen zijn.

Zolang er maar steeds 32 pulsen voor 1,8° nodig zijn is voor mij alles ok.

Zou het gebruik van een andere stapgrootte beterschap brengen? Ik denk aan 1/2-1/4-1/8 stap.

Bedankt voor jullie advies,

Eduard

De "rated voltage" staat volgens mij op 3.6V. Dit effect krijgt je (ik heb het ervaren met de A4498 A4988 polulu print), als je een (veel) hogere spanning gebruikt dan de nominale spanning van de motor.

De driver zet de motor aan, en gaat dan wachten tot de current limit bereikt wordt die bij de huidige stap-positie hoort.

Dat is de theorie. Echter, in de praktijk gebeurt het wel eens dat de stroom in de eerste paar nanoseconde na het aanzetten behoorlijk hoog is door capacitieve effecten in de draden naar de motor. Om te voorkomen dat het ding "afslaat" op die tijdelijke stroompiek zetten ze de "max stroom" detectie voor korte tijd aan het begin van de cyclus uit.

Wat blijkt nu? Die motor van jou (en die van mij) zitten al ruimschoots aan de max stroom tegen de tijd dat de initiele "ik kijk effe niet" periode voorbij is. Dus terwijl ie 0.1 * Imax wil sturen, haalt ie steevast bijvoorbeeld "0.5" imax in die toestand.....

De A4498 A4988 heeft een pinnetje waarmee ik het gedrag kon verbeteren. Fast decay geloof ik. Of de DRV dat ook heeft weet ik niet. Andere optie is: Lagere voedingsspanning gebruiken. Check het datasheet voor de minimum spanning van de DRV.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Maar met een lagere spanning verlies je serieus koppel op hogere toerentallen. Ik heb een stepper draaien op 1/4 stap op ca. 6 kHz, maar ik krijg pas maximaal koppel bij zo'n 28 volt. Ik heb er een 32 volt voeding op gezet.

Mijn echte naam: Joris | Mijn elektronica website: Fuzzcraft.com
benleentje

Golden Member

Echter, in de praktijk gebeurt het wel eens dat de stroom in de eerste paar nanoseconde na het aanzetten behoorlijk hoog is door capacitieve effecten in de draden naar de motor.

@ Rew bedoel je hiermee dat de stroom dan enkel is gaan zitten in het opladen van de parasitaire capaciteiten en nauwelijks door motor zelf stroomt.

Kan je dan niet bv een kleine capaciteit toevoegen om het gedrag te verbeteren?

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.
Eduard2

Golden Member

dag Rew,

8,2V is volgens de specs de minimum spanning. Op basis van theorie wilde ik de bronspanning hoog nemen. Bij 9V draait de motor wat beter maar nog niet goed. Verwacht je dat het probleem verdwijnt bij vergroting van de stap? In de limiet kan ik naar full step gaan. Mijn eerste zorg is het voorkomen van stappenverlies. Als nauwkeurigheid een knelpunt wordt kan de methode van Arco (de mechanische overbrenging) nog altijd worden uitgevoerd.

Is de draadlengte tussen motor en DVR kritisch? Mooiste oplossing zijn draden van circa 1m. Als dat probleem zou opleveren plaats ik de DVR vlak bij de motor en worden het langere draden voor de voeding en de TTL signalen.

Vriendelijke groeten,

Eduard

Op 17 juni 2014 21:43:34 schreef benleentje:
[...] @ Rew bedoel je hiermee dat de stroom dan enkel is gaan zitten in het opladen van de parasitaire capaciteiten en nauwelijks door motor zelf stroomt.

Kan je dan niet bv een kleine capaciteit toevoegen om het gedrag te verbeteren?

Nee, juist niet. De fabrikant van de chip wil een robust ding afleveren. Als je perongeluk wat parasitaire capaciteit (of zoals jij voorstelt expliciet een condensator) in je design hebt, dan moet de chip niet voortijdig afhaken: de stroompiek "duurt maar even".

Bij de A4498 A4988 is het als ik het me goed herinner iets van 1 microseconde dat ie niet oplet of de stroom te hoog wordt. De schakeltijd is iets van 30 microseconde (30 kHz). Bij 20V voeding en een 4V motor zit je in die microsecond als de stroom 10% had moeten zijn, al snel ruimschoots boven de gewenste waarde....

@Eduard2, Mijn "voorspelling" (je spanning is te hoog, verlagen helpt) komt dus uit. goed zo. :-)
Je zult door dit effect geen stappen missen. Maar als je "tool" normaliter dus 1mm per stap zou bewegen, had je misschien gehoopt een 0.03 mm nauwkeurigheid te krijgen door 32-step-microstepping toe te passen. Dat gaat hem niet worden als sommige microsteps dus 0.5mm zijn, terwijl de rest veel minder dan die 0.03 mm is....

@fuzzbass: gelijk heb je. Daarom had ik ook voor een relatief hoge voeding gekozen in combinatie met een nominaal-lage-motorspanning. Maar dan krijg je dus dit probleem.... Tja. TINSTAAFL...

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Eduard2

Golden Member

Bedankt Rew,

Uw uitleg klopt met de waarneming en ik had al gelezen dat door microstep de nauwkeurigheid niet verhoogt maar wel de souplesse van de beweging verbetert.

Als je zeker bent dat een te kleine microstap steeds gecorrigeerd wordt door een overdreven grote dan zal de rotor na 6400 pulsen steeds een volledige omwenteling doen.

Vriendelijke groeten,

Eduard

benleentje

Golden Member

@rew. Ik begrijp het dan niet. JE controller let even 1µS niet op de stroom dan is dat toch omdat de stroom juist even niet naar de motor gaat maar naar het opladen van de capaciteiten. Tenminste de stroom verdeelt zich over alle capaciteiten plus de motor? Waardoor de motor minder krijgt dan je zou verwachten van de totale stroom.

En dan is jouw antwoord

nee juist niet

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Stel ze je imax is 1A. Stel hij wil 70% imax sturen. Stel je pcb heeft wat paracitaire capaciteit. Stel die chip zou onmiddelijk reageren op stroom > 700mA... dan zou de chip bij het opladen van de parasitaire C toch onmiddelijk afslaan? De stroom is dan theoretisch oneindig, in de praktijk gelimiteerd door de rdson van de fets... Dan gaan mensen klagen dat die chip het niet goed doet.

Ze maken de chip dus zo, dat ie de currentlimit even niet controleert gedurende heel even direct na het inschakelen om te voorkomen dat ie bij een parasitaire C onnodig en onterecht direct weer uitschakelt.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 17 juni 2014 19:33:33 schreef Eduard2:
Die wordt gestuurd via een DVR8825 printje.

Al die Pololu drives hebben een 47-100µF elco nodig zo dicht mogelijk bij het printje op de VM voedingspanning zoniet reageert het raar en kan zelfs defect gaan. Is deze aanwezig?

Sommige stappenmotoren doen ook raar zonder belasting, misschien eens proberen met een vliegwiel oid.

Eduard2

Golden Member

dag Lucas,

De 100 µF elco is aanwezig. Intussen heb ik nog wat uitgetest. Als ik de stap tot 1/4 vergroot is de ellende verdwenen. Met die instelling kan ik leven.
Ook heb ik geprobeerd een kabeltje van 2m lengte tussen motor en DVR8825 te zetten. Dat geeft geen verschil in werking.Bij die grotere stap is de capaciteit blijkbaar minder belangrijk. De kabel waarmee ik testte is minstens dubbel zo lang als de uiteindelijke kabel. Op dat punt lijkt me die lengte geen bezwaar.

Iedereen bedankt voor de hulp,

Eduard

Op 18 juni 2014 21:48:14 schreef Eduard2:
Met die instelling kan ik leven.

Er moet ergens iets niet in orde zijn.
Een stappenmotor moet correct werken met 8, 16 of 32 microstappen, heb je dat vliegwiel of belasting al geprobeerd?
Als simpele test kan je de as tegenhouden met je vingers.

Die drivertjes worden op bijna alle 3D printers gebruikt op 16 of 32 microstappen zonder problemen.
Is de motorstroom correct ingesteld?

Een gelijkaardig probleem heb ik recent gehad met een motor waarvan de specificaties niet overeen kwamen met de datasheet.

Je kan het werkend krijgen met die 1/4 maar ik zou er niet mee kunnen leven, kan best dat het af en toe nog eens mis gaat.

Lucas, lees mijn posts eens door.....

Ik, en Eduard hadden gekozen voor stappenmotoren met eengrote verhouding werkelijke spanning / nominale spanning. /DAT/ verergert het probleem. Veel mensen kiezen voor 6V motoren op 12V of zo.

En Eduard2, Het gaat er niet om dat er capaciteit bij JOU aanwezig is, maar dat er in het algemeen capaciteit aanwezig KAN zijn. Daar is die chip op gemaakt.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 18 juni 2014 23:27:52 schreef rew:
Lucas, lees mijn posts eens door.....

Ik, en Eduard hadden gekozen voor stappenmotoren met eengrote verhouding werkelijke spanning / nominale spanning. /DAT/ verergert het probleem. Veel mensen kiezen voor 6V motoren op 12V of zo.

Die heb ik gelezen.

Bij stappenmotoren is niet de spanning belangrijk maar de stroom.
De spoelinductie van de motor wordt heel bepalend bij hogere toerentallen, de inductie werkt de stroom tegen, dit kan opgelost worden door een hogere voedingsspanning toe te passen.

Bij alle machines die ik gebouwd heb is de verhouding motor/voeding spanning +- x 10 maar de beste referentie is de spoelinductie.
De motoren van de TS zijn 5mH?, 70V is dan nodig om nog wat koppel te hebben aan 1000 RPM.
3V motoren op 24V bv. geven geen problemen.

Bij een testopstelling worden soms nogal wat fouten gemaakt met aardingen (aardlussen ed.) en dat lijkt hier ook zo.

Een configuratie die niet werkt op 32 microstappen maar wel op 4 is mi. niet 100% betrouwbaar. 8 - 10 -16 microstappen werkt hier perfect bij een print/frees job van 8 uur of langer.

Ik had die polulu drivers gekocht, en de boel zitten testen. Ik heb het uitgezocht, op het polulu forum gepost en uiteindelijk gevonden waar het aan ligt.

De A4988 (ik heb het chipje een paar keer bij een verkeerde naam genoemd hierboven, sorry.) heeft een fixed-offtime van ongeveer 30µs. En een minimum on-time van 1µs. Dat betekent een minimum dutycycle van ongeveer 3%.

Doe je 1/16 microstepping (zoals de A4988), dan zal 1 spoel uitstaan op stap nul. Een fullstep verder staat die spoel volledig aan. Na 8 stappen (een halve step) staan beide spoelen op 70%.

Op stap 1, zoekt de chip in een tabelletje de gewenste stroom op en dat is als ik het me goed herinner: 10% van de max stroom.

Wat er nu gebeurt is dat ie gaat PWM-en met een minimum dutycycle van 3%, hetgeen bij deze lage weerstand spoelen een stroom oplevert van ruimschoots de gewenste 10%-van-max. Misschien speelt ook nog mee dat ik mijn motoren op minder dan 50% van /hun/ max gebruik omdat de A4498 niet de volledige motorstroom van mijn motor aan kan.

Anyway, op stap 1 moet de stroom iets van 10%/98% (A/B) zijn, en door de minimum dutycycle van 3% krijg je iets als 70%/98%. De motor stapt dan vrijwel volledig richting de positie die 3 of 4 stappen verder hoort. 3 of vier stappen verder is de gewenste stroom door spoel A wel toegenomen, maar in de praktijk nog nauwelijks veranderd. De stroom door spoel B neemt wel steeds iets af.

Het gevolg van dit alles is dat je micro stappen onregelmatig zijn. Ik heb een spiegel op de as gemonteerd en met een laser zitten meten. Dat betekent echter niet dat de boel stappen zou missen of zo. Maar als je met de hand steeds een microstapje doet, hoor of voel je duidelijk het verschil tussen de "grote" stappen en de kleine stappen.

Goed. Bij dit alles komt nog wat extra kijken: Als de stroom door spoel A zou moeten toenemen omdat je van 0->16 aan het stappen bent, dan verhoogt de chip de efficientie door in de off-tijd niet de spoel "vrij" te laten, maar hij sluit hem kort. Laat je de spoel vrij, komt door de inductie de omgekeerde voedingsspanning op de spoel. De stroom neemt snel weer af. Sluit je de spoel kort, kan met hoge efficiëntie de stroom blijven lopen en kan je de volgende cyclus een klein beetje stroom "bijtanken". Is het idee. Moet de stroom wel afnemen, dan sluit ie de spoel NIET kort, en krijg je de voedingspanning over de spoel, zodat de stroom harder tegengewerkt wordt en sneller afneemt. De chip kan je configureren om deze truuk niet toe te passen, hetgeen voor mijn voedingsspanning/motor/stroom combinatie kennelijk van toepassing is. De polulu printjes hebben hiervoor een lastige SMD-patch nodig....

Dus... in bepaalde configuraties, o.a. die van mij en die van eduard, zijn de microstappen niet allemaal even groot. Daar kan je je zorgen over maken. Of niet. Ik denk niet dat het uitmaakt of je kwart-stappen doet, of 1/32e stappen. Je zult niet stappen missen.

De gewenste stroom door de spoelen wordt gegeven door Ca(n) = Imax * sin (n/16*PI/2), Cb(n)= Imax * cos (n/16*PI/2).

De grootte van het veld, de vectoriele optelling heeft dan altijd de lengte Imax. Na een halve stap (n=8) zijn de sin en cos alletwee 70% (1/sqrt(2)).

Voor n=1, komt daar die 10% uit die ik goed had onthouden. Als in de praktijk nu niet die 10% stroom maar zeg 70% stroom gaat lopen, komt de optelling van de stromen hoger uit dan gewenst. En de richting van de vector klopt ook niet. Al met al: verklaring voor de grotere stap en de rippel in het koppel.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Op 19 juni 2014 00:28:19 schreef lucas:
Bij alle machines die ik gebouwd heb is de verhouding motor/voeding spanning +- x 10 maar de beste referentie is de spoelinductie.
De motoren van de TS zijn 5mH?, 70V is dan nodig om nog wat koppel te hebben aan 1000 RPM.
3V motoren op 24V bv. geven geen problemen.

Helemaal mee eens Lucas.

En als de driver van de TS het dan op 32 microstappen het niet goed doet, is het in mijn ogen een waardeloos ding.

Voor die paar Euro dat zo'n ding kost kan het ook niet veel zijn natuurlijk, misschien een leuk ding om mee te experimenteren.

Een goede driver heeft een gedegen stroomregeling, ook als de motor stilstaat. Dat voorkomt onnodig warm worden van de motor. Bij sommige drivers kan dat apart ingesteld worden.

Er zijn drivers die tot zo'n 300VDC op de motor kunnen zetten (dat zijn dan weliswaar industriële drivers), en dat wordt alleen gedaan om bij hoge toerentallen nog een redelijk koppel over te houden, bij toerentallen rond de +/- 5000 T/M is dat geen enkel probleem.

Ook is de rampup en rampdown zijn belangrijk bij hogere toerentallen, als je die in één keer in laat komen komt de motor niet van zijn plek of slaat een hoop stappen over. Een goede regeling met goede software heeft dat allemaal.

Als je haar maar goed zit, GROETEN LAMBIEK.

Deze drivers stel je in met een paar jumpers of je full-step, half-step, quarter-step ... 1/16, of (alleen bij de DRV) 1/32e stap wil hebben.

Daarna kan je pulsjes geven om een stapje te doen. Voor veel toepassingen bepaalt de ontwerper "statisch" de gewenste stapgrootte. Je knoopt dan een aantal pinnetjes aan VCC of GND. Op de polulu bordjes zijn die pins wel naar buiten gevoerd. Op "moederborden" Zoals RAMPS zitten dan echte jumpers waarmee je de boel instelt.

Ramp-up ramp-down doet ie niet: Je moet gewoon direction en "stap" pulsjes geven. Gaat ie zo hard je wilt. 300V moet je ook niet doen. Kan ie niet tegen.

Allegro en TI hebben mooie stappenmotordrivers gemaakt. Die zijn prima toepasbaar in situaties waar ze geschikt voor zijn. En iets minder aan de "rand" van wat bij het ontwerpen als "werkgebied" gezien wordt.

Zoals ik uitgelegd heb, hebben ze een "fix" voor een probleem in de chip gestopt die in andere situaties net niet handig uitpakt. De allegro chip kan je dan anders configureren "voor het geval dat je er last van hebt". Gewoon een pinnetje aan GND hangen ipv aan wat anders. De "sukkels" bij polulu hadden die situatie niet meegemaakt en hebben dat pinnetje NIET naar buiten gebracht.

Als je jou 300V stappen-motor-driver bij 12V gaat gebruiken, zullen er ook dingen niet helemaal 100% ideaal werken. Als ie 300V kan, dan is zeg 6V verlies in de drivers niet zo'n probleem. Wel als je hem voedt met 12V: dan blijft er ineens niks over. Zo kan je allerlei onderdelen/modules/motoren wel buiten hun normale werk-gebied gaan gebruiken en dan gaan klagen dat het een suf ding is omdat het dan het niet werkt.

Dus: Eduard en ik hebben besloten om een lage-nominale-spanning motor te gebruiken, op een (veel) hogere voedingsspanning. Juist om koppel te houden bij hogere toerentallen.

Blijkt, bij nader inzien, dat de A4988 en DRV8825 niet ideaal reageren op die situatie. De A4988 kan je configureren zodanig dat hij het toch heel "redelijk" doet. (de polulu stepstick echter niet zomaar).

Ook de "stroomregeling" is iets wat buiten het ontworpen taken-pakket van de A4988 en DRV8825 valt. Je kan de gewenste stroom instellen, en als je wilt doe je dat op een manier dat je die vanuit je sturende microcontroller kan regelen. Bij de A4988 kan je de "enable" pin bijvoorbeeld PWMen om minder stroomverbruik te hebben als de motor stil staat.

P.S.: Zie ook datasheet blz 7. http://www.pololu.com/file/download/a4988_DMOS_microstepping_driver_wi…

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Nu snap ik wat je bedoelt, ik begreep die eerste posts niet met die 1µsec blanking time en de capaciteit in kabels en motor.
Het is het bekende probleem van een verkeerd geconfigureerde chopper (fixed off-time). De A4988 (en andere) werkt alleen goed bij bepaalde motoren, als de spoelen een te lage of te hoge weerstand hebben zijn er problemen.

Op 19 juni 2014 10:48:02 schreef rew:
De A4988 kan je configureren zodanig dat hij het toch heel "redelijk" doet.

Hier bedoel je de Rosc pin? Die kan je op het bordje herconfigureren:
naar massa, andere weerstandswaarde?
De voedingsspanning verlagen of het aantal microstappen verminderen kan een oplossing zijn maar dan haal de prestaties onderuit, zou ik ook niet willen.

Chopper IC's heb ik nooit gebruikt omdat de schakelfrequentie niet vast is, dit resulteert in fluitende en andere geluiden in de motor.
Een PWM mode IC is veel beter.