Идите параллельно симуляции

Команда 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, чтобы передать образцовые изменения блока библиотеки в рабочих.

Смотрите также

| | | | | | | | | |

Похожие темы