Hallo zusammen,
ich möchte für ein Automatisierungs Testaufbau mehrere Schrittmotoren
einsetzen. ca Nema 23 mit 3NM.
Während des Automatisierungs-Ablaufs müssen die Motoren unterschiedliche
Lastmomente verarbeiten können. Normalerweise werden die Schrittmotoren
mit Takt und Richtungs Signalen angesteuert als Rampe bzw. nach oben
offene und untene Parabel angesteuert so dass sich eine quasi S förmige
Anfahr und Anahlte Kurve ergibt.
Bei einer CNC Anwendung ist z.B. das auftretende Lastmoment durch die
Geometrie, Materialgewicht, Übersetzung usw. nahezu konstant so dass man
bei ausreichender Reserve davon ausgehen kann, dass keine
Schrittverluste auftreten können.
Wenn sich die Lastmomente durch z.B. in zufälliger Reihenfolge zu
verarbeitende kleine und größere Lasten wesentlich unterscheiden (
kleinste Last = 100 % , größte Laste 300 % müssten die Ansteuer Rampen
immer nach der größten Last dimensioniert werden und viel
Geschwindigkeitspotential verschenkt werden.
Ich möchte nun aus Kostengründen eine standard Stepper Endstufe
verwenden und meine eigene Steuerung per Mikrocontroller dazwischen
hängen.
Dieser soll die Impulse eines Drehencoder, welcher sich auf der
Rückseite des zweiachsigen Schrittmotors befindet auswerten.
In meinem Fall würden schwere Lasten automatisch langsamer und leichtere
Lasten automatisch schneller verarbeitet. Der SW Regler im Controller
würde dann anhand der Lastaufnahme quasi in Echtzeit eine "quasi"
Einschaltkurve aufnehmen und daraus die Parameter für die Rampe für
Verarbeitung des Objectes errechenen.
Ist diese Vorhaben so durchführbar oder hab ich einen groben Denkfehler
?
Fertige Kombinationen Schrittmotor + Encoder + Endstufe mit Encoder
Auswertung sind sehr teuer, wenn mann bedenkt, dass ich davon 4 oder 5
bräuchte.
Bin für jeden Tipp dankbar.
Puh! Da brauchst du einen Encoder, der den Lastwinkel misst. Und eine
Regelung, die den Winkel unterhalb des kritischen Wertes hält - Wenn der
Motor einen Schritt verloren hat, musst du ja wieder bei Start/Stop
Frequenz neu anfangen.
Kein Wunder, dass so etwas teurer als ein Servomotor wird.
Hallo gast,
die erste Frage ist folgende
willst du syncronen Betrieb machen mit mehreren Motoren ????
Oder willst du nur schauen, dass die Motoren trotz großer Last dort sind
wie sie sein sollen ...
Dann die Frage weiter: Wenn der Motor in hoher Drehzahl ist, und dann
kommt die Last, welche Strategie hast du vor um den Motor wieder hoch zu
bekommen...
Denn dann musst du wieder mit Rampe hochkommen.
Dann: 1. Soll das nur ein Motor sein pro Kontroller
2. Wenn mehrere Motoren wie Synconisieren ???
Schrittmotoren haben ein maximales Drehmoment. Wenn dieses Überschritten
wird, ist es sehr schwer diese wieder einzufangen.
Da sind Servos eigentlich das richtige (Und auch teurer)
denn diese können teilweise kurz bis zu 400%.
Beschreibe mal genauer was du vor hast.
Gruß Thomas
Hallo zusammen,
vielen Dank für die Reaktionen :-))
1a). willst du syncronen Betrieb machen mit mehreren Motoren ????
1b). Oder willst du nur schauen, dass die Motoren trotz großer Last dort
sind wie sie sein sollen ...
Eindeutig 1b).
Nur die genaue Position bzw. Momentan-Drehzahl soll bekannt bzw.
geregelt werden.
2a). Wenn der Motor in hoher Drehzahl ist, und dann kommt die Last,
welche Strategie hast du vor um den Motor wieder hoch zu bekommen...
Der Ablauf geht in die Richtung, dass ein Gegenstand mit
unterschiedlichem Gewicht und Größe per Zangen-/Greifmechanik
aufgenommen und umplaziert werden soll.
3a). Soll das nur ein Motor sein pro Kontroller
3b). Wenn mehrere Motoren wie Synconisieren ???
Eindeutig 3b).
Alle Endstufen der Motoren werden von einem einzigen Controller
angesteuert. Falls die Rechenbelastung wegen der zeitgerechten
Auswertung der Encoder Signale zu hoch wird, muss ich evtl. kleine
Microcontroller je Endstufe nur für die Regelungs - Loop einsetzen.
Im ersten Schritt zum Testen werde die Motoren im Vollschritt Betrieb
laufen lassen.
Wenn ich die Motoren im Mikroschritt Betrieb betreibe wird die benötigte
Rechenleistung schon sehr hoch.
Das sind eben jetzt genau die Gedanken die ich mir mache.
Du hast Dir da was sehr Großes vorgenommen. Hast Du Zeit, monatelang zu
tüfteln? Wenn die Zeit begrenzt ist, kommst Du mit Servomotoren
wahrscheinlich eher ans Ziel. Auch bei Servomotoren ist selbstbau der
Elekronik möglich, was die Kosten etwas senken könnte.
Schrittmotoren auf Schrittverlust zu überwachen ist eine Sache, gut
erprobt, und sicher machbar. Aber Schrittmotoren so anzusteuern, zu
regeln, daß es gar nicht zum Schrittverlust kommt, da haben sich selbst
Motor-Spezialisten schon die Zähne ausgebissen.
Wenn man sich dabei auf die Inkrementalgeber-Signale stützen will, muß
der Geber recht hochauflösend sein -> Sehr teuer. Man kann aber auch aus
der BEMF des Motors Informationen gewinnen, dann tut's aber nicht die
Standard-Endstufe von ebay.
Mit freundlichen Grüßen - Martin
Hallo,
ich würde schlicht und einfach sagen, geht nicht. Ein Schrittmotor ist
ein Synchronmotor, der entweder sauber seine Schritte ausführt oder
katastrophal ausser Tritt fällt, meistens kommt er sofort und brutal zum
Stillstand und oszilliert nur noch hin und her. Eine Rückmeldung für
zunehmende Belastung gibt es nicht.
Ich habe zwar eine Überwachung per Hallsensor eingebaut und kann
feststellen, ob der Motor sich noch dreht, aber die Konsequenz, falls
das mal nicht der Fall ist, ist ein komplett neuer Anlauf von der
Drehzahl 0 an. Garantiert nicht das was du dir wünschst.
Im Gegensatz dazu kann man bei einem Gleichstrommotor die bei Belastung
absinkende Drehzahl einfach nachregeln, bzw. die übliche innere
Regelschleife für die Drehzahl tut das sowieso.
Aber vielleicht schreibst du ja die Geschichte der Regelung neu.
Georg
Hallo zusammen,
ich kann eure Argumentation gut nachvollziehen.
Mir scheint allerdings, dass sich meine Aufgabenstellung von dem
unterscheidet war ihr angenommen hat.
Beispiel 1: zur Veranschaulichung:
Ein Schrittmotor soll mittels einer direktgekoppelten Kugelumlaufspindel
einen Schlitten über eine bestimmte Strecke z.B. 800mm horizontal
bewegen.
Die Last auf dem Schlitten ist bei einem Vorgang z.B. 5 Kg und beim
nächsten 15 Kg usw.
Es handelt sich also um eine wechselnde Last.
Allerdings stellt sich jetzt die Frage mit welcher "Rampe" kann ein
gegebener Schrittmotor angesteuert werden, damit die Last in der kürzest
möglichen Zeit von A nach B transportiert wird ?
Ohne Encoder Signal kann nur die maximale Last angenommen werden,
Sicherheitszuschlag einrechnen usw.
Mit Auswertung des Encoder Signals wird der Motor mit einer Start
Frequenz angesteuert und anhand des gelesenen Drehwinkels vom Encoder
ermittelt wann der gewünschte Drehewinkel erreicht wurde.
Aus der jeweiligen Zeit Delta T die der Schlitten jeweils zum erreiches
des nächsten vorgegebenen Drehwinkels benötigt kann eine "optimale
Geschwindigkeit" erreicht werden.
In "gewissen Grenzen" könnten mit diesem Verfahren sogar Störgrößen
ausgeregelt werden ohne dass der Motor aus dem Tritt kommt.
Was meint ihr dazu ?
Was spricht gegen den Ansatz:
In den Greifer eine Waage einbauen
Die optimalen Beschleunigungen für unterschiedliche Massen bestimmen
Die Bahnen mit einer normalen Steuerung abfahren
Eventuell noch auf Schrittverluste überprüfen - Experiment widerholen.
Hallo zusammen,
Vorschlag: In den Greifer eine Waage einbauen
Wenn meine Aufgabenstellung dem o.g. Beispiel entsprechen würde wäre das
natürlich die nächstliegende Lösung.
Das Beispiel war lediglich eine Veranschaulichung was mit wechselnder
Last gemeint war. Übrigens erhöht die konstruktive Lösung für eine Waage
im Greifer in einem einfachen Automatisierungsprozess die komplexität
der Mechanik gewaltig.
Wichtig Frage bezüglich Schrittverluste:
========================================
Ich hab das bisher so verstanden:
Die Endstufe erhält die Taktsignale und errechnet intern die neuen
Spannungswerte für die beiden Spulen des Schrittmotors.
Die Spannung an der einen Spule wird etwas erhöht, die Spannung an der
anderen Spule wird etwas erniedrigt.
Je nach Betriebsart : Vollschritt, Halbschritt, Mikroschritt usw. ist
die Delta Spannung größer oder kleiner.( bis zu einem sinusförmigen
Gesamtverlauf )
Wenn nun z.B. durch eine unerwartet auftretendende zu große Last die
Welle dem nächsten Schritt nicht folgen kann, kann dies von der Endstufe
nicht erkannt werden. Sie geht davon aus, dass die richtige Position
erreicht wurde. Es entsteht sozusagen ein Versatz.
Die von der Endstufe eingestellt Spannung an den beiden Spulen passt
nicht mehr zu der aktuellen Position der Welle.
Folgende Randbedingungen:
a. wir befinden uns im Vollschritt Betrieb.
b. durch äußere Störbeeinflussung wurden 2 oder 3 Schritte von der Welle
noch nicht vollzogen
c. Die Auswertung des Encoder Signals erkennt diese Abweichung.
d. er controller gibt KEINE weiteren Ansteuer Impulse und wartet
Kann man sagen, dass in diesem Fall die Welle nach einer bestimmten Zeit
automatisch wieder die korrekte Position einnimmt bezogen auf die
Spannungen, welche die Endstufe momentan eingestellt hat ?
Bei Auswertung des Drehwinkel Encoder Signals erscheint mir deshalb das
unbedingte Vermeiden der Schrittverluste nicht als höchste Priorität.
Stepper_Fragender schrieb:> Bei Auswertung des Drehwinkel Encoder Signals erscheint mir deshalb das> unbedingte Vermeiden der Schrittverluste nicht als höchste Priorität.
Damit gibst du freiwillig den einzigen Vorteil von Schrittmotoren
gegenüber den Servos auf. Einer der wenigen Vorteile von Schrittmotoren
ist ja die Zugehörigkeit von Schritt zu Winkel - wenn du darauf
verzichtest, hat der Stepper keinen einzigen Vorteil gegenüber dem
Servo. Ab jetzt ist der Servo mit Drehgeber der alleinige Kandidat, um
dein Problem sinnvoll zu lösen.
Das Problem dabei - nach einem Schrittverlust kannst du nicht weiter
machen. Du musst die Beschleunigung wieder bei Start/Stop Frequenz neu
beginnen.
Würde drauf hinauslaufen - deine Regelung scheppert 3 mal, breibt
stehen, danach hat sie raus, wie stark sie beschleunigen darf.
Hallo Stepper_Fragender
ich will mal zum Abschluss hier nochmals was dazu schreiben.....
Das was du vor hast, machen wir bei uns in der Firma.
Das ist jetzt ein ca 5 Mann Jahre Projekt.
Im Prinzip haben wir genau das was du suchst. Leider ist der Preis nicht
im Hobby Bereich.
Aber wenn du eine Steuerung suchst, die 5 Achsen (oder max 9)
interpoliert fahren können soll. Das mit Encoder im Closed Loop auf dem
Schrittmotor....
einfache PLC im Hintergrund zum steuern. Je nach Ausbau mit 12 Relais
Ausgänge und 12 Potokoppler Eingänge....
Das Ganze als DLL um eine eigene Oberfläche zu schreiben .....
Ja www.4cam.de PowerdriveXT
Dort steht auch unsere Telefonnummer....
Gruß Thomas
Noch einer schrieb:> deine Regelung scheppert 3 mal, breibt> stehen, danach hat sie raus, wie stark sie beschleunigen darf.
Der erste Halbsatz stimmt, der 2. wahrscheinlich nicht - der Stepper
müsste mit immer mehr Strom und/oder langsamerer Rampe neu anfahren, bis
er die Last schafft, aber zu der Zeit hat ein DC-Antrieb längst sein
Ziel erreicht.
Stepper_Fragender schrieb:> Die von der Endstufe eingestellt Spannung an den beiden Spulen passt> nicht mehr zu der aktuellen Position der Welle.
Wenn es den so einfach wäre - es geht nicht um "passt nicht", sondern
nach 2 Schritten ist die Magnetisierung genau entgegengesetzt der
erforderlichen, d.h. das System steht auf Vollbremsung. Das entspricht
auch meiner praktischen Erfahrung, der Motor kommt mit einem lauten
Knall augenblicklich zum Stillstand, und das tut der Mechanik garnicht
gut.
Stepper_Fragender schrieb:> Bei Auswertung des Drehwinkel Encoder Signals erscheint mir deshalb das> unbedingte Vermeiden der Schrittverluste nicht als höchste Priorität.
Das ist schlicht Unverständnis der Stepper-Funktion.
Georg
Die Diskussion läuft in die total falsche Richtung. Hätte damals jemand
Linus Torvalds gesagt, was das für ein Aufwand wird, hätten wir heue
kein Linux.
Hallo zusammen,
vielen Dank für eure Beiträge.
Der Einsatz von Servomotoren ist freilich aus mehreren Gründen die
bessere Wahl.
Dem steht der höhere Preis entgegen, weshalb von mir Schrittmotoren in
Erwägung gezogen werden.
Ich denke ich hab jetzt auch verstanden warum das Problem nicht mit der
Kombination
- Schrittmotor
- Standard Endstufe
- Drehencoder
- Individual Controller
vernünftig gelößt werden kann.
Das eigentliche Problem ist die "Standard Endstufe".
Wenn die Endstufe direkt in die Regelschleife miteinbezogen wird, wie es
verschiedene Hersteller ja durchaus machen und auch z.B. auf youtube
Videos eindrucksvoll demonstrieren, dann sieht die Sache wieder ganz
anders aus.
Die integrierten Bausteine der Standard China Schrittmotrr Endstufen
sind mir bekannt. Es ist möglich indirekt über den Shunt Widerstand den
momentanen Strom und dadurch die momentane Leistung der Endstufe zu
ermitteln, welche ungefähr proportional zur momentanen Leistung der
Welle ist.
Wäre ein Entwurf möglich, der auf diese Weise das "außer Tritt kommen"
des Schrittmotors verhindert so dass eben kein Neuanlauf aus dem Stop
Zustand notwendig ist.
Ohne dass ich jetzt in Erwägung ziehen möchte eine Schrittmotor Endstufe
entwickeln zu wollen würde mich trotzdem interessieren wie das ungefähr
gelöst wird.
Kennt sich jemand aus ?
Funktioniert halt bei einem BLDC besser als bei einem Schrittmotor. Wenn
du nach BEMF BLDC suchst, wirst du mit Mathe und Beispielcode
erschlagen. BEMF stepper sieht da recht mau aus.
Hallo @all
ich bin ohne Ahnung. Die mir scheinbar einfachste
Möglichkeit.:Drehencoder erlaubt die Position zum Umschalten der
Spulenpaare. Lässt der uC alle Signale durch, hast du einen DC-Motor
gebaut. Große Last-> langsam; kleine Last -> schnell
Der uC kann nun frei entscheiden, ob es mit dem Umschalten länger wartet
um langsamer zu gehen.
Messung der Masse durch Leistungsaufnahme hört sich interessant an. Aber
braucht wohl erst einmal ein "proof of concept" (Wie genau / wie schnell
kann ich messen)
Gruß Felix
Hallo,
deinem Vorhaben stehen u.a. 2 Punkte entgegen:
Schrittmotoren haben, wie andere Synchronmotoren auch, eine Kennlinie
mit Abriss: solange das Drehmoent ausreicht, drehen sie mit der Frequenz
des Feldes, wenn nicht mehr geht die Drehzahl schlagartig gegen 0. Was
du möchtest ist den Motor an dieser steilen Abrisskante zu betreiben.
Üblicherweise und mit gutem Grund werden Schrittmotoren mit
Konstantstrom betrieben. Man kann daher nicht aus dem Strom auf die
Belastung schliessen, denn der Strom wird von der Endstufe eingeprägt.
Georg
Hallo Georg,
nochmal Danke für Deinen Hinweis.
Beim Nachdenken über die Zusammenhänge ist mir mein selbst meine
fehlerhafte Annahme aufgefallen, also die Meinung, man könne über den
Strom auf das Lastmoment schließen. Der maximale Strom kann bei den
Endstufen zwar meist über einen Jumper in Stufen eingestellt werden, ist
aber dann eingeprägt.
Mit dem Problem, dass der Motor aus dem Grund ja auch sehr heis wird,
falls keine Ruhestromabsenkung aktiviert ist. Oder man diese wegen dem
notwendigen Haltemoment nicht aktivieren möchte.
> Was du möchtest ist den Motor an dieser steilen Abrisskante zu betreiben.
Nun ja, was ich möchte ist eher eine Betriebsart wie z.B. die Leadshine
Schrittmotr Endstufen mit Encoder Eingang haben. Die Teile sind
eigentlich nicht aus dem Tritt zu bringen.
Mir ist schon klar, dass da viel Know How, Bauteilaufwand und
entsprechend Kosten dahinter stecken.
Einen Schrittmotor über die Signale eines angeflanschten Encoders zu
kommutieren klingt verlockend, ist aber praktisch schwer umzusetzen.
Probleme sind dabei der exakte Gleichlauf von Schrittmotor-Schritten,
und Encoder-Signalen, und der Zeitverzug zwischen Impulsausgabe, und
Rückmeldung des Encoders. Auch die mechanische Ankopplung muß sehr steif
sein. Will man am Motor selbst messen, läuft das darauf hinaus, den
Strom einzuprägen, und die Spannungen an den Wicklungen zu messen. Dabei
muss man auch die Phasenverschiebung zwischen Strom und Spannung korrekt
erfassen, nur so kann man die interessanten Informationen gewinnen. Das
geht aber nur, wenn der Motor eine gewisse Mindest-Drehzahl erreicht
hat.
Mit freundlichen Grüßen - Martin
Schrittmotoren mit Encoder sind Brot- und Butterware in der Industrie
und überhaupt nichts besonders.
Der "Trick" besteht nur darin, den Schrittmotor als Synchronmotor mit
zwei statt drei Phasen zu betrachten.
Und nein, solche Systeme sind eben genau nicht teuer, sondern günstige
Alternativen für "klassische" Servomotoren mit drei Phasen, vor allen
bei den kompakten Bauweisen mit niedrigen Drehzahlen. Da braucht es dann
kein Getriebe mehr, und damit geht der Systempreis gut in den Keller.
Hallo Georg,
> Schrittmotoren haben, wie andere Synchronmotoren auch, eine Kennlinie> mit Abriss: solange das Drehmoent ausreicht, drehen sie mit der Frequenz> des Feldes, wenn nicht mehr geht die Drehzahl schlagartig gegen 0. Was> du möchtest ist den Motor an dieser steilen Abrisskante zu betreiben.
Das stimmt nicht, bzw. nur so lange du den Motor ungeregelt (open-loop)
betreibst. Gerade in den letzten Jahren hat sich bei der Regelung von
Schrittmotoren aber einiges getan. Vielleicht solltest du dein Wissen
nochmal etwas auffrischen...
> Üblicherweise und mit gutem Grund werden Schrittmotoren mit> Konstantstrom betrieben. Man kann daher nicht aus dem Strom auf die> Belastung schliessen, denn der Strom wird von der Endstufe eingeprägt.
Auch das ist nicht richtig. Schau dir mal die ICs von Trinamic oder TI
an, die machen genau das. Irgend wo her muss die Leistung ja kommen, die
der Motor an die Last abgibt. P(eingang)=P(verlust)+P(mechanisch). Wenn
P(mechanisch) steigt, muss auch (eingang) steigen). Die ohmschen
Verluste werden jedenfalls nicht sinken. ;)
Mit freundlichen Grüßen
Thorsten Ostermann
Hallo Stepper_Fragender,
> Beim Nachdenken über die Zusammenhänge ist mir mein selbst meine> fehlerhafte Annahme aufgefallen, also die Meinung, man könne über den> Strom auf das Lastmoment schließen.
Deine fehlerhafte Annahme ist, dass das Beschleunigungsmoment welches
für die Last aufgewendet wird, einen wesentlichen Anteil an der
Gesamtbelastung des Motors hat. Der Motor muss ja auch noch sich selbst
sowie die mechanischen Übertragungselemente beschleunigen, außerdem die
mechanische Reibung überwinden, ggf. gegen Gewichtskraft oder von außen
angreifende Kräfte anwirken. Klar kann man über die Anpassung der
Beschleunigung etwas optimieren. Aber da holst du mit großem Aufwand
vermutlich nur 10% heraus.
Mit freundlichen Grüßen
Thorsten Ostermann