Forum: Mikrocontroller und Digitale Elektronik Auswahl eines Motors zur Positionierung


von M. S. (perilun)


Lesenswert?

Guten Abend,

ich versuche im Moment einen Motor für eine Positionierungsaufgabe zu 
bestimmen und komme nicht weiter. Die Positionierung soll mehrere 
Umdrehungen betragen (2 - 3 Umdrehungen). Dabei schwanke ich zwischen 
Schritt- und DC Motor. Die Genauigkeit der Positionierung ist mir sehr 
wichtig.

Normalerweise wird für die Positionierung ein Schrittmotor verwendet, 
das ist bekannt. Das Problem ist ich müsste ein Getriebeschrittmotor 
verwenden. Ein Schrittmotor hat aber einen Sprung nach 360° und kann 
somit die angeforderte Position nicht selbst bestimmen. Würde es reichen 
einfach einen Absolutencoder an das System befestigen, welcher für den 
Schrittmotor den realen Drehwinkel bestimmt.

Eine alternative wäre ein DC Motor. Hier weiß ich aber nicht wie genau 
ein solcher DC Motor Systeme positionieren kann und wie es von anfang an 
ausgelegt werden kann. Hier müsste man einen Encoder benutzen, 
allerdings benötigt er ja noch Anfahr und abbremszeit, oder nicht?

Das Ziel ist es durch eine Schnecke eine Welle zu drehen, an welcher ein 
Hebel sitzt und ihn auf einen entsprechenden Winkel zu positionieren.

Leider bin ich bei der Wahl des Motors durcheinander gekommen, kann 
bitte jemand Klarheit schaffen?

von leo (Gast)


Lesenswert?

M. S. schrieb:
> Ein Schrittmotor hat aber einen Sprung nach 360°

Nein. Du brauchst einfach nur die Anzahl der Schritte.

leo

von M. S. (perilun)


Lesenswert?

Könntest du das bitte etwas erklären?

von MaWin (Gast)


Lesenswert?

M. S. schrieb:
> Ein Schrittmotor hat aber einen Sprung nach 360° u

Ein Schrittmotor macht in den 360 Grad viele Sprünge, meist 200 oder 
400.

Mir scheint eher, du hast ein Verständnisproblem wie ein Schrittmotor 
arbeitet.

Hast du nicht neulich schon so ein Gejammer gepostet ?

von leo (Gast)


Lesenswert?

M. S. schrieb:
> Könntest du das bitte etwas erklären?

Was? Dass der Motor keinen Sprung macht? Oder das jeder Schritt gleich 
gross ist, und du nur die Anzahl dieser vorgibst? Was ist daran unklar?

leo

von M. S. (perilun)


Lesenswert?

Angenommen ich gebe ihm an, dass er die Position 10000° anfahren soll, 
kann er das machen, kann er diese Position selbstständig detektieren?

von leo (Gast)


Lesenswert?

M. S. schrieb:
> Angenommen ich gebe ihm an, dass er die Position 10000° anfahren
> soll,
> kann er das machen, kann er diese Position selbstständig detektieren?

Noch einmal: du gibst die Anzahl der Schritte vor. Was ist daran 
kompliziert?

leo

von leo (Gast)


Lesenswert?

leo schrieb:
> kann er diese Position selbstständig detektieren?

... und der Motor detektiert gar nichts.

leo

von M. S. (perilun)


Lesenswert?

leo schrieb:
> leo schrieb:
>> kann er diese Position selbstständig detektieren?
>
> ... und der Motor detektiert gar nichts.
>
> leo


Bedeutet das, dass der Schrittmotor an sich seine Position gar nicht 
kennt und man einen zusätzlichen Winkelsensor benutzen muss?

von leo (Gast)


Lesenswert?

M. S. schrieb:
> Bedeutet das, dass der Schrittmotor an sich seine Position gar nicht
> kennt und man einen zusätzlichen Winkelsensor benutzen muss?

Normalerweise nimmst du einen Motor, der keinen Schritt ueberspringt 
(bei deinen Vorgaben re Drehmoment, Geschwindigkeit, usw).
D.h. du weisst jederzeit ganz genau, wie weit der Motor gelaufen ist. 
Ein Winkelsensor (Drehgeber) bringt da nicht viel, weil was dann ...

leo

von Egon D. (Gast)


Lesenswert?

M. S. schrieb:

> Bedeutet das, dass der Schrittmotor an sich seine
> Position gar nicht kennt

Richtig.

