Блоки интерполяционной таблицы

hisl_0033: Использование блоков Интерполяционной таблицы

ID: Заголовокhisl_0033: Использование блоков Интерполяционной таблицы
Описание

Поддерживать робастность сгенерированного кода, при использовании 1-D Lookup Table, 2-D Lookup Table, n-D Lookup Table, Prelookup и блоков Interpolation Using Prelookup:

A

Очистите параметры блоков Remove protection against out-of-range input in generated code в каждом 1-D Lookup Table, 2-D Lookup Table, n-D Lookup Table или блоке Prelookup.

B

Очистите параметры блоков Remove protection against out-of-range index in generated code в каждом блоке Interpolation Using Prelookup.

Примечание

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

ОбъяснениеA, B

Защитите от входных параметров из области значений или индексов.

Проверки Model AdvisorПроверяйте использование блоков интерполяционной таблицы (Simulink Check)
Ссылки
  • DO-331, Раздел MB.6.3.2.g 'Алгоритмы точен'

  • 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 (1d) 'Использование защитных методов реализации'

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

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

1-D Lookup Table

2-D Lookup Table

n-D Lookup Table

Prelookup

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

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

ID: Заголовокhisl_0016: Использование блоков, которые вычисляют операторы отношения
ОписаниеЧтобы поддержать робастность операций, избегайте использования операторов равенства и операторов неравенства на типах данных с плавающей точкой.
ПримечанияИз-за проблем точности с плавающей точкой, не тестируйте выражения с плавающей точкой на равенство (==) или неравенство (~ =!=).
ОбъяснениеУлучшите робастность модели и предотвратите неожиданные результаты.
Проверки Model AdvisorПроверяйте реляционные сравнения на сигналах с плавающей точкой (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.1.g 'Алгоритмы точен'

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

  • MISRA C:2012, Dir 1.1

Смотрите такжеРеляционные операции
В последний раз измененныйR2021b
Примеры

Исключая: 1

Пример — правильный

  • myDouble> 0,99 && myDouble <1.01; тестовая область значений %

Пример — неправильный

  • myDouble == 1.0

  • mySingle ~ = 15.0

Исключая: 2

Пример — правильный

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

Пример — неправильный

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

Пример — правильный

Чтобы протестировать, равны ли две переменные с плавающей точкой или выражения, сравните различие этих двух переменных против порога, который учитывает относительную точность с плавающей точкой (eps) и величина чисел.

Следующий шаблон показывает, как протестировать два входных сигнала с двойной точностью, In1 и In2, для равенства.

Пример — InCorrect

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

hisl_0072: Использование настраиваемых параметров для моделей, на которые ссылаются,

ID: Заголовокhisl_0072: Использование настраиваемых параметров для моделей, на которые ссылаются,
Описание

Используйте Simulink.Parameter объект задать настраиваемые параметры. Это применяется ко всем настраиваемым параметрам, которые предназначаются, чтобы быть совместно использованными или через базовое рабочее пространство или через словари данных Simulink. Это не применяется к аргументам модели.

Примечания

Simulink® игнорирует настройки класса памяти параметров, которые сконфигурированы при помощи диалогового окна Model Parameter Configuration для моделей, на которые ссылаются.

Эта инструкция применима только, когда параметр конфигурации Default parameter behavior установлен в Inlined.

ОбъяснениеПредотвратите непреднамеренную потерю приспособляемости параметра.
Проверки Model AdvisorПроверяйте на информацию о приспособляемости параметра, проигнорированную для моделей, на которые ссылаются,
Ссылки
  • DO-331, Раздел MB.6.3.1.g – Алгоритмы точны

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

  • IEC 61508-3, таблица A.4 (3) 'безопасное программирование'

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

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

    ISO 26262-6, Таблица 1 (1d) 'Использование защитных методов реализации'

  • EN 50128, таблица A.3 (1) 'безопасное программирование'

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

Создайте настраиваемый калибровочный параметр в сгенерированном коде (Simulink Coder)

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

hisl_0073: Использование операций сдвига разряда

ID: Заголовокhisl_0073: Использование операций сдвига разряда
Описание

Для переключающих бит операций (e.g. a>> b или <<b), не выполняйте:

Операции сдвига, которые больше или равны битной ширине (b не должны быть равными или больше, чем битная ширина a).

ОбъяснениеГенерация кода с операциями сдвига может закончиться в нарушение кодирования стандартов
Проверки Model AdvisorПроверяйте использование операций сдвига разряда (Simulink Check)
Ссылки
  • Раздел DO-331 MB.6.3.1.b 'Требования высокого уровня точен и сопоставим'

    Раздел DO-331 MB.6.3.2.b 'Низкоуровневые требования точен и сопоставим'

  • IEC 61508–3, Таблица A.3 (2) язык программирования Со строгим контролем типов

    IEC 61508–3, Табличное A.4 (3) Безопасное программирование

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

  • ISO 26262-6, Табличное 1 (1b) Использование языковых подмножеств

    ISO 26262-6, Табличное 1 (1c) Осуществление строгого контроля типов

    ISO 26262-6, Табличное 1 (1d) Использование защитных методов реализации

  • EN 50128, табличное A.3 (1) безопасное программирование

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

  • MISRA C:2012, правило 12.2

  • INT34-C. Не переключайте выражение отрицательным числом битов или большим, чем или равняйтесь количеству битов, которые существуют в операнде

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

Создайте настраиваемый калибровочный параметр в сгенерированном коде (Simulink Coder)

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