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

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 - Замените переменные в базовом рабочем пространстве, словаре данных или рабочем пространстве модели

  • setBlockParameters - Измените параметры блоков

  • setModelParameters - Измените параметры модели

  • setPreSimFcn - Задайте функции MATLAB, чтобы запуститься перед каждой симуляцией для результатов индивидуальной настройки и последующей обработки в кластере

  • setPostSimFcn - Задайте функции MATLAB, чтобы выполняться после каждой симуляции для результатов индивидуальной настройки и последующей обработки в кластере

  • InitialState - Измените начальное состояние

  • ExternalInput - Задайте числовой массив, timeseries или объект Dataset как внешние входные параметры к модели

Эта блок-схема показывает общую последовательность событий, которые происходят когда parsim выполняется

Изменения в библиотечных блоках модели могут быть перезаписаны при использовании parsim. Когда модели настраиваются на новых рабочих, модель наследовала свойства непосредственно от библиотеки рабочего. Используйте SetUpFcn с parsim передавать изменения библиотечного блока модели в рабочих.

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

| | | | | | | | | |

Похожие темы