目录
parsim的功能是以并行或串行方式进行多次动态系统仿真。
语法
simOut = parsim(in)
simOut = parsim(in,'ShowSimulationManager','on')
simOut = parsim(in,Name,Value)
说明
simOut = parsim(in) 使用 SimulationInput 对象 in 中指定的输入对模型进行仿真。parsim 命令使用 SimulationInput 对象数组作为输入来运行多个仿真。
simOut = parsim(in,'ShowSimulationManager','on') 使用 SimulationInput 对象中指定的输入对模型进行并行仿真,并打开仿真管理器 UI。有关详细信息,请参阅 Simulation Manager。
simOut = parsim(in,Name,Value) 使用 SimulationInput 对象中指定的输入和指定为 Name,Value 对组的选项对模型进行并行仿真。
parsim 命令使用 Parallel Computing Toolbox™ 许可证以并行方式运行仿真。如果无法创建并行池,或者未使用 Parallel Computing Toolbox,则 parsim 以串行方式运行仿真。
示例
在快速加速模式下使用 parsim
在快速加速模式下仿真模型 vdp。加载模型。
model = 'vdp';
load_system(model)
此步骤构建快速加速目标
Simulink.BlockDiagram.buildRapidAcceleratorTarget(model);
创建 SimulationInput 对象并使用 setModelParameter 方法将 RapidAcceleratorUpToDateCheck 设置为 'off'。
in = Simulink.SimulationInput(model);
in = in.setModelParameter('SimulationMode', 'rapid-accelerator');
in = in.setModelParameter('RapidAcceleratorUpToDateCheck', 'off');
对模型进行仿真。
out = parsim(in)
使用 parsim 以并行方式仿真模型
通过扫描变量以并行方式仿真模型 CSTR。执行扫描时,使用了 SimulationInput 对象的数组。指定扫描值。
FeedTempSweep = 250:10:300;
创建 SimulationInput 对象的数组。
for i = length(FeedTempSweep):-1:1
in(i) = Simulink.SimulationInput('CSTR');
in(i) = in(i).setVariable('FeedTemp0',FeedTempSweep(i));
end
以并行方式仿真模型。
out = parsim(in, 'ShowSimulationManager', 'on')
[29-Jun-2022 15:05:52] Checking for availability of parallel pool...
Starting parallel pool (parpool) using the 'Processes' profile ...
Connected to the parallel pool (number of workers: 6).
[29-Jun-2022 15:07:01] Starting Simulink on parallel workers...
[29-Jun-2022 15:07:34] Configuring simulation cache folder on parallel workers...
[29-Jun-2022 15:07:35] Loading model on parallel workers...
[29-Jun-2022 15:07:49] Running simulations...
[29-Jun-2022 15:08:24] Completed 1 of 6 simulation runs
[29-Jun-2022 15:08:24] Completed 2 of 6 simulation runs
[29-Jun-2022 15:08:24] Completed 3 of 6 simulation runs
[29-Jun-2022 15:08:27] Completed 4 of 6 simulation runs
[29-Jun-2022 15:08:28] Completed 5 of 6 simulation runs
[29-Jun-2022 15:08:28] Completed 6 of 6 simulation runs
[29-Jun-2022 15:08:28] Cleaning up parallel workers...
out =
1x6 Simulink.SimulationOutput array
参数说明
in
— 用于对模型进行仿真的Simulink.SimulationInput
对象
用于在仿真中指定对模型所作更改的 Simulink.SimulationInput 对象或 Simulink.SimulationInput 对象的数组。
示例:in = Simulink.SimulationInput('vdp')
示例:for i = 10:-1:1 in(i) = Simulink.SimulationInput('vdp'); end