Математические операции

hisl_0001: Использование блока Abs

ID: Заголовокhisl_0001: Использование блока Abs
ОписаниеПоддерживать робастность сгенерированного кода, при использовании блока Abs,
AИзбегайте булевых и типов данных без знака как входных параметров к блоку Abs.
BВ диалоговом окне параметра блока Abs выберите Saturate на целочисленном переполнении.
Примечания

Блок Abs не поддерживает булевы типы данных. Задавая тип входных данных без знака, может оптимизировать блок Abs из сгенерированного кода, приводящего к блоку, который вы не можете проследить до сгенерированного кода.

Для типов данных со знаком Simulink® не представляет абсолютное значение наиболее отрицательной величины. Когда вы выбираете Saturate на целочисленном переполнении, абсолютное значение типа данных насыщает к самому положительному представимому значению. Когда вы очищаетесь, Насыщают на целочисленном переполнении, вычисления абсолютного значения в моделировании и сгенерированном коде не могут быть сопоставимыми или ожидаться.

ОбъяснениеAПоддержите генерацию прослеживаемого кода.
BДостигните сопоставимого и ожидаемого поведения образцового моделирования и сгенерированного кода.
Образцовые проверки советника
  • Задачей> Моделирование Стандартов для DO-178C/DO-331> Системы Высокой Целостности> Simulink> использование Проверки блоков Abs

  • Задачей> Моделирование Стандартов для IEC 61508> Системы Высокой Целостности> Simulink> использование Проверки блоков Abs

  • Задачей> Моделирование Стандартов для IEC 62304> Системы Высокой Целостности> Simulink> использование Проверки блоков Abs

  • Задачей> Моделирование Стандартов для EN 50128> Системы Высокой Целостности> Simulink> использование Проверки блоков Abs

  • Задачей> Моделирование Стандартов для ISO 26262> Системы Высокой Целостности> Simulink> использование Проверки блоков Abs

Для получения дополнительной информации проверки смотрите использование Проверки блоков Abs.

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'
    IEC 61508-3, Таблица A.3 (2) 'Язык программирования со строгим контролем типов’
    IEC 61508-3, таблица B.8 (3) 'анализ потока управления'

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

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

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

  • DO 331, Раздел MB.6.3.2.d 'Низкоуровневые требования поддается проверке'

  • MISRA C:2012, Dir 4.1

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

Рекомендуемый

Не рекомендуемый

hisl_0002: Использование блоков Математической функции (rem и обратная величина)

ID: Заголовокhisl_0002: Использование блоков Математической функции (rem и обратная величина)
Описание

Поддерживать робастность сгенерированного кода, при использовании блока Math Function с остатком после деления (rem) или обратная величина (reciprocal) функции:

A

Защитите входной параметр функции reciprocal от попытки обнулить.

B

Защитите второй входной параметр функции rem от попытки обнулить.

Примечание

Можно получить операцию деления на нуль, приводящую к большому количеству (Inf) выходное значение для функции reciprocal или Не число (NaN) выходное значение для функции rem. Чтобы избежать переполнения или неопределенных значений, защитите соответствующий входной параметр от попытки обнулить.

ОбъяснениеA, B Защитите от переполнения и неопределенных числовых результатов.
Образцовые проверки советника
  • Задачей> Моделирование Стандартов для DO-178C/DO-331> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (rem и взаимные функции)

  • Задачей> Моделирование Стандартов для IEC 61508> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (rem и взаимные функции)

  • Задачей> Моделирование Стандартов для IEC 62304> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (rem и взаимные функции)

  • Задачей> Моделирование Стандартов для EN 50128> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (rem и взаимные функции)

  • Задачей> Моделирование Стандартов для ISO 26262> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (rem и взаимные функции)

Для получения дополнительной информации проверки смотрите использование Проверки блоков Математической функции (rem и взаимные функции).

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'

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

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

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

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

  • MISRA C:2012, Dir 4.1

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

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

hisl_0003: Использование блоков Квадратного корня

