# LGF_MatrixInverse (FC / V3.0.1)

Autor: Siemens Digital Industry

## Kurzbeschreibung

Die Funktion invertiert eine quadratische Matrix vom Datentyp `ARRAY[*,*] of LREAL`. Die quadratische Matrix beliebiger Größe wird nach dem nach dem Shipley-Coleman Verfahren invertiert.

matrixResult = matrix^{-1}

Hinweis
  Beachten Sie, dass die Eingangsmatrix quadratisch sein muss. Dies bedeutet, die Anzahl der Zeilen muss gleich der Anzahl der Spalten sein. Die Ausgangsmatrix muss genauso groß sein und die gleichen Array-Grenzen haben, wie die Eingangsmatrix.

### Baustein Schnittstelle

| LGF_MatrixInverse (FC) |
--- | --- | ---
|  |  |  |  | Ret_Val |  |  | Void
|  |  |  |  | error |  |  | Bool
|  |  |  |  | status |  |  | Word
Array[*, *] of LReal |  |  | matrix |  |  | Array[*, *] of LReal
Array[*, *] of LReal |  |  | matrixResult |  |  | Array[*, *] of LReal

### Output Parameter

Bezeichner | Datentyp | Beschreibung
--- | --- | ---
Ret_Val | Void | Void - Funktion hat keinen Rückgabewert
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)

### In/Out Parameter

Bezeichner | Datentyp | Beschreibung
--- | --- | ---
matrix | Array[*, *] of LReal | Quadratische Eingangsmatrix die invertiert wird (Array[0..x,0..x] of REAL)
matrixResult | Array[*, *] of LReal | Invertierte Matrix

### Status & Error Meldungen

Code / Wert | Bezeichner / Beschreibung
--- | ---
16#0000 | STATUS_NO_ERROR Abarbeitung ohne Fehler beendet
16#8200 | ERR_NOT_SQUARE_MATRIX Error: Die Matrix ist nicht Quatratisch (Spalten und Zeilenanzahl müssen übereinstimmen)
16#8201 | ERR_ALGORITHM_NOT_POSSIBLE Die matrix Determinante is NULL, Invertierung nicht möglich für diese Matrix, die Matrix hat keine Inverse
16#8202 | ERR_MATR1_LOWBOUND_ROWS_RESMATR_LOWBOUND_ROWS Error: Untere Grenzen der Zeilen (Dim1) der Arrays von Matrix1 und Ergebnis Matrix sind unterschiedlich.
16#8203 | ERR_MATR1_LOWBOUND_COLUMNS_RESMATR_LOWBOUND_COLUMNS Error: Untere Grenzen der Spalten (Dim2) der Arrays von Matrix1 und Ergebnis Matrix sind unterschiedlich.
16#8204 | ERR_MATR1_UPPBOUND_ROWS_RESMATR_UPPBOUND_ROWS Error: Obere Grenzen der Zeilen (Dim1) der Arrays von Matrix1 und Ergebnis Matrix sind unterschiedlich.
16#8205 | ERR_MATR1_UPPBOUND_COLUMNS_RESMATR_UPPBOUND_COLUMNS Error: Obere Grenzen der Spalten (Dim2) der Arrays von Matrix1 und Ergebnis Matrix sind unterschiedlich.

## Änderungshistorie

Version & Datum | Änderungsbeschreibung
--- | ---
| 01.00.00 | Siemens Industry Online Support
| 19.08.2015 | First released version
| 01.00.01 | Siemens Industry Online Support
| 02.01.2017 | Upgrade: TIA Portal V14 Update 1
| 02.00.00 | Siemens Industry Online Support
| 06.02.2017 | Functionality using Array[*,*]
| 02.00.01 | Siemens Industry Online Support
| 17.08.2018 | Upgrade: TIA V15 Update 2
| 02.00.02 | Siemens Industry Online Support
| 23.11.2018 | Upgrade: TIA V15.1
| 02.00.05 | Simatic Systems Support
| 13.11.2019 | Regions, comments and constants are added Moved matrices to IO field.
| 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
| 02.02.2020 | Insert documentation