KI in der industriellen Automatisierung

Artikelleitfaden

Implementierung eines 1D-Kalman-Filters in Structured Text für verrauschte Sensordaten

Erfahren Sie, wie Sie einen 1D-Kalman-Filter in IEC 61131-3 Structured Text implementieren und validieren, um Sensorrauschen zu reduzieren und gleichzeitig die Ansprechverzögerung im Vergleich zu einfachen Tiefpassfiltern zu begrenzen.

Direkte Antwort

Ein 1D-Kalman-Filter in IEC 61131-3 Structured Text schätzt den wahren Prozesswert aus verrauschten Sensordaten, indem er Zustand, Verstärkung und Kovarianz bei jedem Zyklus aktualisiert. Im Vergleich zu einem Standard-Tiefpassfilter kann er die Varianz reduzieren und gleichzeitig ein schnelleres Tracking beibehalten, was entscheidend ist, wenn PID-Regelkreise, Alarme oder Verriegelungen keine vermeidbare Phasenverzögerung tolerieren können.

Was dieser Artikel beantwortet

Artikelzusammenfassung

Ein 1D-Kalman-Filter in IEC 61131-3 Structured Text schätzt den wahren Prozesswert aus verrauschten Sensordaten, indem er Zustand, Verstärkung und Kovarianz bei jedem Zyklus aktualisiert. Im Vergleich zu einem Standard-Tiefpassfilter kann er die Varianz reduzieren und gleichzeitig ein schnelleres Tracking beibehalten, was entscheidend ist, wenn PID-Regelkreise, Alarme oder Verriegelungen keine vermeidbare Phasenverzögerung tolerieren können.

Verrauschte Prozessdaten sind kein Programmierproblem, sondern ein Regelungsproblem. Ultraschall-Füllstandssensoren, Wägezellen, Drucktransmitter und Durchflussmesser erzeugen unter normalen Anlagenbedingungen Messrauschen, da Vibrationen, elektromagnetische Störungen (EMI), Turbulenzen, mitgeführte Luft und Montagegegebenheiten nicht einfach zugunsten eines sauberen Trends verschwinden.

Ampergon Vallis Kennzahl: Bei Tests im OLLA Lab Signal Simulator erzeugte ein PT1-Filter (Verzögerungsglied erster Ordnung), der auf ein verrauschtes Füllstandssignal angewendet wurde, eine Ansprechverzögerung von etwa 400 ms, während ein in Structured Text implementierter 1D-Kalman-Filter denselben zugrunde liegenden Kurvenverlauf bei vergleichbarer visueller Glättung mit etwa 45 ms Verzögerung verfolgte. Methodik: 12 simulierte Testläufe, Füllstandserfassung mit einem Sensor, Vergleich mit PT1-Baseline, Testzeitraum 3/2026. Dies stützt die praktische Annahme, dass prädiktive Schätzung die Reaktionsfähigkeit in diesem Testszenario besser bewahren kann als einfache Glättung. Dies beweist nicht eine universelle Überlegenheit über alle Sensoren, Zykluszeiten oder Abstimmungsvarianten hinweg.

Der technische Punkt ist einfach: Wenn Ihr PID-Regelkreis dem Rauschen hinterherläuft, kann ein Tiefpassfilter den Trend zwar beruhigen, aber gleichzeitig das Regelverhalten verschlechtern. Ventile und Dämpfer bemerken dies meist, bevor es im Meeting auffällt.

Warum ist Structured Text für Kalman-Filter besser geeignet als Kontaktplan (Ladder Logic)?

Structured Text ist die korrekte IEC 61131-3-Sprache für diese Klasse von Algorithmen, da Kalman-Filter iterative Mathematik mit gespeichertem Zustand sind und keine sprossenorientierte Verriegelungslogik. Man kann die Gleichungen zwar in einen Kontaktplan (LD) zwingen, aber „möglich“ ist nicht dasselbe wie „sinnvoll“.

Structured Text passt aus drei Gründen besser zum Algorithmus

