Einheit 5 / 9

Steueralgorithmen: PID- und AI-unterstütztes Tuning

Gewinne:

  • Fähigkeit, die P-, I-, D-Begriffe und Auswirkungen des PID-Reglers im richtigen Kontext zu erklären und auf die KI anzuwenden
  • Fähigkeit, Ziegler-Nichols- und experimentelle Tuning-Methoden mithilfe von KI Schritt für Schritt umzusetzen
  • Fähigkeit, PID-Fallen wie Integral-Windup und abgeleitetes Rauschen in KI-Empfehlungen zu erkennen und zu beseitigen

Die Temperatur eines Ofens konstant halten, die Geschwindigkeit eines Motors auf einen gewünschten Wert bringen, den Winkel einer Drohne ausgleichen; Das Herzstück von allen ist ein Steuerungsalgorithmus. Am gebräuchlichsten ist der PID-Regler, der das Rückgrat der Branche darstellt. PID; Es ist einfach, robust und funktioniert bei einer Vielzahl von Problemen. „Einfach“ bedeutet jedoch nicht „einfach einzustellen“: Ein falsch eingestellter PID schwingt, überschwingt, bleibt stehen oder wird völlig instabil. Künstliche Intelligenz ist hier ein wertvoller Helfer: Sie erklärt PID-Begriffe, führt durch Tuning-Methoden, diagnostiziert typische Fallstricke und schreibt den Tuning-Code. Die endgültige Anpassung wird jedoch durch Betrachtung des physikalischen Verhaltens Ihres Systems vorgenommen und die Stabilitätsentscheidung obliegt dem Ingenieur. In dieser Einheit behandeln wir die Installation, Abstimmung und Überprüfung von PID-Fallen mit KI.

Drei Begriffe der PID

Der PID reagiert auf das Fehlersignal (e = Ziel − gemessen) auf drei Arten:

Begriff

Was schaut er an?

Wirkung

im Extrem

P (proportional)

aktueller Fehler

schnelle Reaktion

Schwingung, permanenter Fehler

ich (integral)

Kumulierter vergangener Fehler

Setzt den permanenten Fehler zurück

Überschwingen, Windup, Oszillation

D (Ableitung)

Fehleränderungsrate

Durch die Dämpfung wird ein Überschwingen reduziert

Verstärken Sie den Lärm

Verbale Zusammenfassung: P antwortet auf die Fragen „Wie weit bin ich jetzt“, I „Wie lange bin ich schon weg“, D „Wie schnell komme ich näher“. Ein guter Controller gleicht alle drei aus.

Klasse PID: def __init__(self, Kp, Ki, Kd, Output_min=-100, Output_max=100): self.Kp, self.Ki, self.Kd = Kp, Ki, Kd self.out_min, self.out_max = Output_min, Output_max self.integral = 0.0 self. previous_error = 0.0 def berechne(selbst, Ziel, gemessen, dt): Fehler = Ziel – gemessen # P p = self.Kp * error # I – self.integral mit Windup-Schutz += error * dt i = self.Ki * self.integral # D – abgeleitetes Rauschen empfindlich d = self.Kd * (error – self. previous_error) / dt self. previous_error = error out = p + i + d # Ausgang sättigen und Windup begrenzen, wenn Ausgang > self.output_max: Ausgang = self.out_max self.integral –= error * dt # Anti-Windup: Machen Sie das Integral rückgängig. elif-Ausgabe < self.output_min: Ausgabe = self.output_min self.integral -= Fehler * dt Ausgabe zurückgeben

Bei diesem Code handelt es sich nicht um eine „Trainings-PID“, sondern um ein Grundgerüst, das der Produktionslogik ähnelt: Er umfasst Ausgabesättigung und Anti-Windup. Viele von der KI bereitgestellte einfache PIDs umgehen diese beiden Schutzmaßnahmen. Ohne sie wird das Integral anschwellen, wenn der Aktuator seine Grenze erreicht, und das System wird unerwartet überschwingen.

Tipp: Wenn Sie die KI nach dem PID fragen, sagen Sie „Ausgangssättigung und Anti-Windup hinzufügen, Ableitung auf Messung auf Ableitungsterm anwenden“. Diese drei Zusätze wandeln die Lehrbuch-PID in die Feld-PID um.

