Forum: Mikrocontroller und Digitale Elektronik Beschleunigungs- und Abbremsrampen vorberechnen


von Darx (Gast)


Lesenswert?

Hi,

ich schreibe mir für einen Mikrocontroller (der keine PWM-Ausgänge hat, 
d.h. ich schalte die ensprechenden IOs mit jeweils anderen Delays selber 
ein und aus) gerade eine simple Schrittmotorsteuerung. Die sieht bei 
einer Bewegung um 1000 Schritte dann z.B. so aus:

200 Schritte Beschleunigung bis Geschwindigkeit X erreicht ist
450 Schritte gleichförmige Bewegung mit Geschwindigkeit X
350 Schritte Abbremsen bis zum Stillstand

Jetzt habe ich aber das Problem, dass bei Verfahrwegen kleiner 550 
Schritten der Abbremsvorgang eingeleitet werden muss, bevor die 
eigentliche Geschwindigkeit X erreicht wird. Nur: wie berechne ich das? 
Wie finde ich die Position innerhalb der Beschleunigungsphase, in der 
ich wieder zum Abbremsen übergehen muss - und zwar so, dass ich die 
Gesamtschrittzahl erreiche?

Danke!

von Walter T. (nicolas)


Lesenswert?

Das sind vier Gleichungen mit vier Unbekannten. Wahlweise zwei 
Gleichungen mit zwei Unbekannten.

Für die unterschiedlich langen Pausen beim Beschleunigen kommst Du um 
formulieren der Bewegungsgleichungen eh nicht herum.

Nicht vergessen die Spezialfälle, wo die Beschleunigung direkt ins 
Abbremsen übergeht direkt mit zu formulieren!

von spess53 (Gast)


Lesenswert?


von Reinhard Kern (Gast)


Lesenswert?

Darx schrieb:
> Wie finde ich die Position innerhalb der Beschleunigungsphase

Wenn die Beschleunigung gleich der Verzögerung ist, dann ist das die 
Mitte des Weges. Aber natürlich kann man das auch für jeden anderen Fall 
berechnen. Allerdings kommen da Integrale ins Spiel.

Gruss Reinhard

von Max G. (l0wside) Benutzerseite


Lesenswert?

PI-Regler für die Position entwerfen und oberen Stellwert begrenzen.

Max

von Patrick B. (p51d)


Lesenswert?

Darx schrieb:
> ich schreibe mir für einen Mikrocontroller (der keine PWM-Ausgänge hat,
> d.h. ich schalte die ensprechenden IOs mit jeweils anderen Delays selber
> ein und aus) gerade eine simple Schrittmotorsteuerung.

Das wird nicht einfach.... Da der uC auch keine PWM Ausgänge hat, gehe 
ich davon aus, dass es sich hier um einen 8-Bit handelt, was die 
Rechnungen ungemein erschwert.
Unsere Motorregler (bestehend aus kaskadierten Positionsregler, 
Geschwindigkeitsregler, Stromregler) sind allesamt mit 32-Bit 
Kontrollern mit integrierter FPU gelöst, da hier viel mit float 
gerechnet wird.

Im Prinzip ist hier ja nur etwas Physikgrundwissen nötig:
1
a = dv/dt
2
v = ds/dt
Du du jeweils nach 't' umformen musst...
Natürlich kommen hier noch Massenträgheit und so weiter dazu... also 
nicht eine einfache Aufgabe

von Zorg (Gast)


Lesenswert?

Höhere Physik, Formeln mit vier Unbekannten - ich mag' mich jetzt auch 
richtig irren, aber genügt es nicht, wenn er bei Wegen kleiner 550 
einfach das Verhältnis 200:350 beibehält?

Also bei 200 Schritten 72 Schritte beschleunigt und 127 Schritte 
abbremst? Bleibt in dem Fall halt ein Fehler von einem Schritt.

von Karl H. (kbuchegg)


Angehängte Dateien:

Lesenswert?

Zorg schrieb:
> Höhere Physik, Formeln mit vier Unbekannten - ich mag' mich jetzt auch
> richtig irren, aber genügt es nicht, wenn er bei Wegen kleiner 550
> einfach das Verhältnis 200:350 beibehält?

Seh ich auch so.
Da es beim TO darum geht, eine gewisse Anzahl an Schritten in 
Beschleunigungsphase, konstante Phase und Bremsphase aufzuteilen, müsste 
das letzten Endes darauf hinauslaufen, wobei die konstante Phase auch 0 
sein kann.

Denn im Grunde geht es nur darum, den Schnittpunkt der beiden Rampen zu 
berechnen und nachzusehen, ob der über oder unter der Geschwindigkeit 
liegt, die man für die konstante Phase zulässt.

Wenn die Aufgabe darin besteht eine gewisse Anzahl an Schritten zu 
verfahren! Kommen zusätzliche Dinge ins Spiel, wie variable 
Beschleunigungen und/oder Geschwindigkeiten, die man kontrollieren muss, 
siehts anders aus.

von Walter T. (nicolas)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Denn im Grunde geht es nur darum, den Schnittpunkt der beiden Rampen zu
> berechnen und nachzusehen, ob der über oder unter der Geschwindigkeit
> liegt, die man für die konstante Phase zulässt.

Zumindest, solange es sich um eine 1d-Bewegung handelt. Ansonsten müssen 
die Rampen unterschiedlich steil sein.

von Darkx (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Wenn die Aufgabe darin besteht eine gewisse Anzahl an Schritten zu
> verfahren!

Ja, das ist die Aufgabe - Danke!

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.