LGF_RegressionLine (FC / V3.0.1)

Übersicht

Autor: Siemens Digital Industry

Kurzbeschreibung

Der einfachste Fall einer Regression ist die Regressionsgerade. Das heißt der angenommene Zusammenhang zwischen Ein- und Ausgangssignal ist eine lineare Gerade.

Abbildung: Regressionsline

LGF_RegressionLine

Baustein Schnittstelle

LGF_RegressionLine (FC)
   Ret_Val  Void
    
   slope  LReal
    
   intercept  LReal
    
   error  Bool
    
   status  Word
    
Array[*] of LGF_typeRegressionLine  values  Array[*] of LGF_typeRegressionLine
       
   

Output Parameter

BezeichnerDatentyp Beschreibung
Ret_ValVoid Void - Funktion hat keinen Rückgabewert
slopeLReal Steigung der Geraden
interceptLReal Schnittpunkt mit der Y-Achse
errorBool FALSE: Kein Fehler
TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten
statusWord 16#0000-16#7FFF: Status des FB
16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)

In/Out Parameter

BezeichnerDatentyp Beschreibung
valuesArray[*] of LGF_typeRegressionLine Die Datenpunkte werden mit Ihren X- und Y-Werten übergeben.
Der Datentyp `LGF_typeRegressionLine` hat den folgenden Aufbau:
• x (Real)
• y (Real)

Status & Error Meldungen

Code / WertBezeichner / Beschreibung
16#0000STATUS_EXECUTION_FINISHED
Status: Abarbeitung ohne Fehler beendet
16#8200ERR_NOT_ENOUGH_VALUES
Fehler: Zu wenig Werte. Der Baustein benötigt mindestens zwei Wertepaare, um eine Regressionsgerade zu berechnen. Vergrößern Sie das Array am Eingangsparameter `values` in der zweiten Dimension.

Benutzer definierte Datentypen

LGF_typeRegressionLine (UDT / V3.0.1)

Der Datentyp ist zum Transfer von Datenpunkten (Schlüssel-Werte Paare / Key- Value pairs) nach LGF_RegressionLine und der Berechnung für die Parameter Steigung und Y-Achsenabschnitt der interpolierten Geradengleichung.

Bezeichner Datentyp Default Wert Beschreibung
x Real 0.0 X-Achsen Wert
y Real 0.0 Y-Achsen Wert

Funktionsbeschreibung

Der Baustein berechnet die Regressionsgerade mit folgender Geradengleichung:
f(x) = m \cdot x + t
m: Steigung der Gerade t: Schnittpunkt mit y-Achse
N: Anzahl der Array Elemente

Die Steigung m wird mit folgender Gleichung berechnet:

m = \frac{n \cdot \sum_{1}^{N}(x(n) \cdot y(n)) - (\sum_{1}^{N}x(n) \cdot \sum_{1}^{N}y(n))}{n \cdot \sum_{1}^{N} x^2(n) - (\sum_{1}^{N}x(n))^2}

Der Schnittpunkt t mit der Y-Achse wird mit folgender Gleichung berechnet:

t = \frac{\sum_{1}^{N} y(n)}{N} - b \cdot \frac{\sum_{1}^{N} x(n)}{N}

Änderungshistorie

Version & DatumÄnderungsbeschreibung
01.00.00Siemens Industry Online Support
23.11.2018First released version
01.00.04Simatic Systems Support
15.11.2019Code refactoring, comments 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