Выполняйте параллельные симуляции

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 или объект набор данных как внешние входы в модель

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

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

См. также

| | | | | | | | | |

Похожие темы