exponenta event banner

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

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

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

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

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

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

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

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

  • ISO 26262-6, Таблица 1 (1b) «Использование языковых поднаборов»
    ISO 26262-6, таблица 1 (1с) «Применение строгой типизации»

  • 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
Примеры

Правильный

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

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

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