Interaktiver SimulatorEinsteiger

PID-Regler-Simulator für Robotik-Regelungssysteme

Stimme P-, I- und D-Verstärkung ab und visualisiere Sprungantwort, Fehler, Sättigung und Störungen im interaktiven PID-Simulator.

Kategorie
Regelungstechnik
Zeitaufwand
60–120 Min.
Plattform
Browser · Arduino
Technisches Schema: PID-Regler-Simulator für Robotik-RegelungssystemeRESPONSETIMESETPOINT

01 / Hier starten

Einführung

PID-Regelung steckt überall in der Robotik: Raddrehzahl, Fahrtrichtung, Gelenkposition und Balancesysteme beruhen auf Rückkopplung. Dieses Projekt macht den Regler zum sichtbaren Experiment. Ändere eine Verstärkung, störe die Strecke und verknüpfe die Kurve mit dem Code für Arduino oder Mikrocontroller.

Live lab / Deterministic sampled control loop

PID controller simulator

Drive a second-order plant toward a setpoint. Tune each gain, inject a load, and watch response, error, and control effort in real time.

Browser native
This simulator plots a PID controller's response, error, and control effort over time. Use the controls below to run it, or read the full theory and algorithm after this lab.

Three stacked plots share a scrolling time axis: measured output against the setpoint line, tracking error around zero, and control effort inside the shaded actuator-limit band.

Simulation

Paused. Press Start or Step to begin.

Setpoint & timing
PID gains
Disturbance
Setpoint
1.00
Measured
0.000
Error
1.000
Control
0.000
Overshoot
0%
Steady-state error
1.000

Keyboard: focus the plots, then use Space to run/pause, N to step, R to reset, G to toggle the load, and F for full screen.

Steuerung

Der Simulator bietet Sollwert, P-, I- und D-Verstärkung, Abtastintervall, Aktorbegrenzung und Störgröße. Synchronisierte Diagramme zeigen Sollwert, Messwert, Fehler und Stellgröße. Zurücksetzen löscht den Reglerspeicher, damit Versuche vergleichbar bleiben.

Theorie

Ein Regler mit Rückkopplung berechnet den Fehler als Sollwert minus Messwert. Der P-Anteil reagiert sofort, der I-Anteil sammelt bleibende Fehler auf und der D-Anteil antwortet auf die Änderungsgeschwindigkeit. Ihre Summe wird zum Stellsignal.

Die Regelgüte ist durch die Strecke begrenzt. Zu langsame Abtastung verbirgt Bewegung; Ansteuerung über die Aktorgrenze hinaus verursacht Sättigung; verrauschte Messungen machen einen ungefilterten D-Anteil instabil. Abstimmen ist daher ein Experiment mit Regler und System zugleich.

Sprungantwortdiagramm mit drei Abstimmungen eines Systems zweiter Ordnung. Eine Kurve mit hoher Verstärkung überschwingt den Sollwert und pendelt vor dem Einschwingen. Eine gut abgestimmte Kurve steigt schnell mit leichtem Überschwingen und beruhigt sich rasch. Eine Kurve mit niedriger Verstärkung steigt langsam und überschwingt nie.
Die Dämpfung formt die Sprungantwort: Zu viel Verstärkung überschwingt und klingt nach, zu wenig ist träge, eine ausgewogene Abstimmung beruhigt sich schnell. SVG herunterladen

Algorithmus

  1. Messwert in festem Intervall lesen und Fehler berechnen.
  2. Begrenztes Integral mit dem echten Zeitschritt aufintegrieren.
  3. Differenzial aus Messwert oder Fehler schätzen und sinnvoll filtern.
  4. Die drei gewichteten Anteile summieren und auf den Aktorbereich begrenzen.
  5. Befehl ausgeben, vorherige Abtastung speichern und Kennzahlen erfassen.
  6. Integral und Verlauf zurücksetzen, wenn sich Regelmodus oder Strecke stark ändern.

Quellcode

Diese Implementierung enthält einen einfachen Anti-Windup:

