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.
- Das Rohsignal binden
- Ein Basis-Wellenform anwenden
- Messrauschen injizieren
- Gefilterte Antwort beobachten
- Q und R live abstimmen
- 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:
- Systembeschreibung Definieren Sie die simulierte Anlage, den Sensortyp, die Prozessvariable, den Zykluskontext und die Relevanz für die nachgelagerte Regelung.
- 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.
- Kontaktplan-Logik und simulierter Anlagenzustand Zeichnen Sie den Kontext der Regellogik und das simulierte Prozessverhalten zum Zeitpunkt des Tests auf.
- Der injizierte Fehlerfall Spezifizieren Sie das Rauschprofil, den Spitzenwert, den Ausfall oder die eingeführte Störung.
- Die vorgenommene Revision Dokumentieren Sie die angewendeten Parameteränderungen, Codeänderungen oder Initialisierungsänderungen.
- 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
Related reading
How To Tune A Pid Loop A Practical Olla Lab Guide →Related reading
How To Build 3 Sigma Failure Detection For Pumps In Ladder Logic →Related reading
How To Scale 4 20ma Analog Signals And Program Fault Handling In Olla Lab →Related reading
Erkunden Sie den vollständigen Ladder Logic Mastery Hub →Related reading
Verwandter Artikel 1 →Related reading
Verwandter Artikel 2 →Related reading
Verwandter Artikel 3 →Related reading
Üben Sie diesen Workflow in OLLA Lab ↗