parsim
В этом примере показано, как можно симулировать Различную Подсистему с startup
время активации с помощью parsim
. Можно симулировать несколько настроек параллельно с Различным набором времени активации к startup
использование parsim
. Каждая настройка будет иметь один активный вариант.
Откройте модель slexVariantSubsystemsWithParSim
. Модель содержит различный блок Controller
подсистемы с двумя вариантами Линейный Контроллер и Нелинейный Контроллер с условиями
VSS_MODE == 1
и VSS_MODE == 2
соответственно. Установите Variant activation time
к startup
в диалоговом окне Параметров блоков.
open_system('slexVariantSubsystemsWithParSim.slx');
Setup активный различный выбор для каждого варианта и определенный номер симуляций, чтобы быть равным количеству вариантов. В этой модели в качестве примера у нас есть два варианта.
mdl = 'slexVariantSubsystemsWithParSim';
numSims = 2;
varControl = [1,2];
SimulationInput
объектСоздайте SimulationInput
объект для каждой симуляции, запущенной и установленной различное значение управления для каждого запуска.
in(1:numSims) = Simulink.SimulationInput(mdl); for idx = 1:numSims in(idx) = in(idx).setModelParameter('SimulationMode', 'rapid', ... 'RapidAcceleratorUpToDateCheck', 'on', ... 'SaveTime', 'on', ... 'SaveOutput', 'on'); in(idx) = in(idx).setVariable('VSS_MODE',varControl(idx)); end
parsim
симулировать модельИспользуйте parsim
симулировать модель параллельно для каждого различного значения управления.
out = parsim(in, 'ShowProgress', 'on');
[23-Jul-2021 07:42:08] Checking for availability of parallel pool... Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 12). [23-Jul-2021 07:43:29] Starting Simulink on parallel workers... [23-Jul-2021 07:45:07] Configuring simulation cache folder on parallel workers... [23-Jul-2021 07:45:08] Loading model on parallel workers... [23-Jul-2021 07:45:41] Running simulations... [23-Jul-2021 07:46:21] Completed 1 of 2 simulation runs [23-Jul-2021 07:46:25] Completed 2 of 2 simulation runs [23-Jul-2021 07:46:25] Cleaning up parallel workers...
Можно симулировать модель с помощью parsim
с SetupFcn
. Это является дополнительным. Если при запуске parsim
без SetupFcn
, установите RapidAcceleratorUpToDateCheck
к on
.
out = parsim(in, 'ShowProgress', 'on', ...'SetupFcn', @() slexVariantSubsystemsWithParSim_script_setup(mdl));
Скрипт настройки, slexVariantSubsystemsWithParSim_script_setup.m
создает быструю ускоряющую цель для модели.
Теперь постройте результаты каждого запуска.
for i = 1:numSims simOut = out(i); t = simOut.tout; y = simOut.yout; plot(t, y) hold all end