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
