LGF_SmoothByPolynomFB (FB / V3.0.1)


Autor: Siemens Digital Industry

Kurzbeschreibung

Diese Funktion berechnet einen Mittelwert anhand eines Polynoms zyklisch.

Zur Glättung wird durch fünf Wertepunkte ein Polynom 3. Grades gelegt. Die Fehlerquadrate der Distanzen zwischen Polynom und realem Wert werden hierbei minimiert. Aus den so gewonnenen Parametern des Polynoms können die geglätteten Werte bestimmt werden.

Der Funktionsbaustein liest mit jeder positiven Flanke am Eingang insert einen Wert ein. Sobald fünf Werte eingelesen wurden, berechnet der Baustein einen geglätteten Wert und gibt diesen aus.

Baustein Schnittstelle

LGF_SmoothByPolynomFB (FB)
Bool  enable smoothedValue  LReal
    
Bool  insert error  Bool
    
LReal  value status  Word
    
   

Input Parameter

BezeichnerDatentypDefault WertBeschreibung
enableBoolFALSEAktiviert den Baustein. Solange enable `TRUE` ist, kann der Baustein Werte am Parameter `value` übernehmen.
insertBoolFALSEÜbernimmt bei einer positiven Flanke den Wert am Eingang `value` und gibt einen `smoothedValue` aus, wenn fünf Werte eingelesen wurden.
valueLReal0.0Wert, der in die Glättung eingehen sollen.

Output Parameter

BezeichnerDatentypBeschreibung
smoothedValueLRealDie geglätteten Werte.
errorBoolFALSE: Kein Fehler
TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten
statusWord16#0000-16#7FFF: Status des FB
16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)

Status & Error Meldungen

Code / WertBezeichner / Beschreibung
16#7000STATUS_NO_CALL
Status: Kein Aufruf. Der Baustein wartet auf die Aktivierung durch den Parameter `enable`.
16#7001STATUS_FIRST_CALL
Status: Erstaufruf des FB nach einschalten
16#7002STATUS_SUBSEQUENT_CALL
Status: Die Bearbeitung ist aktiv. Nachfolgender Aufruf des FB.
16#7010STATUS_NOT_ENOUGH_VALUES
Status: Nicht genug Werte. Der Baustein benötigt Fünf (5) Werte, um einen geglätteten Wert zu berechnen. Übergeben Sie weitere Werte mit einer positiven Flanke am Eingang `insert`.

Funktionsbeschreibung

Das Ausgleichspolynom 3.Grades wird wie folgt berechnet:

\overline{y(n)} = \frac{1}{35} \cdot (-3 \cdot y(n-2) +12 \cdot y(n-1) +17 \cdot y(n) +12 \cdot y(n+1) -3 \cdot y(n+2))

Aus den N-Messwerten lassen sich so N-4 geglättete Messwerte berechnen. Das Ausgabe-Array enthält im Index (0,1, N-1, N) den Wert 0.

Diese "fehlenden" Werte werden mit den folgenden Formalismen berechnet:

\overline{y(n-2)} = \frac{1}{70} \cdot (69 \cdot y(n-2) +4 \cdot y(n-1) -6 \cdot y(n) +4 \cdot y(n+1) -y(n+2)) \overline{y(n-1)} = \frac{2}{70} \cdot (2 \cdot y(n-2) +27 \cdot y(n-1) +12 \cdot y(n) -8 \cdot y(n+1) +2 \cdot y(n+2)) \overline{y(n+1)} = \frac{2}{70} \cdot (2 \cdot y(n-2) -8 \cdot y(n-1) +12 \cdot y(n) +27 \cdot y(n+1) +2 \cdot y(n+2)) \overline{y(n+2)} = \frac{1}{70} \cdot (-y(n-2) +4 \cdot y(n-1) -6 \cdot y(n) +4 \cdot y(n+1) +69 \cdot y(n+2))

Änderungshistorie

Version & DatumÄnderungsbeschreibung
01.00.00Siemens Industry Online Support
23.11.2018First released version
01.00.01Simatic Systems Support
05.11.2019Bugfixes, regions, comments and constants are added
03.00.00Simatic Systems Support
23.04.2020Set version to V3.0.0, harmonize the version of the whole library
03.00.01Simatic Systems Support
06.04.2021Insert documentation