Schrittmotoren
Schrittmotoren sind elekrische Aktoren, die sich als Präzisionssteller eignen, d.h. sie können eine vorherbestimmte Anzahl von Teilumdrehungen vollziehen und danach in einer Rastposition verharren. Durch die kontrollierte Ansteuerung der Motoren ist es grundsätzlich möglich, die Position aus jeder beliebigen anderen Position reproduzierbar anzufahren. Ein Positionsgeber für die Rückmeldung, ob die gewünschte Position erreicht ist und wo sich der Motor befindet, wird nicht zwingend benötigt, solange sichergestellt ist, dass der Motor keine Schritte überspringt, bzw. wenn dies überwacht, erkannt und nachkorrigiert werden kann.
Einsatzgebiete von Schrittmotoren sind Präzisionsantriebe in der Robotik und Feinwerktechnik sowie der Automatisierung. Man findet sie auch in alten 5,25 Zöllern (Floppy-Laufwerken), in sehr alten Festplatten, in Faxgeräten, Druckern und Plottern.
Aufbau
Mechanischer Aufbau
Schrittmotoren bestehen aus einem (magnetisierten) Ankerkonstrukt und einem Spulensystem, wodurch bei Stromfluss eine Bewegung generiert werden kann. Kohlebürsten oder Schleifringe braucht der Motor nicht. Der Anker (Innenläufer) kann z. B. aus einem gezahnten Permanentmagneten bestehen. Durch diesen geschickten Aufbau wird erreicht, dass je Motorumdrehung mehrere Schrittpositionen geschaffen werden, in die der Motor einrasten kann. So gibt es Motoren mit 200 Vollschritten je Umdrehung. Aufgrund der Magnetisierung besitzt der Motor Ruhepunkte, in denen ein Haltemoment vorliegt. In der Regel sind Schrittmotoren in hochpräzisieren Anwendungen noch mittels eines Getriebes untersetzt. Die größeren Motoren erreichen teils so hohe Drehmomente, daß ein ein Untersetzungsgetriebe unnötig ist.
Elektrischer Aufbau
Es gibt aus elektrischer Sicht zwei grundlegende Typen von Schrittmotoren. Unipolare und bipolare Schrittmotoren. Die einfachsten Typen haben zwei getrennte Wicklungen, auch Phasen genannt. Der Unterschied besteht in der Ansteuerung der Wicklungen:
Unipolare Schrittmotoren
Unipolare Schrittmotoren haben Wicklungen mit Mittelanzapfungen. Die Mittelanzapfungen sind mit der Versorgungsspannung verbunden, die Spulenendanschlüsse über Leistungstransistoren auf Masse. Durch das Einschalten der Transistoren kann man die Spulen jeweils zur Hälfte mit Strom durchfluten.
Vorteil
- einfache Ansteuerung durch Transistoren (Low Side Driver)
- kann auch wie ein bipolarer Schrittmotor angesteuert werden, erreicht dann aber nicht ganz das Drehmoment eines vergleichbaren Bipolartyps
Nachteil
- verringertes Drehmoment, da immer nur eine halbe Spule vom Strom durchflossen ist
Bipolare Schrittmotoren
Bipolare Schrittmotoren haben einfache Wicklungen. Die Spulen werden über H-Brücken angesteuert, um sie umpolen zu können. Dadurch fließt der Strom immer durch die ganzen Spulen. Änderung der Drehrichtung von Linearachsen kann durch vertauschen der Spulenanschlüsse am Motortreiber erreicht werden: A -> B, #A -> #B, B -> A, #B -> A#.
Vorteil
- hohes Drehmoment
- hohe Präzision
Nachteil
- erhöhter Ansteuerungsaufwand durch H-Brücken
Ansteuerung
Durch passendes Anlegen der Spannungen an die Wicklungen wird ein Drehfeld erzeugt, dem der Motor mit einem Phasenversatz folgt. Bevor der Motor die durch das Feld vorgegebene Position erreicht, muss es weitergeführt werden, um eine kontinuierliche Drehbewegung zu erhalten. Der Motor wird dadurch hinter dem Feld hergeführt. Die Winkeldifferenz zwischen Feld und Position ist ein Maß für die Belastung des Motors und das vorherrschende Drehmoment, dass sich aus der dynamischen Beschleunigung und der statischen Belastung durch Reibung zusammensetzt.
Es ist etwas Logik und ein Leistungstreiber nötig, damit sich ein Schrittmotor in Bewegung setzt, die in vielen Ausführungen als IC verfügbar ist. Bekannteste Vertreter sind die ICs L297 (Ansteuerlogik) und L293/L298 (2fache H-Brücke). Alternativ zur Kombination aus L297/L298 gibt es auch leistungsfähige DMOS ICs wie z.B. Allegromicro A4988
Betriebsarten
Vollschrittbetrieb
Die einfachste Betriebsart ist die des Vollschrittbetriebs, bei der das Drehfeld immer um 90 Grad vorgeschoben werden muss, was durch wechselseitiges Ansteuern der Spulen sowie Negation der Ströme nach dem Muster + + - - sowie - + + - erfolgt. Es sind dabei immer beide Spulen aktiv.
Halbschrittbetrieb
Zeitweises Abschalten jeweils einer Spule entstehen Zwischenstufen, die gegenüber dem Vollschritt um (elektrisch) 45 Grad gedreht sind, da der Motor z.B. gleichzeitig in Nord- als auch in Ostrichtung gezogen wird. Werden beide Betriebsarten gemischt, entsteht das Halbschrittverfahren. Dadurch entstehen 45 Grad-Schritte. Das Bestromungsmuster sieht wie folgt aus: + + 0 - - - 0 + sowie 0 + + + 0 - - - für die andere Spule, wobei man wieder eine 90 Grad-Verschiebung der beiden Ströme erkennt. Durch die teilweise Abschaltung von Spulen wird ein insgesamt geringeres Drehmoment aufgebaut.
Micro-Step-Betrieb
Bei weiterer Verfeinerung der Methode entsteht der sogenannte microstep-Betrieb, bei dem die beiden Wicklungen mit Sinus/Cosinus-Strömen angesteuert werden. Damit wird ein besonders gleichmäßiges Drehfeld erzeugt, dem der Motor vergleichsweise konstant folgt. Durch die meist unvollständige Bestromung wird ein insgesamt geringeres Maximalmoment aufgebaut. Da das Drehfeld und damit der Vorlauf optimal angepasst werden kann, ist letzlich ein höheres Lastmoment möglich. Die Ruhepunkte pro Vollschritt bleiben dabei erhalten: In diese fallen die Motoren beim Abschalten des Stromes hinein und auch während der Drehbewegung wirken sie als eine Art Welligkeit die der Bewegung überlagert ist. In diesen Punkten ist das magnetische Haltemoment vergleichsweise gering (theoretisch null), wächst aber bei infinitisimaler Motordrehung rasch an, um dann wieder abzuflachen, sodass es bei 90 Grad, wenn der Anker gerade zwischen zwei magentischen Positionen steht, wieder Null ist.
Vereinfacht kann man sich dies durch einen sinusförmigen Kurvenverlauf, wie im Diagramm rot dargestellt, vorstellen.
Den beiden ansteuernden Strömen Sinus/Cosinus kann nun ein dem Haltemoment entgegengesetzter Strom aufaddiert werden, der dem Anker dort, wo er am stärksten Widerstand erfährt, mehr Drehmoment von aussen zuführt. Dazu muss eine Welle mit 4facher Frequenz, die immer exakt 90 Grad Vorlauf zur Ankerstellung hat, hinzuaddiert werden.
In Realität ist das Moment nicht sinusförmig und dessen Maximum leicht nach vorne verschoben. Unter der Annahme, dass der Vorlauf des Drehfeldes für den Motor günstig ist, kann vereinfachend eine leichte Abflachung der Kurven in den Maxima von Sinus und Cosinus vorgenommen werden. Dies ist bei der einfachen Methode Digitale_Sinusfunktion#Sinus-Approximation_1 bereits ansatzweise berücksichtigt, da die Kurve im Bereich 30 und 150 Grad steiler verläuft, als der ideale Sinus.
Schrittverlust
Das Hauptziel einer sinnvollen Ansteuerung ist neben dem schnellen Erreichen der Endposition bei möglichst geringem Stromaufwand die Vermeidung des so genannten Schrittverlustes, der auftritt, wenn der Motor dem Drehfeld nicht folgen kann. Der Motor schwingt dann in die Position des letzten Vollschritts zurück, teilweise sogar darüber hinaus, wenn schwere Mechanik über Getriebe angetrieben wird und hohe Torsionsmomente gespeichert waren. Damit wird die Sollvorgabe nicht erreicht.
Erkennung
Eine Möglichkeit ist, auf der Achse des Motors einen Winkelsensor (Encoder) zu montieren und die Schritte permanent mitzuzählen und später nachzufahren. Eine echte Erkennung vor Eintreten eines Verlustes mit der Möglichkeit der Vermeidung gibt es hier meist nicht. Eine weitere Möglichkeit besteht in der Messung des Gegenmagnetmoments des Motors. Bei einem Schrittverlust entstehen bestimmte Oberwellen, insbesondere die dritte Harmonische ist sichtbar. Damit ist es möglich, bereits einen drohenden Verlust im Vorhinein zu erkennen und gegenzusteuern, denn besser, als die Erkennung des erfolgten Verlustes ist dessen Vermeidung.
Vermeidung
Entscheidend ist, das Drehfeld des Motors zum richtigen Zeitpunkt und im Idealfall kontinuierlich so weiterzuführen, dass immer ein optimaler Lastwinkel besteht. Bei gepulstem Betrieb darf das Weiterführen nicht zu früh passieren. Der kritischste Fall ist der des Starts. Der Motor sieht noch kein Lastmoment, das Drehfeld beginnt sich aber gfs schon, schnell zu bewegen. Daher kommt der richtigen Wahl der Beschleunigungskurve eine grosse Bedeutung zu.
Beschleunigungsrampen richtig wählen und berechnen
Dazu ein kurzer Ausflug zu meinen ersten Schrittmotor-Untersuchungen:
In einem Matrix-Nadeldrucker der stabilen Bauart (1980: ca. 70 kg) wird der Druckkopf mittels Stepper und Zahnriemen angetrieben. Auf der Welle des Motors sitzt ein Drehgeber (Zahnrad mit Hallsensor). Dieser gibt zum Einen den Takt für die Nadeln, zum Anderen den Zeitpunkt für den nächsten Schritt vor. Das ist ideal, denn der neue Schritt wird im günstigsten Moment ausgeführt und der Motor beschleunigt mit seiner vollen Leistung, auch bei dynamischer Belastung. Der Drehgeber ist natürlich zusätzlicher Aufwand, den man gerne einsparen wollte. Später wurden typische Beschleunigungskurven aufgezeichnet und in SW nachgebildet.
Einfache Rampen wie lineares Dekrementieren der Periode von Schritt zu Schritt sind bestenfalls für kleine Beschleunigungen von sagen wir mal 1 bis 2 kHz ausreichend. Will man auf 5 bis 8 kHz drehen, muss vieles bedacht werden:
1. Das größte Manko vorneweg: Das sinkende Drehmoment bei hoher Drehzahl bedingt durch den Abfall der Stromanstiegsgeschwindigkeit und durch steigende Verluste in Eisen und Wicklung (Wirbelstrom).
Daher muss die Kurve oben flacher verlaufen, da weniger Kraft zum Beschleunigen zur Verfügung steht.
2. Obwohl im unteren Drehzahlbereich viel Kraft zur Verfügung steht, ist es aus dynamisch-mechanischen Überlegungen manchmal nicht wünschenswert, voll loszubeschleunigen: Eine plötzlich einsetzende oder ausbleibende Kraft (Ruck) kann mechanische Resonanzen in der restlichen Mechanik (Getriebe, Motoraufhängung, Rahmen...) auslösen.
Wünschenswert ist ein sin(0..2pi)-förmiger Verlauf der Kraft, also der Beschleunigung. Da diese die erste Ableitung der Geschwindigkeit nach der Zeit ist, ist der Verlauf der Geschwindigkeit 1-cos(0..2pi) = 1+cos(pi..3pi)
Nachteil: Maximale Beschleunigung in der Mitte 55% höher als bei linear.
Kompromiss: Quadratische Rampe (Beschleunigung steigt linear an): 33% höheres Drehmoment erforderlich.
Atmel bietet für Steppermotoren eine Application Note (AVR446) und ein entsprechendes Demoprogramm für lineare Rampen:
http://ww1.microchip.com/downloads/en/appnotes/doc8017.pdf
http://www.atmel.com/images/avr446.zip
Den fertigen Funktionen kann die Beschleunigung, Verlangsamung, gewünschte Geschwindigkeit und Anzahl der zu fahrenden Schritte übergeben werden. Es werden automatisch die Rampen berechnet und die Timersteuerung für 16-bit Timer berechnet.
Das Programm ist sehr ausführlich dokumentiert (u.a. mit Doxygen) und kann fast komplett in eigene Applikationen übernommen werden.
Achtung: Das Programm ist für den IAR-Compiler und muss ggf. leicht abgeändert werden.
Häufigster Fehler
Die Rampe wird unter der Prämisse erstellt, die Zeit zwischen den Einträgen sei konstant, man könne also die linear berechneten Frequenz- oder Timerwerte einfach so eintragen. DEM IST NICHT SO. Die Mitte der Liste ist bei Weitem nicht nach der halben Rampenzeit erreicht, da Schritte am Anfang wesentlich langsamer ausgeführt werden. Die Liste muss bei niedrigen Geschwindigkeiten grobe, bei hohen Geschwindigkeiten feine Abstufungen haben.
Richtig ist: Nach jedem Step die Zeit seit Beschleunigungsbeginn (einfach die Timer-Werte aufaddieren), daraus die gewünschte Frequenz und daraus den benötigten Timer-Wert berechnen.
Tipps zur Rampe
Eine einfache Methode ist es, kontinuierlich steigende Werte auf die Sollfrequenz zu geben. Damit ergibt sich ein beschleunigter Zeitverlauf.
Veraltet! Treibermodule
Oriental Motor: Vexta AlphaStep ASD16AC und ASD20AC (230 VAC -> 324 VDC, Preisklasse 220-700 Euro)
- Vorteile
- verhält sich wie ein Servo, regelt Schlupf und auch statische Laständerungen aus
- neue AlphaStepPlus sind frei programmierbar; ist extrem gutmütig, läuft ohne mechanische Last auch mal mit 50 kHz (!) Schrittfrequenz = 6000 1/min
- Drehmomentverlauf über Drehzahl sehr gut wegen hoher Spannung
- Opto-Trennung
- Error-Ausgang
- Enable-Eingang
- 500, 1000, 5000 oder 10000 Schritte pro Umdrehung einstellbar
- hoher Wirkungsgrad
- Strom in 16 Stufen einstellbar
- Nachteile
- passender Motor (Preis~100-200 Euro) mit Resolver nötig
- eingebauter v-Filter kann zwar beschleunigen, aber nicht abbremsen, das müßte er ja vorher wissen, leider macht er deshalb zu viel gemachte Schritte nicht zurück -> Rampen müssen doch selbst programmiert werden
- teuer
- Motorspannung netzgekoppelt -> VDE
3 und 4 Achsen blaue TB6560 Schrittmotorplatinen von hyu68.com, wie sie auf eBay angeboten werden (Preisklasse 50 Euro)
- Vorteile
- sehr günstig
- state of the art Schrittmotor-IC (TB6564AHQ ist jedoch der bessere Nachfolger)
- Mikroschritt bis 16
- eigener Spannungsregler, benötigt nur die Motorspannung
- Optokoppler
- Enable-Eingang
- Strom in 3 Stufen, 100%, 75%, 50% vom Nennstrom, einstellbar
- Bedienteil ansteckbar
- Nachteile
- nur die blanke Platine mit Kühlkörper, ohne Gehäuse
- trotz Optokoppler nicht galvanisch getrennt
- wegen der Optokoppler nur langsame Pulse, langsamer als Mach3 überhaupt einstellbar ist. Entfernt man die Optokoppler (überbrücken mit jeweils 1 Draht, unterschiedlich bei DIR/STEP und ENABLE), geht das Handbedienteil nicht mehr.
- Chopperfrequenz und Nennstrom nur durch Austausch von Bauelementen veränderbar
- Freilaufdiode am Relais fehlt
- offiziell darf die Spannung der ICs nicht aus der Motorspannung abgeleitet werden, weil damit die Einschaltsequenz des TB6560 nicht eingehalten wird. Dennoch ist bisher keiner kaputt gegangen.
- obwohl viele Dioden auf dem Board verbaut sind, haben die Ausgänge nur nach Masse Freilaufdioden (der TB6560A benötigt laut Hersteller keine Freilaufdioden) die anderen entkoppeln die Versorgungsspannung der 3 oder 4 Kanäle und dienen als Verpolschutz.
- wenn die Schrittmotoren gedreht werden, ohne dass das Board an Versorgungsspannung liegt, können die ICs gehimmelt werden.
- die Fähigkeiten des TB6560, wie Bremstempo, Umschalten der Mikroschritte während der Fahrt, Fehlermeldungen wie Übertemp, können nicht genutzt werden, werden aber von Mach3 sowieso nicht unterstützt.
3 und 4 Achsen rote TB6560 Schrittmotorplatinen, wie sie auf eBay angeboten werden (Preisklasse 50 Euro)
Wesentlich besser als die blauen aber etwas grösser. Tatsächlich galvanisch per (ausreichend schnellem) Optokoppler getrennt dank DC/DC Wandler. Aber auch diese Karten erfordern in MACH3 den Sherline Mode damit die vom TB6560 benötigte Impulslänge eingehalten wird.
RTA Deutschland / Italy: GMD03, HGD06 (32-85 V, Preisklasse 140-180 Euro)
- Vorteile
- sehr günstig
- wenig EMV-Probleme
- kann auch 8tel-Schritt
- HGD-Ein-und Ausgänge über Optokoppler
- automatische Ruhestromabsenkung
- Enable-Eingang
- Error-Ausgang
- Strom in 8 Stufen einstellbar
- Nachteile
- nur die blanke Platine mit Kühlkörper, ohne Gehäuse (gibt es vermutlich als Zubehör)
IMS IB104, IB106, IB110 (Preisklasse 160-300 Euro)
- Vorteile
- mechanisch geschickt gelöst
- Digitaleingänge opto-isoliert
- Nachteile
- analoger StromSet nicht galvanisch getrennt
- schlechte EMV
- weder home noch reset des eingebauten L297 sind herausgeführt, sodass man z. B. zum Umschalten in den Wave-Mode nicht weiß, ob er in einem geraden oder ungeraden Schritt ist
- Ruhe-Verlustleistung zu hoch (bei 60 V, 150 mA, 9 W, Linearregler)
- teurer als RTA
- IB106 und IB110 wesentlich teurer als IB104, obwohl nur ein paar Bauteile andere Werte haben
Anregungen
- Hohe Versorgungsspannung erforderlich
- Abbremsrampe ist schneller möglich wg. mechanischer Verluste (Reibung).
- Besonderheiten der Last (Drehmomentverlauf über Drehzahl) beachten.
- Startfrequenz knapp oberhalb der Hauptresonanzfrequenz. Nicht so hoch wie es möglich wäre, wg. Ruck beim Starten / Stoppen.
- Effekte bei Resonanz: kein Drehmoment, sogar Rückwärtslauf.
- Leistungsverbrauch sehr wohl lastabhängig.
Alternative Stellantriebe
Eine preiswerte Alternative zu Schrittmotoren sind die Modellbau-Servos, die es schon ab 5,- € gibt. Sie sind im Vergleich geradezu spielend einfach auch von µC anzusteuern und ermöglichen das exakte Anfahren bestimmter (speicherbarer) Winkel. Da sie nicht den Schrittmotor-typischen Schlupf haben, der gerne beim Anfahren unter mechanischer Last auftritt, eignen sie sich auch gut für größere Kräfte. Das integrierte Getriebe und die Stellautomatik blockieren die angefahrene Position, was bei kleineren Schrittmotoren mitunter problematischer ist. Für höhere Genauigkeit sollte man sogenannte digitale Servos nehmen. Eine Sonderform sind die Servowinden, mit denen man auch mehrere Umdrehungen erreichen kann. ("Segelwinden" bei Modellsegelbooten).
Diskussionsthreads
- http://www.mikrocontroller.net/topic/51534
- http://www.mikrocontroller.net/topic/232355
- http://www.mikrocontroller.net/topic/215261
Weblinks
- Bipolare Schrittmotoren Forumsbeitrag zum Thema
- G-Code-Interpreter und 3-Achs Schrittmotorsteuerung mit ATMega644 und Trinamic TMC260
- Ausführlicher Grundlagenartikel auf roboternetz.de
- Folgende 2 Beiträge beziehen sich auf http://www.mikrocontroller.net/forum/read-1-309923.html?reload=yes#310455
- Onlinetool zur Darstellung verschiedener Ansteuerungsarten von Nanotec.de (Flash erforderlich)
- Motor-Assistent - Onlinetool zur Berechnung von Motorkennzahlen anhand von Drehzahl und Drehmoment von Nanotec.de .
- Microchip AN907: Stepping Motors Fundamentals - Gute und allgemeine Einführung zum Thema Schrittmotoren.
- Schrittmotor-blog.de - Blog mit technischen Hintergrundinformationen und Detailwissen zum Schrittmotor
- Schrittmotor-Controller (Stepper) Mikrocontrollerprojekt für die Anwendung von (unipolaren) Schrittmotoren als Strahlschalter