Integrales Windup- und Derivative-Rauschen

Zwei klassische Fallstricke sind die häufigsten Ursachen für PID-Ausfälle:

Integraler Windup: Wenn der Aktuator in die Sättigung geht (z. B. der Motor hat bereits die volle Leistung), bleibt der Fehler bestehen und der Integralanteil wächst weiter. Dieses überhöhte Integral führt zu einem großen Überschwingen, wenn das System das Ziel erreicht. Lösung: Stoppen oder Zurücksetzen des Integrals, wenn der Ausgang gesättigt ist (Anti-Windup, im obigen Code demonstriert).

Ableitungsrauschen: Der D-Term nimmt die Ableitung des Fehlers; Die Ableitung einer verrauschten Messung ist viel verrauschter und lässt den Aktuator vibrieren. Lösungen: Ableitung der Messung (Ableitung der Messung anstelle des Fehlers) und Hinzufügung eines Tiefpassfilters zum Ableitungsterm.

# Ableitungsrauschen reduzieren: Messung derivative + filterd_raw = -(gemessen - self. previous_measured) / dt statt Fehler

KI ist gut darin, diese Fallstricke zu erkennen; Wenn Sie sagen: „Mein PID schießt stark über das Ziel hinaus“, empfiehlt es sich, den Wert zu erhöhen. Sie überprüfen jedoch, indem Sie messen, ob der Fix auf Ihrem System funktioniert.

Vertonung mit Ziegler-Nichols

Eine klassische Methode zur Ermittlung von Gewinnen (Kp, Ki, Kd) von Grund auf ist Ziegler-Nichols. Sein Wesen: nur mit P beginnen und Kp erhöhen, bis das System in anhaltende Schwingung gerät; Berechnen Sie Kp, Ki, Kd aus der Tabelle mit der kritischen Verstärkung Ku und der Schwingungsperiode Tu an diesem Punkt.

Controller

kp

Ti

Td

P.

0,5·Ku

P.I.

0,45·Ku

Di/1.2

PID

0,6·Ku

Di/2

Di/8

Ziegler-Nichols-Schritte (Plan wird von der KI erstellt):1. Nehmen Sie Ki=0, Kd=0. Führen Sie einfach P.2 aus. Erhöhen Sie Kp LANGSAM, bis eine stabile, anhaltende Schwingung beginnt.3. Dieser Kp = Ku (kritische Verstärkung), Schwingungsperiode = Tu.4. Berechnen Sie Kp, Ti, Td anhand der Tabelle. Ki = Kp/Ti, Kd = Kp*Td.5. Beginnen Sie mit diesen Werten und nehmen Sie dann experimentelle Änderungen vor.

Achtung: Ziegler-Nichols bringt das System bewusst an seine Stabilitätsgrenze (Daueroszillation). Es besteht die Gefahr von mechanischer Belastung, Überstrom und Gefahr, wenn dies auf echter Hardware geschieht; Führen Sie dies nach Möglichkeit zunächst in der Simulation durch und arbeiten Sie dann in der Hardware mit niedriger Leistungsbegrenzung und Not-Aus. Der von der KI vorgeschlagene Ku ist ein Ausgangspunkt, er wird in Ihrem System gemessen und verifiziert.

KI-gestützte Diagnose

Sie können das PID-Verhalten diagnostizieren, indem Sie es der KI beschreiben. Symptom → mögliche Ursachenzuordnung:

Symptom

mögliche Ursache

Die Richtung, die die KI vorschlagen wird

langsames Sitzen

Kp/Ki niedrig

kp erhöhen

Permanenter Fehler

Ich bin abwesend oder sehr niedrig

Ki hinzufügen/erhöhen

Überschwingen + Schwingen

Kp/Ki hoch, kein D

Kd hinzufügen, Ki verringern

Aktuator zittert

abgeleitetes Rauschen

D filtern/reduzieren

Wenn Sie die große Grenze erreichen

integraler Windup

Anti-Windup hinzufügen

Schwache Eingabeaufforderung / Starke Eingabeaufforderung