ID: Заголовокhisl_0003: Использование блоков Квадратного корня
Описание

Чтобы поддержать робастность сгенерированного кода, при использовании блока Square Root, выполняют одно из следующих действий:

A

Объясните комплексные числа как вывод.

B

Защитите входной параметр от движения отрицательного.

ОбъяснениеA, B Избегайте нежелательных результатов в сгенерированном коде.
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'

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

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

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

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

  • MISRA C:2012, Dir 4.1

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

hisl_0028: Использование Взаимных блоков Квадратного корня

ID: Заголовокhisl_0028: Использование Взаимных блоков Квадратного корня
Описание

Чтобы поддержать робастность сгенерированного кода, при использовании блока Reciprocal Square Root, выполняют одно из следующих действий:

A

Защитите входной параметр от движения отрицательного.

B

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

Примечание

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

ОбъяснениеA, B Избегайте нежелательных результатов в сгенерированном коде.
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'

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

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

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

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

  • MISRA C:2012, Dir 4.1

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

hisl_0004: Использование блоков Математической функции (натуральный логарифм и основа 10 логарифмов)

ID: Заголовокhisl_0004: Использование блоков Математической функции (натуральный логарифм и основа 10 логарифмов)
Описание

Поддерживать робастность сгенерированного кода, при использовании блока Math Function с натуральным логарифмом (log) или основывать 10 логарифмов (log10) параметры функции,

A

Защитите входной параметр от движения отрицательного.

B

Защитите входной параметр от равенства нулю.

C

Объясните комплексные числа как выходное значение.

Примечания

Если вы устанавливаете тип выходных данных объединять, натуральный логарифм и основывать 10 функций логарифма, вывод объединяет значения для отрицательных входных значений. Если вы устанавливаете тип выходных данных на действительный, функции вывод NAN для отрицательных чисел, и минус бесконечность (-inf) для нулевых значений.

ОбъяснениеA, B, C Поддержите генерацию устойчивого кода.
Образцовые проверки советника
  • Задачей> Моделирование Стандартов для DO-178C/DO-331> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (журнал и функции log10)

  • Задачей> Моделирование Стандартов для IEC 61508> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (журнал и функции log10)

  • Задачей> Моделирование Стандартов для IEC 62304> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (журнал и функции log10)

  • Задачей> Моделирование Стандартов для EN 50128> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (журнал и функции log10)

  • Задачей> Моделирование Стандартов для ISO 26262> Системы Высокой Целостности> Simulink> использование Проверки блоков Математической функции (журнал и функции log10)

Для получения дополнительной информации проверки смотрите использование Проверки блоков Математической функции (журнал и функции log10).

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'

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

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

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

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

  • MISRA C:2012, Dir 4.1

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

Можно защитить от:

  • Отрицательные числа с помощью блока Abs.

  • Нулевые значения с помощью комбинации блока MinMax и блока Constant, с набором Постоянного значения к eps (эпсилон).

Следующий пример отображает получившийся вывод для входных значений в пределах от -100 к 100.

hisl_0005: Использование блоков продукта

ID: Заголовокhisl_0005: Использование блоков продукта
Описание

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

A

В режиме Element-wise(.*) защитите входные параметры делителя от попытки обнулить.

B

В режиме Matrix(*) защитите входные параметры делителя от становления сингулярными входными матрицами.

C

Установите образцовую Диагностику параметра конфигурации> Законность Данных> Сигналы> Деление сингулярной матрицей к error.

Примечания

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

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

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

ОбъяснениеA, B, C Защитите от переполнения.
Ссылки
  • 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) 'безопасное программирование'

  • DO 331, раздел MB.6.4.2.2 'тесты робастности’
    DO 331, раздел MB.6.4.3 'основанные на требованиях методы тестирования’
    DO 331, Раздел MB.6.3.1.e 'Требования высокого уровня соответствует стандартам
    DO 331, Раздел MB.6.3.2.e 'Низкоуровневые требования соответствует стандартам
    DO 331, Раздел MB.6.3.1.g 'Алгоритмы точен'
    DO 331, Раздел MB.6.3.2.g 'Алгоритмы точен'
    DO 331, Раздел MB.6.3.3.b 'Программная архитектура сопоставим'

  • MISRA C:2012, Dir 4.1

Предпосылкиhisl_0314: Параметры конфигурации> Диагностика> Законность Данных> Сигналы
В последний раз измененныйR2017b

hisl_0029: Использование блоков Присвоения

ID: Заголовокhisl_0029: Использование блоков Присвоения
Описание

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

Примечания

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

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

Доступ к неинициализированным элементам блока вывод может привести к неожиданному поведению.

ОбъяснениеИзбегайте нежелательных результатов в сгенерированном коде.
Образцовые проверки советника
  • Задачей> Моделирование Стандартов для DO-178C/DO-331> Системы Высокой Целостности> Simulink> использование Проверки блоков Присвоения

  • Задачей> Моделирование Стандартов для IEC 61508> Системы Высокой Целостности> Simulink> использование Проверки блоков Присвоения

  • Задачей> Моделирование Стандартов для IEC 62304> Системы Высокой Целостности> Simulink> использование Проверки блоков Присвоения

  • Задачей> Моделирование Стандартов для EN 50128> Системы Высокой Целостности> Simulink> использование Проверки блоков Присвоения

  • Задачей> Моделирование Стандартов для ISO 26262> Системы Высокой Целостности> Simulink> использование Проверки блоков Присвоения

Для получения дополнительной информации проверки смотрите использование Проверки блоков Присвоения.

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'
    IEC 61508-3, Таблица A.3 (2) ‘Язык программирования со строгим контролем типов’

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

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

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

  • DO 331, Раздел MB.6.3.1.e 'Требования высокого уровня соответствует стандартам
    DO 331, Раздел MB.6.3.2.e 'Низкоуровневые требования соответствует стандартам

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

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

Не Рекомендуемый: Никакая инициализация не ввела Y0, когда блок не используется многократно


Рекомендуемый: Инициализация ввела Y0, когда блок не используется многократно


Рекомендуемый: Инициализируйте поля массивов, когда блок будет использоваться многократно

hisl_0066: Использование блоков Усиления

ID: Заголовокhisl_0066: Использование блоков Усиления
ОписаниеЧтобы поддержать трассируемость сгенерированного кода, значение блока Gain не должно решать к 1.
Примечания

Процесс генерации кода может удалить значения Усиления, равные 1 во время оптимизации, приводящей к элементам модели без прослеживаемого кода.

Исключение к этому правилу устанавливает значение Усиления к именованному объекту данных параметра с неавтоматическим классом памяти.

ОбъяснениеПоддержите генерацию прослеживаемого кода.
Образцовые проверки советника
  • Задачей> Моделирование Стандартов для DO-178C/DO-331> Системы Высокой Целостности> Simulink> использование Проверки блоков Усиления

  • Задачей> Моделирование Стандартов для IEC 61508> Системы Высокой Целостности> Simulink> использование Проверки блоков Усиления

  • Задачей> Моделирование Стандартов для IEC 62304> Системы Высокой Целостности> Simulink> использование Проверки блоков Усиления

  • Задачей> Моделирование Стандартов для EN 50128> Системы Высокой Целостности> Simulink> использование Проверки блоков Усиления

  • Задачей> Моделирование Стандартов для ISO 26262> Системы Высокой Целостности> Simulink> использование Проверки блоков Усиления

Для получения дополнительной информации проверки смотрите использование Проверки блоков Усиления.

Ссылки
  • DO 331, Раздел MB.6.3.2.d 'Низкоуровневые требования поддается проверке'

  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.4 (3) 'Безопасное программирование'
    IEC 61508-3, таблица B.8 (3) 'анализ потока управления'

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

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

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

В последний раз измененныйR2018a
Была ли эта тема полезной?