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)

Этот шаг создает Быструю цель Акселератора

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')
[08-Jan-2018 14:10:43] Checking for availability of parallel pool...
Starting parallel pool (parpool) using the 'local' profile ...
connected to 6 workers.
[08-Jan-2018 14:11:12] Loading Simulink on parallel workers...
[08-Jan-2018 14:11:40] Configuring simulation cache folder on parallel workers...
[08-Jan-2018 14:11:40] Loading model on parallel workers...
[08-Jan-2018 14:11:48] Running simulations...
[08-Jan-2018 14:12:04] Completed 1 of 6 simulation runs
[08-Jan-2018 14:12:04] Completed 2 of 6 simulation runs
[08-Jan-2018 14:12:04] Completed 3 of 6 simulation runs
[08-Jan-2018 14:12:08] Completed 4 of 6 simulation runs
[08-Jan-2018 14:12:09] Completed 5 of 6 simulation runs
[08-Jan-2018 14:12:09] Completed 6 of 6 simulation runs
[08-Jan-2018 14:12:09] Cleaning up parallel workers...

out = 

1x6 Simulink.SimulationOutput array


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

свернуть все

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® доступной для использования.

Определение указателя на функцию к 'SetupFcn' запускаться однажды на рабочего перед запуском симуляций.

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

Примечание

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

Определение указателя на функцию к '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. Можно регистрировать блоки использования сигналов, такие как блоки Scope и To Workspace. Signal & Scope Manager может непосредственно регистрировать сигналы.

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

Введенный в R2017a