Hallo, Ich arbeite momentan an einem Schrittmotortreiber für die Ansteuerung eines bipolaren Motors mit ca 3A Phasenstrom. Der Treiber arbeitet im Choppermodus um den Strom zu begrenzen. Der Motor soll zudem im 1/8 Schritt arbeiten. Im Zusammenhang mit der Drehfrequenz und Chopperfrequenz habe ich noch einige Fragen: Die maximale Motordrehzahl ergibt sich aus der Drehmomentkennlinie. Gibt es daneben noch eine maximale Schrittfrequenz, oder gilt: max Schrittfrequenz = max Drehzahl Schritte pro Umdrehung Stufen pro Schritt (microsteps)? Die Chopperfrequenz wählt man meistens um 20Khz (außerhalb de höhrbaren Bereichs). Um wieviel höher sollte die Chopperfrequenz gegenüber der maximalen Schrittfrequenz gewählt werden? Vielen Dank schonmal Gruß Tom
Diese Überlegungen kann man sich meistens sparen, es sei denn man verwendet hohe Versorgungsspannungen und Motore mir sehr geringer Induktivität. In der Regel wird es so sein, daß bei z.B. 10kHz Schrittfrequenz die Strombegrenzung garnicht mehr einsetzt, da der Strom nicht schnell genug ansteigen kann. Da bei hohen Schrittfrequenzen Mikroschritte nichts mehr bringen, ist es geschickter, ab einigen kHz auf 1/2 oder Vollschritt umzuschalten - bei laufendem Motor!. Bei 1/8 Schritten braucht man dann nur noch mit 2,5kHz anzusteuern anstatt mit 20kHz.
Mein Motor wird mit 42V angesteuert und hat eine Induktivität von 3,2mH. Der Strom kann demzufolge mit ca 75µs/A steigen, was sich im meinen Fall dann schon ab 5KHz bemerkbar machen wird. Kann ich denn im Betrieb einfach von 1/8 auf 1/2 umschalten? Die Treiberkarte wird mit der Standardansteuerung Takt/Richtung gespeist. Demzufolge müsste ich dann bei höheren Frequenzen nur noch jedem 4.Takt einen Schritt weiterzählen!?
Tom schrieb: > Demzufolge müsste ich dann bei höheren Frequenzen nur noch jedem 4.Takt > einen Schritt weiterzählen!? Das geht anders: du setzt ja vermutlich die Mikroschritte mit einem bestimmten Faktor 0..1 für den Strom, um einen sinusähnlichen Ausgang zu bekommen. Um zum Betrieb mit Rechteckimpulsen zurückzuschalten, musst du bloss anstatt Zwischenwerten nur noch 0 oder 1 setzen. Ob sich das lohnt, ist eine andere Frage - grundsätzlich solltest du nachmessen, wie der Stromverlauf bei hoher Schrittfrequenz ist, sinusförmig ist meiner Meinung nach immer besser als Rechteck, dann zerren am Rotor keine wechselnden Beschleunigungs- und Bremskräfte. Optimal ist es, wenn du die Mikroschrittfaktoren so "vorverzerrst", dass der Stromverlauf möglichst sinusähnlich bleibt. Das setzt geregelten Strom voraus - wenn der Chopper den Abschaltpunkt nicht mehr erreicht, werden die Wicklungen nur noch zwischen der Versorgungsspannung hin und her geschaltet und der Faktor für den Strom ist egal, also kann man dem Chopper genauso gut nur noch maximalen Strom vorgeben. Das regelt sich aber von allein: wenn der Chopper nicht mehr choppt, sind die Mikroschritte unwirksam. Gruss Reinhard
>Kann ich denn im Betrieb einfach von 1/8 auf 1/2 umschalten? >Die Treiberkarte wird mit der Standardansteuerung Takt/Richtung >gespeist. Wenn Du so fragst, vermutlich nicht :-) Du hast wohl eine Treiberkarte, bei der der Modus per Schalter fest eingestellt wird, dann kannst Du nichts umschalten. Solange Deine max. Schrittfrequenz Deinen Prozessor nicht zu sehr fordert (AVR mit 16MHZ können gut 10kHz für 2 Stepper liefern), dann mußt Du auch nichts umschalten. Umschalten kann man bei diskreten ICs, die den Schrittmodus an separaten Pins einstellbar haben. Dann schaltet man sinnvollerweise in der 'home'-Position um. Ich will das aber jetzt nicht näher erläutern. Fazit: Wenn Deine Schrittfrequenz bei 1/8 Schritten Deinen µC bei hohen Schrittfrequenzen nicht überfordert, steuere die Karte ohne Umschalten direkt an.
Sorry, dass ich den Thread wieder ausgrabe, aber ich habe dazu noch eine Frage ;-) Tom schrieb: > Der Strom kann demzufolge mit ca 75µs/A steigen, was sich im meinen Fall > dann schon ab 5KHz bemerkbar machen wird. Die 5 kHz beziehen sich doch aber auf Vollschritte. Bei 1/8 µStep würde der Chopper doch erst bei 40000 µSteps/s nicht mehr arbeiten? LG Malte
Normalerweise ist die Chopperfequenz wesentlich höher (z.B. 150kHz) als
die Schrittfrequenz (z.B. 15kHz) sogar der Mikroschritte.
Die Ursprungsaussage
> Die maximale Motordrehzahl ergibt sich aus der Drehmomentkennlinie.
ist zwar richtig, aber nutzlos, da das Drehmoment eben fallt, wenn der
Strom nicht mehr schnell genug steigen kann, weil Spannug zu gering und
Induktivität zu hoch.
Aber du hast vollkommen recht, daß es hierbei um den Strom der gesamten
Sinuswelle geht, und nicht um den Stromansteig pro Chopperimpuls, der je
gerade nur ein Bruchteil davon sein soll.
Gute Schrittmotortreiber, wie TB6560, kann man umschalten von 1/64
Schritt auf Halbschritt wenn man schneller fahren will. Das betrifft
aber den Ansteuertakt. Der Motor muss immer schnell genug (genug
Drehmoment bei der Geschwindigkeit) laufen können. Bei zu wenig Spannung
und zu hoher Induktivität nützt eine Reduzierung der Präzision der
Mikroschrittansteuerung nichts.
Ich stelle mir es übrigens schwer vor einfach den Schrittmodus umzuschalten ohne die Ansteuerung (zum Beispiel bei einer CNC Fräse über eine Software und LPT) davon wissen zu lassen. Denn ohne Positions-Feedback geht diese davon aus, dass der Motor bei einem Schritt um eine bestimmte Schrittweite sich weiterbewegt. Wenn man dann einfach der Software "unterm Arsch" den Schrittmodus umstellst, stimmt das ja nicht mehr.
Simon K. schrieb: > Ich stelle mir es übrigens schwer vor einfach den Schrittmodus > umzuschalten ohne die Ansteuerung (zum Beispiel bei einer CNC Fräse über > eine Software und LPT) davon wissen zu lassen. Da hast Du sicherlich Recht. Dies zeigt eine der Grenzen einer (rein)PC basierten Lösung. Eine Andere wäre z.B. der Jitter: Bei 6 kHz, Halbschritt und einem Jitter von ca. 4 µs kann man von einem Drehmomentverlust von ca. 10 % ausgehen. BTW: Im Allgemeinen habe ich festgestellt, dass es im Netz sehr unterschiedliche Aussagen zum Thema Schrittmotor gibt. Einige meinen z.B. alles mit einem 8-Bitter hinzubekommen, während andere DSP's oder FPGA's dazu verwenden. Gast schrieb: > (AVR mit 16MHZ können gut 10kHz für 2 Stepper liefern) Ohne den geplanten Einsatzbereich der Steuerung zu kennen ist diese Aussage ziemlich sinnfrei. Wenn man eine Steuerung hat die so funktioniert, dass man nur von Position A nach B will, mit v_start = 0 und v_ziel = 0, und neue Fahrbefehle erst nach Vollendung des letzten Fahrbefehls übernommen werden, mag das ja stimmen. Was anderes ist es, wenn der Anwender in Echtzeit neue Befehle sendet (z.B. Joystick bei CNC-Maschine), der Ruck begrenzt werden soll, der Motor optimal bestromt werden soll(kleiner Strom bei kleiner Last), der Takt nur einen sehr kleinen Jitter haben darf usw. Da braucht man dann eben leistungsfähigeres als einen AVR. LG Malte
> Wenn man dann einfach der Software "unterm Arsch" den > Schrittmodus umstellst, stimmt das ja nicht mehr. Der Schrittmodus wird am Controller umgestellt. Und beispielsweise TB6560 hat extra dem M0 Ausgang, damit man entscheiden kann, wann man M1, M2 umstellen kann. Natürlich macht das die Software, die man halt passend schreiben muss.
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.