Цели симуляции модели - ссылки

Цели симуляции

simulation target или SIM target, является файл MEX, который реализует модель, на которую ссылаются, которая выполняется в режиме Accelerator. Simulink® вызывает цель симуляции по мере необходимости во время симуляции, чтобы вычислить поведение и выходные параметры модели, на которую ссылаются. Simulink использует ту же цель симуляции для всех экземпляров режима Accelerator данной модели, на которую ссылаются, где угодно в ссылочной иерархии.

Если у вас есть лицензия Simulink Coder™, бойтесь путать цель симуляции модели, на которую ссылаются, с любым из этих других типов цели:

  • Аппаратная цель — платформа, для которой Simulink Coder генерирует код

  • Системная цель — файл, который говорит Simulink Coder, как сгенерировать код для конкретной цели

  • Быстрая цель Симуляции (RSim) — Системный конечный файл предоставляется Simulink Coder

  • Цель модели-ссылки — модуль библиотеки, который содержит код Simulink Coder для модели, на которую ссылаются,

Simulink создает цель симуляции только для модели, на которую ссылаются, которая имеет один или несколько экземпляров режима Accelerator в ссылочной иерархии. Модель, на которую ссылаются, которая выполняется только в режиме normal mode всегда, выполняется путем интерпретации и не использует цель симуляции. Когда один или несколько экземпляров модели, на которую ссылаются, выполняются в режиме normal mode, и один или несколько экземпляров выполняются в режиме Accelerator:

  • Simulink создает цель симуляции для экземпляров режима Accelerator.

  • Экземпляры режима normal mode не используют ту цель симуляции.

Поскольку режим Accelerator требует генерации кода, он налагает некоторые требования и ограничения, которые не применяются к режиму normal mode. Кроме этих ограничений, можно обычно игнорировать цели симуляции и их детали, когда вы выполняете модель, на которую ссылаются, в режиме Accelerator. Смотрите Требования Симуляции и Ограничения для деталей.

Создайте цели симуляции

Simulink по умолчанию генерирует необходимую цель из модели, на которую ссылаются:

  • Если цель симуляции не существует в начале симуляции

  • Когда вы выполняете схему обновления для родительской модели

Если цель симуляции существует, то Simulink Check по умолчанию, имеет ли модель, на которую ссылаются, структурные изменения, поскольку цель была в последний раз сгенерирована. Если так, Simulink регенерирует цель, чтобы отразить изменения в модели. Для получения дополнительной информации о том, как Simulink обнаруживает, восстановить ли цель модели-ссылки, см. Восстановить документацию параметра.

Можно изменить это поведение по умолчанию, чтобы изменить восстановить критерии или указать, что Simulink всегда или никогда не восстанавливает цели. Смотрите Восстанавливают для деталей.

Сгенерировать цели симуляции в интерактивном режиме для режима Accelerator сослалось на модели, выполните один из этих шагов:

  • Обновите схему на модели, которая прямо или косвенно ссылается на модель, которая находится в режиме Accelerator

  • Выполните команду slbuild с соответствующими аргументами в командной строке MATLAB®

При генерации цели симуляции Simulink отображает сообщения о состоянии в командной строке MATLAB, чтобы позволить вам контролировать целевой процесс генерации. Целевая генерация влечет за собой генерацию и компиляцию кода и соединение скомпилированного целевого кода со скомпилированным кодом от стандартных библиотек кода, чтобы создать исполняемый файл.

Уменьшайте время проверки изменения

Можно уменьшать время, когда Simulink тратит проверку, требуют ли какие-либо цели симуляции восстановления путем устанавливания значений параметра конфигурации можно следующим образом:

  • Во всех моделях, на которые ссылаются, в иерархии, набор параметр конфигурации Signal resolution к Explicit only или None. (См. разрешение Сигнала.)

  • Чтобы минимизировать время обнаружения изменения, рассмотрите установку параметра конфигурации Rebuild options к If any changes in known dependencies detected на топ-модели. Смотрите Восстанавливают.

Эти значения параметров существуют в конфигурации модели модели, на которую ссылаются, не в отдельном блоке Model. Устанавливание любого значения для любого экземпляра модели, на которую ссылаются, устанавливает его для всех экземпляров той модели.

Целевое управление выходным файлом симуляции

Simulink создает цели симуляции в подпапке slprj рабочей папки. Если slprj не существует, Simulink создает его.

Примечание

