Команда parsim
позволяет вам идти параллельно (одновременные) симуляции Simulink® своей модели (проект). В этом контексте параллельные выполнения означают несколько симуляций одновременно на различных рабочих. parsim
дает возможность для вас запускать ту же модель с различными входными параметрами, или различные установки параметров в сценариях, таких как Монте-Карло анализирует, развертки параметра, образцовое тестирование, проект эксперимента и образцовая оптимизация. Выполнение одной симуляции параллельно путем разложения модели на меньшие компоненты и выполнения тех отдельных частей одновременно на нескольких рабочих в настоящее время не поддержано.
Чтобы запустить симуляции параллельно с parsim
, вам нужен Parallel Computing Toolbox™ для локальных рабочих. Кроме того, можно использовать MATLAB® Parallel Server™ для нескольких компьютерных кластеров, облаков и сеток. В отсутствие Parallel Computing Toolbox и MATLAB Parallel Server, parsim
запускает симуляции в сериале. Для получения дополнительной информации см. Parallel Computing Toolbox и MATLAB Parallel Server.
Если никакой параллельный пул не существует, parsim
создает пул из кластерного профиля по умолчанию. Чтобы использовать кластер кроме значения по умолчанию, создайте пул с тем кластерным профилем прежде, чем вызвать parsim
.
Этот пример запускает несколько симуляций параллельно для набора параметров развертки.
% 1) Load model model = 'sldemo_suspn_3dof'; load_system(model); % 2) Set up the sweep parameters Cf_sweep = 2500*(0.05:0.1:0.95); numSims = numel(Cf_sweep); % 3) Create an array of SimulationInput objects and specify the sweep value for each simulation simIn(1:numSims) = Simulink.SimulationInput(model); for idx = 1:numSims simIn(idx) = simIn(idx).setBlockParameter([model '/Road-Suspension Interaction'], 'Cf', num2str(Cf_sweep(idx))) end % 4) Simulate the model simOut = parsim(simIn)
parsim
работаетparsim
запускает симуляции с различными параметрами и значениями на основе объекта Simulink.SimulationInput
. Каждый объект SimulationInput
задает одну симуляцию модели. Массив этих объектов может быть создан для нескольких симуляций. Для получения дополнительной информации смотрите Выполнение Несколько Симуляций.
Можно использовать следующие методы и свойства на объекте Simulink.SimulationInput
:
Переменные setVariables
- Change в базовом рабочем пространстве, словаре данных или рабочем пространстве модели
setBlockParameters
- Измените параметры блоков
setModelParameters
- Измените параметры модели
setPreSimFcn
- Задайте функции MATLAB, чтобы запуститься перед каждой симуляцией для результатов индивидуальной настройки и последующей обработки на кластере
setPostSimFcn
- Задайте функции MATLAB, чтобы выполняться после каждой симуляции для результатов индивидуальной настройки и последующей обработки на кластере
InitialState
- Измените начальное состояние
ExternalInput
- Задайте числовой массив, timeseries или объект Dataset как внешние входные параметры к модели
Эта блок-схема показывает общую последовательность событий, которые происходят, когда parsim
выполняется
Изменения в образцовых блоках библиотеки могут быть перезаписаны при использовании parsim
. Когда модели настраиваются на новых рабочих, модель наследовала свойства непосредственно от библиотеки рабочего. Используйте SetUpFcn
с parsim
, чтобы передать образцовые изменения блока библиотеки в рабочих.
ExternalInput
| Simulation Manager
| Simulink.SimulationInput
| applyToModel
| setBlockParameter
| setInitialState
| setModelParameter
| setPostSimFcn
| setPreSimFcn
| setVariable
| validate