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