Hallo Zusammen, vielleicht hat jemand eine Idee. Ich möchte mit einem 2-Phasen-Schrittmotor (NEMA 34) in echtzeit eine Funktion abbilden. f=arcsin(sin(...)) Var A) Ich kaufe eine Motorendstufe mit Puls/Richtungseingang. Die Signale erzeuge ich mit einem Gerät dessen Name ich nicht kenne :D Es hat einen internen Speicher in welchen ich eine Tabelle laden kann. In dieser Tabelle möchte ich meine Funktion mit unterschiedlichen Delays zwischen den Schritten abbilden. Meine Pulse werden also mit unterschiedlichen Abständen (die ich in der Tabelle einspeichere) ausgegeben. Die Richtung spielt keine Rolle. Das müsste es doch geben oder? Wie könnte sowas heißen? VarB) Ich kaufe eine Motorendstufe mit analogem Geschwindigkeitseingang (0-10V) und hänge dort einen Arbiträrfunktionsgenerator dran. Die Motorendstufen die ich bisher gefunden habe, haben jedoch nur eine Auflösung von 36 Geschwindigkeitsschritten also 0,36V. Hier brauche ich eine deutlich höhere Auflösung. Außerdem benötige ich eine Mikroschrittauflösung von 12800 Steps/rev. Der Motor benötigt 8A/ph für M_max. Hier reicht auch -20%. Kennt jemand einen Namen oder Hersteller für die Pulserzeugung von VarA oder eine passende Endstufe für VarB)? Vielen Danke für eure Hilfe! Gruß
Ich weiß noch nicht, ob und was ich zur Antwort beitragen kann, aber sie hat jedenfalls meine Neugierde geweckt. Was ist eigentlich der Parameter der Funktion, also die Definitionsmenge? Und wie wird sie physisch repräsentiert? Die Zielmenge ist, offensichtlich, erstmal ein Winkel, nämlich die Achsenposition des Motors. Richtig? Kann es sein, dass der Parameter eine von der Zeit linear abhängige Grösse in einem bestimmten Intervall ist? Also eine Art Plot in 1s oder 10s? Oder anders? Rein mechanisch geht das nicht zufällig? Was treten da für Kräfte am Eingang auf? 8A pro Phase ist schon eine Nummer für sich. Vielleicht magst Du ja auch mal ausführlicher erklären, für welches Problem Dein Ansatz eine Lösung ist. Nur eben, aus Neugierde. Ob ich was dazu sagen kann, weiß ich noch nicht.
Michael S. schrieb: > Var A) Ich kaufe eine Motorendstufe mit Puls/Richtungseingang. Die > Signale erzeuge ich mit einem Gerät dessen Name ich nicht kenne :D > > Es hat einen internen Speicher in welchen ich eine Tabelle laden kann. > In dieser Tabelle möchte ich meine Funktion mit unterschiedlichen > Delays zwischen den Schritten abbilden. Meine Pulse werden also mit > unterschiedlichen Abständen (die ich in der Tabelle einspeichere) > ausgegeben. Die Richtung spielt keine Rolle. > Das müsste es doch geben oder? Wie könnte sowas heißen? Das sollte sich mit einer passenden Schrittmotorendstufe und einem Arduino oder auch RaspberryPI oder ähnlichem Ding recht schnell realisieren lassen. Falls ein Bastel-Aufbau reicht und bissl mehr "richtige" Programmierung sein darf ginge auch ein STM Nucleo mit dem Powerstep Eval Board, das sollte den Strom packen. Die 12800 Positionen pro Umdrehung die 64fach Mikroschritte bei 200 Schritten/Umdrehung suggerieren kann der Motor mechanisch sicher nicht open-loop anfahren.
Michael S. schrieb: > Ich möchte mit einem 2-Phasen-Schrittmotor (NEMA 34) in echtzeit eine > Funktion abbilden. f=arcsin(sin(...)) Im Klartext: 1. Ein µComputer rechnet den Wert der Funktion aus, wobei sich die Frage stellt, woher die Variablen für die Funktion kommen sollen, da von Echtzeit die Rede ist - Messwerte?? 2. Eine CNC-Steuerung fährt auf einer motorgetriebenen Achse die Position an, die dem ausgerechneten Wert entspricht. Ob mit Schrittmotor oder einem anderen Antrieb ist sekundär. Oder ist das völlig falsch verstanden? Und warum so ein Monster-Schrittmotor? Ist das eine Aufgabe im Studium, ohne realen Bezug? Georg
Hallo, in der Funktion ist f ein Winkel phi. Der Motor hängt an einer Welle, die über eine Kurvenscheibe einen Pleuel antreibt. Bei konstanter Drehzahl beschreibt der Pleuel (durch die Form der Kurvenscheibe) einen Sinus. Durch die oben beschriebene Funktion wird eine Hubvariation ermöglicht. Hierbei wird nur ein Teil der Kurvenscheibe genutzt (+/- 30° <- Parameter 1, Frequenz = Parameter 2) aber immernoch ein Sinus ausgegeben. Der Motor pendelt also. Hierbei ist die Wiederholbarkeit ein wichtiger Punkt, damit die Periodendauer sich nicht unterscheidet. Deshalb möchte ich die Fahrbefehle nicht über eine Windowsmaschine erzeugen (Virenprog. o.ä könnte den Ablauf stören), sondern extern. Eine mechanische Umsetztung ist nicht möglich. Die maximale Last sind 10Nm (Motor kann 12 ;) ) grüße
> Mikroschrittauflösung von 12800 Steps/rev
Da hast du dir ja was vorgenommen. Mikroschrittstufen und Drehwinkel
sind nicht proportional. Steht der Motor, tut sich bei den ersten
Mikroschritten gar nichts. Sobald der Strom das Haltemoment
überschreitet, springt der Rotor.
Aus diesem Grund benutzen Werkzeugmaschinen BLDC-Motoren mit teurer
Regelung.
rmu schrieb: > Das sollte sich mit einer passenden Schrittmotorendstufe und einem > Arduino oder auch RaspberryPI oder ähnlichem Ding recht schnell > realisieren lassen. Wahrscheinlich schon, aber das ist mir zu kompliziert. Mit Linux kenne ich mich nicht aus. Einen Pulsgenerator mit programmierbaren Delays zwischen den Schritten müsste es doch geben. Georg schrieb: > 1. Ein µComputer rechnet den Wert der Funktion aus, wobei sich die Frage > stellt, woher die Variablen für die Funktion kommen sollen, da von > Echtzeit die Rede ist - Messwerte?? Die Werte der Funktion möchte ich voher ausrechnen und sie dem Gerät übergeben. Die Umsetzung mit einer CNC Steuerung beeinhaltet relativ viel Programmieraufwand. Das würde ich gerne vermeiden.
Watt mir so durch den Kopp geht: 1. Um eine Kurve zu plotten braucht’s üblicherweise 2 Motore (X und Y). 2a. Auf die höheren Mikroschrittoptionen würde ich keinen Cent setzen. Folglich winkt Dir ein Getriebe. 3a. Letzteres sollte möglichst Spielfrei sein (12800/1 ist ganz schön ziemlich). 2b. Analog aufgebaut sollte das Ganze noch mehr wie genau sein. 3b. Einen Analogwert mit garantierten 17 Bit auszugeben ist auch nicht ohne. Vielleicht legst Du Deinen Wunschzettel mal beiseite und kommst in die Realität zurück. Alternativ: Lass Dir mal unbegrenzt Prokura einräumen.
Amateur schrieb: > Watt mir so durch den Kopp geht: > 1. Um eine Kurve zu plotten braucht’s üblicherweise 2 Motore (X und Y). nein, phi(t) ist doch eine kurve. > 2a. Auf die höheren Mikroschrittoptionen würde ich keinen Cent setzen. > Folglich winkt Dir ein Getriebe. > 3a. Letzteres sollte möglichst Spielfrei sein (12800/1 ist ganz schön > ziemlich). Getriebe geht garnicht wegen Versatz. Der soll so weit möglich vermieden werden. Außerdem kann mein Motor ja genau die Drehzahlen & Drehmoment die ich haben möchte. Die Auflösung ist auch möglich. > 2b. Analog aufgebaut sollte das Ganze noch mehr wie genau sein. > 3b. Einen Analogwert mit garantierten 17 Bit auszugeben ist auch nicht > ohne. Muss ja nicht analog sein. Ich würde VarA auch bevorzugen. Wenn jemand den Namen des Geräts kennt, was mir (wie oben gesagt) am laufenden Band Pulse mit vorher definierten, variablen Delays ausgibt bin ich glücklich! :) > > Vielleicht legst Du Deinen Wunschzettel mal beiseite und kommst in die > Realität zurück. > Alternativ: Lass Dir mal unbegrenzt Prokura einräumen. Wenns so einfach wäre würde ich hier nicht reinschreiben ;) Grüße
Michael S. schrieb: > Wahrscheinlich schon, aber das ist mir zu kompliziert. Naja. Einfach wird das Ganze, meiner Meinung nach, ohnehin nicht. Du hast nur die Wahl auf was Du Dein Geisteskräfte richten willst. > Einen Pulsgenerator mit programmierbaren Delays zwischen den Schritten > müsste es doch geben. Der muss ja auch noch parametrisierbar sein. Also je nach dem Wert an zwei Eingängen unterschiedliche Verläufe erzeugen. Übrigens: Meiner Meinung nach ist so ein Gerät mit ZWEI arbiträren Dimensionen (Spannung und Zeit), bis auf einen Punkt äquivalent zur zeitlich äquidistanten Ausgabe von Signalformen. (Der abweichende Punkt wäre denn, dass das Zeitraster passend gewählt wird bzw. gewählt werden kann). Sowas nennt sich dann "Arbitrary Waveform Generator". Allerdings fallen mir so auf Anhieb auch keine ein, die sich über zusätzliche Eingänge kontinuierlich parametrieren lassen. (Die Frequenz kann man natürlich ändern). Wenn das ganze dann noch kontinuierlich - also nicht quantifiziert - funktionieren soll, wird es möglicherweise schwierig. Das hinge von den nötigen Auflösungen und Genauigkeiten ab. Mechanik wäre da die bessere Lösung. Und Getriebe ohne bzw. mit geringem Spiel gibt es durchaus. Leider hast Du nicht geschrieben, was das Ganze soll. Vielleicht könnte man dann Alternativen vorschlagen.
Übrigens würde das Spiel ja nur eine Rolle "spielen" :-) wenn die Drehrichtung sich ändert. Das aber ist nach Deiner Idee eine Konsequenz des Entwurfs und nicht zwingend so. Leider hast Du auch den Input nicht beschrieben; also ob das eine mechanische oder elektrische Grösse ist. Soweit ich das bisher verstehe wird lediglich die Amplitude des Hubs verändert und die Frequenz ginge ja über die Drehzahl des Antriebs. (Die man wieder einfacher regeln könnte). Naja. Leider wenig Details. Aber gut. Das ist hier oft so und die Threads verlaufen im Sande.
Der gute Thang https://www.youtube.com/user/thang010146/videos hat da übrigens relativ systematisch einige Möglichkeiten entworfen, sowas mechanisch zu machen. Dort sind auch Links zu PDFs mit geordneten Listen.
Theor schrieb: > > Naja. Einfach wird das Ganze, meiner Meinung nach, ohnehin nicht. Du > hast nur die Wahl auf was Du Dein Geisteskräfte richten willst. Richtig. Programmieren lernen steht gerade nicht auf meinem Plan. ;) > Der muss ja auch noch parametrisierbar sein. Also je nach dem Wert an > zwei Eingängen unterschiedliche Verläufe erzeugen. Muss nicht sein, ich kann auch die unterschiedliche Konfigurationen der Funktion nach Benutzung neu reineinladen. Eine live-Änderung der Parameter wäre geil, ist aber kein Muss. > Sowas nennt sich dann "Arbitrary Waveform Generator". Der ist aber analog. Das wäre dann VarB) wie oben schon erwähnt. > Wenn das ganze dann noch kontinuierlich - also nicht quantifiziert - > funktionieren soll, wird es möglicherweise schwierig. Das hinge von den > nötigen Auflösungen und Genauigkeiten ab. Das kann auch quantifiziert geschehen solange die Tabelle ordentlich Werte speichern kann. Es gibt auch häufig Loop-Funktionen, mit denen ich dann nur eine Periode hinterlegen müsste und diese immerwieder durchfahren wird. > Mechanik wäre da die bessere Lösung. Und Getriebe ohne bzw. mit geringem > Spiel gibt es durchaus. Finde ich auch immer schöner, ist aber keine Alternative. Habe ich schon Totüberlegt. > Leider hast Du nicht geschrieben, was das Ganze soll. Vielleicht könnte > man dann Alternativen vorschlagen. Ich möchte die o.g Funktion äquidistant, Schritt für Schritt mit einem Schrittmotor abbilden. Dazu gibt es leider keine anderen Lösungen, sorry.
Um was für Geschwindigkeiten gehts denn. Wenn der Schrittmotor 12Nm "kann" sind 10Nm Last schon sehr sportlich, vor allem wenn er die nicht nur bei Stillstand auf einer Vollschrittposition festhalten muss. Sonst ist die Idee, eine fertige CNC-Steuerung zu nehmen (z.B. Mach3 auf Windows, linuxcnc unter Linux, MachineKit für BeagleBone / Linux, GRBL für Arduino, etc...), eine fertige Endstufe anzuhängen, und die Bahn als G-Code zu erzeugen, nicht so schlecht. Ich würd aber die mechanische Variante nochmal überlegen.
Michael S. schrieb: > Pleuel Warum die Kurvenscheibe und nicht ein Direktantrieb linear (oder Hubmagnet und Positionsregelung)? Wg. Kraft? Gekoppelte Pleuel?
Danke für das rege Interesse! Ich spezifiziere meine Frage: Kenn jemand ein Gerät mit internem Speicher, mit dem ich digitale Pulsfolgen (mit unterschiedlichen Zeitabständen zwischen den Pulsen) generieren kann? Der interne Speicher soll >>1000 Einträge ermöglichen. f_max_puls <= 64 kHz Es wird nur 1 Kanal benötigt. Das Beladen des Speichers soll über eine simple Software (am Bestensten für umme) auf einem Windowsrechner möglich sein. D.h es wird eine geeignete Schnittstelle benötigt. Alternativ kann dies auch über einen USB-Stick oder eine SD-Karte geschehen) Alles anderen Eigenschaften meiner Anwendung spielen keine Rolle. Viele Dank für eure Hilfe! Gruß
:
Bearbeitet durch User
gib mal bitte die Frequenz, hub und die Masse an, die du sinusförmig bewegen willst. das Problem dabei ist wahrscheinlich die Beschleunigung des Motors. ich würde auch eher auf einen Linearmotor bei hoher Geschwindigkeit, oder einen Motor + Spindel gehen, um deinen Sinus zu erzeugen. ich glaube, das du auf dem falschen weg bist nur so als Werbung: http://www.jennyscience.de/videos/ aber ansonsten kann das jeder klein µC mit genügend speicher. aber auch ein frequenzgenerator von der Stange könnte passen. der billigste rigol kann 4k punkte ausgeben. ob die 2 kanäle für clock / Richtung synchronisiert werden weiß ich aber nicht. das ist sicher die luxuslösung, aber vll steht so etwas ja gerade zufällig rum. sg
:
Bearbeitet durch User
Massen usw ist eine andere Baustelle. Diese habe ich schon ausgelegt. Es geht nur um die Ansteuerungsmethode. Habe etwas gefunden und werde bescheid sagen wenn die Umsetzung so funktioniert. Danke für die Hilfe!
Es ist immer schwierig, gute Lösungen vorzuschlagen, wenn man nur einen Bruchteil der Problemstellung kennt. Ob ein Schrittmotor mit der hier angefragten Steuerung wirklich die richtige Lösung ist, kann man nicht sicher sagen. Auch ob die mechanische Auslegung passt und ob nicht evtl. ganz andere Ansätze zielführender wären, kann so nicht beantwortet werden. Diese Art der Problemlösung ist i.A. keine gute Herangehensweise. Wenn das aber der richtige Weg sein sollte, gibt es Schrittmotor-Steuerungen, die analoge Eingangssignale wahlweise als Sollposition oder -geschwindigkeit verwenden können, abhängig vom Anwenderprogramm [1]. Statt mit Stützpunkttabellen würde man die Steuerung dann tatsächlich über ein analoges Sinussignal machen. Mit freundlichen Grüßen Thorsten Ostermann [1] http://www.mechapro.de/LAM-DS.html
Als Antworter möchte man ja auch seinen "Spaß" haben aber wenn man das Problem nicht kennt dann ist so eine Frage einfach die nach einer Auskunft. Darüber hinaus ist ein falscher Lösungsansatz, obwohl er nicht grundsätzlich vorliegt, so häufig, dass er sogar in der Netiquette Erwähnung gefunden hat. Das sich Fragesteller aus irgendwelchen Gründen in irgendeiner Hinsicht nicht "entblößen" möchten ist schon verständlich, aber das sollte man dann auch deutlich machen denke ich. Es gibt sicherlich Leute die dafür Verständnis haben. Ein blosses "das geht Euch nichts an" (so ist das nicht geschrieben worden, aber sinngemäß), empfinde ich, mal abgesehen von dem damit verlorenen Reiz, aber eher als negativ; jedenfalls nicht als motivierend. Naja. Wie auch immer. Der TO hat ja wohl was gefunden und das Fraunhofer Institut wird sich freuen.
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.