- Ausführungsklarheit: ST drückt algebraische Operationen direkt aus. Die Vorhersage-Aktualisierungs-Sequenz liest sich in der gleichen Reihenfolge wie die zugrunde liegenden Gleichungen.

- Zustandsspeicherung: Ein Kalman-Filter muss vorherige Schätzwerte von einem Zyklus zum nächsten übertragen, einschließlich der vorherigen Kovarianz und der vorherigen Zustandsschätzung. ST handhabt dies natürlich mit remanenten Variablen.

- Prüfbarkeit: In LD wird derselbe Filter oft zu einer Kette von `ADD`-, `SUB`-, `MUL`- und `DIV`-Blöcken, die über mehrere Netzwerke verteilt sind. Das ist schwerer zu überprüfen, schwerer zu warten und bei Änderungen fehleranfälliger.

- Zyklusdisziplin: Komplexe Fließkomma-Mathematik in LD kann den visuellen und Ausführungs-Overhead erhöhen. Das Problem ist nicht, dass SPSen nicht rechnen können; das können sie. Das Problem ist, dass LD ein schlechter Ort ist, um eine numerische Methode zu verstecken.

Der praktische Unterschied liegt in Syntax versus Bereitstellbarkeit

Kontaktplan ist exzellent für Freigaben, Abläufe, Verriegelungen und die Sichtbarkeit diskreter Steuerungen. Es ist nicht das beste Medium für kompakte numerische Schätzungen. Ein 1D-Kalman-Filter ist klein, aber er ist dennoch ein Zustandsschätzer. Behandeln Sie ihn auch so.

Warum dies für das Inbetriebnahmerisiko wichtig ist

Benutzerdefinierter ST-Code auf einer laufenden Steuerung führt echte Fehlermodi ein. Schlecht begrenzte Schleifen, fehlerhafte Initialisierung, Division-durch-Null-Bedingungen oder einfache Logikfehler können je nach Plattform und Implementierung Watchdog-Fehler oder instabiles Verhalten auslösen. OLLA Lab ist hier als begrenzte Validierungsumgebung nützlich: Ingenieure können kompilieren, simulieren, Rauschen injizieren und Parameter abstimmen, bevor sie die Feldimplementierung vornehmen, wo Fehler weniger lehrreich und deutlich teurer sind.

Was sind die mathematischen Kerngleichungen eines 1D-Kalman-Filters?

Ein 1D-Kalman-Filter schätzt einen einzelnen skalaren Zustand aus verrauschten Messungen, indem er in jedem Zyklus eine Vorhersagephase und eine Aktualisierungsphase wiederholt. In SPS-Begriffen ausgedrückt ist es ein rekursiver Schätzer, der entscheidet, wie sehr er dem Modell gegenüber dem eingehenden Sensorwert vertraut.

Kernvariablen

Der gefilterte Wert, den Sie nachgelagert verwenden möchten.

  • X — Aktuelle Zustandsschätzung

Die gespeicherte Schätzung aus dem vorherigen Zyklus.

  • X_prev — Vorherige Zustandsschätzung

Ein Maß für die Unsicherheit in der aktuellen Schätzung.

  • P — Schätzfehler-Kovarianz

Die gespeicherte Kovarianz aus dem vorherigen Zyklus.

  • P_prev — Vorherige Schätzfehler-Kovarianz

Die angenommene Unsicherheit im System selbst. Ein höheres `Q` lässt den Filter schneller auf Änderungen reagieren.

  • Q — Prozessrausch-Kovarianz

Die angenommene Unsicherheit in der Sensormessung. Ein höheres `R` lässt den Filter dem Sensor weniger vertrauen.

  • R — Messrausch-Kovarianz

Der dynamische Gewichtungsfaktor zwischen Vorhersage und Messung.

  • K — Kalman-Verstärkung (Gain)

Die verrauschte Prozessvariable, die in den Filter eingeht.

  • Raw_Input — Gemessener Sensorwert

Vorhersage- und Aktualisierungsgleichungen

Für die einfachste 1D-Form, bei der angenommen wird, dass der Zustand zwischen den Zyklen ohne ein detaillierteres Bewegungsmodell bestehen bleibt:

