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