exponenta event banner

parsim

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

Описание

пример

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

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

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

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

Примеры

свернуть все

Моделирование модели, vdp, в режиме быстрого ускорения.

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

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, параллельно, пропуская переменную. Для выполнения сдвига используется массив объектов Input.

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

FeedTempSweep = 250:10:300;

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

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™ (например, масса и инерция твердотельного блока в 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). Можно регистрировать сигналы с помощью таких блоков, как блоки «В рабочую область» и «Область». Диспетчер сигналов и объема может непосредственно регистрировать сигналы.

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

Представлен в R2017a