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!
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!
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
PI-Regler für die Position entwerfen und oberen Stellwert begrenzen. Max
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
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.