Bei meinem archie rechne ich auf nem mega1284/20MHz. Dort ist für zwei Regelkreise PID (rechter und linker DC-Motor - also Motor vor dem Getriebe/Antriebsstrang) genug Zeit um mit 100 Hz zu regeln. JEDE Seite separat, also zeitversetzt mit brutto 200 Hz. Regelung im Interrupt, Drehzahl/Drehzeit wird per Interrupt auf Flanken des Encoders gemessen. Geregelt wird nur mit Integers, mittlerweile 16bittig. Mein MiniD0 regelte noch 8bittig - sonst vergleichbare Regelung, aber im selben Zeitraster. Etwa doppelt so schnell wie Du; wie Deine Tastzeit vermuten lässt... Tastzeit Messungen .. 17000 und 25000 µs .. Werte für die Regler Parameter zu finden .. scheint "zeitversetzt" auf den Regelfehler zu reagieren ..
Was ist bei Dir die Tastzeit ? Die Abtastzeit der Drehzeiten von Motor oder Antriebsstrang oder die Abstände für die Regelung ?
Wie schnell, in welchem Zeitraster stellst Du die Drehzeiten bereit ?
. . . . . . Interrupt oder im Hauptprogramm ?
Wie schnell, in welchem Zeitraster wird die Regelung gefahren ?
. . . . . . Interrupt oder im Hauptprogramm ?
Wie genau ist die Drehzeiterfassung ? In Sekunden und Drehwinkel.
Was wird geregelt? Motordrehzahl oder Raddrehzahl ?
Kann es sein, dass Du in Deinen Rechnungen alles oder einige Werte FP rechnest (floating point) ? Denn das ist recht zeitintensiv.
Grundsätzlich hatte ich zu Beginn der Regelung immer ne Sprungantwort aufgenommen, natürlich im "Endausbau" des Fahrzeugs. Daraus hatte ich dann die Regelungskennwerte abgeschätzt - Motorzeitkonstante, Parameter für P, I und D. Einen gewissen Fortschritt brachte es für mich, als ich mir die Skizze der Regelungsschleife hernahm und alle Größen mit MEINEN Namen beschriftet hatte. Sieh mal hier (klick). Das brachte - mir - den Durchblick. Nochn bisschen über meinen Regelungsaufwand steht hier.
Vielleicht helfen Dir diese Anmerkungen etwas weiter?
Lesezeichen