PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fahrkurve/Fahrdiagramm



qqChrisqq
04.04.2007, 23:24
Hallo,

kennt von euch jemand eine gute Internetseite oder ein Buch in denen etwas über Fahrkurven von Motoren steht? Unter einer Fahrkurve verstehe ich die Phasen im v-t-diagramm die ein Motor besitzt um seine Endposition zu erreichen. z.B. in einer Trapezform. Vorallem geht es mir um Beschleunigungen die nicht linear sind.

Danke schon mal für eure Hilfe

Chris

sigo
07.04.2007, 12:50
Hi Chris,

zu Trapezkurven und einem digitalen PID-Regler findest du ein paar Infos im Manual des LM628 bzw. LM629 von National Semiconductor oder des HCTL-1000 von HP.

Zur Vermeidung des kleinen Rücks am Ende einer linearen Beschleunigung, verwendet man sin²-Kurven, um hier einen Sprung zu vermeiden.

Sigo

mare_crisium
13.04.2007, 20:39
Hi Chris,

und wenn Du den sin^2 vermeiden willst (ist auf einem Mikrokontroller nicht ganz einfach darzustellen), dann nimm eine Kurve der Form

v(t) = 4*vmax*t*(T - t)/T^2

Die beginnt bei t=0 mit Geschwindigkeit v=0 und erreicht bei t = T wieder Null. Bei t=T/2 wird die Maximalgeschwindigkeit vmax erreicht.

mare_crisium

Edit: Die Formel korrigiert (Division durch T^2 und Vertauschen von t und T in der Klammer)

sigo
14.04.2007, 00:58
Hi Mare_crisium, das werd ich mir morgen mal ausplotten.
Man kann die sin²-Funktion auch in normierter Form als Look-up-table realisieren, dann rechnet EXCEL.

Man hat dann aber noch etwas Skalierungsaufwand..
Da wäre deine Funktion evtl. doch bequemer.

Sigo

mare_crisium
15.04.2007, 07:10
Sigo,

mir sind bei der Formel zwei Fehler unterlaufen: Damit die Dimensionen stimmen, musst Du noch durch T^2 dividieren. Und in der Klammer muss die Reihenfolge von t und T vertauscht werden:

v(t) = 4*vmax*(t/T)*(1-(t/T)) = 4*vmax*t*(T-t)/T^2

Ich hab's im Original-Post auch geändert.

Die Strecke, die Du mit diesem Geschwindigkeitsprofil verfahren kannst, ist:

s = (2/3)*vmax*T

und die Zeit die Du dafür brauchst ist:

T = (3/2)*(s/vmax)

Du brauchst also immer anderthalb mal soviel Zeit, als wenn Du die ganze Strecke durchgehend mit vmax verfahren würdest.

Wenn Du bei längeren Strecken Zeit sparen willst, dann musst Du die Funktion nach T/2 (wenn sie gerade vmax erreicht hat) unterbrechen und eine Weile mit konstanter Geschwindigkeit

v = vmax

weiterfahren. Beim Abstand von

d = vmax*T/3

vom Zielpunkt, schaltest Du dann zum Abbremsen wieder auf die Funktion zurück. T ist dann die Zeit, die Du zum Beschleunigen und zum Abbremsen zulassen willst.

mare_crisium