Генерация кода Simulink Coder также использует папку slprj. Подпапки в slprj обеспечивают отдельные места для кода симуляции, кода Simulink Coder и других файлов. Для получения дополнительной информации смотрите, Управляют Папками Процесса сборки (Simulink Coder).

По умолчанию файлы, сгенерированные обновлениями схемы Simulink и сборками модели, помещаются в папку сборки, корень которой является текущей рабочей папкой (pwd). Можно поместить сгенерированные файлы в корневую папку вне текущей рабочей папки. Эта опция позволяет вам:

  • Храните сгенерированные файлы, отдельные от моделей, и другие исходные материалы раньше генерировали их.

  • Повторное использование или доля ранее создали цели симуляции, не имея необходимость задерживать текущую рабочую папку к предыдущей рабочей папке.

Можно разделить сгенерированные артефакты симуляции от сгенерированного производственного кода.

Чтобы управлять выходными местоположениями для файлов, сгенерированных обновлениями схемы и сборками модели, задайте папку сборки для этих файлов отдельно. simulation cache folder является корневой папкой, в которую можно поместить артефакты, используемые для симуляции.

Чтобы задать папку кэша симуляции, используйте один из этих подходов:

  • Используйте параметр сеанса работы с MATLAB CacheFolder.

  • В диалоговом окне Simulink Preferences> General используйте настройку Simulation cache folder. Эта настройка обеспечивает начальные значения по умолчанию для параметров сеанса работы с MATLAB.

Управляйте Выходным местоположением для артефактов сборки симуляции модели

Чтобы управлять выходным местоположением для файлов, сгенерированных обновлениями схемы Simulink, в диалоговом окне Simulink Preferences> General, используют настройку Simulation cache folder. Чтобы задать местоположение корневой папки для файлов, сгенерированных обновлениями схемы Simulink, установите значение настройки путем ввода или просмотра в путь к папке, например:

Путь к папке, который вы задаете, обеспечивает начальное значение по умолчанию для параметра сеанса работы с MATLAB CacheFolder. Когда вы инициируете обновление схемы Simulink, сгенерированные файлы помещаются в папку сборки в корневом местоположении, заданном CacheFolder, а не в текущей рабочей папке (pwd).

Например, с помощью 32-битного (товарный знак Windows) серверная платформа, если вы устанавливаете Simulation cache folder на 'C:\Work\mymodelsimcache' и затем моделируете модель rtwdemo_capi, файлы, сгенерирована в заданную папку можно следующим образом:

Как альтернатива использованию настроек Simulink, чтобы установить Simulation cache folder, также можно получить и установить значение настройки из командной строки с помощью 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

Кроме того, можно принять решение заменить значение настройки Simulation cache folder для текущего сеанса работы с MATLAB.

Замените настройки папки сборки

Simulation cache folder настроек Simulink и Code generation folder обеспечивают начальные значения по умолчанию для параметров сеанса работы с MATLAB CacheFolder и CodeGenFolder, которые определяют, куда файлы, сгенерированные обновлениями схемы Simulink и сборками модели, помещаются. Однако можно заменить эти настройки папки сборки во время текущего сеанса работы с MATLAB, с помощью функции Simulink.fileGenControl. Эта функция позволяет вам управлять параметрами сеанса работы с MATLAB (например, заменяя или восстанавливая начальные значения по умолчанию) непосредственно. Значения вы устанавливаете использование Simulink.fileGenControl, истекают в конце текущего сеанса работы с MATLAB.

Уменьшайте время обновления для моделей, на которые ссылаются,

Параллельное создание для иерархий ссылки большой модели

В среде параллельных вычислений можно увеличить скорость обновлений схемы для моделей, содержащих иерархии ссылки большой модели путем создавания моделей, на которые ссылаются, которые сконфигурированы в режиме Accelerator параллельно каждый раз, когда условия позволяют. Например, если у вас есть программное обеспечение Parallel Computing Toolbox™, обновление каждой модели, на которую ссылаются, может быть распределено на ядрах многожильного хоста - компьютера. Кроме того, если у вас есть программное обеспечение MATLAB Parallel Server™, обновление каждой модели, на которую ссылаются, может быть распределено на удаленных рабочих в вашей настройке MATLAB Parallel Server.

