По умолчанию, сгенерированный код для следующих блоков интерполяционной таблицы включают условные операторы, которые проверяют на точку останова из области значений или индексируют входные параметры:
Чтобы сгенерировать код, который более эффективен, можно удалить условные операторы, которые защищают от входных значений из области значений.
Блок | Флажок, чтобы выбрать |
---|---|
1-D Lookup Table | Remove protection against out-of-range input in generated code |
2-D Lookup Table | |
n-D Lookup Table | |
Prelookup | |
Interpolation Using Prelookup | Remove protection against out-of-range index in generated code |
Установка флажка на диалоговом окне блока повышает эффективность кода, потому что существует меньше операторов, чтобы выполниться. Однако, если вы генерируете код для важных приложений безопасности, вы не должны удалять код проверки диапазона.
Чтобы проверить использование флажка, осуществите следующие проверки Model Advisor и выполните рекомендуемые действия.
Проверка Model Advisor | Когда осуществить проверку |
---|---|
By Product> Embedded Coder> Identify lookup table blocks that generate expensive out-of-range checking code | Для КПД кода |
By Product> Simulink Check> Modeling Standards> DO-178C/DO-331 Checks> Check usage of lookup table blocks | Для важных приложений безопасности |
Для получения дополнительной информации о Model Advisor, смотрите Проверку Ваша Модель Используя Model Advisor в документации Simulink®.
Когда точки останова в интерполяционной таблице являются настраиваемыми, интервал не влияет на КПД или использование памяти сгенерированного кода. Когда точки останова не являются настраиваемыми, тип интервала может влиять на следующие факторы.
Фактор | Даже степень 2 расположенных с интервалами данных | Равномерно распределенные данные | Неравномерно распределенные данные |
---|---|---|---|
Скорость выполнения | Скорость выполнения является самой быстрой. Поиск положения и интерполяция эквивалентны для равномерно распределенных данных. Однако, чтобы увеличить скорость немного больше для фиксированных точек, немного сдвига заменяет поиск положения, и немного маски заменяет интерполяцию. | Скорость выполнения быстрее, чем это для неравномерно распределенных данных, потому что поиск положения быстрее, и интерполяция использует простое деление. | Скорость выполнения является самой медленной из различных интервалов, потому что поиск положения медленнее, и интерполяция требует большего количества операций. |
Ошибка | Ошибка может быть больше, чем это для неравномерно распределенных данных, потому что аппроксимация функции с неоднородным искривлением требует, чтобы больше точек достигло той же точности. | Ошибка может быть больше, чем это для неравномерно распределенных данных, потому что аппроксимация функции с неоднородным искривлением требует, чтобы больше точек достигло той же точности. | Ошибка может быть меньшей, потому что аппроксимация функции с неоднородным искривлением требует, чтобы меньше точек достигло той же точности. |
Использование ROM | Использование меньше команды ROM, но больше данных ROM. | Использование меньше команды ROM, но больше данных ROM. | Использование больше команды ROM, но меньше данных ROM. |
Использование оперативной памяти | Не значительный. | Не значительный. | Не значительный. |
Следуйте этим инструкциям:
Для типов данных с фиксированной точкой используйте точки останова с даже, power-2 интервал.
Для нетипов данных с фиксированной точкой используйте точки останова с ровным интервалом.
Чтобы идентифицировать возможности для того, чтобы повысить эффективность кода в блоках интерполяционной таблицы, осуществите следующие проверки Model Advisor и выполните рекомендуемые действия:
By Product> Embedded Coder> Identify questionable fixed-point operations
By Product> Embedded Coder> Identify blocks that generate expensive saturation and rounding code
Для получения дополнительной информации о Model Advisor, смотрите Проверку Ваша Модель Используя Model Advisor в документации Simulink.
Когда вы используете переменные рабочей области для таблицы store и устанавливаете точки останова данные для блоков Интерполяционной таблицы, и затем конфигурируете эти переменные для приспособляемости, можно избежать копий данных при помощи совпадающего типа данных для параметров блоков и переменной. Переменные рабочей области включают числовые переменные MATLAB® и Simulink.Parameter
объекты, которые вы храните в рабочей области, такой как базовое рабочее пространство, или в словаре данных. Если тип данных переменной меньше, чем тип данных параметров блоков, сгенерированный код неявно бросает тип данных переменной к типу данных параметров блоков. Этот неявный бросок требует копии данных, которая может потенциально значительно увеличить потребление RAM и замедлить скорость выполнения кода для больших векторов или матриц.
Для получения дополнительной информации смотрите Типы данных параметров в Сгенерированном коде (Embedded Coder) и Создайте Настраиваемый Калибровочный Параметр в Сгенерированном коде (Simulink Coder).
Чтобы сгенерировать эффективный код для упорядоченного по строкам размещения массивов, выберите параметр конфигурации модели Math and Data Types> Use algorithms optimized for row-major array layout. Упорядоченные по строкам алгоритмы выполняют с лучшей скоростью и использованием памяти при работе с табличными данными с упорядоченным по строкам размещением массивов. Точно так же упорядоченные по столбцам алгоритмы по умолчанию выполняют лучше всего с упорядоченным по столбцам размещением массивов. Рассмотрите использование алгоритма, который оптимизирован для заданного размещения массивов, чтобы достигнуть лучшей производительности. Например, используйте упорядоченные по строкам алгоритмы, когда размещение массивов будет установлено как упорядоченное по строкам во время генерации кода.
Размещение массивов | Алгоритм | Благоприятный для кэша алгоритм |
---|---|---|
Упорядоченный по столбцам | Упорядоченный по столбцам | Рекомендуемый |
Упорядоченный по строкам | Упорядоченный по строкам | Рекомендуемый |
Упорядоченный по строкам | Упорядоченный по столбцам | Не рекомендуемый |
Упорядоченный по столбцам | Упорядоченный по строкам | Не рекомендуемый |
Для получения дополнительной информации смотрите Упорядоченное по столбцам Размещение к Упорядоченному по строкам Преобразованию Размещения Моделей с Блоками Интерполяционной таблицы (Simulink Coder).
Interpolation Using Prelookup | Prelookup | n-D Lookup Table