Vorerst: ich habe mir sowohl den RN-Wissensartikel als auch den Wikipedia Artikel zu diesem Thema mehrfach durchgelesen.
Ich habe einen Roboter mir Ketten (siehe Bilder in Signatur) wo ein Mega2560 drauf sitzt. Jedes zweite Glied der Gleiskette ist weiß eingefärbt und sind daher die "Encoder Scheiben".
Ich habe einige Versuche durchgeführt wo ich die Peaks pro Sekunde in Abhängigkeit zum PWM-Wert erhalten habe.
Jetzt möchte ich gerne einen PI-Regler in meine Software implementieren jedoch habe ich einige Probleme.
Rein intuitiv bevor ich überhaupt wusste, dass es solche Regler gibt habe ich ein P-Regler erstellt. Die Gesammelten Encoder-Werte von einer Sekunde werden mit einer Konstante multipliziert. Danach wird der Fehler mit Soll- und Ist-wert berechnet und das Ergebnis zum PWM-Wert hinzuaddiert (oder subtrahiert)
Jedoch funktioniert das bei mir nicht, der Roboter macht was er will.
Deswegen bin ich dann auf diesen Artikel gestoßen.
Meine Frage ist was diese ganzen Konstanten sind. Also wenn ich den PI-Regler mal hernehme habe ich:
esum = esum + e
y = Kp * e + Ki * Ta * esum
e ist der Fehler, also Soll-Ist
Kp: ist mein Konstanter Faktor um zwischen den Peaks/s zum PWM-Wert umzurechnen
Ki: keine Ahnung
Ta: meine Abtastzeit aber was ist das genau bei mir? Ein Messvorgang? Sprich 1 Sekunde?
esum: Die Summe aller Fehler und das ist etwas was ich logisch nicht verstehe. Esum wird mit der Zeit ja immer größer und größer bis es irgendwann mal unendlich erreicht. Vorausgesetzt der Fehler ist immer positiv.
Es stellt sich auch die Frage wie ich meine Werte erhalte.
Falls wer meine Ergebnise von den versuchen braucht
Die letzte Tabelle enthält die Notwendigen Informationen. Die erste Zeile ist der PWM Wert.
Lesezeichen