Grüß Gott,

Ich hab nach längerem Suchen leider noch keinen Thread dazu im Forum gefunden, obwohl ich davon ausgehe das sich bestimmt schon Leute hier im Forum damit beschäftigt haben. Falls jemand einen Thread kennt wäre der link dazu schon sehr hilfreich.

Es geht um die verbesserung der Drehzahlregelung, von einem I-Regler zu einem PI oder PID Regler, so wie es auch schon in der RP6RobotBaseLib.c steht.
(Nochmal kurze zwischenfrage) Warum ist das eigendlich ein .c File und keine Header datei ???

Anhand der C-Implementierung aus RN-Wissen, könnte man meinen der I regler müsste nur um den Summanden (Kp * e) erweitert werden.

I-Regler:

esum = esum + e
y = Ki * Ta * esum


PI-Regler:

esum = esum + e
y = Kp * e + Ki * Ta * esum

nur allein schonmal die Stelle im Programmcode zu finden gestaltet sich für mich sehr schwer.

ist das diese Stelle
// Left motor speed control:
und
// Right motor speed control:

Wo im Programmcode ist genau der Sollwert und was ist der vom Drehgeber gemessene Ist-Wert ?

Die Regelabweichung ist error_left und error_right, oder lieg ich da falsch ?
Und welche Variable ist die Stellgröße ?


Ich bin leider noch ziemlich am anfang und blick bei der ganzen sache noch kaum durch.

Eine allgemeine Frage zur Regelung hab ich noch.
Es müssen ja 2 Regelungen gleichzeitig stattfinden, einmal die Regelung der gewünschten Geschwindigkeit mleft_des_speed ; mright_des_speed;
und beim Geradeausfahren müssen beide Ketten so geregelt werden das sie gleichschnell laufen.
Ist das im Programmcode auch so realisiert, oder funktioniert das anders ?

Es würde mich wirklich sehr freuen wenn mir jemand weiterhelfen könnte.

Herzlichen Dank schon mal

beste Grüße

Thomas