Das, was allgemein "Schrittmotor" genannt wird, ist
vom Prinzip her in der Regel ein "permanenterregter
Synchronmotor mit hoher Polpaarzahl und Rastmoment".

Ein Schrittmotor "macht" nur Schritte, wenn er
schrittweise angesteuert wird. Betreibt man ihn
mit einem stetigen Drehfeld, heißt das aus völlig
bescheuerten Gründen "Mikroschrittbetrieb"; es
bewirkt, dass sich der Motor ziemlich gleichmäßig
dreht.


> und man einen zusätzlichen Winkelsensor benutzen
> muss?

Ja -- oder wenigstens einen Anschlag, eine Lichtschranke
oder irgend etwas anderes, um die Referenzposition
festzulegen.

Ein üblicher Schrittmotor mit 200 Vollschritten je Umdrehung
ist im Prinzip ein Synchronmotor mit 50 Polpaaren. Die
Ansteuerung ist elektrisch gesehen mehrdeutig, weil das
elektrische Drehfeld 50 x 360° zurücklegen muss, damit sich
der Motor mechanisch 1 x 360° (= eine Umdrehung) dreht.

Der Schrittmotor "weiss" aber nicht, in welcher Position
er gerade steht; das ist ja kein Servo-Antrieb.

von M. S. (perilun)


Lesenswert?

Vielen Dank für die ausführliche Antwort!


Das bedeutet für die Positionierung kann der Schrittmotor verwendet 
werden. Man kann also einen Absolutencoder und einen Schrittmotor nehmen 
und man kann unendlich viele Schritte einstellen (bis 1 Mio°). Ist das 
so richtig?

von Egon D. (Gast)


Lesenswert?

M. S. schrieb:

> Das bedeutet für die Positionierung kann der
> Schrittmotor verwendet werden.

Ja, dafür ist er gemacht.


> Man kann also einen Absolutencoder und einen
> Schrittmotor nehmen

Ja.
Es mag einfachere Lösungen geben, aber ja, das kann
man machen.


> und man kann unendlich viele Schritte einstellen
> (bis 1 Mio°). Ist das so richtig?

Ich bin nicht völlig sicher, wie das gemeint ist.

Mikroschrittbetrieb ist zwar möglich und üblich, aber
man kann dennoch die Winkelauflösung innerhalb EINER
Umdrehung NICHT beliebig vergrößern, weil die
Positioniergenauigkeit leidet.

Man kann aber einen Schrittmotor beliebig viele
Umdrehungen machen lassen; der Motor selbst hat da
keinerlei mechanische Begrenzung.
Wenn das ein Motor mit 200 Vollschritten je Umdrehung
ist, dann benötigt man 5000 Umdrehungen für eine
Millionen Schritte, ja. Bei Halbschrittbetrieb genügen
2500 Umdrehungen. Das geht also.

von Wolfgang (Gast)


Lesenswert?

Egon D. schrieb:
> Man kann aber einen Schrittmotor beliebig viele Umdrehungen machen
> lassen; der Motor selbst hat da keinerlei mechanische Begrenzung.

Ein Schrittmotor weiß nicht einmal, was eine Umdrehung ist. Der bekommt 
einfach seine phasenverschobenen Ströme auf die (meist) beiden 
Wicklungen. Pro Periode macht er dann eine Drehung von z.B. 360/50° (200 
Vollschritte pro Umdrehung). Die Polarität der Phasenverschiebung (+ 
oder - 90°) legt die Drehrichtung fest.

von Christian M. (Gast)


Lesenswert?

M. S. schrieb:
> Bedeutet das, dass der Schrittmotor an sich seine Position gar nicht
> kennt

Die Software Deiner Ansteuerung kennt die!

Egon D. schrieb:
>> und man kann unendlich viele Schritte einstellen (bis 1 Mio°). Ist das
>> so richtig?
>
> Ich bin nicht völlig sicher, wie das gemeint ist.

Er meint mehrere bis viele Umdrehungen und danach findet er wieder auf 
Null zurück.

M. S. schrieb:
> Das Problem ist ich müsste ein Getriebeschrittmotor verwenden.

Sowieso nicht, weil Du ja

M. S. schrieb:
> durch eine Schnecke eine Welle zu drehen

Ja, der Schrittmotor ist genau das was Du suchst! Und die Position steht 
in der Software. Wahrscheinlich 99% der Anwendungen von Schrittmotoren 
werden so verwendet, wie z.B. în 3D-Druckern. Dort sagst Du dem Drucker 
sogar die Position in mm, und das stimmt immer!

Gruss Chregu

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

