По умолчанию, сгенерированный код для следующих блоков интерполяционной таблицы включают условные операторы, которые проверяют на точку останова из области значений или индексируют входные параметры:
Чтобы сгенерировать код, который более эффективен, можно удалить условные операторы, которые защищают от входных значений из области значений.
Блок | Флажок, чтобы выбрать |
---|---|
1D интерполяционная таблица | Remove protection against out-of-range input in generated code |
2D интерполяционная таблица | |
Интерполяционная таблица n-D | |
Предварительный поиск | |
Интерполяция Используя предварительный поиск | 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).
Интерполяция Используя предварительный поиск | Предварительный поиск | Интерполяционная таблица n-D