Bremsrampe berechnen

OP #3222108
Hallo zusammen

Ich habe einen Motor mit einem Encoder von 2000Impulsen / Umdrehung.
Den Speed regle ich im Moment in der Einheit rpm. Ich habe eine 
Bremsrampe in der Einheit rpm/s.

Ich möchte jetzt die Bremsrampe genau dann einleiten, damit der Motor 
auf einer bestimmten Position stehen bleibt bzw. die Rampe auf 0 ist.
Gegeben habe ich die aktuelle Geschwindigkeit in rpm und die Bremsarmpe 
in rpm/s. Ebenfalls weiss ich dass eine Umdrehung vom Motor 2000 Impulse 
vom Encoder beträgt und ich kenne die aktuelle EncoderPosition und die 
Zielposition. Wie muss die Formel jetzt aussehen, um die Encoderposition 
zu errechnen, wo ich die Rampe ienleiten muss?
Soweit ich verstanden habe, muss ich integrieren, aber ich komme da 
leider nicht weiter, bitte um Hilfe.

Ich habe also zum Besipiel aktuelle Position = 0
Zielposition = 50000
Speed = 1000rpm
Bremsrampe = 1000rpm/s

Jetzt will ich wissen, bei welcher Position ich die Bremsarmpe 
aktivieren muss, bzw. vieviele Counts vor der Zielposition.

Vielen Dank für Inputs. Ach ja, die Programmiersprache vom uP ist C.
Gast
Das ergebt sich aus den Formule für den abgelegten Weg bei konstante 
Beschleunigung (Bremsen = negative Beschleunigung):
s= s_anfang + v_anfang*t +1/2 a.t²
Jetzt muss du noch erst t (zeitspanne) ausrechnen, wie lange dauert es 
bis die Geschwindigkeit 0 ist : t=v/a
Den Weg darfs du in mm oder in tics verwenden, aber alle parameter 
naturlich gleich (Weg=tics, Speed = tics/sek, Beschl = tics/s²)
OP
Ich habe das mal in ein Excel getippt.

Jedoch stimmt da was nicht, denn wen ich mit einer Geschwindigkeit von 
2000rpm und einer Beschleunigung von 1000rpm/s rechne, erhalte ich einen 
Weg s von 100Umdrehungen, bis der Motor still stehen soll, das stimmt 
aber überhaupt nicht. Was ist daran falsch?

Danke
Angehängte Dateien:
OP
Johannes M. schrieb:
> Wie weiter oben schon gesagt rpm/s ist schon ziemlich kurios und dem
> Verständniss bzw. der Nachvollziehbarkeit nicht wirklich zuträglich.

Ja aber wenn ich eine Geschwindigkeit in rpm habe und eine 
Beschleunigung in rpms passt doch, oder nicht? Ich meine bei einer 
Beschleunigung von 5000rpms wird der Speed in 1 Sekunde um 5000rpm 
erhöht.
Sorry aber ich sehe da im Moment nicht in welche "bessere" Einheit ich 
das wandeln sollte?
Gast
Do mi schrieb:
> Ja aber wenn ich eine Geschwindigkeit in rpm habe und eine
> Beschleunigung in rpms passt doch, oder nicht?
Spätestens wenn du anfängst, über die Zeit zu integrieren, um den 
Gesamtwinkel bis zum Anhalten zu berechnen, wird das unübersichtlich.
OP
Hallo

Ich habe vergessen, dass ein Getriebe mit einer Untersetzung von 1:21 
zwischen Motor und der Kurbel liegt...

Im Anhang das angepasste Excel.
Der C-Code sieht folgendermassen aus:
g_ulStopIncrements = (((ul_Getriebe  g_ulMeasuredSpeed  
g_ulMeasuredSpeed) /60) / UI_PARAM_DECEL)
                            + (((ul_Getriebe  UI_PARAM_DECEL  
((g_ulMeasuredSpeed * g_ulMeasuredSpeed) /60))
                            /  (UI_PARAM_DECEL*UI_PARAM_DECEL))/2);


Danke an alle für die Hilfe!!!
Angehängte Dateien:
OP
Claus M. schrieb:
> Ich hoffe die Formatierung im Sourcecode sieht nicht genauso schäbig
> aus...

nein ;-)

g_ulStopIncrements = (((ul_Getriebe  g_ulMeasuredSpeed  
g_ulMeasuredSpeed) /60) / UI_PARAM_DECEL)
+ (((ul_Getriebe  UI_PARAM_DECEL  ((g_ulMeasuredSpeed * 
g_ulMeasuredSpeed) /60))
/ (UI_PARAM_DECEL*UI_PARAM_DECEL))/2);
OP
rp6conrad schrieb:
> Das ergebt sich aus den Formule für den abgelegten Weg bei konstante
> Beschleunigung (Bremsen = negative Beschleunigung):
> s= s_anfang + v_anfang*t +1/2 a.t²
> Jetzt muss du noch erst t (zeitspanne) ausrechnen, wie lange dauert es
> bis die Geschwindigkeit 0 ist : t=v/a
> Den Weg darfs du in mm oder in tics verwenden, aber alle parameter
> naturlich gleich (Weg=tics, Speed = tics/sek, Beschl = tics/s²)

Hallo

Bei schnellen Beschleunigungen stimmt mir diese Formel nicht. Ist diese 
wirklich korrekt? (bei schnellen Beschleunigungen resultiert mir als 
Resultat ein zu hoher Wert so dass der Motor zu früh stoppt)

Danke
Gast
Die Formule stimmt, konnen sie in jeden Fysicbuch lesen. Aber wie sicher 
sind sie van die exacte Verzogerung und ist diese konstant ueber die 
ganse Bremsung ? Wen sie Bremsen ueber eine Kurzschluss von Motor, ist 
die Verzogerung sowieso nicht konstant. Wenn sie wirklich exact Bremsen 
muss an eine bestimmte Position, muss du eigentlich eine PID 
Regelstrecke programmieren. Dafur ist dan auch eine PWM Regelung von 
Motor notwendig, und encoder messung.
(Firma: mechapro GmbH) Persönliche Seite
Hallo,

> Ja aber wenn ich eine Geschwindigkeit in rpm habe und eine
> Beschleunigung in rpms passt doch, oder nicht? Ich meine bei einer
> Beschleunigung von 5000rpms wird der Speed in 1 Sekunde um 5000rpm
> erhöht.
> Sorry aber ich sehe da im Moment nicht in welche "bessere" Einheit ich
> das wandeln sollte?

Lies mal bei Wikipedia den Eintrag zu "SI-Einheiten". rpm/s enthält z.B. 
für die Zeit sowohl Minute als auch Sekunde. Besser ist es, alles in 
Sekunden umzurechnen. Es sagt ja niemand, dass in der Applikation die 
Eingabe nicht in RPM sein darf, nur intern muss man halt auf 
einheitliche Größen umrechnen.

Mit freundlichen Grüßen
Thorsten Ostermann

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.