Ist meine instinktive Annahme korrekt, dass die Beschleunigungskurve für eine viertel Kreisbewegung aus einer Cosinus und Sinus Funktion erzeugt werden kann? Wenn ich in der XY-Ebene bin und eine viertel Kreisbewegung machen möchte, so muss (je nach Fahrtrichtung) die X-Achse in Form eines Sinus und die Y-Achse in Form eines Cosinus beschleunigen bzw. wieder langsamer werden?
Da der Sinus und Cosinus genau so definert sind: Ja! Siehe https://de.wikipedia.org/wiki/Sinus_und_Kosinus#Definition_am_Einheitskreis
Keine A. schrieb: > dass die Beschleunigungskurve für eine viertel Kreisbewegung aus einer > Cosinus und Sinus Funktion erzeugt werden kann? Ja, weil ein Kreis an sich eine Sinusfunktion ist und zudem die Ableitung eines Sinus/Cosinus wieder einen Cosinus/Sinus ergibt.
Interessant wird das erst wenn man es auf einem Mikrocontroller macht ohne das man sin hat. .-) Vanye
Keine A. schrieb: > eines Sinus und die Y-Achse in Form eines Cosinus beschleunigen Da Sinus und Cosinus die Ableitung von Cosinus und Sinus sind, und Beschleunigung die Ableitung der zu fahrenden Kurve, passt das. Da aber Schrittmotoren ihre Position nur in diskreten Schritte ändern können, braucht man einen Algorithmus der die Zeitpunkte generiert an denen die Achsen ihre Schritte ausfuhren sollen, und das überlagert von Beschleunigungs- und Bremsrampen damit das Bewegte dem Schrittmotor folgen kann. Daher verwendet man als Algorithmus Bresenham DDA oder Cordic. Am schlauesten guckst du dir open source CNC G-Code Interpreter an. Manche lösen das Problem aber auch stumpf in einer Vieleckannäherung. Da die aber 3-d und Kreisbögen können müssen, sind sie etwas komplexer.
Keine A. schrieb: > Wenn ich in der XY-Ebene bin und eine viertel Kreisbewegung machen > möchte, so muss (je nach Fahrtrichtung) die X-Achse in Form eines Sinus > und die Y-Achse in Form eines Cosinus beschleunigen bzw. wieder > langsamer werden? Also wenn die Kreisbewegung oben anfängt, dann hätte ich es jetzt genau andersherum gedacht. Aber vielleicht verstehe ich ja "die X-Achse ... beschleunigen" auch einfach nur falsch. Vielleicht meintest Du damit aber tatsächlich "in y-Richtung" beschleunigen, dann wäre Deine Aussage tatsächlich wiederum richtig.
:
Bearbeitet durch User
Wieso Beschleunigung? Das Anfahren und Bremsen ist doch nicht interessant. Für Mikrocontroller wäre auch der Bresenham-Algoritmus brauchbar, der benötigt keine Sinusfunktion: https://de.wikipedia.org/wiki/Bresenham-Algorithmus
Christoph db1uq K. schrieb: > Wieso Beschleunigung? Das Anfahren und Bremsen ist doch nicht > interessant. Christoph db1uq K. schrieb: > Wieso Beschleunigung? Das Anfahren und Bremsen ist doch nicht > interessant. Ich habe meine Schrittmotoren so programmiert (externe Flanken gesteuerte Treiber), dass ich denen eine Schrittweite, Richtung und Beschleunigungsrampe übergebe. Anschließend wird diese Bewegung nebenläufig abgefahren. Zwei Schrittmotoren in ihren abzufahrenden Schritten zu synchronisieren ist da jetzt tatsächlich mehr Aufwand, als die Geschwindigkeitkurve in Abhängigkeit der aktuellen Position zu ermitteln. Und tatsächlich habe ich eine Sinus/Cosinus Lookup Tabelle verwendet und die prinzipielle Bewegung sieht schon gut aus. Lediglich ist jetzt die Bewegung noch ein abgerundetes Rechteck als ein Kreis.
Sehe dir doch mal die Marlin https://marlinfw.org/ oder GPRL https://github.com/gnea/grbl-Mega Software für 3D Drucker an. Vieleicht kannst du davon was übernehmen.
>noch ein abgerundetes Rechteck als ein Kreis Das wird sich mit einem Schrittmotor nicht völlig vermeiden lassen. Der macht ja Schritte, zunächst mal Winkelschritte seiner Achse. Die werden z.B. über ein Zahnrad auf der Achse und eine Zahnstange in eine Linearbewegung umgewandelt. Die Zahl der Schritte pro Umdrehung ist durch die Anzahl der Magnetpole fest vorgegeben, das Zahnrad bringt noch eine wählbare Untersetzung. Man kann die Auflösung auch noch durch Mikroschritte verbessern, eine Interpolation zwischen zwei Nachbarpunkten, ähnlich einer Pulsbreitenmodulation. Das scheint hier nicht der Fall zu sein. >Zwei Schrittmotoren ... zu synchronisieren Damit die Rechtecke schön rund werden, müssen sich beide Schrittmotoren gleichzeitig drehen, wenn sie nacheinander laufen wird es eckig. Nur für eine Bahn von 45 Grad müssen beide gleich schnell laufen, soll das noch genauer geregelt werden?
Moin, das wurde mal ganz gut in einer C’t beschrieben. Ist aber schon sehr lange her. Ähnlich wie Du mache ich es mit der „geraden“ Funktion aus der C’t. Das wurde früher für den Z80 veröffentlicht, aber das Flussdiagramm konnte man sehr gut übernehmen. Für meinem XZ- Tisch nutze ich Motore mit 200 Schritte/U, die ich im 1/8 Schritt laufen lasse und damit eine Kugelumlaufspindel antreibe. Somit habe ich eine Auflösung von 200*8 Schritten/U, wobei ein Vortrieb von 0,5 cm/U entsteht. Da sieht man keine Stufen mehr. Gruß Carsten
>Flanken gesteuerte Treiber
Die Drehzahl eines Schrittmotors müsste linear von der Frequenz dieser
Flanken abhängen. Zweimal pro Kreisbahn steht ein Schrittmotor still,
dabei ändert er seine Drehsinn. Zweimal erreicht er seine maximale
Drehzahl. In der halben Zeit dreht er links herum, die andere Hälfte
rechts herum. Also müssten insgesamt vier Parameter gesteuert werden,
zwei Taktfrequenzen und zwei Drehrichtungs-Vorzeichen.
Christoph db1uq K. schrieb: > Die Drehzahl eines Schrittmotors müsste linear von der Frequenz dieser > Flanken abhängen. Zweimal pro Kreisbahn steht ein Schrittmotor still, > dabei ändert er seine Drehsinn. Zweimal erreicht er seine maximale > Drehzahl. In der halben Zeit dreht er links herum, die andere Hälfte > rechts herum. Also müssten insgesamt vier Parameter gesteuert werden, > zwei Taktfrequenzen und zwei Drehrichtungs-Vorzeichen. Nun ja, das Problem der synchronen Ansteuerung von Schrittmotoren incl. Beschleunigung für Kreisbahnen oder gar beliebigen Kurven ist nicht ganz trivial, aber dennoch Stand der Technik. Millionen CNC-Maschinen beweisen das.
Christoph db1uq K. schrieb: > Die Zahl der Schritte pro Umdrehung ist durch die Anzahl der Magnetpole > fest vorgegeben Unsinn. Heutige Schrittmotortreiber können die Motorwicklungen mit Zwischenwerten ansteuern. Der Motor bewegt sich bei genügend feiner Steuerung des Stromes fast kontinuierlich von einem Magnetpol zum nächsten.
Du willst aber eine beliebige Kurve mit konstantem Drehmoment durchfahren... Nicht so einfach.
>mit Zwischenwerten ansteuern
das sagte ich ja, Mikroschritte, aber aus seinen Aussagen entnehme ich,
dass nur mit der Schrittgeschwindigkeit getaktet wird, ohne
Zwischenwerte durch zusätzliche Hardware oder Softwaretricks.
Ich finde es interessanter die Funktionen, die die Geschwindigkeiten
durchlaufen müssen, zu berechnen (Drehmoment noch nicht berücksichtigt).
Ist das ein Sinusquadrat, Sinusbetrag oder noch etwas anderes? Es muss
jedenfalls die doppelte Frequenz haben.
:
Bearbeitet durch User
Christoph db1uq K. schrieb: > das sagte ich ja, Mikroschritte, aber aus seinen Aussagen entnehme ich, > dass nur mit der Schrittgeschwindigkeit getaktet wird, ohne > Zwischenwerte durch zusätzliche Hardware oder Softwaretricks. Mikroschrittfähige Treiber arbeiten für den Schritttakt als Untersetzung, d.h. die Software merkt das gar nicht. Bei einem Treiber mit 16-fach Mikroschrittsteuerung und einem Schrittmotor mit 200 Schritten pro Umdrehung sieht das für die Software wie ein Motor mit 3200 Schritten pro Umdrehung aus. Damit wird der Kreis schon ziemlich rund.
Ja wenn er sowas hat, wir wissen ja nichts genaueres zur Hardware oder Anwendung. >dass ich denen eine Schrittweite, Richtung und Beschleunigungsrampe übergebe Das mit der Beschleunigung halte ich immer noch für unnötig. Das würde bedeuten, dass der Schrittmotor aus unbekanntem Grund langsam hochfahren muss. Einzelne Flanken an den Treiber zu schicken klingt nach recht simpler Hardware, auch wenn sich da noch Mikroschritte verstecken sollten. "Schrittweite" setzt dagegen schon eine intelligentere Bedienung voraus. H-Brücken mit einfachem Interface (L297+L298 von ST) brauchen nur Takt und Richtung. https://www.st.com/en/motor-drivers/stepper-motor-drivers/products.html
:
Bearbeitet durch User
In der 3D-Druck-Szene sind die TMC2208/TMC2209 recht beliebt.
Hi >"Schrittweite" setzt dagegen schon eine intelligentere Bedienung voraus. >H-Brücken mit einfachem Interface (L297+L298 von ST) brauchen nur Takt >und Richtung. Diese Bausteine sind auch schon über 30 Jahre alt. Die Welt hat sich seitdem ein Stück weiter gedreht. MfG Spess
Moin, wie Christoph schon schrieb, wissen wir wenig über das Projekt. Wenn Du den Kreis nach Bresenham bauen möchtest, hilft Dir vielleicht das Flussdiagramm weiter. Du musst den Kreis in 8 Teilen betrachten. Der schnellere Motor macht immer einen Schritt. Berechnen musst Du, ob der langsamere Motor auch einen Schritt machen muss. Egal, ob Vollschritt, Halbschritt oder Mikroschritt. Eine Rampe sollte auch kein Problem sein. Das Flussdiagramm vom Kreis kann ich leider nicht mehr finden, aber das von der Linie ist ja ähnlich. Ich habe mir auch überlegt einen Kreis zu berücksichtigen, habe es aber nicht gemacht, weil ich das einfach nicht brauchte. Vielleicht helfen Dir die Kopien weiter. Viel Erfolg Carsten
>schon über 30 Jahre alt Ich weiß, aber die werden immer noch z.B. für den Arduino als Modul angeboten, es gibt vermutlich fertige Libraries dazu. Das ist für viele der Grund, die einzusetzen, statt der moderneren z.B. die genannten von Trinamic. Gibt es einen Grund, für eine langsame Beschleunigung? Für dickere Schrittmotoren könnte es ja sein, dass der Anlaufstrom so hoch ist, dass die Sicherung oder sogar der Motor durchbrennt. Und der Radau wird vermutlich etwas geringer, wenn man 3D druckt. Den Bresenham habe ich mal benutzt um auf einem Grafikdisplay Kreise zu zeichnen (ein Smith-Diagramm), in AVR Assembler, hat gut funktioniert. Ich habe den Kreis auch in acht Teile zerlegt berechnet.
:
Bearbeitet durch User
Einen sauberen Kreis bekommt man mit diskret angesteuerten SMs nur mit Getrieben bei sehr hohen Übersetzungen und langsamem Betrieb hin, wie bei Solar-Reflektoren oder den Spiegeln in Radiosteleskopen. Direkt steuern geht nur sinnvoll über Microstep oder eventuell mit hohen Geschwindigkeiten unter Nutzung der Trägheit. Ich hatte mal eine Anwendung, die Laser rotieren ließ. Das wurde mit fein steuerbaren Spiegeln erreicht. Aufgrund der Form und Lagerung hatten die ein etwas kompliziertes Drehverhalten und Trägheit, die ausgeglichen werden musste, um überhaupt zu einer kreisförmigen Reflexion zu kommen. Generell wurde mit SIN-COS angefahren, bei überlagerter Kompensation der Achsenträgheiten und zusätzlicher überlagerter Kompensation des Rastmoments der SMs. Die Phase musste auch noch gesteuert werden, wegen langsamem Anlaufen und der Notwendigkeit eines Vorlaufes bei höheren Tempi, weil die Spiegel zunehmend hinterher hinken und dafür weiter rotieren, weswegen die Amplitude gesteuert werden musste.
Oder ein Radioteleskop welches Sternen folgt. Da sind die Zeitkonstanten nur bisserl größer 😎
Christoph db1uq K. schrieb: > Für dickere > Schrittmotoren könnte es ja sein, dass der Anlaufstrom so hoch ist, dass > die Sicherung oder sogar der Motor durchbrennt das ist Unsinn. Ein Schrittmotor hat im Gegensatz zu einer Wechselstrommotor keinen erhöhten Anlaufstrom.. SM werden mit Konstantem Strom betrieben, Wechselstrommotoren mit konstanter Spannung.
Christoph db1uq K. schrieb: > Für dickere Schrittmotoren könnte es ja sein, dass der Anlaufstrom so > hoch ist, dass die Sicherung oder sogar der Motor durchbrennt. Bei Schrittmotoren gibt es keinen "Anlaufstrom". Halbwegs aktuelle Schrittmotortreiber arbeiten mit Stromregelung. Solange die Betriebsspannung ausreichend hoch ist, bekommen die Motorwicklungen da genau so viel Strom, wie der Treiber vorgibt,
Christoph db1uq K. schrieb: > Gibt es einen Grund, für eine langsame Beschleunigung? Hallo, SM würden bei einer zu großen Anfangs- und Endgeschwindigkeit einfach nur vibrieren, sich aber nicht mehr drehen. Durch die Induktivität der Wicklungen werden sie mit zunehmender Geschwindigkeit hochohmiger und nehmen irgendwann die gebrauchte Leistung nicht mehr auf. Es sind zwar keine Kreise, aber ohne Getriebe und Übersetzung direkt an die Kugelumlaufspindel gebracht gezeichnet. Auch Kreise mit einem Durchmesser von 40cm sind ohne Einbußen der Genauigkeit kein Problem. Beitrag "Re: Zeigt her eure Kunstwerke (2021)" Gruß Carsten
Thomas Z. schrieb: > Ein Schrittmotor hat im Gegensatz zu einer > Wechselstrommotor keinen erhöhten Anlaufstrom. Man muss aber immer das System in Bewegung setzen. Schon der SM selber hat eine Trägheit. Das gilt um so mehr für angeschlossene Wellen oder Getriebe, sowie natürlich die Lasten. Die müssen bei der Steuerung mit berücksichtigt werden. Das braucht mehr Leistung und damit auch Strom in der Anlaufphase. Umgekehrt kann man wegen der Rückwirkung der Last nicht beliebig viel Drehmomentvorgabe auf den Motor legen. Dieser überwindet neben der eigenen Trägheit zunächst das Spiel des Getriebes, dann die Rotationsspeicherwirkung der Welle und letztlich über die Befestigung seine Last(en). Das ist ein mehrfaches, sequenzielles Feder-Masse-Dämpfungssystem mit durchaus komplizierter Gegen-"Impedanz".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.