Systemidentifikation für einen PID-Regler

Dieser Beitrag zeigt eine Möglichkeit, um die zwei gängigsten Systemtypen (PT1 und PT2), die mit einem PID-Regler geregelt werden einfach zu identifizieren. Die vorgestellte Methode basiert auf einer kleinsten Fehlerquadrate Anpassung und funktioniert für beliebige Anregungssignale (auch einen Schrittversuch).

Modellwahl

PT1-Element

Ein PT1-Element ist ein System, welches auf eine Sprungfunktion mit einer Verzögerung reagiert (exponentielles Anschtiegsverhalten). Somit konvergiert es bei einem Schrittversuch gegen einen Endwert und da es ein System erster Ordnung ist, gibt es kein Überschwingen.
Typische PT1-Elemente:
  • Tiefpassfilter (RC-Glied)
  • Thermische Systeme
  • Drehzahlregelung eines DC-Motors

Schrittantwort:

PT2-Schritt

Mathematische Darstellung:

$$ \begin{gather} \tau \dot{y}(t) + y(t) = K u(t) \\ \Downarrow \\ G(s) = \frac{Y(s)}{U(s)} = \frac{K}{\tau s + 1} \end{gather} $$

PT2-Element

Im Gegensatz zum PT1-Element, kann ein PT2-Element bei einem Schrittversuch ein Überschwingen aufweisen. Sofern das System mindestens leicht gedämpft ist, wird auch das PT2-Element gegen einen Endwert konvergieren.
Typische PT2-Elemente:
  • Mechanische Feder-Masse-Dämpfer-Systeme
  • Thermische Systeme mit zwei Kapazitäten

Schrittantwort:

PT2-Schritt

Mathematische Darstellung:

$$ \begin{gather} A \ddot{y}(t) + B \dot{y}(t) + y(t) = K u(t) \\ \Downarrow \\ G(s) = \frac{Y(s)}{U(s)} = \frac{K}{A s^2 + B s + 1} \end{gather} $$

Versuchsdurchführung

Der Schrittversuch ist eine der einfachsten und am häufigsten angewendeten Methoden zur Systemidentifikation, besonders bei linearen Systemen. Hierbei wird das System durch einen Sprung in der Eingangsgrösse angeregt, und die Reaktion des Systems aufgezeichnet. Es ist entscheidend, dass sich das System vor dem Sprung in einem stabilen Ruhezustand befindet und die Messung so lange fortgesetzt wird, bis das System gegen den Endwert konvergiert.
Falls die Systemidentifikation auf Basis eines Schrittversuchs jedoch zu ungenau oder zu grob ausfällt, - beispielsweise weil das System nicht ausreichend Details über das dynamische Verhalten preisgibt - kann es sinnvoll sein, ein anderes Anregungssignal wie das Pseudo-Random-Binary-Sequence (PRBS) zu verwenden. PRBS Signale erlaubt eine präzisere Untersuchung, da sie das System über ein breites Frequenzspektrum anregen und so eine detailliertere Analyse des Verhaltens ermöglichen.
Weitere Informationen dazu finden sich unter folgendem Link (systemwissenschaften.de).

Parameter Schätzung

In diesem Abschnit wird gezeigt, wie die Parameter \(K\) und \(\tau\) für ein PT1-Element aus den Messdaten geschätzt werden können. Die Schätzung erfolgt durch eine lineare Regression, wobei die Messdaten in eine Matrixform gebracht werden.
Für die Schätzung der Parameter vom PT2-Element kann die Methode analog angewendet werden. In den Files für den Download sind beide Varianten implementiert.
Als erstes wird wird die Übertragungsfunktion des PT1-Elements in den z-Bereich transformiert. Es gibt verschiedne Möglichkeiten für die z-Transformation. Der einfachste Weg ist oft die Euler forwärts Methode mit der Substitution von \(s=\frac{z-1}{T}\). $$ \begin{gather} \frac{Y(s)}{U(s)} = \frac{K}{\tau s + 1}\\ s = \frac{z-1}{T}\\ \frac{Y[z]}{U[z]} = \frac{K}{\tau \frac{z-1}{T} + 1} = \frac{KT}{\tau z - \tau + T} \end{gather} $$ Der z-Operator ist eine Zeitverschiebung. Die Potenz von z gibt an, um wie viele Zeitschritte verschoben wird. Positive Potenzen verschieben in die Zukunft, negative in die Vergangenheit. Da wir mit einem kausalen System arbeiten müssen wir die Übertragungsfunktion in eine Form bringen, die nur negative Potenzen von z enthält. Dies ist nötig, da wir nur die Vergangenheit kennen und nicht die Zukunft. $$ \begin{gather} \frac{Y[z]}{U[z]} = \frac{KT}{\tau z - \tau + T} \cdot \frac{z^{-1}}{z^{-1}} = \frac{ KTz^{-1} }{\tau + z^{-1}(T-\tau)} \end{gather} $$ Die Differenzengleichung wird nun ausmultipliziert, umgeformt und in eine Matrixform gebracht. Für eine einfache Notation der Index von \(y\) und \(u\) verwendet, um anzuzeigen wie viele Schritte in die Vergangenheit zurückgegangen wird. Der aktuelle Schritt wird mit 0 bezeichnet. $$ \begin{gather} Y[z] \big[ \tau +z^{-1}(T-\tau) \big] = U[z] \big[ KTz^{-1} \big]\\ \Downarrow\\ y_0 \tau + y_1(T-\tau) = u_1 KT\\ y_0 = \begin{bmatrix} y_1 & u_1 \end{bmatrix} \begin{bmatrix} \frac{T-\tau}{\tau}\\ \frac{KT}{\tau} \end{bmatrix} \end{gather} $$ Die Differenzengleichung kann nun für jeden Messpunkt aufgeschrieben werden und es folgt, $$ \underbrace{ \begin{bmatrix} y_0 \\ y_1 \\ \vdots \\ y_{k-1} \end{bmatrix} }_{\vec{y}} = \underbrace{ \begin{bmatrix} y_1 & u_1\\ y_2 & u_2\\ \vdots & \vdots\\ y_k & u_k \end{bmatrix} }_{X} \underbrace{ \begin{bmatrix} \frac{T-\tau}{\tau}\\ \frac{KT}{\tau} \end{bmatrix} }_{\vec{\theta}} + \vec{e} $$ wobei \(X\) als Datenmatrix, \(\vec{\theta}\) als Parameter Vektor, \(\vec{y}\) als Systemantwort und \(\vec{e}\) als Fehler bezeichnet wird. Mit dem bekannten Gauss-Markov Theorem kann die Least-Squares Lösung für \(\vec{\theta}\) gefunden werden. $$ \vec{\theta} = (X^T X)^{-1} X^T \vec{y} $$ Daraus resultiert das Geleichungssystem, \(\theta_1 = \frac{T-\tau}{\tau}\), \(\theta_2 = \frac{KT}{\tau}\), welches nach \(\tau\) und \(K\) aufgelöst werden kann. $$K = \frac{\theta_2}{\theta_1+1}$$ $$\tau = \frac{T}{\theta_1+1}$$


Für den interessierten Leser wird die nachfolgende Literatur empfohlen: