主要内容

万博1manbetxsimulink.sdi.run.

访问运行信号和元数据

描述

万博1manbetxsimulink.sdi.run.对象包含运行元数据,并允许您访问万博1manbetxsimulink.sdi.signal.包含运行中信号的数据和元数据的对象。你也可以使用一个万博1manbetxsimulink.sdi.run.对象将数据从工作区或文件导入仿真数据检查器。

创建

模拟数据检测器创建万博1manbetxsimulink.sdi.run.对象,当您导入数据或模拟记录数据的模型时。你可以访问对象在仿真数据检查器中的三种方法:

还可以通过编程方式创建万博1manbetxsimulink.sdi.run.对象以将数据导入仿真数据检查器。

提示

使用添加函数或万博1manbetxSimulink.sdi.addToRun将数据导入空的功能对象。

特性

展开全部

此属性是只读的。

运行的唯一数字标识,返回为整数。

运行名称,指定为字符向量或字符串。

默认情况下,姓名属性为空万博1manbetxsimulink.sdi.run.Create.函数创建运行。

属性时,可以指定运行名称万博1manbetxSimulink.sdi.createRun函数创建运行。

当您通过模拟一个记录数据的模型来创建一个运行时,运行名称将根据Simulation data Inspector中的运行命名规则生成。可以在UI中的仿真数据检查器中修改运行命名规则,也可以使用万博1manbetxsimulink.sdi.setrunnamingrule.函数。

例子:运行1:vdp的

运行的描述,指定为字符向量或字符串。默认情况下,描述是空的。使用描述属性要添加关于运行中数据的重要性的注释,如用于创建数据的测试或模拟条件。

例子:“初始模拟”

标记用于其他运行信息,指定为字符向量或字符串。默认情况下,标签是空的。你可以使用标签属性附加附加信息对象。例如,你可以用标签属性要包含用于在创建运行中的模拟的参数值对象的元数据。

例子:'收益= 2'

创建的日期和时间,作为一个返回datetime对象。

例子:07-DEC-2019 13:55:25

数据类型:datetime

此属性是只读的。

在创建运行时,在模拟数据检查器中运行的索引,以整数形式返回。的RunIndex.当您使用运行索引作为运行命名规则的一部分时,匹配运行名称中的运行编号。

如果从模拟数据检查器中删除运行,则RunIndex.属性可能与返回的向量中的运行ID索引不匹配万博1manbetxSimulink.sdi.getAllRunIDs函数。

此属性是只读的。

运行中的信号数,以整数形式返回。

模拟模型的名称以创建运行,返回为字符向量。的模型属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

在创建运行的模拟中使用的仿真模式作为字符向量返回。的SimMode属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

首次由运行中的所有信号共享的时间点,作为标量返回。

运行中所有信号共享的最后一次点作为标量返回。

版本的Simulink万博1manbetx.®用于创建运行的模拟,作为字符向量返回。的SLVersion属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

模拟要创建运行的模型的版本作为字符向量返回。模型的版本存储在其模型属性中。的ModelVersion属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

用于执行创建运行的模拟的系统帐户,作为字符向量返回。的用户标识属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

用于执行创建运行的模拟的机器的名称,作为字符向量返回。的MachineName属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

用于执行模拟的机器上的操作系统,返回为字符向量。的平台属性对于与模拟不对应的运行为空。

例子:“PCWIN64”

与运行相对应的模拟任务的名称,作为字符向量返回。的任务名称属性为空,除非运行是使用并行计算工具箱™工作程序创建的。

在模拟中使用的求解器类型创建运行,返回为“变步”“固定的”.的索尔弗蒂属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

在创建运行的模拟中使用的求解器的名称,作为字符向量返回。的SolverName属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

例子:数值

求解器在模拟过程中使用的步长,返回为字符向量。如果模拟使用固定步长求解器,则SolverStepSize属性表示模拟中使用的固定步长。如果模拟使用可变步骤求解器,则SolverStepSize属性指示模拟中使用的最大步长。

例子:'0.4'

模拟状态,作为字符向量返回。当模拟运行时,状态属性是“奔跑”.当模拟暂停或完成时,状态财产从中获取价值StopEvent场的万博1manbetx仿真软件。SimulationMetadata对象StopEvent财产。的StopEvent属性具有其中一个值:

  • ReachedStopTime- 没有报告的错误完成的模拟,而不是报告的错误StopFcn回调函数,它在模拟停止后执行。

  • ModelStop- 在仿真停止时间之前,块或求解器停止模拟。

  • stopcommand.- 一种停止按钮按或set_param函数调用结束了模拟。

  • 诊断恐怖-报告的错误结束了模拟。

  • KeyboardControlC- 一种Ctrl + C键盘输入结束了模拟。

  • Pausecommand.- 一种暂停按钮按或set_param函数调用暂停模拟。

  • 有条件暂定—条件断点暂停模拟。

  • PauseTime—指定的暂停时间暂停模拟。

  • StepForward—步进模拟时,步进后模拟暂停。

  • StepBackward- 在踩下仿真时逐步暂停的模拟暂停。

  • 超时- 在仿真执行时间超过使用时,模拟停止'暂停'名称 - 值对sim卡函数。

