SYSTEM MATRIX_DEMO

This system configuration provides a testbed for instances of the M_ADD, M_SUB, M_MUL, and M_INV function block types, using instances of the IN_MATRIX and OUT_MATRIX tabular interfaces.

The screenshots below show the results of launching this system configuration from the FBDK, then performing the following procedure:

  1. The initial situation.
  2. Propagate the IN1 value by double-clicking on the IN1[0,0] table cell, then striking the Enter key.
    • The IN1 value will propagate to OUT1, whose table size will adjust to the new value.
    • The QO=FALSE and STATUS=13 (ARRAY_SIZE_ERROR) outputs for ADD, SUB, MUL indicate the as-yet unknown size of the IN2 matrix.
    • The inversion operation has failed with STATUS=4 (DIVISION_BY_0), indicating that IN1 is singular; however, note that the product IN1*INV does give a 2×2 identity submatrix for that portion of the matrix for which the inversion procedure succeeded.
  3. Propagate the IN2 value by double-clicking on the IN2[0,0] table cell, then striking the Enter key.
    • The ADD, SUB, MUL operations will complete successfully, but IN1 is still singular.
  4. Double-click at IN1[2,2], type in 1.0 and Enter.
    • The ADD, SUB and MUL results will be updated.
    • the INV operation will complete successfully, and IN1*INV will show a 3×3 identity matrix as expected.
0
1

2
3

This System configuration uses the Local Multicast design pattern for the communication of data and events among Resources. The FBDK uses the Tagged Data design pattern to ensure consistency of the communicated events and data, as shown in the table below.

Tag Name Type(s) Description
INV MATRIX Publish Inverse from INV Panel
MAT1 MATRIX Publish Matrix from IN1 Panel
MAT2 MATRIX Publish Matrix from IN2 Panel
MATRIX_DEMO
MATRIX_DEMO.IN1
MATRIX_DEMO.IN2
MATRIX_DEMO.TEST_OUT
MATRIX_DEMO.TEST_ADD
MATRIX_DEMO.TEST_SUB
MATRIX_DEMO.TEST_MUL
MATRIX_DEMO.TEST_INV
MATRIX_DEMO.INV_CHECK