ID: Заголовок | hisl_0001: Использование блока Abs | ||
---|---|---|---|
Описание | Поддерживать робастность сгенерированного кода, при использовании блока Abs, | ||
A | Избегайте булевых и типов данных без знака как входных параметров к блоку Abs. | ||
B | В диалоговом окне параметра блока Abs выберите Saturate на целочисленном переполнении. | ||
Примечания | Блок Abs не поддерживает булевы типы данных. Задавая тип входных данных без знака, может оптимизировать блок Abs из сгенерированного кода, приводящего к блоку, который вы не можете проследить до сгенерированного кода. Для типов данных со знаком Simulink® не представляет абсолютное значение наиболее отрицательной величины. Когда вы выбираете Saturate на целочисленном переполнении, абсолютное значение типа данных насыщает к самому положительному представимому значению. Когда вы очищаетесь, Насыщают на целочисленном переполнении, вычисления абсолютного значения в моделировании и сгенерированном коде не могут быть сопоставимыми или ожидаться. | ||
Объяснение | A | Поддержите генерацию прослеживаемого кода. | |
B | Достигните сопоставимого и ожидаемого поведения образцового моделирования и сгенерированного кода. | ||
Образцовые проверки советника |
Для получения дополнительной информации проверки смотрите использование Проверки блоков Abs. | ||
Ссылки |
| ||
В последний раз измененный | R2018b | ||
Примеры | Рекомендуемый Не рекомендуемый |
ID: Заголовок | hisl_0002: Использование блоков Математической функции (rem и обратная величина) | ||
---|---|---|---|
Описание | Поддерживать робастность сгенерированного кода, при использовании блока Math Function с остатком после деления ( | ||
A | Защитите входной параметр функции | ||
B | Защитите второй входной параметр функции | ||
Примечание | Можно получить операцию деления на нуль, приводящую к большому количеству ( | ||
Объяснение | A, B | Защитите от переполнения и неопределенных числовых результатов. | |
Образцовые проверки советника |
Для получения дополнительной информации проверки смотрите использование Проверки блоков Математической функции (rem и взаимные функции). | ||
Ссылки |
| ||
В последний раз измененный | R2017b | ||
Примеры | В следующем примере, когда входной сигнал колеблется вокруг нуля, вывод показывает большое изменение в значении. Вам нужна дальнейшая защита от большого изменения в значении. |
ID: Заголовок | hisl_0003: Использование блоков Квадратного корня | ||
---|---|---|---|
Описание | Чтобы поддержать робастность сгенерированного кода, при использовании блока Square Root, выполняют одно из следующих действий: | ||
A | Объясните комплексные числа как вывод. | ||
B | Защитите входной параметр от движения отрицательного. | ||
Объяснение | A, B | Избегайте нежелательных результатов в сгенерированном коде. | |
Ссылки |
| ||
В последний раз измененный | R2016a | ||
Примеры |
|
ID: Заголовок | hisl_0028: Использование Взаимных блоков Квадратного корня | ||
---|---|---|---|
Описание | Чтобы поддержать робастность сгенерированного кода, при использовании блока Reciprocal Square Root, выполняют одно из следующих действий: | ||
A | Защитите входной параметр от движения отрицательного. | ||
B | Защитите входной параметр от попытки обнулить. | ||
Примечание | Можно получить операцию деления на нуль, приводящую к выходному значению | ||
Объяснение | A, B | Избегайте нежелательных результатов в сгенерированном коде. | |
Ссылки |
| ||
В последний раз измененный | R2016a | ||
Примеры |
|
ID: Заголовок | hisl_0004: Использование блоков Математической функции (натуральный логарифм и основа 10 логарифмов) | ||
---|---|---|---|
Описание | Поддерживать робастность сгенерированного кода, при использовании блока Math Function с натуральным логарифмом ( | ||
A | Защитите входной параметр от движения отрицательного. | ||
B | Защитите входной параметр от равенства нулю. | ||
C | Объясните комплексные числа как выходное значение. | ||
Примечания | Если вы устанавливаете тип выходных данных объединять, натуральный логарифм и основывать 10 функций логарифма, вывод объединяет значения для отрицательных входных значений. Если вы устанавливаете тип выходных данных на действительный, функции вывод | ||
Объяснение | A, B, C | Поддержите генерацию устойчивого кода. | |
Образцовые проверки советника |
Для получения дополнительной информации проверки смотрите использование Проверки блоков Математической функции (журнал и функции log10). | ||
Ссылки |
| ||
В последний раз измененный | R2017b | ||
Примеры |
Можно защитить от:
Следующий пример отображает получившийся вывод для входных значений в пределах от |
ID: Заголовок | hisl_0005: Использование блоков продукта | ||
---|---|---|---|
Описание | Чтобы поддержать робастность сгенерированного кода, при использовании продукта блокируются с входными параметрами делителя, | ||
A | В режиме | ||
B | В режиме | ||
C | Установите образцовую Диагностику параметра конфигурации> Законность Данных> Сигналы> Деление сингулярной матрицей к | ||
Примечания | При использовании блоков продукта для поэлементных делений вы можете получить деление нулем, приводящим к При использовании блоков продукта, чтобы вычислить инверсию матрицы или матричное деление, вы можете получить деление сингулярной матрицей. Это деление приводит к Во время моделирования, в то время как программное обеспечение инвертирует одно из входных значений блока продукта, который находится в режиме умножения матриц, Деление сингулярной матричной диагностикой может обнаружить сингулярную матрицу. | ||
Объяснение | A, B, C | Защитите от переполнения. | |
Ссылки |
| ||
Предпосылки | hisl_0314: Параметры конфигурации> Диагностика> Законность Данных> Сигналы | ||
В последний раз измененный | R2017b |
ID: Заголовок | hisl_0029: Использование блоков Присвоения |
---|---|
Описание | Чтобы поддержать робастность сгенерированного кода, при использовании блока Assignment, инициализируют поля массивов перед их первым использованием. |
Примечания | Если выходной вектор блока Assignment не инициализируется с входным параметром к блоку, элементы векторной силы не инициализируются в сгенерированном коде. Когда блок Assignment используется многократно, и все поле массивов присвоены во время одного шага времени симуляции, вам не нужен входной параметр инициализации к блоку. Доступ к неинициализированным элементам блока вывод может привести к неожиданному поведению. |
Объяснение | Избегайте нежелательных результатов в сгенерированном коде. |
Образцовые проверки советника |
Для получения дополнительной информации проверки смотрите использование Проверки блоков Присвоения. |
Ссылки |
|
В последний раз измененный | R2016a |
Примеры | Не Рекомендуемый: Никакая инициализация не ввела Y0, когда блок не используется многократно Рекомендуемый: Инициализация ввела Y0, когда блок не используется многократно Рекомендуемый: Инициализируйте поля массивов, когда блок будет использоваться многократно |
ID: Заголовок | hisl_0066: Использование блоков Усиления | ||
---|---|---|---|
Описание | Чтобы поддержать трассируемость сгенерированного кода, значение блока Gain не должно решать к 1 . | ||
Примечания | Процесс генерации кода может удалить значения Усиления, равные Исключение к этому правилу устанавливает значение Усиления к именованному объекту данных параметра с неавтоматическим классом памяти. | ||
Объяснение | Поддержите генерацию прослеживаемого кода. | ||
Образцовые проверки советника |
Для получения дополнительной информации проверки смотрите использование Проверки блоков Усиления. | ||
Ссылки |
| ||
В последний раз измененный | R2018a |