Увеличение производительности, понятое при помощи параллельных сборок для обновления моделей, на которые ссылаются, зависит от нескольких факторов, включая:

  • Сколько моделей может быть создано параллельно для данной модели, ссылающейся на иерархию

  • Размер моделей, на которые ссылаются,

  • Ресурсы параллельных вычислений, такие как количество локальных или удаленных доступных рабочих и аппаратные атрибуты локальных и удаленных машин (сумма RAM, количество ядер, и так далее)

Для требований настройки, которые могут примениться к вашей среде параллельных вычислений, смотрите, что Параллель Создает Требования по настройке.

Для описания общего рабочего процесса для того, чтобы создать модели, на которые ссылаются, параллельно каждый раз, когда условия позволяют, см. Модели Обновления в Среде Параллельных вычислений.

Параллель, создающая Требования по настройке

Эти требования применяются к использованию параллельных сборок за обновление иерархий модели - ссылки:

  • Для локальных пулов хост-машине нужна ассигновать сумма в размере RAM, доступного для поддержки количества локальных рабочих (сеансы работы с MATLAB), которые вы планируете использовать. Например, использование parpool(4), чтобы создать параллельный пул с четырьмя рабочими приводит к пяти сеансам работы с MATLAB на вашей машине, каждое использование приблизительно 120 Мбайт памяти при запуске.

  • Удаленные рабочие MATLAB Parallel Server, участвующие в параллельной сборке, должны использовать общую платформу и компилятор.

  • Настройте сопоставимую среду MATLAB для каждого сеанса работника MATLAB и клиентского сеанса MATLAB. Например, используйте сопоставимые разделяемые переменные базового рабочего пространства, настройки пути MATLAB, и т.д. Один подход должен использовать коллбэк PreLoadFcn топ-модели. Если вы конфигурируете свою модель, чтобы загрузить топ-модель с каждым сеансом работника MATLAB, его функция предварительной нагрузки может использоваться для любой настройки сеанса работника MATLAB.

Обновите модели в среде параллельных вычислений

Использовать в своих интересах параллельное создание для иерархии модели - ссылки:

  1. Настройте пул локальных и/или удаленных работников MATLAB в вашей среде параллельных вычислений.

    1. Убедитесь, что программное обеспечение Parallel Computing Toolbox лицензируется и устанавливается.

    2. Чтобы использовать удаленных рабочих, убедитесь, что программное обеспечение MATLAB Parallel Server лицензируется и устанавливается.

    3. Выпустите команды MATLAB, чтобы настроить пул рабочего, например, parpool(4).

  2. От топ-модели иерархии модели - ссылки откройте диалоговое окно Configuration Parameters. Перейдите к Model Referencing, разделяют на области и выбирают опцию Enable parallel model reference builds. Этот выбор включает параметру MATLAB worker initialization for builds.

    Для MATLAB worker initialization for builds выберите одно из следующих значений:

    • 'none' Программное обеспечение не выполняет специальной инициализации рабочего. Задайте это значение, если дочерние модели в иерархии модели - ссылки ни на что не полагаются в базовом рабочем пространстве вне того, что они явным образом настраивают (например, с образцовой функцией load).

    • Copy base workspace – Программное обеспечение пытается скопировать базовое рабочее пространство в каждого рабочего. Задайте это значение, если вы используете скрипт настройки, чтобы подготовить базовое рабочее пространство к многоуровневым моделям, чтобы использовать.

    • Load top model – Программное обеспечение загружает топ-модель на каждом рабочем. Задайте это значение, если топ-модель в иерархии модели - ссылки обрабатывает всю настройку базового рабочего пространства (например, с образцовой функцией load).

    Примечание

    Установите Enable parallel model reference builds только для топ-модели иерархии модели - ссылки, к которой он применяется.

  3. Опционально, включите многословные сообщения для сборок симуляции. Если вы выбираете многословные сборки, сообщения сборки сообщают о прогрессе каждой параллельной сборки с именем модели.

    Чтобы включить многословные сообщения для целевых сборок симуляции, перейдите к диалоговому окну Configuration Parameters и выберите Verbose accelerator builds.

    Опция Verbose accelerator builds управляет многословием сообщений сборки и в Окне Команды MATLAB и в параллельных файлах журнала сборки.

  4. Опционально, осмотрите иерархию модели - ссылки, чтобы определить, на основе зависимостей моделей, которые модели создадут параллельно. Например, можно использовать Средство просмотра Зависимости моделей из меню Simulink Analysis> Model Dependencies.

  5. Обновите свою модель. Сообщения в записи окна команды 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.

Похожие темы