Antriebsart für Linearachse

Hallo zusammen,

ich plane gerade eine Linearachse zu bauen. Die Steuerung erfolgt per Arduino Uno, weshalb ich auch immer wieder in dieses Forum gestolpert bin. (bisher als stiller Mitleser, vielen Dank an die vielen hilfreichen Beiträge die man zu vielen Themen findet!)

Soweit ist eigentlich alles geplant. Der letzte offene Punkt ist die Art des Antriebs.
Ich schwanke zwischen Zahnriemen oder Trapezgewindespindel.

Anforderungen an die Achse:
ca. 800 mm Hub
ca. 20kg max. Bauteilgewicht (üblich: kleinergleich 10kg)
Geschwindigkeit (jetzt kommt mein Dilemma):
ideal: 2 mm/s bis 250 mm/s
ausreichend: 10 mm/s bis 100 mm/s

Mein Problem ist also die hohen Geschwindigkeitsunterschiede die ich benötige.
Konkrete Fragen dazu:

Lösung Zahnriemen:
Ich würde ein GT2 Riemen (2mm Zahnabstand) mit einem 16-fach Zahnrad nehmen.
Eine Umdrehung bedeutet also 32 mm Weg.
Kann ich einen NEMA23 Motor mit 3Nm Drehmoment und 4A so langsam drehen lassen, dass ich auf ca. 10 mm/s komme? ---> entspräche rund 20U/min
Die Drehmomenttabellen die ich fand, fingen alle erst bei rund 50U/min an. Vermutlich ruckelt es doch sehr bei so langsamen Vorhaben?

Lösung Spindel:
Im Grunde die gleiche Frage umgekehrt:
Bei einer Spindel mit 4mm Steigung bräuchte ich 25U/s für 100mm/s. Da lande ich also bei 1500U/min. Erfahrungen diesbezüglich? Gleicher Motor wie oben. Das halte ich drehmomenttechnisch doch für problematisch, mal ganz von den Vibrationen und weiteren mechanischen Einflüssen abgesehen.

Weitere Überlegungen:
Ggf. würde ich eine Art Getriebe für die Zahnriemenlösung entwerfen, sodass ich bei 1U/s auf meine 10 mm komme. Dann entsprächen 600U/min meinen 100mm, was vermutlich noch gut mit dem Motor klappt.

Danke und Gruß

Falls das ein Schrittmotor sein soll, der kann beliebig langsam drehen, aber nicht besonders schnell.

Bei der Dimensionierung solcher Antriebe unterschätzt man häufig den Einfluss des Rotations Trägheitsmomentes des Motors und der Spindel. Ich habe vor einigen Jahren mal ein einfach zu benutzendes Excel erstellt mit dem man das nötige Motordrehmoment abschätzen kann.

Ich habe mal Deine Daten eingegeben, und eine Beschleunigungszeit von 0.25s auf 250mm/s gewählt. Spindeldurchmesser 16mm. Damit erhalte ich:

Du brauchst für die Spindelvariante also ca. 0.3Nm während der Beschleunigungsphase ohne Reibungsverluste. Um nicht grenzwertig zu werden würde ich ca. 1Nm ansetzen. Ob Dein Motor das bis zur Endgeschwindigkeit kann siehst Du ja in der Drehmoment Tabelle.

Falls Du einen Motor benötigst der möglichst schnell dreht suche einen mit möglichst kleiner Induktivität. Falls die Induktivität nicht angegeben wird nimm einen mit möglichst kleiner 'Spannung' bzw möglichst hohem Strom bei vergleichbarem Drehmoment. Und natürlich muss die Spannung des Treibers möglichst hoch sein (24V - 60V sind üblich)

Hier das File, vielleicht hilft es Dir.
drehmomente gewindetrieb V2.zip (17.0 KB)

Hier ein Video was man mit (hier natürlich kleinen) Schrittmotoren so erreichen kann: TeensyStep High Speed Stepper Library - YouTube

Ergänzung:
600rpm = 10rps = 2000 steps / sec. Du wirst vermutlich mindestens 1/8 Schrittbetrieb fahren um die Vibrationen gering zu halten -> Dein Uno muss den Motor mit 16kHz und einem Beschleunigungs-Algorithmus betreiben können. Wenn es bei einem Motor bleibt mag das gehen aber ich würde das mit einem Teensy 3.2 o.ä.realisieren.

3Nm 4A sind schon ein Wort. Wie gut das mit ganz langsam drehen geht hängt vom Schrittmotortreiber ab.

Es gibt von Trinamic Module die einen sehr leisen Lauf ermöglichen. Ich weiß aber nicht bis wie viel Ampere die gehen.