M. S. schrieb:
> Bedeutet das, dass der Schrittmotor an sich seine Position gar nicht
> kennt und man einen zusätzlichen Winkelsensor benutzen muss?
Kein Motor "kennt" seine Position. Die Position kennt ggfs. nur eine 
dazugeschaltete Elektronik. Und bei manchen Motoren (Synchronservos, 
BLDC) braucht man die Position, um den Motor überhaupt ansteuern zu 
können. Zur Ansteuerung eines "üblichen" Schrittmotors oder eines 
"normalen" DC-Bürstenmotors ist die aktuelle Position egal, deshalb hat 
der keine Vorrichtung (Resolver, Hallgeber), um die aktuelle 
Rotorposition festzustellen.

Bei einem Schrittmotor ist die einfach Regel die, dass der so "stark" 
sein muss, dass er keine Schrittverluste hat. Dann weißt du genau: "wenn 
ich den 100 Schritte nach rechts und dann wieder 100 Schritte nach links 
machen lasse, steht die Achse wie am Anfang". Wie diese Achse "am 
Anfang" stand, weißt du allerdings nicht.

Und deshalb musst du mit solchen Antrieben nach einem Neustart meist 
eine Referenzfahrt/Nullfahrt gegen einen Sensor/Schalter/Anschlag 
machen, um deinen Schrittzähler in der Software auf die reale Welt 
abzugleichen.
Hast du in deiner Anwendung überhaupt die Möglichkeit, eine 
Referenzfahrt durchzuführen?

Und deshalb lautet die Antwort auf das,
was M. S. schrieb:
> Das bedeutet für die Positionierung kann der Schrittmotor verwendet werden.
Das kommt jetzt ganz drauf an, wie die Mechanik aussieht und was 
(Masse, Trägheitmoment) du da überhaupt wie schnell positionieren 
willst. Diese Angaben wären richtig brauchbar zur Beantwortung der 
Frage, welcher Motor besser geeignet ist.

M. S. schrieb:
> Das Ziel ist es durch eine Schnecke eine Welle zu drehen, an welcher ein
> Hebel sitzt und ihn auf einen entsprechenden Winkel zu positionieren.
Wenn man diesen Hebelwinkel genau positionieren will, dann macht man am 
besten einen Encoder auf die Welle des Hebels, und regelt dann den Motor 
so lange nach, bis der gelieferte Encoderwert passt...

: Bearbeitet durch Moderator
von M. S. (perilun)


Lesenswert?

Die Geschwindigkeit sollte gering sein! Bis zu 4 - 5 rpm maximal.

Ich hatte vor einen Drehgeber am System zu befestigen.

Eine referenzfahrt sollte nur zur Kalibrierung und nicht bei jedem 
neustart stattfinden. Da dachte ich aber, dass der Drehgeber seine 
Position beim Einschalten kennt.

von Olaf (Gast)


Lesenswert?

> Da dachte ich aber, dass der Drehgeber seine
> Position beim Einschalten kennt.

Da denkst du falsch.

Solche System gibt es zwar, sie sind aber dann anders. (also TEUER oder 
schlechter (Poti))

Olaf

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo "M.S.",

M. S. schrieb:
> Die Geschwindigkeit sollte gering sein! Bis zu 4 - 5 rpm maximal.

Das spricht in der Tat für einen Schrittmotor. Bei DC- oder BLDC-Motoren 
wäre aller wahrscheinlichkeit nach ein Getriebe erforderlich.

> Ich hatte vor einen Drehgeber am System zu befestigen.
>
> Eine referenzfahrt sollte nur zur Kalibrierung und nicht bei jedem
> neustart stattfinden. Da dachte ich aber, dass der Drehgeber seine
> Position beim Einschalten kennt.

Das kommt auf den Drehgeber an. Einfache "Encoder" als relative 
Messsysteme nicht, Absolutencoder schon. Die gibt es als Single- oder 
Multiturnausführungen. Irgendwann haben die aber auch einen Überlauf, 
den die Steuerung berücksichtigen muss. Ausserdem sind die Interfaces 
(SSI, BiSS, Hiperface u.a.) etwas komplizierter als das Zählen der 
AB-Impulse eines einfachen relativen Encoders.

Mit freundlichen Grüßen
Thorsten Ostermann

von M. S. (perilun)


Lesenswert?

Ich dachte einen Single Turn Drehgeber an der Endwelle einzusetzen, da 
die Welle max. 300° drehen soll. Der Sensor basiert auf der Hall - 
Technologie.

