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.
LGF_SmoothByPolynomFB (FB) | ||||||||
---|---|---|---|---|---|---|---|---|
Bool | enable | smoothedValue | LReal | |||||
Bool | insert | error | Bool | |||||
LReal | value | status | Word | |||||
Bezeichner | Datentyp | Default Wert | Beschreibung |
---|---|---|---|
enable | Bool | FALSE | Aktiviert den Baustein. Solange enable `TRUE` ist, kann der Baustein Werte am Parameter `value` übernehmen. |
insert | Bool | FALSE | Übernimmt bei einer positiven Flanke den Wert am Eingang `value` und gibt einen `smoothedValue` aus, wenn fünf Werte eingelesen wurden. |
value | LReal | 0.0 | Wert, der in die Glättung eingehen sollen. |
Bezeichner | Datentyp | Beschreibung |
---|---|---|
smoothedValue | LReal | Die geglätteten Werte. |
error | Bool | FALSE: Kein Fehler TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten |
status | Word | 16#0000-16#7FFF: Status des FB 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle) |
Code / Wert | Bezeichner / Beschreibung |
---|---|
16#7000 | STATUS_NO_CALL Status: Kein Aufruf. Der Baustein wartet auf die Aktivierung durch den Parameter `enable`. |
16#7001 | STATUS_FIRST_CALL Status: Erstaufruf des FB nach einschalten |
16#7002 | STATUS_SUBSEQUENT_CALL Status: Die Bearbeitung ist aktiv. Nachfolgender Aufruf des FB. |
16#7010 | STATUS_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`. |
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))Version & Datum | Änderungsbeschreibung | |
---|---|---|
01.00.00 | Siemens Industry Online Support | |
23.11.2018 | First released version | |
01.00.01 | Simatic Systems Support | |
05.11.2019 | Bugfixes, regions, comments and constants are added | |
03.00.00 | Simatic Systems Support | |
23.04.2020 | Set version to V3.0.0, harmonize the version of the whole library | |
03.00.01 | Simatic Systems Support | |
06.04.2021 | Insert documentation |