主要内容

hisl_0005: Usage of Product blocks

R2026b

Protect divisor inputs from becoming singular matrices in Product blocks

Usage: High-Integrity System Modeling

Guideline ID: hisl_0005

Prerequisite: hisl_0314: Configuration Parameters > Diagnostics > Data Validity > Signals

Rules

hisl_0005: Usage of Product blocks

When the Product block parameter Multiplication is set to Matrix(*), protect divisor inputs from becoming singular input matrices.

Rationale

Protect against overflows and support robustness of generated code.

Verification

Adherence to this modeling guideline cannot be verified by using a Model Advisor check.

Tips

  • When using Product blocks to compute the inverse of a matrix, or a matrix division, you might get a divide by a singular matrix. This division results in a NaN output. To avoid overflows, protect divisor inputs from becoming singular input matrices.

Industry Standards

  • IEC 61508-3, Table A.3 (3) 'Language subset'
    IEC 61508-3, Table A.4 (3) 'Defensive programming'

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'
    ISO 26262-6, Table 1 (1d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.3 (1) 'Defensive Programming'

  • EN 50657, Table A.4 (11) 'Language Subset'
    EN 50657, Table A.3 (1) 'Defensive Programming'

  • EN 50716, Table A.3 (1) 'Defensive Programming'

  • DO-331, Section MB.6.3.2.g 'Algorithms are accurate

  • MISRA C:2012, Dir 4.1

  • MISRA C:2023, Dir 4.1

Version History

Introduced in R2010a

expand all