hisf_0018: Использование сравнений равенства с плавающей точкой в Stateflow

ID: Заголовокhisf_0018: Использование сравнений равенства с плавающей точкой в Stateflow
Описание

Поддерживать робастность операций, при выполнении числового сравнения в Stateflow:

AИзбегайте сравнений с помощью ==, !=или ~= оператор на типах данных с плавающей точкой.
Примечания

Из-за проблем точности с плавающей точкой, не тестируйте выражения с плавающей точкой на равенство (==) или неравенство (~=, !=).

Когда график содержит логику вычислительные операции равенства или неравенства, операнды не должны быть одним, дважды, или никакой пользовательский класс памяти, который является типом с плавающей точкой. Измените тип данных операндов или переделайте логику, чтобы устранить использование ==, !=, или ~= операторы.

ОбъяснениеAУлучшите робастность модели.
Проверки Model AdvisorПроверяйте использование выражений с плавающей точкой в диаграммах Stateflow (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (2) 'Язык программирования со строгим контролем типов’
    IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'
    ISO 26262-6, Таблица 1 (1c) 'Осуществление строгого контроля типов'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'
    EN 50128, таблица A.4 (8) 'язык программирования со строгим контролем типов'
    EN 50128, таблица A.3 (1) 'безопасное программирование'

  • DO-331, Раздел MB.6.3.2.g 'Алгоритмы точен'

  • MISRA C:2012, Dir 1.1

Смотрите также

hisl_0016: Использование блоков, которые вычисляют операторы отношения (Simulink)

himl_0009: код MATLAB с равным / не равняется операторам отношения (Simulink)

В последний раз измененныйR2021a
Примеры

Правильный

Операторы сравнения равенства не используются в операндах с плавающей точкой.

Неправильный

Оператор сравнения равенства == используется в операндах с плавающей точкой.