Zum Inhalt springen
cd ../blog

Ein 1,1-KB-Modell auf einem STM32 unterbringen

Bei der Erkennung von Lagerschäden lieferten fünf Modelle nahezu dieselbe Güte. Den Ausschlag gab nicht die Genauigkeit, sondern der Speicher des Mikrocontrollers: 289 Parameter, ~1,1 KB in float32.

2 Min. Lesezeit

Das Ziel

Meine Abschlussarbeit Predictive-Edge soll Lagerschäden an Industriemotoren frühzeitig erkennen und die Restlebensdauer (RUL) schätzen – und zwar nicht in der Cloud, sondern auf dem Mikrocontroller direkt am Motor.

Die Merkmale kommen aus der Physik

Statt die rohen Vibrationsdaten direkt ins Modell zu geben, habe ich physikbasierte Merkmale extrahiert. Vom 1-kHz-Vibrationssignal wird eine FFT berechnet; über die Außenring-Schadensfrequenz des Lagers (BPFO, in diesem Aufbau 100 Hz) und ihre Harmonischen werden 8 Merkmale bestimmt, darunter Harmonischenverhältnis, spektrale Entropie, RMS und Spitze-Spitze-Wert. Temperatur und Strom fließen ebenfalls ins Modell ein.

Gute Merkmale erleichtern einem kleinen Modell die Arbeit – und auf einem Embedded-Ziel ist genau das entscheidend.

Fünf Modelle, fast derselbe Score

Ich habe Logistische Regression, Random Forest, SVM, Gradient Boosting und MLP verglichen. Alle lagen bei etwa F1 ≈ 0,99. Da die Genauigkeit kein Unterscheidungsmerkmal war, entschieden Speicherbedarf und Inferenzkosten.

Methodik

  • GridSearchCV und 5-fache Kreuzvalidierung.
  • Der Scaler sitzt in der Pipeline – so fließen keine Informationen aus den Trainingsdaten in die Validierungs-Folds.
  • Beim MLP lag der Unterschied zwischen (32, 16) und (16, 8) unterhalb der Standardabweichung; gewählt wurde das dreimal kleinere (16, 8).

Kennzahlen

KennzahlWert
Parameter289
Modellgröße (float32)~1,1 KB
Mit int8-Quantisierung289 B
ZielSTM32H7 (2 MB Flash)

Dazu kommt die Monitoring-Seite: Gesundheitszustand und Restlebensdauer einer Flotte von 200 Motoren in einem Dashboard, umgesetzt mit Flask-REST-API und Chart.js.

Ehrliche Einschränkung

Der Datensatz besteht aus synthetischen Daten auf Basis eines physikalischen Fehlermodells. Die Ausführung des Modells auf einer echten STM32-Platine und die Validierung mit realen Sensordaten laufen noch. Den F1-Wert von 0,99 sollte man vor diesem Hintergrund lesen.