Ich verstehe den integralen Bestandteil des PID-Reglers nicht. Nehmen wir diesen Pseudocode aus Wikipedia an:
previous_error = 0
integral = 0
start:
error = setpoint - measured_value
integral = integral + error*dt
derivative = (error - previous_error)/dt
output = Kp*error + Ki*integral + Kd*derivative
previous_error = error
wait(dt)
goto start
Das Integral wird zu Beginn auf Null gesetzt. Und dann wird der Fehler über die Zeit in die Schleife integriert. Wenn ich eine (positive) Sollwertänderung vornehme, wird der Fehler positiv und das Integral "frisst" die Werte über die Zeit (von Anfang an). Was ich jedoch nicht verstehe, ist, dass wenn sich der Fehler wieder auf Null stabilisiert, der integrale Teil immer noch einen bestimmten Wert hat (integrierte Fehler über die Zeit) und weiterhin zum Ausgabewert des Controllers beiträgt, dies sollte jedoch nicht der Fall sein, denn wenn der Fehler Null ist, Ausgabe von PID sollte auch Null sein, richtig?
Kann mir das bitte jemand erklären?
Stellen Sie sich vor, Sie richten einen PID-Regler an Ihrem eigenen Arm ein, damit Sie eine Tasse Kaffee direkt vor sich halten können.
Es hört sich so an, als ob der Teil des Codes, an dem Sie festhalten, darin besteht, dass das System das Gewicht des Kaffees irgendwie messen muss. Eine Möglichkeit besteht darin, den Positionsfehler über die Zeit zu akkumulieren. Die meisten PID-Regler haben einen zusätzlichen Ausdruck, um eine angemessene Grenze für die Größe des Integralelements anzugeben.
quelle
Hier ist ein Video, das ein "intuitives" Verständnis der PID-Schleifen vermittelt. Es enthält eine Erklärung des Integralausdrucks sowie der Proportional- und Ableitungsausdrücke.
https://www.youtube.com/watch?v=l03SioQ9ySg
Es gibt ein Folgevideo, das die Mathematik erklärt und zeigt, wie man den Code aus der allgemeinen Formel ableitet.
https://www.youtube.com/watch?v=sDd4VOpOnnA
quelle