LGF_SmoothByPolynomFC (FC / V3.0.1)


Autor: Siemens Digital Industry

Kurzbeschreibung

Diese Funktion berechnet einen Mittelwert anhand eines Polynoms azyklisch.

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.

Die Funktion liest ein Array ein, das geglättet wird. Aus N-Messwerten lassen sich N-4 geglättete Messwerte berechnen. Das Ausgabe-Array enthält im Index (0,1,N-1,N) den Wert 0. Allerdings können Ersatzwerte berechnet werden.

Baustein Schnittstelle

LGF_SmoothByPolynomFC (FC)
   Ret_Val  Void
    
   error  Bool
    
   status  Word
    
Array[*] of LReal  values  Array[*] of LReal
       
Array[*] of LReal  smoothedValues  Array[*] of LReal
       
   

Output Parameter

BezeichnerDatentypBeschreibung
Ret_ValVoidVoid - Funktion hat keinen Rückgabewert
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)

In/Out Parameter

BezeichnerDatentypBeschreibung
valuesArray[*] of LRealWerte, die in die Glättung eingehen sollen.
smoothedValuesArray[*] of LRealDie geglätteten Werte.

Status & Error Meldungen

Code / WertBezeichner / Beschreibung
16#0000STATUS_FINISHED_NO_ERROR
Status: Abarbeitung ohne Fehler beendet
16#8400ERR_ARRAYS_DIFFERENT
Fehler: Die Arraygrößen sind nicht gleich. Die Arrays `values` und `smoothedValues` müssen die gleiche Größe besitzen.
16#8401ERR_NOT_ENOUGH_VALUES
Fehler: Nicht genug Werte. Der Baustein benötigt Fünf (5) Werte, um einen geglätteten Wert zu berechnen. Vergrößern Sie das Array am Eingangsparameter `values`. Passen Sie das Array am Ausgangsparameter `smoothedValues` an die neue Größe an.

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.05Simatic Systems Support
15.11.2019Regions, 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