Целью моделирования или целью SIM, является файл MEX, который реализует модель, на которую ссылаются, которая выполняется в режиме Accelerator. Simulink® вызывает цель моделирования по мере необходимости во время моделирования, чтобы вычислить поведение и выходные параметры модели, на которую ссылаются. Симулинк использует ту же цель моделирования для всех экземпляров режима Accelerator данной модели, на которую ссылаются, где угодно в ссылочной иерархии.
Если у вас есть лицензия Simulink Coder™, бойтесь путать цель моделирования модели, на которую ссылаются, с любым из этих других типов цели:
Аппаратная цель — платформа, для которой Simulink Coder генерирует код
Системная цель — файл, который говорит Simulink Coder, как сгенерировать код для конкретной цели
Быстрая цель Моделирования (RSim) — Системный конечный файл предоставляется Simulink Coder
Цель модели - ссылки — модуль библиотеки, который содержит код Simulink Coder для модели, на которую ссылаются,
Simulink создает цель моделирования только для модели, на которую ссылаются, которая имеет один или несколько экземпляров режима Accelerator в ссылочной иерархии. Модель, на которую ссылаются, которая выполняется только в режиме normal mode всегда, выполняет interpretively и не использует цель моделирования. Когда один или несколько экземпляров модели, на которую ссылаются, выполняются в режиме normal mode, и один или несколько экземпляров выполняются в режиме Accelerator:
Simulink создает цель моделирования для экземпляров режима Accelerator.
Экземпляры режима normal mode не используют ту цель моделирования.
Поскольку режим Accelerator требует генерации кода, он налагает некоторые требования и ограничения, которые не применяются к режиму normal mode. Кроме этих ограничений, можно обычно игнорировать цели моделирования и их детали, когда вы выполняете модель, на которую ссылаются, в режиме Accelerator. Смотрите Требования Моделирования и Ограничения для деталей.
Simulink по умолчанию генерирует необходимую цель от модели, на которую ссылаются:
Если цель моделирования не существует в начале моделирования
Когда вы выполняете схему обновления для родительской модели
Если цель моделирования существует, то Simulink Check по умолчанию, имеет ли модель, на которую ссылаются, структурные изменения, поскольку цель была в последний раз сгенерирована. Если так, Simulink регенерирует цель, чтобы отразить изменения в модели. Для получения дополнительной информации о том, как Simulink обнаруживает, восстановить ли цель модели - ссылки, см. Восстановить документацию параметра.
Можно изменить это поведение по умолчанию, чтобы изменить восстановить критерии или указать, что Simulink всегда или никогда не восстанавливает цели. Смотрите Восстанавливают для деталей.
Сгенерировать цели моделирования в интерактивном режиме для режима Accelerator сослалось на модели, выполните один из этих шагов:
Обновите схему на модели, которая прямо или косвенно ссылается на модель, которая находится в режиме Accelerator
Выполните команду slbuild
с соответствующими аргументами в командной строке MATLAB®
При генерации цели моделирования Simulink отображает сообщения о состоянии в командной строке MATLAB, чтобы позволить вам контролировать целевой процесс генерации. Целевая генерация влечет за собой генерацию и компиляцию кода и соединение скомпилированного целевого кода со скомпилированным кодом от стандартных библиотек кода, чтобы создать исполняемый файл.
Можно уменьшить время, когда Симулинк тратит проверку, требуют ли какие-либо цели моделирования восстановления путем устанавливания значений параметра конфигурации можно следующим образом:
Во всех моделях, на которые ссылаются, всюду по иерархии, набор параметр конфигурации разрешения Сигнала к Explicit only
или None
. (См. разрешение Сигнала.)
Чтобы минимизировать время обнаружения изменения, рассмотрите установку Восстановить параметра конфигурации опций к If any changes in known dependencies detected
на топ-модели. Смотрите Восстанавливают.
Эти значения параметров существуют в конфигурации модели модели, на которую ссылаются, не в отдельном Блоке модели. Устанавливание любого значения для любого экземпляра модели, на которую ссылаются, устанавливает его для всех экземпляров той модели.
Simulink создает цели моделирования в подпапке slprj
рабочей папки. Если slprj
не существует, Simulink создает его.
Генерация кода Simulink Coder также использует папку slprj
. Подпапки в slprj
обеспечивают отдельные места для кода моделирования, кода Simulink Coder и других файлов. Для получения дополнительной информации смотрите, Управляют Папками Процесса сборки (Simulink Coder).
По умолчанию файлы, сгенерированные обновлениями схемы Simulink и образцовыми сборками, помещаются в папку сборки, корень которой является текущей рабочей папкой (pwd
). Можно поместить сгенерированные файлы в корневую папку вне текущей рабочей папки. Эта опция позволяет вам:
Храните сгенерированные файлы, отдельные от моделей, и другие исходные материалы раньше генерировали их.
Повторное использование или доля ранее создали цели моделирования, не имея необходимость задерживать текущую рабочую папку к предыдущей рабочей папке.
Можно разделить сгенерированные артефакты моделирования от сгенерированного производственного кода.
Чтобы управлять выходными местоположениями для файлов, сгенерированных обновлениями схемы и образцовыми сборками, задайте папку сборки для этих файлов отдельно. Папка кэша моделирования является корневой папкой, в которую можно поместить артефакты, используемые для моделирования.
Чтобы задать папку кэша моделирования, используйте один из этих подходов:
Используйте параметр сеанса работы с MATLAB CacheFolder
.
В диалоговом окне Simulink Preferences> General используйте папку preference кэша Моделирования. Эта настройка обеспечивает начальные значения по умолчанию для параметров сеанса работы с MATLAB.
Чтобы управлять выходным местоположением для файлов, сгенерированных обновлениями схемы Simulink, в диалоговом окне Simulink Preferences> General, используют папку preference кэша Моделирования. Чтобы задать местоположение корневой папки для файлов, сгенерированных обновлениями схемы Simulink, установите значение настройки путем ввода или просмотра в путь к папке, например:
Путь к папке, который вы задаете, обеспечивает начальное значение по умолчанию для параметра сеанса работы с MATLAB CacheFolder
. Когда вы инициируете обновление схемы Simulink, сгенерированные файлы помещаются в папку сборки в корневом местоположении, заданном CacheFolder
, а не в текущей рабочей папке (pwd
).
Например, с помощью 32-битного (товарный знак Windows) серверная платформа, если вы устанавливаете папку кэша Моделирования на 'C:\Work\mymodelsimcache'
и затем моделируете образцовый rtwdemo_capi
, файлы, сгенерирована в заданную папку можно следующим образом:
Как альтернатива использованию настроек Simulink, чтобы установить папку кэша Моделирования, также можно получить и установить значение настройки из командной строки с помощью get_param
и set_param
. Например,
>> get_param(0, 'CacheFolder') ans = '' >> set_param(0, 'CacheFolder', fullfile('C:','Work','mymodelsimcache')) >> get_param(0, 'CacheFolder') ans = C:\Work\mymodelsimcache
Кроме того, можно принять решение заменить значение папки preference кэша Моделирования для текущего сеанса работы с MATLAB.
Папка кэша Моделирования настроек Simulink и папка Генерации кода обеспечивают начальные значения по умолчанию для параметров сеанса работы с MATLAB CacheFolder
и CodeGenFolder
, которые определяют, куда файлы, сгенерированные обновлениями схемы Simulink и образцовыми сборками, помещаются. Однако можно заменить эти настройки папки сборки во время текущего сеанса работы с MATLAB, с помощью функции Simulink.fileGenControl
. Эта функция позволяет вам управлять параметрами сеанса работы с MATLAB (например, заменяя или восстанавливая начальные значения по умолчанию) непосредственно. Значения вы устанавливаете использование Simulink.fileGenControl
, истекают в конце текущего сеанса работы с MATLAB.
В среде параллельных вычислений можно увеличить скорость обновлений схемы для моделей, содержащих иерархии ссылки большой модели путем создания моделей, на которые ссылаются, которые сконфигурированы в режиме Accelerator параллельно каждый раз, когда условия позволяют. Например, если у вас есть программное обеспечение Parallel Computing Toolbox™, обновление каждой модели, на которую ссылаются, может быть распределено через ядра многожильного хоста - компьютера. Кроме того, если у вас есть программное обеспечение MATLAB Distributed Computing Server™, обновление каждой модели, на которую ссылаются, может быть распределено через удаленных рабочих в вашей настройке MATLAB Distributed Computing Server.
Увеличение производительности, понятое при помощи параллельных сборок для обновления моделей, на которые ссылаются, зависит от нескольких факторов, включая:
Сколько моделей может быть создано параллельно для данной иерархии ссылки модели
Размер моделей, на которые ссылаются,
Ресурсы параллельных вычислений, такие как количество локальных или удаленных доступных рабочих и аппаратные атрибуты локальных и удаленных машин (сумма RAM, количество ядер, и так далее)
Для требований настройки, которые могут примениться к вашей среде параллельных вычислений, смотрите, что Параллель Создает Требования по настройке.
Для описания общего рабочего процесса для создания моделей, на которые ссылаются, параллельно каждый раз, когда условия позволяют, смотрите Модели Обновления в Среде Параллельных вычислений.
Эти требования применяются к использованию параллельных сборок за обновление иерархий модели - ссылки:
Для локальных пулов хост-машине нужна ассигновать сумма в размере RAM, доступного для поддержки количества локальных рабочих (сеансы работы с MATLAB), которые вы планируете использовать. Например, использование parpool(4)
, чтобы создать параллельный пул с четырьмя рабочими приводит к пяти сеансам работы с MATLAB на вашей машине, каждое использование приблизительно 120 Мбайт памяти при запуске.
Удаленные рабочие по MATLAB Distributed Computing Server, участвующие в параллельной сборке, должны использовать общую платформу и компилятор.
Настройте сопоставимую среду MATLAB для каждого сеанса работника MATLAB и клиентского сеанса MATLAB. Например, используйте сопоставимые разделяемые переменные базового рабочего пространства, настройки пути MATLAB, и т.д. Один подход должен использовать обратный вызов PreLoadFcn
топ-модели. Если вы конфигурируете свою модель, чтобы загрузить топ-модель с каждым сеансом работника MATLAB, его функция предварительной нагрузки может использоваться для любой настройки сеанса работника MATLAB.
Использовать в своих интересах параллельное создание для иерархии модели - ссылки:
Настройте пул локальных и/или удаленных работников MATLAB в вашей среде параллельных вычислений.
Убедитесь, что программное обеспечение Parallel Computing Toolbox лицензируется и устанавливается.
Чтобы использовать удаленных рабочих, убедитесь, что программное обеспечение MATLAB Distributed Computing Server лицензируется и устанавливается.
Выпустите команды MATLAB, чтобы настроить пул рабочего, например, parpool(4)
.
От топ-модели иерархии модели - ссылки откройте диалоговое окно Configuration Parameters. Перейдите к Ссылке Модели, разделяют на области и выбирают опцию сборок модели - ссылки параллели Enable. Этот выбор включает инициализацию работника MATLAB параметра для сборок.
Для инициализации работника MATLAB для сборок выберите одно из следующих значений:
'none'
Программное обеспечение не выполняет специальной инициализации рабочего. Задайте это значение, если дочерние модели в иерархии модели - ссылки ни на что не полагаются в базовом рабочем пространстве вне того, что они явным образом настраивают (например, с образцовой функцией load).
Copy base workspace
– Программное обеспечение пытается скопировать базовое рабочее пространство в каждого рабочего. Задайте это значение, если вы используете скрипт настройки, чтобы подготовить базовое рабочее пространство к многоуровневым моделям, чтобы использовать.
Load top model
– Программное обеспечение загружает топ-модель на каждом рабочем. Задайте это значение, если топ-модель в иерархии модели - ссылки обрабатывает всю настройку базового рабочего пространства (например, с образцовой функцией load).
Установите Включают параллельные сборки модели - ссылки только для топ-модели иерархии модели - ссылки, к которой это применяется.
Опционально, включите многословные сообщения для сборок моделирования. Если вы выбираете многословные сборки, сообщения сборки сообщают о прогрессе каждой параллельной сборки с именем модели.
Чтобы включить многословные сообщения для целевых сборок моделирования, перейдите к диалоговому окну Configuration Parameters и выберите Verbose accelerator builds.
Многословный акселератор создает средства управления опцией, которые многословие сборки передает и в Окне Команды MATLAB и в параллельных файлах журнала сборки.
Опционально, осмотрите иерархию модели - ссылки, чтобы определить, на основе зависимостей моделей, которые модели создадут параллельно. Например, можно использовать Средство просмотра Зависимости моделей из меню Simulink Analysis> Model Dependencies.
Обновите свою модель. Сообщения в записи окна команды MATLAB, когда каждая параллельная или последовательная сборка запускается и заканчивается.
Если вам нужно больше информации о параллельной сборке, например, если сборка перестала работать, смотрите, Определяют местоположение Параллельных Журналов Сборки.
Когда вы обновляете модель, для которой модели, на которые ссылаются, создаются параллельно, если многословные сборки включены, сообщения в записи Окна Команды MATLAB, когда каждая параллельная или последовательная сборка запускается и заканчивается. Например,
### Initializing parallel workers for parallel model reference build. ### Parallel worker initialization complete. ### Starting parallel model reference SIM build for 'bot_model001' ### Starting parallel model reference SIM build for 'bot_model002' ### Starting parallel model reference SIM build for 'bot_model003' ### Starting parallel model reference SIM build for 'bot_model004' ### Finished parallel model reference SIM build for 'bot_model001' ### Finished parallel model reference SIM build for 'bot_model002' ### Finished parallel model reference SIM build for 'bot_model003' ### Finished parallel model reference SIM build for 'bot_model004'
Чтобы получить более подробную информацию о параллельной сборке, можно исследовать параллельный журнал сборки. Для каждой модели, на которую ссылаются, созданной параллельно, процесс сборки генерирует файл с именем
, где model_buildlog.txt
является именем модели, на которую ссылаются. Этот файл содержит журнал полной сборки для той модели.model
Если параллельная сборка завершается, можно найти файл журнала сборки в подпапке сборки, соответствующей модели, на которую ссылаются. Например, для сборки образцового bot_model004
, на который ссылаются, ищите файл журнала сборки bot_model004_buildlog.txt
в образцовой подпапке
, на которую ссылаютсяbuild_folder/slprj/sim/bot_model004
.
Если параллель создает сбои, вы видите вывод, подобный следующему:
### Initializing parallel workers for parallel model reference build. ### Parallel worker initialization complete. ### Starting parallel model reference SIM build for 'bot_model002' ### Starting parallel model reference SIM build for 'bot_model003' ### Finished parallel model reference SIM build for 'bot_model002' ### Finished parallel model reference SIM build for 'bot_model003' ### Starting parallel model reference SIM build for 'bot_model001' ### Starting parallel model reference SIM build for 'bot_model004' ### Finished parallel model reference SIM build for 'bot_model004' ### The following error occurred during the parallel model reference SIM build for 'bot_model001': Error(s) encountered while building model "bot_model001" ### Cleaning up parallel workers.
Если параллельная сборка перестала работать, можно найти файл журнала сборки в образцовой подпапке, на которую ссылаются, под подпапкой
сборки/par_mdl_ref/model
. Например, для не пройдено параллельной сборки образцового
bot_model001
, ищите файл журнала сборки bot_model001_buildlog.txt
в подпапке
.build_folder/par_mdl_ref/bot_model001/slprj/sim/bot_model001