Technische Artikel

Online-Schätzung für Echtzeit-Fehlererkennung in einem Gleichstrommotor

Von Karthik Srinivasan, MathWorks


Regelalgorithmen werden meist basierend auf einem Anlagenmodell entwickelt. Designkriterien wie Verstärkungs- und Phasenmargen können 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 geringfügigen oder gar fatalen Störfällen kommen.

Um zu gewährleisten, dass Ausfälle in der Anlage nicht zu schwerwiegenden Ausfällen führen, müssen sie frühzeitig erkannt werden. Mithilfe eines Online-Modells können Anlagenmessungen mit Prognosen aus dem Modell verglichen und Ausfälle festgestellt werden, wenn die Differenz einen bestimmten Schwellenwert überschreitet.

In diesem Artikel wird beschrieben, wie ein Online-Anlagenmodell für einen Gleichstrommotor entwickelt und dazu eingesetzt wird, Änderungen der Motordynamik in Echtzeit zu erfassen.

Ausgangslage

Die Ausgangslage für unser Beispiel ist ein Gleichstrommotor, der mit einem Arduino® Uno-Board verbunden ist (Abbildung 1).

Abbildung 1: Mit einem Arduino Uno-Board verbundener Gleichstrommotor.

Abbildung 1: Mit einem Arduino Uno-Board verbundener Gleichstrommotor.

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 (Abbildung 2).

Abbildung 2: Referenzwinkel-Tracking-Fehler.

Abbildung 2: Referenzwinkel-Tracking-Fehler.

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-Fehlererkennung

Um das Arduino Uno zu programmieren, wird in Simulink® mithilfe von Blöcken aus der System Identification Toolbox™ ein einfaches zweiteiliges Modell erstellt (Abbildung 3).

Abbildung 3: Simulink-Modell für Gleichstrommotorsteuerung und Online-Parameteridentifizierung. Oben: Der Steueralgorithmus. Unten: Online-Parameteridentifizierungs- und Fehlererkennungsalgorithmus.

Abbildung 3: Simulink-Modell für Gleichstrommotorsteuerung und Online-Parameteridentifizierung. Oben: Der Steueralgorithmus. Unten: Online-Parameteridentifizierungs- und Fehlererkennungsalgorithmus.

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 untere Teil des Modells, der mithilfe des 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 ein ARMAX-Polynommodell des Gleichstrommotors geschätzt wird.

Die Auswahl der richtigen Anzahl von Parametern ist teils wissenschaftlich basiert, teils Trial and Error. Weil Gleichstrommotoren in der Regel als Systeme zweiter Ordnung modelliert werden, wird für die Anzahl der Pole (A(q)-Bedingungen) 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) (Abbildung 4).

Abbildung 4: Geschätzte Modellparameter.

Abbildung 4: Geschätzte Modellparameter.

Der Recursive Polynomial Estimator-Block bietet die Option zum Aktivieren oder Deaktivieren der Parameterschätzung (Abbildung 5).

Abbildung 5: Recursive Polynomial Estimator-Block mit aktivierter Parameterschätzung.

Abbildung 5: Recursive Polynomial Estimator-Block mit aktivierter Parameterschätzung.

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 (Abbildung 6). 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.

Abbildung 6: In Stateflow implementierter Fehlererkennungsalgorithmus.

Abbildung 6: In Stateflow implementierter Fehlererkennungsalgorithmus.

Dieses Simulink-Modell wird mithilfe der Run on Target-Funktion von Simulink auf dem Arduino Uno-Board bereitgestellt.

Ergebnisse

Nun sind Änderungen der Gleichstrommotor-Dynamik zu erkennen, während der Motor läuft (Abbildung 7).

Abbildung 7: Echtzeit-Fehlererkennung.

Abbildung 7: Echtzeit-Fehlererkennung.

Nun soll der Online-Parameterschätzungsalgorithmus die ersten zehn Sekunden lang die Gleichstrommotor-Nenndynamik schätzen. Nach 20 Sekunden Simulation führen wir eine Störung in den Gleichstrommotor ein. 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.

Diesen Ansatz ausweiten

In diesem Beispiel wird die Online-Schätzung genutzt, um Fehler in einem physischen System während ihres Auftretens zu erkennen. Häufige Anwendungen der Online-Schätzung umfassen auch die adaptive Regelung, wo diese zur Schätzung eines Anlagenmodells zur Änderung eines Reglers anhand von Änderungen am Anlagenmodell eingesetzt wird und Soft Sensing, wo sie für Feedback-Steuerung oder Fehlererkennung anhand des geschätzten Anlagenmodells eine „Messung“ generieren.

Nach der Bestätigung der Online-Schätzung in der Simulation können Codes für Modelle generiert und die Zielhardware bereitgestellt werden.

Veröffentlicht 2017 - 92302v00

Artikel für ähnliche Einsatzgebiete anzeigen