Bremsrampe berechnen

OP #3222108
Lesenswert?

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 #3222142
Lesenswert?

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 #3222620
Lesenswert?

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?
OP #3222748
Lesenswert?

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 #3223125
Lesenswert?

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 #3223355
Lesenswert?

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 #3223594
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren