FUNCTION_BLOCK M_INV

Hover on a highlighted element
to pop up its description (if any).

M_INV

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:

  1. If the value of the REQ input is TRUE:
    1. If the number of columns in IN1 is equal to the number of rows in IN1:
      • If the matrix IN1 can be inverted using the maximum pivot divisor strategy, with the tolerance specified by the X input:
        • The size of OUT is adjusted if necessary to contain the same number of rows and columns as IN1;
        • the inverse of IN1 is placed in OUT;
        • the value of the QO output is set to TRUE;
        • the value of the STATUS output is set to OK(0).
      • If the matrix IN1 cannot be inverted:
        • The value of OUT remains unchanged;
        • the value of the QO output is set to FALSE;
        • the value of the STATUS output is set to DIVISION_BY_0(4).
      • Arithmetic overflow and underflow are not detected.
    2. If the number of columns in IN1 is not equal to the number of rows in IN1, the value of the QO output is set to FALSE, the value of the STATUS output is set to ARRAY_SIZE_ERROR(13), and no change is made in the value of OUT.
  2. If the value of the REQ input is FALSE, the value of the QO output is set to FALSE, the value of the STATUS output is set to INHIBITED(1), and no change is made in the value of OUT.
  3. Following the above actions, an event is issued at the CNF output.
See the MATRIX_DEMO system configuration for an example of the use of an instance of this function block type.