Vorhersagephase

  • `P = P_prev + Q`

Aktualisierungsphase

  • `K = P / (P + R)`
  • `X = X_prev + K * (Raw_Input - X_prev)`
  • `P_prev = (1 - K) * P`
  • `X_prev = X`

Operative Bedeutung von Q und R

Das Abstimmungsverhalten wird hauptsächlich durch `Q` und `R` bestimmt.

  • Erhöhen Sie Q, wenn sich der zugrunde liegende Prozess schnell ändern kann und der Schätzer sich schneller anpassen muss.
  • Erhöhen Sie R, wenn der Sensor verrauscht ist und der Schätzer den Messungen weniger vertrauen sollte.
  • Wenn Q zu niedrig ist, wird der Filter träge.
  • Wenn R zu niedrig ist, folgt der Filter dem Rauschen zu eifrig.
  • Wenn beide schlecht geschätzt werden, ist das Ergebnis immer noch ein Filter, nur kein nützlicher. Mathematik ist kein Ersatz für Prozessverständnis.

Wie schreibt man einen 1D-Kalman-Filter in IEC 61131-3 Structured Text?

Eine minimale Implementierung erfordert remanente Variablen, eine explizite Initialisierung und einen Ausführungspfad pro Zyklus. Der folgende Code ist bewusst einfach gehalten und für die Anpassung in einen Funktionsbaustein oder einen zyklischen Programmabschnitt geeignet.

### Beispiel: 1D-Kalman-Filter in Structured Text

Structured Text Beispiel:

VAR Raw_Input : REAL; // Verrauschter Sensoreingang Filtered_Output : REAL; // Gefiltertes Ergebnis

X : REAL; // Aktuelle Zustandsschätzung X_prev : REAL := 0.0; // Vorherige Zustandsschätzung

P : REAL; // Aktuelle Fehlerkovarianz P_prev : REAL := 1.0; // Vorherige Fehlerkovarianz

Q : REAL := 0.01; // Prozessrausch-Kovarianz R : REAL := 0.10; // Messrausch-Kovarianz

K : REAL; // Kalman-Verstärkung

InitDone : BOOL := FALSE; END_VAR

// Einmalige Initialisierung IF NOT InitDone THEN X_prev := Raw_Input; P_prev := 1.0; InitDone := TRUE; END_IF;

// Vorhersagephase P := P_prev + Q;

// Aktualisierungsphase K := P / (P + R); X := X_prev + K * (Raw_Input - X_prev);

// Speichern für den nächsten Zyklus P_prev := (1.0 - K) * P; X_prev := X;

// Ausgabe Filtered_Output := X;

Implementierungshinweise für die reale SPS

  • Initialisieren Sie mit der ersten Live-Messung statt mit Null, wenn möglich. Dies vermeidet einen unnötigen Einschwingvorgang beim Start.
  • Speichern Sie nur das, was der Algorithmus benötigt. In dieser einfachen Form sind das primär `X_prev` und `P_prev`.
  • Verwenden Sie Fließkommatypen, die für die Plattform geeignet sind. Manche SPSen behandeln `REAL` und `LREAL` unterschiedlich genug, dass es für die Stabilität der Abstimmung wichtig sein kann.
  • Vermeiden Sie versteckte Reinitialisierungen. Wenn `InitDone` unerwartet zurückgesetzt wird, scheint der Filter beim Neustart zu „springen“.
  • Halten Sie die Ausführung deterministisch. Der Filter sollte einmal pro Zyklus oder einmal pro zeitgesteuerter Aufgabe laufen, nicht opportunistisch.

Wann man dies in einen Funktionsbaustein kapselt

Ein Funktionsbaustein ist vorzuziehen, wenn Sie Folgendes benötigen:

  • mehrere Instanzen für verschiedene Sensoren,
  • explizite Kapselung des Zustands,
  • standardisiertes Initialisierungsverhalten,
  • sauberere Wiederverwendbarkeit in Projekten.