SCHWACH: „Geben Sie die PID-Verstärkungen an.“ (Welches System? Wie ist das Verhalten? Gibt es irgendwelche Messungen? Es kommen zufällige Zahlen.) STARK: „Ich passe den PID für eine Gleichstrommotor-Drehzahlregelung an. Derzeit ist Kp=2, Ki=0,5, Kd=0. Der Schritteingang überschreitet 35 %, und wenn er den Zielwert erreicht, gibt es einen großen zweiten Überschwinger; es dauert lange, bis er sich stabilisiert. Die Abtastung beträgt 100 Hz. Listen Sie die möglichen Gründe auf diese Symptome, die gewinnen „Schlagen Sie vor, in welche Richtung ich es ändern soll, und sagen Sie mir, wie ich testen kann, ob es sich bei der Überschreitung um einen integralen Windup handelt.“

Mini-Koffer

Der Steuerungsingenieur Kerem passt die Temperaturregelung eines Extruders an. Mit den von der KI vorgeschlagenen Verstärkungen erreicht das System das Ziel schnell, macht aber bei jedem Satzwechsel ein großes Überschwingen und beruhigt sich langsam. Kerem erklärt AI das Symptom; AI vermutet einen integralen Windup, da die Heizung eine Zeit lang auf voller Leistung (gesättigt) bleibt. Kerem fügt dem PID-Code Anti-Windup hinzu und das Überschwingen verringert sich deutlich. Aber jetzt gibt es ein leichtes Flackern am Heizungsausgang; Er führt dies darauf zurück, dass der D-Term das Temperatursensorrauschen verstärkt und der Ableitung einen Tiefpassfilter hinzufügt. Abschließend erfolgt eine grobe Validierung der Gewinne mit Ziegler-Nichols und eine experimentelle Feinabstimmung. KI ermöglicht eine schnelle Diagnose; Aber Kerem bestätigte jede Korrektur, indem er die tatsächliche Sprungantwort maß – ob das Aufziehen korrigiert wurde oder das Flackern verschwunden war, konnte nur grafisch gesehen werden.

Häufige Fehler

  • Es gelingt nicht, dem PID Ausgangssättigung und Anti-Windup hinzuzufügen, und es kommt zu einer großen Überschreitung der Stellgliedgrenze.
  • Ableitung der Ableitung der verrauschten Messung vornehmen und den Aktuator in Schwingungen versetzen.
  • Unter der Annahme, dass dt konstant ist, variiert die Abtastperiode.
  • Durchführung des Ziegler-Nichols-Schwingungstests an Hardware ohne Sicherheitsvorkehrungen.
  • Akzeptieren von KI-generierten Einnahmen als „endgültig“ ohne systemspezifische Überprüfung.
  • Eine einzelne Verstärkung mit sehr großen Schritten verändern und das System in die Instabilität bringen.

Zusammenfassend

  • PID; Es reagiert mit P (aktueller Fehler), I (akkumulierter Fehler), D (Fehleränderungsrate).
  • Die Feld-PID sollte Ausgangssättigung, Anti-Windup und Ableitungsfilter umfassen.
  • Großes Überschwingen des Integralaufzugs und Ableitungsgeräusche verursachen Schwingungen des Aktuators.
  • Ziegler-Nichols beginnt zu gewinnen; Es wird mit Sicherheitsmaßnahmen in der Hardware umgesetzt.
  • AI ermöglicht eine schnelle Diagnose vom Symptom zur Ursache; Die Korrektur wird durch Messung überprüft.
  • dt tatsächlich gemessen; Ergebnisveränderungen erfolgen in kleinen Schritten und unter Beobachtung.

Anwendungsaufgabe

Wählen Sie ein System (echter Motor/Heizung oder ein einfaches Modell erster/zweiter Ordnung in Python) und lassen Sie die KI eine PID-Klasse mit Sättigung + Anti-Windup generieren. Dann: (1) Beobachten Sie das Schwingungsverhalten, indem Sie nur mit P beginnen und Kp erhöhen, (2) Ki hinzufügen, um den permanenten Fehler zu beseitigen und zu sehen, wie das Überschwingen zunimmt, (3) die Auswirkung auf das große Überschwingen vergleichen, indem Sie Anti-Windup ein- und ausschalten. Zeichnen Sie die Sprungantwort bei jedem Schritt auf und notieren Sie, welche Verstärkung welches Verhalten ändert. Vergleichen Sie die Gewinne von Ziegler-Nichols mit den Gewinnen, die Sie selbst erzielt haben.