块,该块发出停止模拟的停止事件,返回为万博1manbetxsimulink.simulationData.BlockPath.对象。

转换后的模拟停止描述,作为字符向量返回。的StopEventDescription包括如果适用,则包括对停止事件和相关的模拟时间的描述。的StopEventDescription属性的值StopEventDescription场的万博1manbetx仿真软件。SimulationMetadata对象ExecutionInfo财产。

例子:“在时间100时发出暂停命令”

在模拟过程中发生的错误,作为字符向量返回。

模拟期间发生的警告作为字符向量返回。

为创建运行的模拟初始化模型所需的时间,返回为double。的ModelInitializationTime属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

执行运行的模拟的执行时间,作为双重返回。的ModelExecutiontime.属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

是时候终止创建运行的模拟了,该模拟以double形式返回。的modelterminationtime属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

创建运行的模拟的总模拟时间,返回为double。的ModelTotalElapsedTime属性为空,用于通过将数据导入模拟数据检查器而创建的运行。

用户指定的字符串对应于模拟,作为字符向量返回。通常,这是用户提供模拟的简要描述。您指定的用户来模拟万博1manbetx仿真软件。SimulationInput对象的模拟。

对象的功能

添加 添加信号万博1manbetxsimulink.sdi.run.对象
出口 导出运行到基础工作区或文件
getallsignalids. 获取所有信号ID以用于信号万博1manbetxsimulink.sdi.run.对象
getAllSignals 接收所有信号万博1manbetxsimulink.sdi.run.对象
getDatasetRef 创建一个运行的si万博1manbetxmulink .sd . datasetref对象
getsignalbyIndex. 得到信号万博1manbetxsimulink.sdi.run.索引对象
getSignalIDByIndex 获取在指定索引处的信号ID万博1manbetxsimulink.sdi.run.对象
getsignalidsbyname. 获取内部信号的信号ID万博1manbetxsimulink.sdi.run.对象使用信号名称
getsignalsbyname. 访问信号万博1manbetxsimulink.sdi.run.对象使用信号名称
isvalidsignalid 检查信号ID是否与信号in对应万博1manbetxsimulink.sdi.run.对象

例子

全部折叠

这个例子演示了如何访问万博1manbetxsimulink.sdi.run.对象,该对象用于由日志信号创建的仿真数据检查器运行。从万博1manbetxsimulink.sdi.run.对象万博1manbetxsimulink.sdi.signal.对象,该对象包含已记录的信号数据和元数据。你可以使用信号对象和对象plotOnSubPlot函数绘制模拟数据检查器中的数据。

创建模拟运行并访问目的

ex_vdp.模型记录两个信号。要创建包含记录数据的模拟运行,请模拟模型。

SIM('ex_vdp');

模拟数据检查器通过为模拟、导入数据或打开会话创建的每个运行分配唯一的数值运行ID来跟踪运行。要访问刚才执行的模拟的run对象,请使用万博1manbetxSimulink.sdi.getAllRunIDs函数并获取返回向量中的最后一个运行ID。

runIDs = 万博1manbetxSimulink.sdi.getAllRunIDs;runID = runIDs(结束);

有一次运行运行ID后,可以使用万博1manbetxSimulink.sdi.getRun函数来获取万博1manbetxsimulink.sdi.run.对象,它对应于运行。你可以使用对象以检查与运行关联的元数据,包括运行中的信号数。

vdprun = 万博1manbetxsimulink.sdi.getrun(runid);vdprun.signalcount.
ans =INT32.2

图数据使用信号对象

使用getsignalbyIndex.用于访问信号的信号对象,fuelRun

signal1 = getsignalbyIndex(vdprun,1);signal2 = getsignalbyIndex(vdprun,2);

使用万博1manbetxsimulink.sdi.setsubplotlayout.函数指定一个3乘1布局。

万博1manbetxsimulink.sdi.setsubplotlayout(2,1)

在策划数据之前,使用万博1manbetxsimulink.sdi.clearallsubplots.功能清除已绘制的任何数据。

万博1manbetxsimulink.sdi.clearallsubplots.

在每个子图上绘制一个信号。要在第一个子图上绘制信号,可以设置检查一下属性为信号。要在第一个子图以外的子图上绘制信号,请使用plotOnSubPlot函数。

signal1。检查= true;plotOnSubPlot (signal2 2 1,真实);

查看绘制的数据

要查看刚刚创建的图,请使用万博1manbetxsimulink.sdi.view.函数。

这个例子展示了如何创建一个运行,向它添加数据,然后在Simulation data Inspector中查看数据。

为运行创建数据

创建时间序列对象包含正弦信号和余弦信号的数据。给各时间序列对象描述性名称。

时间= Linspace(0,20,100);sine_vals = sin(2 * pi / 5 *时间);sine_ts = timeereries(sine_vals,time);sine_ts.name =.'正弦,T = 5';cos_vals = cos(2 * pi / 8 *时间);cos_ts = timeereries(cos_vals,时间);cos_ts.name =.'余弦,T = 8'

创建运行并添加数据