Das ist normalerweise das richtige Produktionsmuster. Die Inline-Version ist dennoch nützlich für das Verständnis und die Validierung auf dem Prüfstand.

Wie testet man das Filterverhalten gegen injiziertes Rauschen in OLLA Lab?

Testen ist der Unterschied zwischen dem Schreiben von Code und dem Validieren von Verhalten. OLLA Lab ist hier relevant, da es eine browserbasierte Umgebung bietet, um den riskanten Teil zu proben: den Nachweis des Filters unter verrauschten, sich ändernden und fehlerähnlichen Bedingungen, bevor er einen Live-Prozess berührt.

„Simulationsbereit“ korrekt definieren

Simulationsbereit bedeutet nicht „in der Lage, SPS-Syntax auswendig zu schreiben“. Es bedeutet, dass ein Ingenieur Regellogik gegen realistisches Prozessverhalten beweisen, beobachten, diagnostizieren und härten kann, bevor sie ein Live-System erreicht. Dazu gehört das Beobachten von E/A, das Vergleichen von Kontaktplan- oder ST-Zuständen mit dem simulierten Anlagenzustand, das Injizieren anomaler Bedingungen und das Überarbeiten der Logik nach einem Fehlerfall.

Das ist ein strengerer Standard als der Abschluss eines Tutorials. Es ist auch näher an der tatsächlichen Inbetriebnahme.

Ein praktischer OLLA Lab Test-Workflow

  • Öffnen Sie das Variablen-Panel.
  • Mappen Sie `Raw_Input` auf eine simulierte analoge Quelle im Signal Simulator.
  • Verwenden Sie ein langsames Sinus-, Rampen- oder stufenartiges analoges Profil, um einen sich ändernden Prozesswert wie Tankfüllstand, Druck oder Durchfluss darzustellen.
  • Überlagern Sie Rauschen auf das Basissignal, um Vibrationen, Turbulenzen oder elektrische Störungen zu simulieren.
  • Beginnen Sie mit moderatem Rauschen und erhöhen Sie dann die Amplitude, um die Robustheit des Schätzers zu testen.
  • Trenden Sie `Raw_Input` und `Filtered_Output` zusammen.
  • Beobachten Sie, ob das gefilterte Signal das Rauschen unterdrückt, ohne wesentlich hinter der zugrunde liegenden Wellenform zurückzubleiben.
  • Erhöhen Sie `R`, wenn der Filter dem Rauschen zu eng folgt.
  • Erhöhen Sie `Q`, wenn der Filter zu langsam ist, um echte Prozessbewegungen zu verfolgen.
  • Führen Sie Stufenänderungen, Spitzen oder plötzliche Prozessumkehrungen ein.
  • Bestätigen Sie, dass sich der Schätzer sauber erholt und die nachgelagerte Logik nicht destabilisiert.
  1. Das Rohsignal binden
  2. Ein Basis-Wellenform anwenden
  3. Messrauschen injizieren
  4. Gefilterte Antwort beobachten
  5. Q und R live abstimmen
  6. Anomale Übergänge testen

Was OLLA Lab hier tut und was nicht

OLLA Lab ist eine Validierungs- und Probenumgebung für risikoreiche Inbetriebnahmetätigkeiten. In diesem Kontext ermöglicht es Ingenieuren, ST-Logik zu testen, das Variablenverhalten zu inspizieren und das simulierte Prozessverhalten mit der Algorithmusausgabe zu vergleichen, ohne eine physische Steuerung oder eine Live-Anlage zu gefährden. Es ist kein Ersatz für die Abnahme (Site Acceptance), Loop-Check, Sicherheitsvalidierung oder Bedienerschulung an der tatsächlichen Anlage. Diese Grenzen sind wichtig.

Was ist der Unterschied zwischen einem Kalman-Filter und einem Tiefpassfilter in der Prozessregelung?

Ein Tiefpassfilter unterdrückt hochfrequente Schwankungen durch Glättung des Signals über die Zeit. Ein 1D-Kalman-Filter schätzt den wahrscheinlichsten wahren Zustand, indem er die Unsicherheit der vorherigen Schätzung gegen die Messunsicherheit abwägt. Ersteres ist einfache Glättung; Letzteres ist rekursive Schätzung.