Wie kann herausgefunden werden, ob der Sensor die Position beim starten 
erkennt?

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Lothar M. schrieb:
> Wenn man diesen Hebelwinkel genau positionieren will, dann macht man am
> besten einen Encoder auf die Welle des Hebels, und regelt dann den Motor
> so lange nach, bis der gelieferte Encoderwert passt...

Wenn man nicht zählen kann oder der Schrittmotor zu schwach ist, ist das 
sicher eine gute Lösung. Voraussetzung wäre allerdings, dass es sich um 
einen Absolutencoder handelt.

In jedem Fall sollte man sich überlegen, wie man mit Getriebespiel um 
geht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hört sich für mich nach "Poti" an. Das ist der billigste 
"Absolutwertgeber", den du für diese Anwendung findest. Ich würde da ein 
Poti nehmen, das man durchdrehen kann. Nur für den Fall...

Auch mit einem Magneten und dem passenden Sensor lässt sich da was 
machen:
https://www.analog.com/media/en/technical-documentation/data-sheets/ADA4571.pdf
https://www.mouser.de/datasheet/2/196/Infineon-TLE5012B_Exxxx-DS-v02_01-EN-1227903.pdf

M. S. schrieb:
> Wie kann herausgefunden werden, ob der Sensor die Position beim starten
> erkennt?
Daran, dass er sich "Absolutwertgeber" nennt und die "absolute Position" 
ausgibt.

: Bearbeitet durch Moderator
von Harald W. (wilhelms)


Lesenswert?

M. S. schrieb:

> Angenommen ich gebe ihm an, dass er die Position 10000° anfahren soll,
> kann er das machen,

Nun, mit dem in einer normalen Quarzuhr eingebautem Schrittmotor
klappt das ganz gut.

von Olaf (Gast)


Lesenswert?

> "Absolutwertgeber", den du für diese Anwendung findest. Ich würde da ein
> Poti nehmen, das man durchdrehen kann. Nur für den Fall...

Ich wuerde auf jedenfall ein Poti nehmen das dafuer geeignet ist, also 
Leitplastik und nicht Kohleschicht.

Durchdrehen muss es nicht da eine kompetent designte Regelung alle 
Probleme verhindern kann und selbst sehr gute Potis in so einer 
Anwendung Verschleissteile sind die man alle paar Jahre mal ersetzen 
muss.

Olaf

von M. S. (perilun)


Lesenswert?

Leider kann ich keinen geeigneten Poti finden. Ich wollte diesen Sensor 
verwenden: WDGA 36E CANopen

Leide kann ich nicht finden, ob er beim starten seine Position kennt 
oder eine Referenzfahrt gemacht werden muss?

von STK500-Besitzer (Gast)


Lesenswert?

M. S. schrieb:
> WDGA 36E CANopen

Ist ein Absolutwertdrehgeber.
Aber jetzt mit Automatisierungsgedöns arbeiten?
CANopen ist auch etwas komplizierter als nur ein Poti per ADC 
auszulesen.
Dann kannst du auch gleich einen Servo-Motor (nicht die Dinger aus dem 
Modellbau) verwendem.

von M. S. (perilun)


Lesenswert?

Ich habe einen maximalen Winkel von max. 90° (minimal 15°), Genauigkeit 
unter 1°, (nicht 2-3 Umdrehungen, habe mich vertan), die eingestellt 
werden sollen, und einen Drehmoment an der Ausgangswelle von 20 Nm. 
Keine Geschwindigkeit oder Beschleunigungen. Wie kann aus diesen beiden 
Größen der notwendige Motor bestimmt werden.
Leider sind alle Auslegungsgleichungen mit Geschwindigkeit. Ich brauche 
eben das Moment. Gibt es dort Begrenzungen was die Geschwindigkeit 
angeht?

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

M. S. schrieb:
> Ich habe einen maximalen Winkel von max. 90° (minimal 15°)
Wie passen jetzt da die 300° dazu?

> einen Drehmoment an der Ausgangswelle von 20 Nm
Dort also, wo der Hebel drauf sitzt?

> Wie kann aus diesen beiden Größen der notwendige Motor bestimmt werden.
Du brauchst noch die Übersetzung und die Verluste deines 
Schneckengetriebes. Und dann musst du noch wissen, wie schnell du da 
verfahren willst. Denn wenn du viel Zeit hast, dann baruchst du nur 
einen hinreichend starken Motor, aber keinen schnellen. Denn wenn die 
Geschwindigkeit-Drehmoment-KL zu schnell abfällt, dann reicht das Moment 
nicht mehr, um die endgültig nötien 20Nm aufzubringen.
Siehe 
https://www.orientalmotor.com/stepper-motors/technology/stepper-motor-overview.html

von Schnecke (Gast)


Lesenswert?

20 Nm am Hebel, also nach der Schnecke sind doch einfach. Die Schnecke 
ist selbsthemmend, die Untersetzung durch die Schnecke kennst nur Du 
oder Dein Lehrer oder ihr beiden. 20 Nm / Untersetzung = Drehmoment des 
Motors. Ein paar Reibungsverluste solltest Du noch einrechnen.

Zeig doch mal die ganze Aufgabe und das was Du schon gerechnet, 
herausgefunden hast.

Bisher wars ja nur Rumgeeiere vom Feinsten.

von M. S. (perilun)


Lesenswert?

Lothar M. schrieb:

> Wie passen jetzt da die 300° dazu?
 Gar nicht, habe mich vertan
>> einen Drehmoment an der Ausgangswelle von 20 Nm
> Dort also, wo der Hebel drauf sitzt?
Ja genau.

>> Wie kann aus diesen beiden Größen der notwendige Motor bestimmt werden.
> Du brauchst noch die Übersetzung und die Verluste deines
> Schneckengetriebes. Und dann musst du noch wissen, wie schnell du da
> verfahren willst. Denn wenn du viel Zeit hast, dann baruchst du nur
> einen hinreichend starken Motor, aber keinen schnellen. Denn wenn die
> Geschwindigkeit-Drehmoment-KL zu schnell abfällt, dann reicht das Moment
> nicht mehr, um die endgültig nötien 20Nm aufzubringen.
> Siehe
> 
https://www.orientalmotor.com/stepper-motors/technology/stepper-motor-overview.html

Das ist alles klar. Wie schnell darf den ein Motor fahren, um die 15° 
auf max 1° zu positionieren?
Ich meine mit 5 rpm legt er ja den Winkel von 20° ziemlich schnell 
zurück.

von M. S. (perilun)


Lesenswert?

Schnecke schrieb:
> 20 Nm am Hebel, also nach der Schnecke sind doch einfach. Die
> Schnecke
> ist selbsthemmend, die Untersetzung durch die Schnecke kennst nur Du
> oder Dein Lehrer oder ihr beiden. 20 Nm / Untersetzung = Drehmoment des
> Motors. Ein paar Reibungsverluste solltest Du noch einrechnen.
>
> Zeig doch mal die ganze Aufgabe und das was Du schon gerechnet,
> herausgefunden hast.
>
> Bisher wars ja nur Rumgeeiere vom Feinsten.

Das was ich weiß habe ich angegeben, mehr weiß ich auch nicht. Ich 
wollte zuerst den Motor bestimmen und auf der Grundlage des Motors die 
Schnecke berechnen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

M. S. schrieb:
> Das was ich weiß habe ich angegeben, mehr weiß ich auch nicht.
Dann musst du offenbar erst noch ein wenig Info einholen, um den Motor 
samt Übertragungsstrecke festlegen zu können. Die entsprechenden Fragen 
wurden ja schon gestellt. Gib sie an den weiter, der sie beantworten 
kann.

> Ich wollte zuerst den Motor bestimmen und auf der Grundlage des Motors
> die Schnecke berechnen.
Da musst du aber schon noch ein wenig mehr beachten:
https://de.wikipedia.org/wiki/Selbsthemmung

Zuerst kommt die Berechnung der Mindeststeigung, die die Schnecke 
haben muss. Dann kann man schauen, obs dafür einen Motor gibt, der des 
Zeug schnell genug bewegen kann.
Wenn ja: fertig.
Wenn nein: Design hinterfragen.

Denn wenn du endlos viel Zeit zum Umpositionieren hast, dann reicht der 
kleinste Motor, der die Schnecke mit ihrer Wahnsinnsübersetzung gerade 
so noch bewegt bekommt...

: Bearbeitet durch Moderator
von M. S. (perilun)


Lesenswert?

Natürlich habe ich bestimmte Bauraumbeschränkungen für die schnecke, 
höchstens 100 mm Achsabstand.

Die Frage ist wie schnell darf sich die Welle drehen, damit sie mit 1° 
Genauigkeit die 20° umsetzt?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

M. S. schrieb:
> Die Frage ist wie schnell darf sich die Welle drehen, damit
> sie mit 1° Genauigkeit die 20° umsetzt?
Da gibt es keinen Zusammenhang, denn wie genau der Klapparatismus ist, 
ist unabhängig davon, wie schnell er ist.

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
Noch kein Account? Hier anmelden.
Lade...