主要内容

模拟不同子系统的启动激活使用parsim

这个例子展示了如何用启动激活时间使用parsim.方法可以并行模拟多个配置变异激活时间设置为启动使用parsim.每个配置将有一个活动的变体。

模型

打开模型slexVariantSubsystemsWithParSim.该模型包含一个可变子系统块控制器有两种选择线性控制器而且非线性控制器有了这些条件Vss_mode == 1而且Vss_mode == 2分别。设置变异激活时间启动块的参数对话框。

open_system (“slexVariantSubsystemsWithParSim.slx”);

步骤1 -为每个变量选择设置活动变量选择

为每个变量选择设置活动变量选择,并将模拟的数量设置为与变量选择的数量相等。在这个示例模型中,我们有两种不同的选择。

mdl =“slexVariantSubsystemsWithParSim”;numSims = 2;varControl = [1,2];

步骤2 -创建SimulationInput对象

创建SimulationInput对象,并为每次运行设置变量控制值。

in(1:numSims) = 万博1manbetxSimulink.SimulationInput(mdl);idx = 1:numSims in(idx) = in(idx).setModelParameter(“SimulationMode”“快速”...“RapidAcceleratorUpToDateCheck”“上”...“SaveTime”“上”...“SaveOutput”“上”);in(idx) = in(idx).setVariable(“VSS_MODE”varControl (idx));结束

3 .使用parsim模拟模型

使用parsim对每个变量控制值并行模拟模型。

Out = parsim(in,“ShowProgress”“上”);
检查并行池的可用性…使用“Processes”配置文件启动并行池(parpool)…[31-Aug-2022 01:54:01]在并行工作者上启动Simulink…万博1manbetx[31-Aug-2022 01:55:07]在并行工作器上配置模拟缓存文件夹…[31- 8 -2022 01:55:07]装载模型在并行工作上…[01:55:55]运行模拟…[31-Aug-2022 01:56:35]完成2个模拟运行中的2个,清理并行工人…

您可以使用parsimSetupFcn.这是可选的。如果你跑parsim没有SetupFcn,设置RapidAcceleratorUpToDateCheck

out = parsim(in, 'ShowProgress', 'on', 'SetupFcn', @() slexVariantSubsystemsWithParSim_script_setup(mdl));

安装脚本,slexVariantSubsystemsWithParSim_script_setup.m为模型建立快速加速目标。

步骤4 -绘制输出值

现在绘制每次运行的结果。

i = 1:numSims simOut = out(i);t = simOut.tout;y = simOut.yout;(t, y)保持所有结束