Hallo an alle,
auch, wenn das schon 1000000x durchgekaut und erklärt wurde, komme ich bei einem aktuellen Projekt nicht weiter.
Es geht um die Geschwindigkeitsregelung eines Roboters. Geregelt werden soll mit einem PID Regler. Ich bin schon so weit, dass ich die Regelabweichung berechne (also die aktuelle Geschwindigkeit (Differenz von zwei Encoderwerten über Zeitraum von 0.1s, logischerweise wird mit dieser Periode dann auch der Regler aufgerufen)). Dann komme ich aber schon nicht mehr wirklich weiter. Die Reglergleichung sieht momentan so aus:

Code:
e_speed_l = speed_l - speed_l_raw;
esum_speed_l += e_speed_l;
steer_l = ((KP_SPEED * e_speed_l) + (KI_SPEED * TA_SPEED * esum_speed_l) + ((KD_SPEED * (e_speed_l - ealt_speed_l))/TA_SPEED));
(Aus dem RN Wissen Artikel Regelungstechnik übertragen). KI und KD sind 0, KP ist 1, sodass ich anfangs einen reinen P-Regler habe. Wie übertrage ich aber nun das Ergebnis der Reglergleichung auf den PWM Wert? Momentan ist der PWM Wert = steer_l, also das Ergebnis der Reglergleichnung. Mit KP = 1 schwingt die Geschwindigkeit extrem, wenn ich KP heruntersetze, ist die Schwingung gleich groß, die Geschwindigkeit wird nur logischerweise kleiner.

Ich hoffe, dass ich das halbwegs verständlich erklärt habe und dass das Problem verstanden wurde.
Vielen Dank und
Viele Grüße
Jan
teamohnename.de