parsim

Моделируйте динамическую систему многократно параллельно или последовательный

Синтаксис

simOut = parsim(in)
simOut = parsim(in,'ShowSimulationManager','on')
simOut = parsim(in,Name,Value)

Описание

пример

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 = 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 должны появиться в одинарных кавычках (' '). Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

Примечание

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

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

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

Пример: 'SetupFcn',@()simulinkproject('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