Beschleunigungs- und Abbremsrampen vorberechnen

Gast #3254455
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!
#3254459
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!
Gast #3254590
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
#3255447
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
Gast #3255473
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.
#3255578
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.
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.