= Controller Software = == Regler Entwurf == === Eingänge === * Gashebel (d): 0..1024 [keine Einheit] * Strom (i): -400..400 [entspricht ca. -30A .. 30A] * Geschwindigkeit (v): 8184..0 [Zeit zwischen 2 Kommutierungen in 0.25µs Schritten] * Aufgrund des Rechenaufwandes wird zur Umrechnung eine lineare Näherung verwendet * v = 1023 - v/8 * daduch hat v einen ähnlichen Wertebereiche wie d und kann damit verglichen werden. === Ausgänge === * Tastverhältnis (u): 0..4000 [keine Einheit] === Randbedingungen === * ca. 1625 ticks pro Kommutierung entsprechen 25 km/h * ca. 825 ticks pro Kommutierung entsprechen 50 km/h === Reglerparameter === * der I-Anteil muss mindestens so stark gewichtet sein, dass er 100% der Stellgröße erreichen kann, damit das Rad beim loslassen des Gashebels nicht bremst. Ein höherer Wert macht keinen Sinn, damit ist die Verstärkung des I-Anteils festgelegt. * Über eine Gewichtung des Fehlers vor dem Integrieren, kann die Integrationsgewschwindigkeit bestimmt werden. * Der P-Anteil ist nach oben hin begrenzt, damit ein Überlaufen der Variable nicht auftritt. * Das vergrößern der entsprechenden Variable auf 32Bit führt zu einer Ausführungszeit der ISR von 28µs statt 9µs bei 16Bit und ist daher nicht sinnvoll.