Команда 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