Es gibt da ein älteres Programm von waste, das die Vorgehensweise beim PID-Regler gut zeigt:
https://www.roboternetz.de/phpBB2/ze...&highlight=pid
https://www.roboternetz.de/phpBB2/vi...=285825#285825
Den entscheidenden Teil des Programms, der den PID-Regelalgorithmus abbildet, ziehe ich heraus:
Code:
x = don - doff; // Abweichung
yp = x * kp; // P-Anteil berechnen
isum += x;
// Begrenzung um Überlauf zu vermeiden
if (isum > 16000) isum = 16000;
if (isum < -16000) isum = -16000;
yi = isum / 625 * ki; // I-Anteil berechnen
yd = (x - xalt) * kd + drest; // D-Anteil berechnen
if (yd > 255) drest = yd - 255;
else if (yd < -255) drest = yd + 255;
else drest = 0;
y = yp + yi + yd; //Stellgröße des PID-Reglers
Lesezeichen