exponenta event banner

Запустить параллельное моделирование

parsim позволяет выполнять параллельное (одновременное) моделирование модели (конструкции) Simulink ®. В этом контексте параллельные прогоны означают одновременное многократное моделирование различных работников .parsim упрощает выполнение одной и той же модели с различными входами или различными настройками параметров в таких сценариях, как анализ Монте-Карло, протягивание параметров, тестирование модели, конструирование эксперимента и оптимизация модели. Параллельное выполнение одного моделирования путем разложения модели на более мелкие компоненты и одновременное выполнение этих отдельных элементов на нескольких рабочих не поддерживается в настоящее время.

Выполнение моделирования параллельно с parsim, вам нужна Toolbox™ параллельных вычислений для местных работников. Кроме того, MATLAB ® Parallel Server™ можно использовать для нескольких компьютерных кластеров, облаков и сеток. В отсутствие панели инструментов параллельных вычислений и параллельного сервера MATLAB parsim запускает моделирование в серийном формате. Дополнительные сведения см. в разделах Панель инструментов параллельных вычислений и Параллельный сервер MATLAB.

Если параллельный пул не существует, 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 - укажите числовой массив, временные ряды или объект Dataset в качестве внешних входных данных для модели;

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

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

См. также

| | | | | | | | | |

Связанные темы