Die C-Sprache realisiert den PID-Algorithmus
Der PID-Algorithmus ist ein häufig verwendeter Rückkopplungssteuerungsalgorithmus im Steuerungssystem, der den stationären Fehler und die momentane Schwankung des Systems effektiv unterdrücken kann und den Vorteil hat, dass er einfach, leicht verständlich und leicht zu implementieren ist. In diesem Artikel wird erläutert, wie Sie mithilfe der C-Sprache den PID-Algorithmus implementieren und den vollständigen Quellcode bereitstellen.
Algorithmusprinzip
Der PID-Algorithmus kann in zwei Formen unterteilt werden: Positions- und Inkrementalalgorithmus. In diesem Artikel wird der Positions-PID-Algorithmus als Beispiel vorgestellt. Die Berechnungsformel des Positions-PID-Algorithmus lautet wie folgt:
u(t) = Kp * e(t) + Ki * ∫e(t) dt + Kd * de(t)/dt
Darunter e(t)
stellt die Abweichung zwischen der aktuellen Systemausgabe und dem erwarteten Wert dar und Kp
stellt die Proportional-, Integral- und Differentialkoeffizienten dar, die die vom Algorithmus berechnete Steuergröße darstellen.Ki
Kd
u(t)
Die Realisierung des PID-Algorithmus erfordert eine kontinuierliche Messung des Ausgangswerts des Systems, eine Berechnung der Abweichung anhand des gemessenen Werts und schließlich eine allmähliche Annäherung der Abweichung an 0 durch Anpassen des Steuerbetrags.
Umsetzungsschritte
Die Implementierung des PID-Algorithmus erfordert die folgenden Schritte:
- Initialisiert die vom PID-Algorithmus benötigten Variablen, einschließlich Proportional-, Integral- und Differentialkoeffizienten, Zielwert, Ausgabewert, vorherige Abweichung und Integralterm.
- Zu Beginn jedes Regelkreises wird der Ausgangswert des Systems gemessen und die aktuelle Abweichung berechnet.
- Berechnen Sie den Ausgabewert des PID-Algorithmus entsprechend der Abweichung und wenden Sie ihn auf das Steuerobjekt an.
- Variablen, die zum Aktualisieren des PID-Algorithmus benötigt werden, einschließlich der vorherigen Bias- und Integralterme.
Quellcode
Das Folgende ist der vollständige Quellcode des in C-Sprache implementierten Positions-PID-Algorithmus: