Forum: Mikrocontroller und Digitale Elektronik Sanftanlauf Stepper


von Mario M. (devmario)


Lesenswert?

Hi,

ich habe eine Steuerung für einen Schlitten mit Rampe für einen 
Sanftanlauf des Stepper Motors. Der Schlitten ist schon recht schwer, 
trotz des sanften bremsen und beschleunigen ruckt die ganze Mimik hier 
im letzten Schritt, weil dann doch die Masse "stoppt".

Als unbedarfter Softwerker, was sind eure Erfahrungen, den letzten Step 
so sanft wie möglich zu machen...Rampe weiter runterfahren bringt 
nichts...was mich wundert...

Danke und Gruß
Mario

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


Lesenswert?

Was hast du denn für einen Treiber? Unterstützt der Mikroschritt? Wenn 
ja, welche Auflösung ist aktiviert?

Passen Lastmasse und Massenträgheit des Motors zusammen? Sonst "wedelt 
der Schwanz mit dem Hund". Ein Schrittmotor im open-loop Betrieb ist bei 
vereinfachter Betrachtung auf die Mechanik nichts anderes als eine 
Drehfeder. Die Steifigkeit kannst du in gewissen Grenzen über den Strom 
erhöhen. Wenn die Ankopplung der Last zu weich ist hilft das aber 
nichts.

Mit freundlichen Grüßen
Thorsten Ostermann

von Rainer W. (rawi)


Lesenswert?

Mario M. schrieb:
> Rampe weiter runterfahren bringt nichts...was mich wundert...

Was heißt "Rampe weiter runter fahren"?
Wenn du ein Rucken verhindern willst (2. Ableitung der Frequenz nach der 
Zeit) darf sich deine Rampensteigung (Beschleunigung) nicht schlagartig 
ändern.

von Spess53 .. (hardygroeger)


Lesenswert?

Hi

Such mal nach AppNote:   AVR446

MfG Spess

von Manfred (freimann49)


Lesenswert?

Alle beschriebenen Antworten weisen nicht auf die Problemantik hin.
Zuerst muss bei Schrittmotoren (Stepperdrive) eine einwandfreie 
Laufeigenschaft der Mechanik vorausgesetz werden.
Die Eigenschaft des Schrittmotors sollte man kennen und verstanden 
haben.
Denn jeder Stromimpuls auf den Schrittmotor muss das mechanische 
Widerstandsmoment überwinden so das der Rotor des Motors eine Schritt
weiterdeht. Eine "Rampe" ist in der Abbildung nur eine zeitlich 
veränderte
Impulslänge der Stromimpule. Bei einer steigenden Rampe wird die 
Impulslänge
der einzelnen Impulse immer kürzer, und bei einer fallenden Rampe eird 
die
Impulslänge immer größer. Die Stromstärke ist annähernd gleichbleibend 
weil
das mechanische Moment überwunden werden muss.
Das zu dieser Frage ! vielleicht ist dir Software nicht passend.

von J. S. (engineer) Benutzerseite


Lesenswert?

Mario M. schrieb:
> was sind eure Erfahrungen, den letzten Step
> so sanft wie möglich zu machen.

Sich nur um den letzten step zu kümmern ist an der Stelle sicher nicht 
ausreichend. Die gesamte Mechanik, das Gestänge und die Übersetzung so 
vorhanden und die Last haben einen Impuls, den man kennen muss.

Das Anlaufen lassen und das Bremsen müssen so gestaltet sein, dass das 
Spiel im System rasch überwunden und dann das gesamte System 
kontinuierlich beschleunigt wird, bis die maximale Geschwindigkeit 
erreicht ist oder die, die man maximal haben darf, damit man noch 
bremsen kann, wobei das Ausschwingen der Last berücksichtigt werden muss 
- und das ganze unter Rastmomentüberwindung.

Das erfordert ein genaues Modell. Als Ansatz zum Nachdenken, versuche 
mal in Gedanken, eine Hantel hochzuheben indem du mit einem sich schon 
bewegenden Arm unter die Stang greifst: Beim Kontakt braucht es etwas 
Verzögerung, damit es nicht zu einem Aufprall kommt und das Gewicht 
angelupft wird und nicht geschlagen, wie ein Golfball. Sobald das Ding 
auf Tempo ist, muss man genau so viel rausnehmen, dass der Schwung die 
Hantel bis in den Hochpunkt bringt. Soll es sehr schnell sein, muss man 
sogar gegenbremsen und später damit beginnen.

