Forum: Mikrocontroller und Digitale Elektronik Rampen / Weg Berechnung


von Sssssss (Gast)


Lesenswert?

Hi zusammen!

Für einen Geschwindigkeitsregler mit Rampen möchte ich berechnen
ab wann ich anfangen muss abzubremsen um eine Sollposition zu erreichen.

Das ganze läuft auf einem AVR, also muss das in ganzen Zahlen gerechnet 
werden. (Positionen sind in uint16_t gegeben).

Verwende ich als Rampe ganze Zahlen 1...n habe ich auch kein Problem das 
abbremsen vorherzusagen.

Der einfachheit halber betrachte ich hier mal den Beschleunigungsfall. 
Sei A(t) die zurückgelegte Strecke (in ticks) nach Regelungsloop t:

A(t) = rampe   t   (t + 1) / 2

Nun zu meinem Problem: Ich brauche langsamere Rampen.
Deshalb mache ich folgendes:

speed_now(t) = t * rampe / 16;

rampe=1 -> speed_now = 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 ...
rampe=2 -> speed_now = 0 0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 ...
rampe=3 -> speed_now = 0 0 0 0 0 1 1 1 1 2 2 2 2 2 2 3 ... <--- 4x1 dann 
6x2 !
...
rampe=16 -> speed_now = 1 2 3 4 5 ... kein Problem bei vielfachen von 16
usw.

Wie finde ich bei so einer unregelmässigen Rampe heraus wieviele Ticks 
ich nach t zurückgelegt habe ?

Wenn ich mit (rampe/16) rechne bekomme ich ja aufgrund des aufsummierens
einen immer größer werdenden Fehler.

Irgendwie finde ich da keine Lösung, das muss aber doch irgendeine 
Formel geben, von mir aus auch gerne mit modulo g

Irgendjemand eine Idee oder ein Stichwort wonach ich googeln kann?

Danke & Gruss
Simon

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
Noch kein Account? Hier anmelden.