Zurück zur Startseite

PID-Regler: Modellierung der P-, I- und D-Teile

Der Artikel demonstriert die Modellierung des PID-Reglers durch FDTD-Simulation von Heizer und mechanischem System. Effekte der P-, I- und D-Komponenten werden mit Mathematica-Codebeispielen analysiert. Eliminierung des statischen Fehlers und Optimierung der Reaktion werden diskutiert.

Wie PID funktioniert: Simulation mit Code und Grafiken
Advertisement 728x90

Modellierung eines PID-Reglers: Von der proportionalen Grundlage bis zum vollständigen Rückkopplungsloop

Ein PID-Regler erzeugt ein Steuersignal basierend auf dem Fehler e(t) = Sollwert - Messwert. In seiner einfachsten Form korrigiert die proportionale Komponente u(t) = K_p * e(t) Abweichungen. Zum Beispiel bei der Regelung des Wasserstandes: Wenn e(t) > 0 ist, öffnet sich ein Ventil proportional zum Fehler, wobei das Signal jedoch an maximaler Durchflussmenge begrenzt wird.

Realwelt-Systeme weisen Verzögerungen auf. Bei einem Heizkörper breitet sich die Wärme gemäß der Diffusionsgleichung ∂w/∂t = Δw + f(x,y,t) aus, wobei f die Wärmequelle darstellt. Dies ist ein diffusiver Prozess mit Dämpfung – vergleichbar mit Wellen, die Energie verlieren.

Numerische Simulation der Wärmeleitung

Analytische Lösungen in Mathematica zeigen die Temperaturverteilung:

Google AdInline article slot
sol = NDSolveValue[
  {
    D[w[x, y, t], t] == Laplacian[w[x, y, t], {x, y}] + 
      If[(x + 2)^2 + y^2 < 0.1 && t > 0.0, 100.0, 0],
    w[x, y, 0] == 0
  },
  w,
  {x, y} ∈ Rectangle[{-2, -1}, {2, 1}],
  {t, 0, 10}
];

Temperaturwerte in größeren Entfernungen von der Quelle steigen verzögert an. Um Rückkopplung zu simulieren, wechseln wir zur diskreten Zeitbereichsmodellierung mittels FDTD (Finite-Difference Time-Domain).

Grundschritt für die 2D-Wärmeleitungsgleichung:

solveHeat[w_, f_, dt_: 0.0025, dx_: 0.1] := Table[
  If[i > 1 && i < 50 && j > 1 && j < 50,
    w[[i, j]] + dt (
      w[[i - 1, j]] + w[[i, j - 1]] - 4 w[[i, j]] + 
      w[[i, j + 1]] + w[[i + 1, j]]
    )/dx^2 + dt f[i, j],
    w[[i, j]]
  ],
  {i, 50}, {j, 50}
];

CFL-Stabilitätsbedingung: δt / δx² ≤ 0,25. Simulationen zum Ein- und Ausschalten des Heizers bestätigen die Trägheit des Systems.

Google AdInline article slot

Proportionalregler: Persistierender Fehler

P-Regler-Anbindung: Heizleistung = K_p * Clip[Fehler, {0, ∞}]. Bei geringer Heizleistung stabilisiert sich die Temperatur unterhalb des Sollwerts aufgrund von Verlusten. Erhöht man K_p, verkürzt sich die Einschwingzeit, doch verstärken sich Oszillationen – der stationäre Fehler bleibt erhalten.

Graphik zeigt:

  • Geringe Leistung: langsamer Anstieg, erreicht Sollwert nicht.
  • Hohe Leistung: Oszillationen ohne Konvergenz.

Integralanteil: Beseitigung des stationären Fehlers

Der Integralanteil akkumuliert den Fehler: accError += Fehler; u(t) = K_p Fehler + K_i accError. Damit kompensiert er statische Verluste.

Google AdInline article slot

Beispiel mit reduzierter Leistung:

Module[{w = Table[0., {50}, {50}], accError = 0.0},
  Table[
    With[{error = (0.0022 - w[[25, 25]])},
      {
        heater = 20000.0 Clip[error + 0.001 accError, {0, Infinity}]
      },
      accError += error;
      w = solveHeat[w, Function[{i, j}, If[Max[Abs[{i, j} - {25, 2}]] < 1, heater, 0.0]]];
      {{steps, w[[25, 25]]}, {steps, heater/30000.0}}
    ],
    {steps, 1, 3000}
  ]
];

Die Temperatur nähert sich dem Sollwert ohne Oszillation an.

Derivativer Anteil: Vorhersage von Oszillationen

Der Derivatanteil reagiert auf die Änderungsrate des Fehlers: u(t) = K_p e + K_i ∫e + K_d * de/dt. Er dämpft zukünftige Überschwingungen.

Der vollständige PID-Regler verringert die Anstiegszeit, erfordert jedoch präzise Abstimmung. Zu hohe K_d-Werte führen zu Artefakten.

Vergleich:

  • P-allein: langsame Reaktion, persistierender Fehler.
  • PI: Konvergenz, mögliche Überschwingung.
  • PID: optimale Reaktion, minimale Oszillation.

Formaler Aufbau und mechanisches System

Komplette Formel: u(t) = K_p e(t) + K_i ∫₀ᵗ e(τ) dτ + K_d de/dt.

Für eine Masse m: x''(t) = u(t)/m. Differenzieren des PID vereinfacht ihn: u'(t) = K_i e + K_p e' + K_d e''.

Ohne Regler: konstante u=1 ergibt x(t) = t²/(2m) – parabelförmige Bahn.

Mit P-Regler: e(t) = a - x(t) bildet einen geschlossenen Kreislauf. Die Abstimmung der Koeffizienten ist ein iterativer Prozess, der die Systemdynamik berücksichtigt.

Wichtige Erkenntnisse:

  • Der proportionale Anteil liefert die Basisreaktion, hinterlässt jedoch einen stationären Fehler.
  • Der Integralanteil beseitigt akkumulierte Abweichungen in trägen Systemen.
  • Der Derivatanteil prognostiziert Änderungen und beschleunigt die Stabilisierung.
  • Die FDTD-Simulation visualisiert Effekte zur Fehlersuche.
  • Stabilität erfordert Erfüllung der CFL-Bedingung und Begrenzung von u(t).

— Editorial Team

Advertisement 728x90

Weiterlesen