parsim

Симулируйте динамическую систему несколько раз параллельно или последовательно

Описание

пример

simOut = parsim(in) моделирует модель с помощью входов, заданных в SimulationInput объект, в. parsim команда использует массив SimulationInput объекты для выполнения нескольких симуляций.

simOut = parsim(in,'ShowSimulationManager','on') моделирует модель параллельно с помощью входов, заданных в SimulationInput и открывает пользовательский интерфейс Simulation Manager. Для получения дополнительной информации см. Simulation Manager.

simOut = parsim(in,Name,Value) моделирует модель параллельно с помощью входов, заданных в SimulationInput объект и опции, заданные как Name,Value пара.

parsim команда использует лицензию Parallel Computing Toolbox™, чтобы выполнять параллельные симуляции. parsim запускает симуляции последовательно, если параллельный пул не может быть создан или если Parallel Computing Toolbox не используется.

Примеры

свернуть все

Симулируйте модель, vdp, в быстром режиме Accelerator.

Загрузите модель.

model = 'vdp';
load_system(model)

Этот шаг создает цель Rapid Accelerator

Simulink.BlockDiagram.buildRapidAcceleratorTarget(model);

Создайте SimulationInput объект и использование setModelParameter метод, чтобы задать RapidAcceleratorUpToDateCheck на 'off'.

in = Simulink.SimulationInput(model);
in = in.setModelParameter('SimulationMode', 'rapid-accelerator');
in = in.setModelParameter('RapidAcceleratorUpToDateCheck', 'off');
 

Симулируйте модель.

out = parsim(in)

Симулируйте модель, CSTR, параллельно, протаскивая переменную. Массив объектов SimulationInput используется для выполнения сдвига.

Задайте значения сдвига.

FeedTempSweep = 250:10:300;

Создайте массив объектов SimulationInput.

for i = length(FeedTempSweep):-1:1
in(i) = Simulink.SimulationInput('CSTR');
in(i) = in(i).setVariable('FeedTemp0',FeedTempSweep(i));
end

Симулируйте модель параллельно.

out = parsim(in, 'ShowProgress', 'on')
[11-Dec-2020 09:14:55] Checking for availability of parallel pool...
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
[11-Dec-2020 09:15:43] Starting Simulink on parallel workers...
[11-Dec-2020 09:16:17] Configuring simulation cache folder on parallel workers...
[11-Dec-2020 09:16:17] Loading model on parallel workers...
[11-Dec-2020 09:16:25] Running simulations...
[11-Dec-2020 09:16:58] Completed 1 of 6 simulation runs
[11-Dec-2020 09:16:58] Completed 2 of 6 simulation runs
[11-Dec-2020 09:16:58] Completed 3 of 6 simulation runs
[11-Dec-2020 09:17:00] Completed 4 of 6 simulation runs
[11-Dec-2020 09:17:01] Completed 5 of 6 simulation runs
[11-Dec-2020 09:17:01] Completed 6 of 6 simulation runs
[11-Dec-2020 09:17:02] Cleaning up parallel workers...

out = 

1x6 Simulink.SimulationOutput array


Входные параметры

свернуть все

A Simulink.SimulationInput объект или массив Simulink.SimulationInput объекты, которые используются для задания изменений в модели для симуляции.

Пример: in = Simulink.SimulationInput('vdp')

Аргументы в виде пар имя-значение

Пример: 'ShowProgress', 'on'

Примечание

Все параметры переданы в parsim команда не связана с параметрами, которые используются со sim команда. Для перехода к parsim команда, используйте список следующих входных параметров

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name и Value должны находиться внутри одинарных кавычек (' '). Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Задается как массив ячеек из дополнительных файлов для присоединения к параллельному пулу.

Установите значение 'on', чтобы увидеть прогресс симуляций в командном окне. Прогресс скрыт, когда установлено значение 'off'.

Примечание

Когда отобразится прогресс, сообщение 'Cleaning up parallel workers..' может отображаться до завершения нескольких последних симуляций. Это сообщение не зависит от завершения симуляций. Симуляции завершаются, когда выходы берутся из future. Для получения дополнительной информации смотрите Simulink.Simulation.Future.

Установите значение 'on' для выполнения симуляций асинхронно, сохраняя MATLAB® командная строка, доступная для использования.

Задайте function handle на 'SetupFcn' чтобы запускать один раз на рабочий процесс перед началом симуляций.

Пример: 'SetupFcn',@()currentProject('Modelex/Model_example.prj')

Примечание

Когда buildRapidAcceleratorTarget используется в SetupFcn, и модель имеет заданные внешние входы, любой из которых 'LoadExternalInput' на 'off' или убедитесь, что указанный внешний вход доступен работникам, чтобы предотвратить ошибку компиляции.

Задайте function handle на 'CleanupFcn' для выполнения один раз на рабочий процесс после завершения симуляций.

Когда ManageDependencies установлено в onзависимости модели автоматически отправляются параллельным рабочим при необходимости. Если ManageDependencies установлено в off, явно присоедините зависимости модели к параллельному пулу.

Когда UseFastRestart установлено в on, симуляции выполняются на рабочих местах с помощью быстрого перезапуска.

При выполнении протягивания параметра меняющимися свойствами Simscape™ компонента (например, массой и инерцией блока Solid в Simscape Multibody) задайте параметры блоков Simscape как конфигурируемый во время выполнения. Для получения дополнительной информации смотрите О параметрах выполнения Simscape (Simscape).

Примечание

При использовании parsim, используйте UseFastRestart опция, а не FastRestart опция. Для получения дополнительной информации см. Запуск с быстрой перезагрузкой.

Когда TransferBaseWorkspaceVariables установлено в onпеременные, используемые в модели, и все, что определено в базовом рабочем пространстве, передаются параллельным рабочим.

Когда 'ShowSimulationManager' установлено в 'on'можно использовать приложение Simulation Manager для мониторинга симуляций.

Настройка 'StopOnError' на 'on' останавливает выполнение симуляций, если обнаружена ошибка.

Выходные аргументы

свернуть все

Массив Simulink.SimulationOutput объекты, которые содержат все зарегистрированные результаты симуляции. Размер массива равен размеру массива Simulink.SimulationInput объекты.

Все выходы симуляции (записанное время, состояния и сигналы) возвращаются за один Simulink.SimulationOutput объект. Вы задаете время модели, состояния и вывод, который регистрируется с помощью панели Data Import/Export диалогового окна Параметры конфигурации модели (Model Configuration Parameters). Можно регистрировать сигналы с помощью блоков, таких как To Workspace и Scope блоки. Этот Signal & Scope Manager может непосредственно регистрировать сигналы.

Расширенные возможности

Введенный в R2017a