使用万博1manbetxsimulink.sdi.view.打开模拟数据检查器的功能。

万博1manbetxsimulink.sdi.view.

要从工作区导入数据到Simulation data Inspector,请创建万博1manbetxsimulink.sdi.run.对象使用万博1manbetxsimulink.sdi.run.Create.函数。使用run添加有关运行的信息姓名描述的属性对象。

SinUnoidsRun = 万博1manbetxSimulink.sdi.Run.Create;sinusoidsrun.name =正弦曲线的;sinusoidsrun.description =“不同频率的正弦和余弦信号”

使用添加函数添加您在工作区中创建的数据到空运行。

添加(SinusoidsRun,'vars'、sine_ts cos_ts);

在仿真数据检查器中绘制数据

使用getsignalbyIndex.函数访问万博1manbetxsimulink.sdi.signal.包含信号数据的对象。你可以使用万博1manbetxsimulink.sdi.signal.对象属性来指定信号的线条样式和颜色,并在仿真数据检查器中绘制它。指定LineColorLineDashed每个信号的属性。

sine_sig = getSignalByIndex (sinusoidsRun, 1);sine_sig。LineColor = [0 0 1];sine_sig。LineDashed =“-”。;cos_sig = sinUsoidsRun.getSignalByIndex(2);cos_sig.linecolor = [0 1 0];cos_sig.linedashed =“——”

使用万博1manbetxsimulink.sdi.setsubplotlayout.配置a的功能2-经过-1仿真数据检测器绘图区域中的子图布局。然后用来plotOnSubplot函数在较低子图上绘制顶部子图上的正弦信号和余弦信号。

万博1manbetxSimulink.sdi.setSubPlotLayout (2, 1);plotOnSubPlot (sine_sig 1 1,真实);plotOnSubPlot (cos_sig 2 1,真实);

关闭模拟数据检查器并保存数据

当您完成了对绘制的信号数据的检查后,可以关闭Simulation data Inspector并将会话保存到一个MLDATX文件中。

万博1manbetxSimulink.sdi.close (“sinusoids.mldatx”

这个例子执行了模型的并行模拟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,“上”%在每个工作人员上创建临时目录Workdir = PWD;addpath(workdir)tempdir = tempname;Mkdir(Tempdir)CD(Tempdir)结束

运行并行模拟

使用parfor并行运行七种模拟。选择值TS.对于每个模拟,并修改值TS.在模型工作区中。然后,运行模拟并构建一个数组万博1manbetxSimulink.sdi.WorkerRun对象以使用仿真数据检查器访问数据。后parfor循环,使用另一个spmd段从工人中删除临时目录。

parfor索引= 1:7%选择t的值ts_val = ts_vals(索引);%更改过滤时间常量并模拟modelWorkspace = get_param ('slexaircraftexample''modelworkspace');modelworkspace.assignin('ts'Ts_val) sim卡('slexaircraftexample'%为每个模拟创建一个工作者运行workerRun(指数)= Simu万博1manbetxlink.sdi.WorkerRun.getLatest结束spmd%删除临时目录cd (workDir)删除文件夹(tempDir,“年代”)RMPATH(WORKDIR)结束

从并行模拟输出获取数据集对象

getDataset.方法将数据从a中汇出工作者进入A.数据集对象,因此您可以轻松地发布。

ds (7) =万博1manbetx Simulink.SimulationData.Dataset;a = 1:7 ds(a) = workerRun(a).getDataset;结束ds (1)
ans = 万博1manbetxsimulink.simulationdata.dataset''用2个元素名称块路径__________ _____________________________________________1信号] Alpha,Rad ... RFRACHEXAMPLE /飞机动力学模型2 [1x1信号] Stick Slexaircraftexample / Pilot  - 使用括号{}来访问,修改或使用索引添加元素。

从并行模拟输出中获取DatasetRef对象

对于大数据工作流程,使用getDatasetRef参考与之相关的数据的方法工作者

b = 1:7 datasetref(b)= workerrun(b).getdatasetref;结束datasetRef (1)
运行命令[1×1 Simulink.sdi. sdi. sdi. sdi. sdi. sdi. sdi. sdi. sdi. sdi. sdi. sdi. s万博1manbetxdi. sdi. sdi. sdi. sdi. sdi. sdi. sdi. sdi. sdi。运行]numElements: 2

在仿真数据检查器中处理并行仿真数据

您还可以创建本地对象来使用仿真数据检查器API分析和可视化数据。这个示例为每次运行添加了一个标记,指示过滤器时间常量值。

c = 1:7运行(c)= workerrun(c).getlocalrun;ts_val_str = num2str(ts_vals(c));desc = strcat('ts =',ts_val_str);运行(c).description = desc;runs(c).name = strcat('slexaircraftexample运行ts =',ts_val_str);结束

清理工人存储库

清理工作人员使用的文件,以便为希望在工作人员池上运行的其他模拟释放磁盘空间。

万博1manbetxsimulink.sdi.cleanupworkerresources.

选择

您可以使用模拟数据检查器UI查看运行元数据和导入数据。有关更多信息,请参阅查看模拟数据检查器中的数据

介绍了R2012b