Категория Создание кода (Code Generation) > Оптимизация (Optimization) включает параметры для повышения скорости моделирования моделей и повышения производительности генерируемого кода. Параметры конфигурации модели для улучшения генерируемого кода требуют Simulink ® Coder™ или Embedded Coder ®.
| Параметр | Описание |
|---|---|
Преобразование числовых параметров блока в постоянные встроенные значения в созданном коде. | |
Укажите способ передачи выходных данных повторно используемой подсистемой. | |
Удаление инициализации нулевого ввода-вывода на корневом уровне | Укажите, следует ли создавать код инициализации для входов и выходов корневого уровня, имеющих нулевое значение. |
Укажите, следует ли создавать код инициализации для внутренних рабочих структур, таких как состояния блоков и выходы блоков, равным нулю. | |
| Уровень | Выберите уровень оптимизации, который требуется применить к сгенерированному коду. |
| Приоритет | Оптимизируйте созданный код для повышения эффективности выполнения, уменьшения потребления ОЗУ или баланса между ними. |
| Укажите пользовательские оптимизации | Вместо применения уровня оптимизации выберите этот параметр, чтобы выбрать параметры оптимизации в разделе Подробно. |
Оптимизация кода, созданного для назначения вектора, путем замены | |
Укажите минимальный размер массива в байтах, для которого | |
Укажите, объявляются ли сигналы блоков локально или глобально. | |
Укажите, будет ли программное обеспечение Simulink Coder повторно использовать память сигналов. | |
Исключение лишних локальных переменных (сворачивание выражений) | Сверните вычисления блоков в отдельные выражения. |
Повторное использование глобальной памяти для блочных выходов. | |
По возможности повторно используйте входные и выходные переменные блоков «Назначение шины» и «Назначение». | |
Повторное использование буферов для блоков чтения и записи хранилища данных | Удаление временных буферов для блоков чтения и записи хранилища данных. По возможности используйте непосредственно блок памяти хранилища данных. |
Замена операций умножения в индексах массива при доступе к массивам в цикле. | |
Укажите, хранятся ли логические сигналы как однобитовые битовые поля или как логический тип данных. | |
Укажите тип битового поля при выборе параметра конфигурации Pack Boolean data to bitfields. | |
Повторное использование буферов различных размеров и размеров | Уменьшите потребление памяти за счет повторного использования буферов для хранения данных различных размеров и размеров. |
Выберите глобальную оптимизацию переменных. | |
Изменение порядка операций блока в сгенерированном коде для повышения скорости выполнения кода. | |
Используйте битовые наборы, чтобы уменьшить объем памяти, необходимый для хранения переменных конфигурации состояния. | |
| Использовать битовые наборы для хранения булевых данных | Используйте битовые наборы, чтобы уменьшить объем памяти, необходимый для хранения логических данных. |
Укажите максимальный размер стека в байтах для модели. | |
Укажите минимальный сигнал или ширину параметра, для которого | |
Оптимизация с использованием указанных минимального и максимального значений | Оптимизируйте сгенерированный код, используя указанные минимальное и максимальное значения для сигналов и параметров в модели. |
Максимальное количество аргументов для выходных данных подсистемы | Установите максимальное количество выходов подсистемы для индивидуальной передачи. |
Преобразование символьных имен инвариантных сигналов в постоянные значения. | |
Удалить код, обрабатывающий результаты преобразования с плавающей запятой в целое число для | |
Используйте memset для инициализации поплавков и двойников до 0.0 | Укажите, нужно ли создавать код, который явно инициализирует данные с плавающей запятой до 0.0. |
Удалите код обтекания, который обрабатывает результаты преобразования с плавающей запятой в целое значение вне диапазона. | |
Удалить код из настраиваемых выражений параметров, насыщающих значения вне диапазона | Удалите код упаковки настраиваемых параметров. |
Удаление кода, защищающего от арифметических исключений деления | Укажите, следует ли создавать код, защищающий от деления на ноль, и |
| Буфер для повторно используемых подсистем | Улучшите повторное использование путем вставки буферов на границах повторно используемых подсистем. |
Отключить несовместимые оптимизации | Укажите, следует ли отключить оптимизации, несовместимые с инспектором кода Simulink. |
| Базовый тип склада для автоматически создаваемых перечислений | Задайте тип и размер хранилища для перечислений, созданных с выводом активного состояния. |
| Использовать сигнальные метки для управления повторным использованием буфера | Для сигналов с той же меткой генератор кода пытается использовать ту же память сигналов. |
| Создание параллельных циклов для | Укажите, должны ли for-loops в сгенерированном коде реализовываться параллельно для Matlab Function, Matlab System или блока For Each. |
| Повторное использование памяти сигналов | Укажите повторное использование буферов памяти, выделенных для хранения входных и выходных сигналов блоков, тем самым уменьшая требования к памяти программы реального времени |
| Оператор для представления блоков Bitwise и Logical Operator | Укажите, содержит ли созданный код побитовые или логические операторы или и то и другое. |