Количество времени, которое это занимает, чтобы сгенерировать код для модели, зависит от размера и параметров конфигурации модели. Например, если вы работаете с большой моделью, она может взять некоторое время, чтобы сгенерировать код. Чтобы уменьшить количество времени для генерации кода модели, попробуйте один или несколько следующих методов:
Создайте модель с шагом
Создайте иерархии ссылки большой модели параллельно
Минимизируйте требования к памяти во время генерации кода
Сгенерируйте только код
Отключите создание отчета генерации кода
Можно использовать команду rtwbuild
, чтобы создать модель и сгенерировать код. По умолчанию, при восстановлении модели, rtwbuild
обеспечивает инкрементную сборку модели, которая только восстанавливает модель или подмодели, которые изменились начиная с новой сборки модели. Инкрементная сборка модели экономит время генерации кода. Используйте параметр Rebuild на панели Model Referencing, чтобы изменить метод, что использование Simulink®, чтобы определить, когда восстановить код для моделей, на которые ссылаются. Для получения дополнительной информации о параметре Rebuild смотрите, Восстанавливают (Simulink).
В среде параллельных вычислений, каждый раз, когда условия позволяют, можно увеличить скорость генерации кода и компиляции путем создавания моделей, содержащих иерархии ссылки большой модели параллельно. Например, если у вас есть программное обеспечение Parallel Computing Toolbox™, можно распределить генерацию кода и компиляцию для каждой модели, на которую ссылаются, через ядра многожильного хоста - компьютера. Если у вас есть программное обеспечение MATLAB® Parallel Server™, можно распределить генерацию кода и компиляцию для каждой модели, на которую ссылаются, через удаленных рабочих в настройке MATLAB Parallel Server.
Улучшение скорости выполнения, понятое при помощи параллельных сборок для моделей, на которые ссылаются, зависит от нескольких факторов, включая:
Сколько моделей может быть создано параллельно для данной модели, ссылающейся на иерархию
Размер моделей, на которые ссылаются,
Ресурсы параллельных вычислений, такие как количество локальных и удаленных доступных рабочих
Аппаратные атрибуты локальных и удаленных машин (сумма RAM, количество ядер, и так далее)
Для получения дополнительной информации смотрите, Уменьшают Время изготовления для Моделей, на которые Ссылаются (Simulink Coder).
Модели, которые имеют большие суммы параметра и постоянных данных (такие как интерполяционные таблицы) могут обложить налогом ресурсы памяти и замедлить генерацию кода. Генератор кода копирует эти данные в файл .rtw
model
. Файл .rtw
model
является частичным представлением модели, которую Компилятор Выходного языка анализирует, чтобы преобразовать вычисления блока, параметры, сигналы и постоянные данные в высокоуровневый язык (например, C). Компилятор выходного языка (TLC) является неотъемлемой частью генератора кода. Генератор кода копирует параметры и данные в model
.rtw
, происходят ли они в модели или происходят из переменных или объектов в рабочей области.
Можно улучшить скорость генерации кода путем определения максимального количества элементов, которые векторы данных могут иметь для генератора кода, чтобы скопировать эти данные в model
.rtw
. Когда вектор данных превышает заданный размер, генератор кода помещает ссылочный ключ в model
.rtw
. TLC использует этот ключ, чтобы получить доступ к данным из Simulink и отформатировать его в сгенерированный код. Ссылочные ключи приводят к поддержанию только одной копии больших векторов данных в памяти.
Значение по умолчанию, выше которого использование генератора кода ссылочные ключи вместо фактических значений данных 10 элементов. Можно проверить это значение. В Командном окне введите следующую команду:
get_param(0, 'RTWDataReferencesMinSize')
Чтобы установить порог к различному значению, в Командном окне, вводят следующую функцию set_param
:
set_param(0, 'RTWDataReferencesMinSize', <size>)
Обеспечьте целочисленное значение для size
, который задает количество элементов данных, выше которых генератор кода использует ссылочные ключи вместо фактических значений данных.
Можно увеличить скорость генерации кода путем указывания, что процесс сборки генерирует код и make-файл, но не вызывает сделать команду. Когда генератор кода вызывает сделать команду, процесс сборки занимает больше времени, потому что генератор кода генерирует код, компилирует код и создает исполняемый файл.
На панели Code Generation в диалоговом окне Model Configuration Parameters можно указать, что процесс сборки генерирует только код путем выбора параметра Generate code only. Можно указать, что процесс генерации кода создает make-файл путем выбора Configuration Parameters> Code Generation> Build process> Makefile configuration> параметр Generate makefile.
Можно ускорить генерацию кода, не генерируя отчет генерации кода как часть процесса сборки. Чтобы отключить создание отчета генерации кода, на Code Generation> панель Report, очищают параметр Create code generation report. После процесса сборки можно сгенерировать отчет генерации кода путем выполнения этой процедуры, Сгенерировать Отчет Генерации кода После Процесса сборки (Simulink Coder).