to pop up its description (if any).
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
REQinput isTRUE:-
If the number of columns in
IN1is equal to the number of rows inIN1:-
If the matrix
IN1can be inverted using the maximum pivot divisor strategy, with the tolerance specified by theXinput:-
The size of
OUTis adjusted if necessary to contain the same number of rows and columns asIN1; -
the inverse of
IN1is placed inOUT; -
the value of the
QOoutput is set toTRUE; -
the value of the
STATUSoutput is set toOK(0).
-
The size of
-
If the matrix
IN1cannot be inverted:-
The value of
OUTremains unchanged; -
the value of the
QOoutput is set toFALSE; -
the value of the
STATUSoutput 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
IN1is not equal to the number of rows inIN1, the value of theQOoutput is set toFALSE, the value of theSTATUSoutput 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
REQinput isFALSE, the value of theQOoutput is set toFALSE, the value of theSTATUSoutput is set toINHIBITED(1), and no change is made in the value ofOUT. -
Following the above actions, an event is issued at the
CNFoutput.
MATRIX_DEMO
system configuration for an example of the use of an instance of this
function block type.