Regelalgorithmen werden meist basierend auf einem Anlagenmodell entwickelt. Über Designkriterien wie Verstärkungs- und Phasenmargen lässt sich zumindest bei geringfügigen Veränderungen der Anlagendynamik eine akzeptable Robustheit gewährleisten. Ändert sich die Anlagendynamik aber aufgrund eines Komponenten- oder Sensorausfalls signifikant, kann es zu Störfällen kommen – mit möglicherweise sogar fatalen Folgen.

Um zu gewährleisten, dass Störungen in der Anlage nicht zu schwerwiegenden Ausfällen führen, müssen sie frühzeitig erkannt werden. Mithilfe eines Online-Modells lassen sich Anlagenmessungen mit Prognosen aus dem Modell vergleichen und Störungen feststellen, wenn die Differenz einen bestimmten Schwellenwert überschreitet. Dieser Artikel beschreibt, wie ein Online-Anlagenmodell für einen Gleichstrommotor entwickelt und dazu eingesetzt wird, Änderungen der Motordynamik in Echtzeit zu erfassen.

Ausgangslage

Online-Schätzung

Bild 1: Wie sich Online-Modelle nutzen lassen, wird am Beispiel eines mit einem Arduino-Uno-Board verbundener Gleichstrommotors beschrieben. Mathworks

Konkret geht es um einen Gleichstrommotor, der mit einem Arduino-Uno-Board verbunden ist (Bild 1). Der Gleichstrommotor soll einem Rechtecksignal, das einem Referenzwinkel entspricht, folgen. Nach 20 Sekunden wird eine Störung eingeprägt, die dazu führt, dass der Motor dem Referenzwinkel nicht mehr richtig folgen kann (Bild 2). Diese Änderung des Motorverhaltens soll festgestellt werden, während der Gleichstrommotor in Betrieb ist. Dazu wird ein Arduino-Uno-Board programmiert, um eine Online-Schätzung vorzunehmen.

Online-Schätzung

Bild 2: Eine eingeprägte Störung sorgt dafür, dass der Motor dem Referenzwinkel nicht mehr richtig folgen kann. Mathworks

Um das Arduino Uno zu programmieren, wird in der Simulink-Software von Mathworks mithilfe von Blöcken aus der „System Identification Toolbox“ ein einfaches zweiteiliges Modell erstellt. Der Modellteil mit dem Steueralgorithmus verwendet eine Motorwinkelmessung und einen einfachen PID-Regler, um eine Spannungsanfrage an den Motor zu berechnen und die Referenz für die Winkelposition zu verfolgen.

Der Teil des Modells, der mithilfe des sogenannten „Recursive-Polynomial-Estimator-Blocks“ in der System Identification Toolbox erstellt ist, implementiert die Online-Parameteridentifizierung und Fehlererkennung. Die vom Gleichstrommotor angeforderte Spannung und der gemessene Motorwinkel werden als Eingaben für diesen Block bereitgestellt. Weil man mit einer Armax-Modellstruktur Rauschen und Dynamik unabhängig voneinander modellieren kann, wird dieser Block so konfiguriert, dass sich ein Armax-Polynommodell des Gleichstrommotors schätzen lässt.

Parameterschätzung

Online-Schätzung

Bild 3: Der Recursive-Polynomial-Estimator-Block bietet die Option zum Aktivieren oder Deaktivieren der Parameterschätzung. Mathworks

Die Auswahl der richtigen Anzahl von Parametern ist teils wissenschaftlich basiert, teils beruht sie auf einem Trial-and-Error-Verfahren. Weil Gleichstrommotoren in der Regel als Systeme zweiter Ordnung modelliert werden, wird für die Anzahl der Pole (A(q)-Bedingungen) der Wert 2 und für B(q) und C(q) jeweils 2 und 1 gewählt. Durch Beobachten, wie lange der Gleichstrommotor braucht, um auf einen Schritteingang zu antworten, wird die Eingangsverzögerung gewählt und diese Zahl durch die Abtastzeit der Schätzfunktion dividiert. Das Ergebnis ist der Wert 2 für die Eingangsverzögerung (nk). Der Recursive-Polynomial-Estimator-Block bietet die Option zum Aktivieren oder Deaktivieren der Parameterschätzung (Bild 3).

Der Enable-Port wird verwendet, um die Online-Parameterschätzung für die ersten zehn Sekunden des Experiments durchzuführen, also lange genug, damit die geschätzten Parameter ihre stationären Werte annehmen. Nach zehn Sekunden wird die Schätzung deaktiviert. Wenn die Schätzung deaktiviert ist, aktualisiert der Block die Gleichstrommotor-Parameter nicht. Stattdessen gibt er deren zuvor geschätzte Werte aus. Mithilfe dieser geschätzten Parameterwerte kann der Motorwinkel für eine vorgegebene Spannung unter normalen Betriebsbedingungen des Motors prognostiziert und diese Prognose mit dem gemessenen Motorwinkel verglichen werden.

Um den prognostizierten mit dem gemessenen Motorwinkel zu vergleichen, wird der Error-Port aktiviert, der den Ein-Schritt-im-Voraus-Prognosefehler (die Differenz zwischen dem gemessenen Motorwinkel und dem vom Block geschätzten) ausgibt. Die Tiefpassfilter-Version des Ein-Schritt-Prognosefehlers wird an den Fehlererkennungsalgorithmus weitergegeben, der als Zwei-Status-Stateflow-Diagramm implementiert wird. Das Stateflow-Diagramm setzt das Fehler-Flag auf 1, wenn der gefilterte Fehler größer als der Schwellwert ist, und setzt das Fehler-Flag auf 0 zurück, wenn zehn Sekunden verstrichen sind und der Fehler kleiner als 1 ist. Dieses Simulink-Modell lässt sich mithilfe der Run-on-Target-Funktion von Simulink auf dem Arduino Uno-Board bereitstellen.

Ergebnisse

Mit dieser Versuchsanordnung lassen sich Änderungen der Gleichstrommotor-Dynamik erkennen, während der Motor läuft. Nun soll der Online-Parameterschätzungsalgorithmus die ersten zehn Sekunden lang die Gleichstrommotor-Nenndynamik schätzen. Nach 20 Sekunden Simulation wird eine Störung in den Gleichstrommotor eingeführt. Sobald die Störung auftritt, wird der Prognosefehler ausgelöst und der Algorithmus setzt das Fehler-Flag auf 1. Wird die Störung entfernt, setzt der Algorithmus das Fehler-Flag wieder auf null zurück.

In diesem Beispiel lässt sich die Online-Schätzung nutzen, um Fehler in einem physischen System während ihres Auftretens zu erkennen. Typische Anwendungen der Online-Schätzung umfassen auch adaptive Regelungen oder Soft Sensing.