float updatePid(float setpoint, float measured, float dt) {
  const float error = setpoint - measured;
  const float derivative = (error - previousError) / dt;
  const float candidateIntegral = integral + error * dt;
  const float raw = kp * error + ki * candidateIntegral + kd * derivative;

  const float output = constrain(raw, outputMin, outputMax);
  if (raw == output) integral = candidateIntegral;
  previousError = error;
  return output;
}

Produktionsregler legen zusätzlich das Verhalten bei ungültigen Messungen, Zeitgeberüberläufen, Moduswechseln und Aktorfehlern fest.

Annahmen und Unterschiede zur Hardware

Die Strecke hier ist ein sauberes Modell zweiter Ordnung mit bekannter Masse, Dämpfung und Verzögerung, die du per Schieberegler setzt — kein echter Motor mit Reibung, Totzone, drehzahlabhängigem Drehmoment und warm werdendem Treiber. Die Abtastung ist konstruktionsbedingt fest, sodass der D-Anteil gutmütig bleibt; auf einem Arduino verzerren delay() oder andere blockierende Arbeiten das Intervall, und der D-Anteil reagiert falsch, obwohl die Verstärkungen gleich sind. Aktorsättigung ist als harte Begrenzung mit Anti-Windup modelliert, ein physisches System kennt zusätzlich Stromgrenzen, Spannungseinbrüche und Wärme, die die Grenze im Betrieb verschieben. Stimme hier die Form ab und verifiziere auf Hardware, wo die Strecke nur näherungsweise bekannt ist.

Schaltplan

Der Rückführungssensor meldet den echten Ausgang; er ersetzt keine Strombegrenzung und keinen Hardware-Not-Aus. Der Regler vergleicht den Sollwert mit dem aufbereiteten Sensormesswert und treibt den Aktor über eine PWM-Stufe an, die für die Last bemessen ist.

Blockdiagramm eines geschlossenen PID-Regelkreises. Der Sollwert läuft in eine Summationsstelle, der Fehler speist den PID-Regler, dessen Ausgang Aktor und PWM-Stufe treibt, diese treiben die Strecke, und ein Sensor misst den Streckenausgang und führt ihn mit negativem Vorzeichen zur Summationsstelle zurück.
Der geschlossene PID-Kreis: Der Sensor schließt den Pfad vom Streckenausgang zurück zur Summationsstelle, wo die Rückführung vom Sollwert subtrahiert wird. SVG herunterladen

Geführte Experimente

Über Überschwingen zu lesen ist nicht dasselbe, wie es gezielt zu erzeugen. Jedes Experiment dauert wenige Minuten und isoliert genau einen Effekt.

1. Kritische Verstärkung finden

Setze Ki und Kd auf null. Erhöhe Kp, bis der Ausgang mit konstanter Amplitude schwingt — weder wachsend noch abklingend. Notiere diese Verstärkung (Ku) und die Schwingungsperiode (Tu).

Diese zwei Zahlen genügen für eine erste Abstimmung:

Regler Kp Ki Kd
PID (klassisch) 0.6 Ku 1.2 Ku / Tu 0.075 Ku Tu
PID (ohne Überschwingen) 0.2 Ku 0.4 Ku / Tu 0.066 Ku Tu

Gib sie ein und vergleiche. Die klassische Zeile ist aggressiv und überschwingt 20–40 %; die zweite landet ohne Überschwingen und braucht länger. Keine ist „richtig“ — es sind verschiedene Antworten auf verschiedene Anforderungen, und genau darum geht es.

2. Integral-Windup sichtbar machen

Setze die Aktorgrenze niedrig — etwa 20 % des Bereichs — und kommandiere dann einen großen Sollwertsprung. Beobachte das Stellgrößendiagramm: Es sättigt sofort und bleibt dort, während das Integral Fehler aufintegriert, die es nicht umsetzen kann. Erreicht der Ausgang endlich den Sollwert, entlädt sich die gespeicherte Wirkung, und das System schießt weit darüber hinaus.

Erhöhe nun die Aktorgrenze und wiederhole mit denselben Verstärkungen. Das Überschwingen verschwindet weitgehend. Am Regler hat sich nichts geändert — das ist die Lektion. Windup ist eine Eigenschaft des Zusammenspiels von Regler und sättigendem Aktor, nicht der Verstärkungen.

3. Beweisen, dass Totzeit — nicht Rauschen — den Kreis tötet

Erhöhe das Abtastintervall schrittweise bei festen Verstärkungen. Die Antwort wird schlechter, lange bevor das Diagramm verrauscht aussieht: Das Überschwingen wächst, dann erscheint Schwingung, dann wird es instabil.

Abtastintervall Was du bei sonst guter Abstimmung siehst
5 ms Sauber, wie abgestimmt
20 ms Etwas mehr Überschwingen
50 ms Sichtbares Nachschwingen
100 ms Dauerschwingung
200 ms Instabil

Darum verbessert das Entfernen eines delay() aus der Roboterschleife das Folgen oft stärker als jede Abstimmung. Veraltete Information kann keine Verstärkung retten.

4. Dem Differenzial Rauschen geben

Erhöhe die Störgröße bei Kd gleich null und erhöhe dann Kd. Die Stellgrößenspur wird zackig, lange bevor der Ausgang es wird — du siehst, wie Differenzierung hochfrequente Anteile verstärkt, genau wie sie muss.

Dieses Verhalten lässt viele schließen, D sei nutzlos, und sie setzen es auf null. Die echte Lösung liegt weiter vorn: Messung filtern oder den D-Anteil selbst filtern.

Was du beobachten solltest

Einstellung Erwartete Form Wenn du etwas anderes siehst
Nur Kp, niedrig Steigt langsam, bleibt unter dem Sollwert —
Nur Kp, hoch Überschwingt, klingt ab Wachsende Schwingung heißt: über Ku
Kp + Kd Schneller Anstieg, wenig Überschwingen, kleiner bleibender Offset Zackige Stellgröße heißt: D verstärkt Rauschen
Kp + Ki Erreicht den Sollwert exakt, langsamer Überschießen heißt: Windup oder zu viel Ki
Volles PID Schnell, minimales Überschwingen, kein Offset —

Der bleibende Offset mit P und D, aber ohne I ist es wert, einmal gezielt erzeugt zu werden. Er zeigt am klarsten, wozu der Integralanteil da ist: P-Wirkung braucht einen Fehler ungleich null, um überhaupt etwas zu stellen, und parkt daher zwangsläufig etwas zu kurz.

Umsetzung auf Hardware

Hier gefundene Verstärkungen sind ein Startpunkt, keine Übertragung. Was sich perfekt überträgt, ist das Verfahren; was sich nicht überträgt, sind die Zahlen, denn sie beschreiben diese Strecke.

Dieses Labor Echter Roboter
Abtastintervall ist exakt Jitter, außer du misst dt und übergibst es
Strecke ist ein sauberes Modell zweiter Ordnung Reibung, Totzone, drehzahlabhängiges Drehmoment
Aktorgrenze ist eine harte Klemmung Zusätzlich Stromgrenzen, Spannungseinbruch und Wärme
Kein Sensorrauschen, außer du fügst es hinzu Immer Rauschen, selten gaußförmig
Strecke ändert sich nie Batteriespannung, Last und Temperatur ändern sie

Die letzte Zeile stiftet in der Praxis am meisten Verwirrung. Eine Abstimmung, die mit frischen Zellen perfekt ist, wird mit leeren träge, weil derselbe Befehl nun weniger Drehmoment erzeugt. Das ist kein Versagen der Methode — Verstärkungen sind Eigenschaften der Strecke, und die Strecke hat sich bewegt. Die professionellen Antworten sind ein unterlagerter Drehzahlkreis oder Gain-Scheduling. Arbeite PID-Regler abstimmen für das komplette Verfahren durch und bringe es dann ins Linienfolger-Labor, wo die Strecke sich wehrt.

Hardware-Checkliste

Bauteile

  • Mikrocontroller mit stabilem Zeitgeber
  • Messtechnisch erfasste Strecke wie DC-Motor oder Servo
  • Encoder, Potenziometer oder anderer Rückführungssensor
  • Leistungstreiber für den Aktor
  • Geregelte Spannungsversorgung und Not-Aus

Den Graphen erkunden

Wo dieser Simulator verwendet wird

Die Projekte, Lernpfade und Tutorials, die auf diesem Labor aufbauen.

Weiterbauen

Ressourcen herunterladen

Nutze diese Referenzen auf der Seite, während du das Projekt durcharbeitest. Herunterladbare Projektpakete kommen erst hinzu, wenn ihr Quellcode und ihre Version veröffentlicht sind.

Häufige Fragen

Häufig gestellte Fragen

Womit beginne ich beim Abstimmen?

Beginne mit Integral- und Differenzialverstärkung null. Erhöhe die Proportionalverstärkung, bis die Antwort schnell, aber schwingend ist, und füge dann D-Dämpfung hinzu. Die Integralverstärkung kommt zuletzt und nur bei bleibender, wiederholbarer Regelabweichung. Faustregel: P bringt Schnelligkeit, D reduziert Überschwingen und I beseitigt die bleibende Abweichung — in dieser Reihenfolge, einzeln.

Wie verhindere ich Überschwingen beim PID-Regler?

Überschwingen kommt meist von zu viel P- oder I-Wirkung. Senke zuerst die Proportionalverstärkung und erhöhe dann die Differenzialverstärkung, um die Annäherung zu dämpfen. Tritt Überschwingen erst auf, nachdem der Aktor an seine Grenze stößt, ist Integral-Windup die Ursache — dann klemme den Integralanteil statt der Verstärkung.

Warum schwingt mein PID-Regelkreis?

Dauerschwingung bedeutet fast immer: Proportionalverstärkung zu hoch für den Kreis oder Differenzialanteil zu schwach zur Dämpfung. Halbiere etwa die Proportionalverstärkung und füge D-Anteil hinzu. Schwingung kann auch von einem zu langsamen oder unregelmäßigen Regelintervall kommen, das den D-Anteil unzuverlässig macht.

Was ist Integral-Windup und wie verhindere ich es?

Windup entsteht, wenn der Aktor sättigt — Motor bei voller Drehzahl, Ventil ganz offen — der aufintegrierte Fehler aber weiter wächst, sodass der Regler beim Vorzeichenwechsel stark überschießt. Verhindere es mit Clamping (Integration stoppen, solange der Ausgang sättigt) oder Back-Calculation (Integral über die Differenz aus angefordertem und geliefertem Ausgang abbauen).

Wie schnell muss eine PID-Schleife laufen?

Die Schleife sollte mehrfach schneller abtasten als das System, das sie regelt, und zwar in konstantem Intervall. Vermeide lange blockierende Verzögerungen auf dem Mikrocontroller: Eine variable oder langsame Schleife ändert die wirksamen I- und D-Anteile, auch wenn die Verstärkungen gleich bleiben — eine häufige versteckte Ursache schlechter Abstimmung.

Kann ich PID nur mit P- und D-Anteil nutzen?

Ja. PD-Regelung (ohne Integral) ist üblich, wenn eine kleine bleibende Abweichung zulässig ist und Windup vermieden werden soll; PI-Regelung (ohne Differenzial) passt zu verrauschten Signalen, bei denen ein D-Anteil Rauschen verstärken würde. Nutze nur die Anteile, die das Problem braucht, statt immer volles PID.

Was unterscheidet manuelles Abstimmen von Ziegler–Nichols?

Manuelles Abstimmen stellt eine Verstärkung nach der anderen ein und beobachtet die Antwort — intuitiv und lernsicher. Ziegler–Nichols ist eine formelbasierte Methode, die Verstärkungen aus dem Punkt der Dauerschwingung ableitet; sie ist schneller, aber oft aggressiv, sodass das Ergebnis meist ein Startpunkt für die Handabstimmung ist.

Weiterführende Literatur

Quellen

Maßgebliche Quellen, um tiefer einzusteigen als das begrenzte Lernmodell dieses Simulators.