Praktischer Vergleich

| Kriterium | PT1-Glied / Tiefpassfilter | 1D-Kalman-Filter | |---|---|---| | Primäre Methode | Zeitbasierte Glättung | Prädiktive Zustandsschätzung | | Haupt-Abstimmparameter | Zeitkonstante / Filterkoeffizient | Prozessrauschen `Q`, Messrauschen `R` | | Reaktion auf Rauschen | Gut | Gut | | Ansprechverzögerung | Oft signifikant | Oft geringer bei guter Abstimmung | | Modellbewusstsein | Minimal | Explizite Unsicherheitsgewichtung | | Komplexität der SPS-Implementierung | Niedrig | Moderat | | Bester Anwendungsfall | Einfache Anwendungen, bei denen Verzögerung akzeptabel ist | Verrauschte Messungen, bei denen Reaktionsfähigkeit wichtig ist |

Die regelungstechnische Konsequenz ist nicht subtil

Wenn ein Tiefpassfilter genügend Phasenverzögerung hinzufügt, kann der Regelkreis im Trend ruhiger aussehen, während er im Betrieb schlechter arbeitet. Das ist die Falle. Ein Trend, der das Auge schmeichelt, kann den Aktor dennoch bestrafen.

Eine begrenzte technische Aussage

Ein 1D-Kalman-Filter ist nicht automatisch besser als ein Tiefpassfilter. Er ist besser geeignet, wenn:

  • Sensorrauschen wesentlich ist,
  • Prozessreaktionsfähigkeit wichtig ist,
  • nachgelagerte PID- oder Alarm-Logik empfindlich auf Verzögerungen reagiert,
  • und der Ingenieur `Q` und `R` mit einer gewissen Disziplin abstimmen kann.

Wenn die Anwendung langsam, tolerant und unkritisch ist, kann ein einfacher Tiefpassfilter völlig ausreichend sein. Komplexität muss sich lohnen.

Welche technischen Nachweise sollten bei der Validierung eines Filters aufbewahrt werden?

Screenshots sind für sich genommen keine technischen Nachweise. Sie sind Souvenirs, sofern sie nicht mit einer Testdefinition verknüpft sind.

Erstellen Sie bei der Dokumentation der Filtervalidierung eine kompakte Beweisgrundlage unter Verwendung dieser Struktur:

  1. Systembeschreibung Definieren Sie die simulierte Anlage, den Sensortyp, die Prozessvariable, den Zykluskontext und die Relevanz für die nachgelagerte Regelung.
  2. Operative Definition von „korrekt“ Geben Sie an, was Erfolg in beobachtbaren Begriffen bedeutet, wie z. B. reduzierte Varianz, akzeptable Tracking-Verzögerung, stabiles PID-Verhalten oder reduziertes Fehlalarm-Aufkommen.
  3. Kontaktplan-Logik und simulierter Anlagenzustand Zeichnen Sie den Kontext der Regellogik und das simulierte Prozessverhalten zum Zeitpunkt des Tests auf.
  4. Der injizierte Fehlerfall Spezifizieren Sie das Rauschprofil, den Spitzenwert, den Ausfall oder die eingeführte Störung.
  5. Die vorgenommene Revision Dokumentieren Sie die angewendeten Parameteränderungen, Codeänderungen oder Initialisierungsänderungen.
  6. Gelernte Lektionen Halten Sie fest, welche Abstimmungsannahme Bestand hatte, was fehlschlug und was vor der Bereitstellung überprüft werden sollte.

Dies ist die Art von Nachweis, die eine Überprüfung übersteht. Eine Screenshot-Galerie tut dies selten.

Welche Standards und Literatur sind bei der Anwendung von Filterlogik in SPS-Umgebungen wichtig?

Filterung ist für sich genommen kein funktionaler Sicherheitsanspruch, aber die Implementierungsqualität ist Teil einer breiteren Disziplin der Softwarekorrektheit, Validierung und Regelungsleistung. Die relevanten Standards und Literatur helfen dabei, zu definieren, wie gute Ingenieursarbeit aussieht.

