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
передавать изменения библиотечного блока модели в рабочих.
ExternalInput
| Simulation Manager
| Simulink.SimulationInput
| applyToModel
| setBlockParameter
| setInitialState
| setModelParameter
| setPostSimFcn
| setPreSimFcn
| setVariable
| validate