getLocalRun
类:万博1manbetxSimulink.sdi.WorkerRun
包:万博1manbetxSimulink.sdi
从工作运行创建本地运行
语法
runObj = workerRun.getLocalRun
描述
创建本地runObj
= workerRun.getLocalRun万博1manbetxSimulink.sdi.Run
对象runObj
为万博1manbetxSimulink.sdi.WorkerRun
对象workerRun
.使用getLocalRun
在客户端MATLAB中®访问万博1manbetxSimulink.sdi.WorkerRun
数据。
输出参数
runObj
—本地Simul万博1manbetxink.sdi.Run object
万博1manbetxSimulink.sdi.Run对象
当地的万博1manbetxSimulink.sdi.Run
对象。
例子
从并行模拟中访问数据
此示例执行模型的并行模拟slexAircraftExample
使用不同的输入过滤器时间常数,并展示了使用模拟数据检查器编程接口访问数据的几种方法。
设置
首先确保仿真数据检查器为空,并配置并行计算工具箱支持以自动导入在本地工作者上创建的运行。万博1manbetx然后,创建一个用于每个模拟的过滤器参数值向量。
%确保模拟数据检查器为空,并且PCT支持为万博1manbetx%启用。万博1manbetxSimulink.sdi.clear Simulink.sdi万博1manbetx.enablePCTSupport (“本地”)定义Ts值Ts_vals = [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1];
初始化并行工作器
如果您还没有一个本地工作人员池,那么使用gcp创建一个本地工作人员池来运行并行模拟。在一个spmd
代码块,加载slexAircraftExample
建模并选择要记录的信号。避免数据并发问题使用sim卡
在parfor
,为每个工作人员创建一个临时目录,在模拟过程中使用。
P = gcp;
使用“本地”配置文件启动并行池(parpool)…连接4个工人。
spmd加载系统并选择要记录的信号load_system (“slexAircraftExample”) 万博1manbetxSimulink.sdi.markSignalForStreaming (“slexAircraftExample /试点”, 1“上”) 万博1manbetxSimulink.sdi.markSignalForStreaming ('slexAircraftExample/飞机动力学模型'4“上”)在每个worker上创建临时目录workDir = pwd;addpath(workDir) tempDir = tempname;mkdir (tempDir) cd (tempDir)结束
运行并行模拟
使用parfor
同时进行七个模拟。为Ts
对于每次模拟,并修改值Ts
在模型工作区中。然后,运行模拟并构建一个数组万博1manbetxSimulink.sdi.WorkerRun
对象来使用仿真数据检查器访问数据。后parfor
循环,使用另一个spmd
段从工作者中删除临时目录。
parfor指数= 1:7选择Ts的值Ts_val = Ts_vals(索引);更改过滤器时间常数并进行模拟modelWorkspace = get_param(“slexAircraftExample”,“modelworkspace”);modelWorkspace.assignin (“t”Ts_val) sim卡(“slexAircraftExample”)为每个模拟创建一个工作运行。workerRun(index) = 万博1manbetxSimulink.sdi.WorkerRun.getLatest结束spmd%删除临时目录cd (workDir)删除文件夹(tempDir,“年代”) rmpath (workDir)结束
从并行模拟输出中获取数据集对象
的getDataset
方法将数据放入WorkerRun
成一个数据集
对象,以便您可以轻松地进行后处理。
ds(7) = 万博1manbetxSimulink.SimulationData.Dataset;为a = 1:7 ds(a) = workerRun(a).getDataset;结束ds (1)
ans Bl万博1manbetxockPath = Simulink.SimulationData.Dataset”2元素名称 __________ ________________________________________ 1 (1 x1信号)α,rad……rcraftExample/Aircraft Dynamics Model 2 [1x1 Signal] Stick slexAircraftExample/Pilot -使用括号{}访问,修改,或使用索引添加元素。
从并行仿真输出中获取DatasetRef对象
对于大数据工作流,请使用getDatasetRef
方法引用与WorkerRun
.
为b = 1:7 datasetRef(b) = workerRun(b).getDatasetRef;结束datasetRef (1)
“运行3:slexAircraftExample”运行:[1×1 Simulink.sdi. ans = datastref。万博1manbetx执行]numElements: 2
在仿真数据检查器中处理并行仿真数据
您也可以创建本地运行
对象来分析和可视化您的数据,使用模拟数据检查器API。此示例添加一个标记,指示每次运行的过滤器时间常量值。
为c = 1:7 Runs(c) = workerRun(c).getLocalRun;Ts_val_str = num2str(Ts_vals(c));Desc = strcat('Ts = ', Ts_val_str);(c)。Description = desc;(c)。名称= strcat('slexAircraftExample run Ts=', Ts_val_str);结束
清理工作者存储库
清理工作人员使用的文件,为希望在工作人员池上运行的其他模拟释放磁盘空间。
万博1manbetxSimulink.sdi.cleanupWorkerResources
版本历史
在R2017b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。