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 (FC) | ||||||||
|---|---|---|---|---|---|---|---|---|
| Ret_Val | Void | |||||||
| slope | LReal | |||||||
| intercept | LReal | |||||||
| error | Bool | |||||||
| status | Word | |||||||
| Array[*] of LGF_typeRegressionLine | values | Array[*] of LGF_typeRegressionLine | ||||||
| Bezeichner | Datentyp | Beschreibung |
|---|---|---|
| Ret_Val | Void | Void - Funktion hat keinen Rückgabewert |
| slope | LReal | Steigung der Geraden |
| intercept | LReal | Schnittpunkt mit der Y-Achse |
| 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) |
| Bezeichner | Datentyp | Beschreibung |
|---|---|---|
| values | Array[*] 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) |
| Code / Wert | Bezeichner / Beschreibung |
|---|---|
| 16#0000 | STATUS_EXECUTION_FINISHED Status: Abarbeitung ohne Fehler beendet |
| 16#8200 | ERR_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. |
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 |
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}| Version & Datum | Änderungsbeschreibung | |
|---|---|---|
| 01.00.00 | Siemens Industry Online Support | |
| 23.11.2018 | First released version | |
| 01.00.04 | Simatic Systems Support | |
| 15.11.2019 | Code refactoring, comments 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 | |