Dann gibt es von Benezan Elektonik Schrittmotortreiber die richtig viel Ampere können und auch sinusförmigen Stromverlauf erzeugen.

Wenn noch mehr Perfomance benötigt wird Servomotoren von JMC als preiswert-Version oder von Jenaer Antriebe

Mit den Jenaer Antrieben kann man extrem schnell fahren.
Da ist dann der limitierende Faktor die Steifheit deines Gesamtsystems, das sich die Lageregelung nicht aufschwingt
wenn man sehr hohe Beschleunigungswerte einstellt.

Ja und ein Teensy 3.2 kann viel viel höhere Taktfrequenzen erzeugen als ein Arduino und ist auch mit Arduino IDE programmierbar

vgs

@DrDiettrich
Ja das soll ein Schrittmotor sein, sorry vergessen zu erwähnen.
Das "beliebig" langsam drehen ist ja so ein bisschen mein Problem. Wenn was wirklich ginge, ohne fieses ruckeln, wäre mein Problem gelöst da ich dann beim Riementrieb bleiben würde. Der benötigt für hohe Geschwindigkeiten nämlich keine hohe Drehzahlen was ja ideal für einen Stepper wäre.

@luni64
Danke für die ausführlich Antwort. Ich kam bei meiner Berechnung inkl. der zu erwartenden Reibkraft auf ca. 50 Ncm. Da ich die über das gesamte Drehzahlband haben wollte, habe ich mich für einen entsprechend "dicken" Motor entschieden, der in niedrigen Drehzahlen bis zu 3Nm liefert aber auch jenseits der 1000 U/min noch die 50Ncm. Die brauch ich bei hoher Drehzahl zwar nicht mehr, aber ein bisschen Puffer tut ja nicht weh :slight_smile:
Danke für den Tipp mit dem Teensy, kannte ich bisher noch nicht. Da ich den Uno jedoch bereits hier habe würde ich mit dem erstmal weiterprobieren. Beim nächsten Projekt ist der aber vorgemerkt

StefanL38

Das ganze soll am Ende natürlich auch noch in einem bezahlbaren Bereich liegen. Ich hatte mal so um die 50€ für Motor und Treiber veranschlagt.
Ich hoffe mal das Links erlaubt sind, dann kann ich euch ja mal zeigen was ich mir rausgesucht habe.

Motor:

Treiber:

Den Motor würde ich evtl. noch etwas abspecken, da die 3Nm Version schon recht groß baut. Es wäre dann weiterhin NEMA23, allerdings mit rund 2Nm und rund 3A. Den Treiber würde ich so belassen.

Viele Grüße

Dann nimm doch Mikrostepping für langsame Geschwindigkeit und Fullstep für hohe Geschwindigkeit. Mit den dafür verfügbaren "intelligenten" Chips muß der Controller garnicht mehr besonders schnell sein.

Für die Entscheidung Riementrieb / Gewindetrieb solltest Du nicht nur die Übersetzungen betrachten. Am Ende des Tages kannst Du die Physik eh nicht betrügen. Die kleinere Untersetzung mit dem Riementrieb musst Du natürlich durch höheres Drehmoment kaufen.

Je nachdem was Du baust (was eigentlich?) kann die höhere Elastizität eines Riementriebs ein Problem sein oder auch nicht. Es hat schon einen Grund warum ein Frästisch typischerweise einen Gewindetrieb hat und ein 3d Drucker üblicherweise mit einem Riementrieb ausgestattet ist. Es gibt übrigens auch Steil-Gewindespindeln. Damit hast Du dann Steigungen bis 100mm/rev (sind aber etwas teuer)

Über Ruckeln würde ich mir keine großen Gedanken machen, der Motor hängt ja ein einer großen trägen Masse. Wie @DrDiettrich schon sagte solltest Du mindestens 1/8tel Mikroschritt verwenden. Vollschritt habe ich schon lange nicht mehr gesehen, das hört sich einfach schrecklich an. Allerdings denke ich nicht, dass ein Wechsel der Schrittauflösung während der Fahrt vernünftig funktionieren wird. Ich kenne zumindest keine Stepper Bibliothek die die Beschleunigungsrampe während der Fahrt entsprechend umrechnen könnte. Aber Deine Anforderungen sind ja moderat, 16kHz wird der betagte Uno wohl schaffen. (Wenn nicht musst Du halt ~15EUR für einen modernen Controller investieren :slight_smile: )

Den DM542 verwende ich in der original Leadshine Variante häufig. Der ist sehr gut aber eigentlich teurer. Ich weiß nicht ob StepperOnline da Clones verkauft oder einen OEM Deal mit Leadshine hat oder ob die StepperOnline Variante irgendwie abgespeckt ist.
Hier das Original: Sorotec Online-Shop - Schrittmotorkarte Leadshine DM542EU Würd mich interessieren ob Du mit der StepperOnline Variante zufrieden bist.