Normativer Kontext

  • IEC 61131-3 regelt SPS-Programmiersprachen, einschließlich Structured Text und Kontaktplan. Es ist der Sprachrahmen, der für die Implementierungsform relevant ist.
  • IEC 61508 ist relevant, wenn Softwareverhalten sicherheitsbezogene Systeme oder den Lebenszyklus betrifft. Sie „genehmigt“ keinen Kalman-Filter, schärft aber die Erwartungen an Verifizierung, Rückverfolgbarkeit und Softwareintegrität.
  • Anleitungen von Organisationen wie exida sind nützlich, wenn es um Validierungsdisziplin, Fehlerverhalten und die Trennung zwischen Regelungsbequemlichkeit und Sicherheitsfunktion geht.

Literaturkontext

Aktuelle Literatur zu Prozessregelung, Sensorfusion und digitaler Simulation stützt im Allgemeinen einige begrenzte Schlussfolgerungen:

  • industrielle Messungen sind routinemäßig durch Rauschen und Störungen korrumpiert;
  • Filterentscheidungen beeinflussen sowohl die Signalqualität als auch die Regelungsreaktionsfähigkeit;
  • Simulations- und digitale Zwillingsumgebungen können die Validierung vor der Bereitstellung verbessern, wenn sie dazu verwendet werden, beobachtbares Verhalten zu testen, anstatt nur Grafiken zu demonstrieren;
  • KI-unterstützte Programmierung kann das Entwerfen beschleunigen, aber die deterministische Überprüfung bleibt unerlässlich.

Der letzte Punkt verdient Klartext: Generierter Code ist immer noch Ihr Problem, sobald er eine Steuerung erreicht.

Fazit

Ein 1D-Kalman-Filter ist in der SPS-Arbeit nützlich, weil er ein reales Anlagenproblem adressiert: verrauschte Messungen, die nicht mit starker Verzögerung geglättet werden können, ohne die Regelungsqualität zu verschlechtern. Structured Text ist das korrekte Implementierungsmedium für diesen Algorithmus, da die Methode von gespeichertem Zustand und kompakten numerischen Ausdrücken abhängt. OLLA Lab wird in der Validierungsphase operativ nützlich, in der Ingenieure Rauschen injizieren, die Reaktion trenden, `Q` und `R` abstimmen und die Logik vor der Bereitstellung härten müssen.

Der Unterschied, den man im Auge behalten sollte, ist einfach: Filterung geht nicht nur darum, einen Trend sauberer aussehen zu lassen; es geht darum, die Entscheidungsqualität unter Rauschen zu bewahren. In der Prozessregelung erreicht dieser Unterschied den Aktor schnell.

Weiter entdecken

Interlinking

References

Redaktionelle Transparenz

Dieser Blogbeitrag wurde von einem Menschen verfasst; die gesamte Kernstruktur, der Inhalt und die ursprünglichen Ideen stammen vom Autor. Dieser Beitrag enthält jedoch Text, der mit Unterstützung von ChatGPT und Gemini sprachlich verfeinert wurde. KI-Unterstützung wurde ausschließlich zur Korrektur von Grammatik und Syntax sowie zur Übersetzung des englischen Originaltexts ins Spanische, Französische, Estnische, Chinesische, Russische, Portugiesische, Deutsche und Italienische verwendet. Der endgültige Inhalt wurde vom Autor kritisch geprüft, überarbeitet und validiert; er trägt die volle Verantwortung für die Richtigkeit.

Über den Autor:PhD. Jose NERI, Lead Engineer at Ampergon Vallis

Faktencheck: Technische Validität am 2026-03-23 durch das Ampergon Vallis Lab QA Team bestätigt.

Bereit für die Umsetzung

Nutzen Sie simulationsgestützte Workflows, um diese Erkenntnisse in messbare Anlagenresultate zu überführen.

© 2026 Ampergon Vallis. All rights reserved.
|