Im Modell des Schrittmotors kompensiert man da nur noch Rastmoment und 
unterstützt etwas die Bewegung, um Reibungsverluste abzufangen.

Man kann sich die Aufgabe auch so vorstellen, dass man eine Kugel eine 
S-förmig gebogene Steigung einer Sanddüne hochschieben will, die die 
üblichen Wellen hat und dabei gezielt so ruckelig schieben will, dass 
die Kugel trotzdem eine gleichmäßige / weitgehend monotone 
Geschwindigkeit hat.

Das Stuchwort dafür heißt Anti-Cogging.

Ein VHDL-Core der das kann, ist bei mir zu beziehen.

von Michael B. (laberkopp)


Lesenswert?

Mario M. schrieb:
> ruckt die ganze Mimik hier im letzten Schritt

Irgendein Schritt ist immer der letzte, und wenn der Schritt selbst 
schon zu sehr ruckt, brauchst du eine Dämpfung des Antriebs, z.B. 
Zahnriemen oder weiche Wellenkupplung

https://de.aliexpress.com/item/4000594844171.html

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


Lesenswert?

Mario M. schrieb:
> trotz des sanften bremsen und beschleunigen ruckt die ganze Mimik hier
> im letzten Schritt, weil dann doch die Masse "stoppt".
Und was passiert, wenn du nur 1 Schritt machst?

> trotz des sanften bremsen und beschleunigen ruckt die ganze Mimik hier
> im letzten Schritt, weil dann doch die Masse "stoppt".
Welche Beschleunigungsrampe fährst du? Einfach nur eine lineare Rampe 
(mit konstanter Beschleunigung)? Oder hast du die Rampe auch mal mit 
einer kleinen Beschleunigung begonnen, die dann pro Schritt größer wird?

- https://de.wikipedia.org/wiki/Ruck

> Als unbedarfter Softwerker, was sind eure Erfahrungen, den letzten Step
> so sanft wie möglich zu machen...
Hast du schon mal Microstepping ausprobiert?

von Max D. (max_d)


Lesenswert?

Was für eine Steuerung ?
Marlin (3D-Drucker FW) hat z.B. extra einen Parameter (etwas irreführend 
"jerk" genannt) mit dem man ihm vorschreiben kann welche 
"restgeschwindigkeit" er am ende der rampe ruckartig rausbremsen darf.

von Max H. (nilsp)


Lesenswert?

Max D. schrieb:
> (etwas irreführend "jerk" genannt)

Jerk ist einfach nur die Englische Bezeichnung für Ruck.

von Max D. (max_d)


Lesenswert?

Korrekt, aber es ist eben grade NICHT der Ruck (2. Ableitung der 
Geschwindigkeit) den der Parameter angibt sondern welche 
Geschwindigkeitsänderung er ohne Rampe (also mit "unendlich g") machen 
darf (weil die Mechanik es abfängt).
Deswegen hab ich den Parameter als "irreführend" bezeichnet. Die 
Probleme des TO könnten trotzdem damit zu tun haben weil eine zu hohe 
Angabe an der Stelle führt zu Gerattel und Schrittverlusten...

von Mario M. (devmario)


Lesenswert?

Danke für die ganzen Tipps und Hinweise. Ich hatte mich tatsächlich an 
die App Notes AVR446 gehalten...der Fehler war jetzt Legacy Code der 
dafür gesorgt hat das ich nicht eine bestimmte Geschwindigkeit 
unterschreiten konnte...da kann ich noch so viel abbremsen wie ich will!

Code ist raus, Kunde glücklich...ich auch :-)

: Bearbeitet durch User
von Tobias S. (herrgesangsverein)


Lesenswert?

Finde ich toll, dass gerade der abgewertete Post Dir geholfen hat.
Ansonsten hab ich schon auch was gelernt über Rastmomente.

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.