Viel Spaß beim Bauen

Danke für den weiteren Input. Die Geschwindigkeit während des Betriebs umzuschalten wäre nicht notwendig. Das kann ruhig in aller Ruhe vor der Fahrt parametriert werden. Daher werde ich mich jetzt mal an eure Tipps halten und das ganze mit Microstepping ausprobieren.
Ich kann gerne mal hier berichten sobald Motor und Treiber da sind, noch habe ich nicht geordert. Gehe aber mal ganz stark von einem China (OK, da kommt eh alles her :slight_smile: ) Klon aus.

Die Elastizität des Riemens wäre zu vernachlässigen, da die Positionierung nicht sehr genau sein muss. Hier würden mir sogar wenige mm ausreichen. Eher die Laufruhe ist mir wichtig, daher auch meine bedenken bezgl. ruckeln.

Zur Frage was ich baue: die Linearachse ist im Grunde bereits das Endprodukt. Verwendet wird das ganze später dann im Bereich Fotografie, weshalb auch die unterschiedlichen Geschwindigkeiten notwendig sind, je nach Kamera und Setup. Vorstellen kannst du dir das wie eine Art riesigen Scanner.

VG

Also Fotografie funktioniert "1/1000 bis 1/10 Sekunde Blende auf dann wieder zu. Bild fertig.
Ein Scanner scannt einen Bereich ab und nimmt dann mit einem linienförmigen Sensor die Helligkeit auf.

Wat is es denn nu? Ein "Fotoapparat" oder ein "Scanner"
soll es wie ein klassischer Flachbettscanner funktionieren?
Also es wird eine kontinuierliche Bewegung erzeugt und während der Bewegung wird on the fly ein Bildsensor ausgelesen?

Dann bräuchte man wirklich möglichst große Laufruhe.
und nicht Geruckel. Kannste denn den Motor mit einem gewissen Vorlauf starten lassen? Also aus dem Stilstand starten dann fährt man 10 mm ohne das aufgenommen wird und dann erst startet die Aufnahme?

Keine Ahnung ob du das alles geheim halten willst, aber die Anforderungen 50 Euro und Fotografie das ist schon beinahe ein Widerspruch in sich.

Wäre es denn OK mal in aller Ausführlichkeit zu beschreiben was du da genau machen willst?

Gibt es schon eine Mechanik mit Bildern?
vgs

Im Grunde habe ich das ja schon beschrieben.
Ich möchte eine möglichst ruckelfreie Linearbewegung realisieren. Beschleunigungs- und Bremsrampen werden ausgeklammert, das ist kein Problem und ist auch so geplant.

Grundsätzlich bieten beide Antriebsarten eine vernünftige Lösung. Sobald der Riemen im Eingriff steht und gedehnt ist wird der auch gleichförmig Laufen. Der Motor war das was mir sorgen machte, da eine Art Stick and Slip Effekt natürlich nachteilig wäre. Vielleicht wäre der Threadtitel in Richtung Motor etwas schlauer gewesen.

Die 50€ sind keine absolute Schmerzgrenze. Wenn du den Motor aller Motoren kennst und er 70€ kostet bin ich belehrbar :smiley:
Grundsätzlich soll es aber ein Low Budget Projekt bleiben. Eine fertige Linearachse von Hiwin und Co kaufen wäre ja nicht so spaßig beim basteln

Und trotzdem bleibt die Frage wie viel (minimales Ruckeln) wäre noch Ok.

Wenn du die Konstruktion als ganzes geheim halten willst halte sie geheim. Dann wäre aber nützlich wenn du auch eine Angabe machen würdest wie viel Prozent oder auch nur Promille Abweichung die Geschwindigkeit haben darf.
Wenn man einen Schrittmotor nur langsam genug im Halbschritt fahren lässt dann kann man da fast beliebig stark ruckeln.

Wenn du einen Schrittmotortreiber nimmst der 1/32 oder 1/256 Mikroschritte kann und du hast genug Drehmomentreserve dann kann die Fahrt wieder butterweich werden. Und da der Schrittmotor langsam drehen soll braucht man dann auch keine superhohe Schrittausgabefrequenz.

Trotzdem um sich da alle Möglichkeiten offen zu halten wäre ein Teensy 3.5 oder ähnlich schon klasse auch wenn der 30 Euro kostet.

Ich habe keine persönliche Erfahrung mit Closed-Loop-Schrittmotoren von JMC
Der hier hat 3 Nm und kostet mit integrierter Endstufe 130 Euro

Das ist schon ne ecke mehr als du angegeben hast. Der Schrittmotortreiber ist aber schon dabei.
Solche closed-loop-Systeme kann und muss man parametrieren bis sie optimal auf die Mechanik angepasst sind.

@The user Gemeinde: Hat jemand Erfahrung mit JMC-closed-Loop-Schritmotoren?

vgs

Die Konstruktion als solches kann ich dir nicht zeigen, da es sie im Grunde nicht gibt. Zumindest nicht vorzeigbar als CAD File oder so.
Der Plan ist folgender:
Aluprofile in einem Rechteck aufbauen, auf den Oberseiten sitzen je Seite eine Linearführung. Im "Körper" sitzen Motor, und Riemen oder Spindel. Der Tisch ist eine Aluplatte die entsprechend mit dem Antrieb verbunden ist.

Die Abweichung zur Absolutgeschwindigkeit und die Positionstreue ist wie gesagt zweitrangig. Das Ruckeln sollte sich idealerweise im Bereich von 1 Promille der Zielgeschwindigkeit befinden. Aber auch hier ist nichts in Stein gemeißelt und folgt mehr dem Motto "so viel wie möglich" bei realistischem Budget. (Gesamtbudget 200€, momentan ca. 50/50 aufgeteilt in Elektronik und Mechanik).

Danke aufjedenfall für den Link. Den schau ich mir mal an.

Ich denke schlussendlich wir es ein Stückweit Trial&Error sein. Ich messe aufjedenfall mal die Bewegung nach wenn die Achse fertig ist und schaue was so an Abweichung erreicht wird.

VG

Das wird bei Deinen maximalen Geschwindigkeitsanforderungen nicht funktionieren. Wenn du einen Schrittmotor abrupt mit zu hoher Frequenz starten willst kann er wegen Trägheit nicht schnell genug beschleunigen und kommt aus dem Tritt. In der Praxis heißt dass, das er stehen bleibt und nur interessante Geräusche von sich gibt.

Aber mach Dir keinen Kopf, es gibt genug Schrittmotor Bibliotheken die die nötigen Beschleunigunsrampen automatisch erzeugen.

Ich denke schlussendlich wir es ein Stückweit Trial&Error sein. Ich messe aufjedenfall mal die Bewegung nach wenn die Achse fertig ist und schaue was so an Abweichung erreicht wird.

Ja, wie immer :slight_smile: Einfach machen und dann verbessern wenn was nicht läuft. Lernt man viel und macht mehr Spaß

Mittlerweile sind Treiber und Motor angekommen.
Ich habe natürlich kein Vergleich zu dem Original, allerdings sind die laut Datenblatt absolut identisch und sehen auch identisch aus. Was nun letztendlich drinsteckt kann ich dir nicht sagen, der Versand aus dem deutschen Stepperonline Lager war jedoch reibungslos und mehr als 50% günstiger als bei Sorotec.

Zur Performance:
ich habe mit der AccelStepper Bibliothek und erstmal einem etwas schwächeren Nema17 (falls ich was grille :smiley: ) rumprobiert. Bei 1/2 Schritt und langsamer fahrt natürlich erwartungsgemäß ruckelig, bei 1/128 entsprechend tadellos. Sehr viel mehr gibt es als Zwischenfazit garnicht mal zu sagen. Ich warte momentan auf die Mechanik und dann kann ich es mal ernsthaft testen. Die 1/128 halte ich für etwas übertrieben, mal sehen was sich als praxistauglich herausstellt.

Eine Frage zur Bibliothek:
AccelStepper habe ich per google gefunden und für den ersten Test verwendet. Gibt es denn noch Alternativen hierzu die ihr ggf. eher bzw. auch empfehlen würdet? Schlussendlich können diese Libraries ja alle Ähnliches, ich würde einfach mal gerne ein paar ausprobieren, falls es doch Performance Unterschiede gibt.

VG

Danke für die Info. Hört sich erstmal gut an, ich denke dass ich mir auch mal einen bestellen und vergleichen werde.

Ja, bedenke auch dass 1/128tel eben auch die 128fache Schrittfrequenz bedeutet. Mit Deinem AVR wirst Du da schnell an Grenzen stoßen. Versuch macht kluch.

In letzter Zeit hört man öfter von den MoBaTools Hab ich noch nicht ausprobiert scheinen aber gut zu sein. Die standard Arduino Stepper library https://www.arduino.cc/en/reference/stepper kann, soweit ich weiß, keine Beschleunigungsrampen, wird für Deine Anwendung also eher nicht funktionieren.
Dann natürlich meine TeensyStep. Die könnte auf einem billigen T3.2 locker über 100000 Schritte/s, d.i. bei 1/64tel Schrittauflösung mehr als ~500rpm. Aber du wolltest ja erst mal bei den AVRs bleiben denke ich.