Forum: Mikrocontroller und Digitale Elektronik Schrittmotor: max Drehzahl <->Chopperfrequenz


von Tom (Gast)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

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.

von Tom (Gast)


Lesenswert?

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!?

von Reinhard Kern (Gast)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

>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.

von Malte (Gast)


Lesenswert?

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

von MaWin (Gast)


Lesenswert?

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.

von Simon K. (simon) Benutzerseite


Lesenswert?

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.

von Malte (Gast)


Lesenswert?

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

von MaWin (Gast)


Lesenswert?

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