ID: Заголовок | hisl_0016: Использование блоков, которые вычисляют операторы отношения | ||
---|---|---|---|
Описание | Чтобы поддержать робастность операций, избегайте использования операторов равенства и операторов неравенства на типах данных с плавающей точкой. | ||
Примечания | Из-за проблем точности с плавающей точкой, не тестируйте выражения с плавающей точкой на равенство (==) или неравенство (~ =!=). | ||
Объяснение | Улучшите робастность модели и предотвратите неожиданные результаты. | ||
Проверки Model Advisor | Проверяйте реляционные сравнения на сигналах с плавающей точкой (Simulink Check) | ||
Ссылки |
| ||
Смотрите также | Реляционные операции | ||
В последний раз измененный | R2021b | ||
Примеры | Исключая: 1 Пример — правильный
Пример — неправильный
Исключая: 2 Пример — правильный Операторы сравнения равенства не используются в операндах с плавающей точкой. Пример — неправильный Оператор сравнения равенства == используется в операндах с плавающей точкой. Пример — правильный Чтобы протестировать, равны ли две переменные с плавающей точкой или выражения, сравните различие этих двух переменных против порога, который учитывает относительную точность с плавающей точкой (eps) и величина чисел. Следующий шаблон показывает, как протестировать два входных сигнала с двойной точностью, In1 и In2, для равенства. Пример — InCorrect Оператор сравнения равенства == используется в операндах с плавающей точкой |
ID: Заголовок | hisl_0017: Использование блоков, которые вычисляют операторы отношения (2) | ||
---|---|---|---|
Описание | Поддерживать однозначное поведение в сгенерированном коде, при использовании блоков, которые вычисляют операторы отношения, включая Relational Operator, Compare To Constant, Compare to Zero и Detect Change | ||
A | Установите параметры блоков Output data type на Boolean . | ||
B | Для блоков Relational Operator проверьте, что входные сигналы имеют совпадающий тип данных. | ||
Объяснение | A, B | Поддержите генерацию кода, который производит однозначное поведение. | |
Проверки Model Advisor | Проверяйте использование блоков Оператора отношения (Simulink Check) | ||
Ссылки |
| ||
Смотрите также | hisl_0016: Использование блоков, которые вычисляют операторы отношения | ||
В последний раз измененный | R2018a |
ID: Заголовок | hisl_0018: Использование блока Logical Operator | ||
---|---|---|---|
Описание | Поддерживать однозначное поведение сгенерированного кода, при использовании блока Logical Operator, | ||
A | Установите параметры блоков Output data type на | ||
B | Гарантируйте, что входные сигналы имеют тип | ||
Необходимые условия | |||
Объяснение | A, B | Избегайте неоднозначного поведения сгенерированного кода. | |
Проверки Model Advisor | Проверяйте использование блоков Логического оператора (Simulink Check) | ||
Ссылки |
| ||
В последний раз измененный | R2017b |
ID: Заголовок | hisl_0019: Использование битовых операций | ||
---|---|---|---|
Описание | Поддерживать однозначное поведение, при использовании битовых операций, | ||
A | Избегайте битовых операций на типах данных целого числа со знаком. | ||
Примечания | Битовые операции не значимы на целых числах со знаком из-за непредсказуемого поведения. Например, операция сдвига может переместить знаковый бит в номер или числовой бит в знаковый бит. | ||
Объяснение | A | Поддержите однозначное поведение сгенерированного кода. | |
Проверки Model Advisor | Проверяйте использование блоков битовой операции (Simulink Check) | ||
Ссылки |
| ||
Смотрите также | hisl_0073: Использование операций сдвига разряда | ||
В последний раз измененный | R2021b |