Команда parsim
позволяет вам идти параллельно (одновременные) моделирования Simulink® своей модели (дизайн). В этом контексте параллельные выполнения означают несколько моделирований в то же время на различных рабочих. parsim
дает возможность для вас запускать ту же модель с различными входными параметрами, или различные установки параметров в сценариях, таких как Монте-Карло анализирует, развертки параметра, образцовое тестирование, дизайн эксперимента и образцовая оптимизация. Выполнение единственного моделирования параллельно путем разложения модели в меньшие компоненты и выполнения тех отдельных частей одновременно на нескольких рабочих в настоящее время не поддерживается.
Чтобы запустить моделирования параллельно с parsim
, вам нужны Параллельные вычисления Toolbox™ для локальных рабочих. Кроме того, можно использовать MATLAB® Distributed Computing Server™ для нескольких компьютерных кластеров, облаков и сеток. В отсутствие Parallel Computing Toolbox и MATLAB Distributed Computing Server, parsim
запускает моделирования в сериале. Для получения дополнительной информации см. Parallel Computing Toolbox и MATLAB Distributed Computing 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
- Замените переменные в базовом рабочем пространстве, словаре данных или рабочем пространстве модели
Параметры блока setBlockParameters
- Change
setModelParameters
- Измените параметры модели
PreSimFcn
- Задайте функции MATLAB, чтобы запуститься перед каждым моделированием для результатов индивидуальной настройки и последующей обработки на кластере
PostSimFcn
- Задайте функции MATLAB, чтобы бежать за каждым моделированием для результатов индивидуальной настройки и последующей обработки на кластере
InitialState
- Измените начальное состояние
ExternalInput
- Задайте числовой массив, timeseries или объект Dataset как внешние входные параметры к модели
Эта блок-схема показывает общую последовательность событий, которые происходят, когда parsim
выполняется
ExternalInput
| Simulation Manager
| Simulink.SimulationInput
| applyToModel
| setBlockParameter
| setInitialState
| setModelParameter
| setPostSimFcn
| setPreSimFcn
| setVariable
| validate