An instance of the M_INV
function block type
encapsulates an instance of the M_OPS
type, configured to perform matrix inversion using the Product Form
of the Inverse (PFI).
Upon the occurrence of an event at the REQ
input of an M_INV
instance:
-
If the value of the
REQ
input isTRUE
:-
If the number of columns in
IN1
is equal to the number of rows inIN1
:-
If the matrix
IN1
can be inverted using the maximum pivot divisor strategy, with the tolerance specified by theX
input:-
The size of
OUT
is adjusted if necessary to contain the same number of rows and columns asIN1
; -
the inverse of
IN1
is placed inOUT
; -
the value of the
QO
output is set toTRUE
; -
the value of the
STATUS
output is set toOK(0)
.
-
The size of
-
If the matrix
IN1
cannot be inverted:-
The value of
OUT
remains unchanged; -
the value of the
QO
output is set toFALSE
; -
the value of the
STATUS
output is set toDIVISION_BY_0(4)
.
-
The value of
- Arithmetic overflow and underflow are not detected.
-
If the matrix
-
If the number of columns in
IN1
is not equal to the number of rows inIN1
, the value of theQO
output is set toFALSE
, the value of theSTATUS
output is set toARRAY_SIZE_ERROR(13)
, and no change is made in the value ofOUT
.
-
If the number of columns in
-
If the value of the
REQ
input isFALSE
, the value of theQO
output is set toFALSE
, the value of theSTATUS
output is set toINHIBITED(1)
, and no change is made in the value ofOUT
. -
Following the above actions, an event is issued at the
CNF
output.
MATRIX_DEMO
system configuration for an example of the use of an instance of this
function block type.