金宝appSimulink.sdi.Run
访问运行信号和元数据
描述
的金宝appSimulink.sdi.Run
对象包含运行元数据,并允许您访问金宝appSimulink.sdi.Signal
对象,其中包含运行中信号的数据和元数据。你也可以用a金宝appSimulink.sdi.Run
对象将数据从工作区或文件导入到仿真数据检查器中。
创建
模拟数据检查器创建金宝appSimulink.sdi.Run
对象时导入数据或模拟记录数据的模型。您可以访问运行
对象中的仿真数据检查器中的三种方法:
当您希望访问与特定运行ID对应的运行时,请使用
金宝appSimulink.sdi.getRun
函数。提示
使用
金宝appSimulink.sdi.getAllRunIDs
函数来获取模拟数据检查器中所有运行的运行id。当您希望访问在模拟数据检查器中最近创建的运行时,请使用
金宝appSimulink.sdi.Run.getLatest
函数。当您希望访问与正在进行的或最近完成的模型模拟相对应的运行时,请使用
金宝appSimulink.sdi.getCurrentSimulationRun
函数。
您还可以通过编程方式创建金宝appSimulink.sdi.Run
对象将数据导入到仿真数据检查器。
方法在模拟数据检查器中创建空运行
金宝appSimulink.sdi.Run.create
函数。方法在仿真数据检查器中创建空运行或将数据导入到仿真数据检查器中
金宝appSimulink.sdi.createRun
.
提示
使用添加
函数或金宝appSimulink.sdi.addToRun
函数将数据导入空运行
对象。
属性
ID
- - - - - -运行ID
整数
此属性是只读的。
运行的唯一数值标识,作为整数返回。
的名字
- - - - - -运行的名字
特征向量|字符串
运行名称,指定为字符向量或字符串。
默认情况下,的名字
属性时为空金宝appSimulink.sdi.Run.create
函数创建运行。
方法时可以指定运行名金宝appSimulink.sdi.createRun
函数创建运行。
当您通过模拟记录数据的模型来创建运行时,将根据模拟数据检查器中的运行命名规则生成运行名称。可以在UI中的模拟数据检查器中修改运行命名规则,也可以使用金宝appSimulink.sdi.setRunNamingRule
函数。
例子:“运行1:vdp”
描述
- - - - - -运行描述
[](默认)|特征向量|字符串
运行的描述,指定为字符向量或字符串。默认情况下,描述
是空的。使用描述
属性添加关于运行中数据重要性的注释,如用于创建数据的测试或模拟条件。
例子:“初始模拟”
标签
- - - - - -信息标签
[](默认)|特征向量|字符串
标记,用于附加运行信息,指定为字符向量或字符串。默认情况下,标签
是空的。您可以使用标签
属性附加附加信息运行
对象。例如,你可以使用标签
属性中创建运行的模拟所用的参数值运行
对象的元数据。
例子:'Gain = 2'
DateCreated
- - - - - -运行创建时间戳
datetime
对象
RunIndex
- - - - - -模拟数据检查器中运行的索引
整数
此属性是只读的。
创建运行时,在模拟数据检查器中运行的索引,作为整数返回。的RunIndex
当使用运行索引作为运行命名规则的一部分时,匹配运行名称中的运行号。
如果从模拟数据检查器中删除运行,则RunIndex
属性返回的向量中运行ID的索引可能不匹配金宝appSimulink.sdi.getAllRunIDs
函数。
SignalCount
- - - - - -运行中的信号数
整数
此属性是只读的。
运行中的信号数,作为整数返回。
模型
- - - - - -模型模拟创建运行
特征向量
用于创建运行的模拟模型的名称,作为字符向量返回。的模型
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
SimMode
- - - - - -模拟模式
特征向量
在创建运行的模拟中使用的模拟模式,作为字符向量返回。的SimMode
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
开始时间
- - - - - -运行开始时间
标量
运行中所有信号共享的第一个时间点,作为标量返回。
StopTime
- - - - - -运行停止时间
标量
运行中所有信号共享的最后时间点,作为标量返回。
SLVersion
- - - - - -软件版本用于创建运行的模型仿真
特征向量
Simulink版本金宝app®用于创建运行的模拟,作为字符向量返回。的SLVersion
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
ModelVersion
- - - - - -版本模型模拟创建运行
特征向量
为创建运行而模拟的模型的版本,作为字符向量返回。模型的版本存储在它的模型属性中。的ModelVersion
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
用户标识
- - - - - -系统帐户
特征向量
用于执行创建运行的模拟的系统帐户,作为字符向量返回。的用户标识
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
MachineName
- - - - - -用于模拟的机器名称
特征向量
用于执行创建运行的模拟的计算机的名称,作为字符向量返回。的MachineName
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
平台
- - - - - -用于模拟的机器操作系统
特征向量
用于执行模拟的机器上的操作系统,作为字符向量返回。的平台
属性为空,用于与模拟不对应的运行。
例子:“PCWIN64”
TaskName
- - - - - -任务名称
[](默认)|特征向量
与运行相对应的模拟任务的名称,作为字符向量返回。的TaskName
属性为空,除非运行是使用并行计算工具箱™工作程序创建的。
SolverType
- - - - - -在创建运行的模拟中使用的求解器的类型
“变步”
|“固定的”
在创建运行的模拟中使用的求解器类型,返回为“变步”
或“固定的”
.的SolverType
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
SolverName
- - - - - -在创建运行的模拟中使用的求解器的名称
特征向量
在创建运行的模拟中使用的求解器的名称,作为字符向量返回。的SolverName
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
例子:数值
SolverStepSize
- - - - - -仿真中使用的求解步长
特征向量
求解器在模拟过程中使用的步长,作为字符向量返回。如果模拟使用固定步长求解器,则SolverStepSize
属性指示模拟中使用的固定步长。如果模拟使用变步长求解器,则SolverStepSize
属性指示模拟中使用的最大步长。
例子:“0.4”
状态
- - - - - -模拟状态
特征向量
模拟状态,作为字符向量返回。在运行模拟时,状态
属性是“奔跑”
.当模拟暂停或完成时,状态
属性的值StopEvent
的字段金宝app仿真软件。SimulationMetadata
对象StopEvent
财产。的StopEvent
属性具有以下值之一:
ReachedStopTime
-模拟完成时没有报告错误,不包括报告错误StopFcn
回调函数,它在模拟停止后执行。ModelStop
-在模拟停止时间之前,一个块或求解器停止了模拟。StopCommand
——一个停止按按钮或set_param
函数调用结束了模拟。DiagnosticError
-一个错误报告结束了模拟。KeyboardControlC
——一个Ctrl + C
键盘输入结束模拟。PauseCommand
——一个暂停按按钮或set_param
函数调用暂停模拟。ConditionalPause
-一个条件断点暂停了模拟。PauseTime
—指定的pause time暂停模拟。StepForward
—步进模拟时,模拟在向前步进后暂停。StepBackward
—步进模拟时,模拟在后退后暂停。超时
—模拟执行时间超过命令指定的超时时间后,模拟停止“超时”
的名称-值对sim卡
函数。
StopEventSource
- - - - - -阻止发出的停止事件
金宝appSimulink.SimulationData.BlockPath
块,该块发出停止事件,停止模拟,返回为金宝appSimulink.SimulationData.BlockPath
对象。
StopEventDescription
- - - - - -模拟停止的翻译描述
特征向量
模拟停止的翻译描述,作为字符向量返回。的StopEventDescription
包括对停止事件和相关模拟时间的描述(如果适用)。的StopEventDescription
属性的值来自StopEventDescription
的字段金宝app仿真软件。SimulationMetadata
对象ExecutionInfo
财产。
例子:“在时间100时发出暂停命令”
ExecutionErrors
- - - - - -模拟过程中发生的错误
特征向量
模拟过程中发生的错误,作为字符向量返回。
ExecutionWarnings
- - - - - -模拟过程中出现的警告
特征向量
模拟过程中出现的警告,作为字符向量返回。
ModelInitializationTime
- - - - - -是时候为创建运行的模拟初始化模型了
双
为创建运行的模拟初始化模型所需的时间,返回为double。的ModelInitializationTime
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
ModelExecutionTime
- - - - - -创建运行的模拟的执行时间
双
创建运行的模拟的执行时间,作为double返回。的ModelExecutionTime
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
ModelTerminationTime
- - - - - -是时候终止创建运行的模拟了
双
是时候终止创建运行并返回为double的模拟了。的ModelTerminationTime
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
ModelTotalElapsedTime
- - - - - -创建运行的模拟的总模拟时间
双
创建运行的模拟的总模拟时间,返回为double。的ModelTotalElapsedTime
属性为空,用于将数据导入到模拟数据检查器中创建的运行。
UserString
- - - - - -指定的字符串
特征向量
用户指定的字符串,对应于模拟,作为字符向量返回。通常,UserString
提供模拟的简要描述。指定UserString
的模拟金宝app仿真软件。SimulationInput
对象进行模拟。
对象的功能
添加 |
添加信号到金宝appSimulink.sdi.Run 对象 |
出口 |
导出运行到基本工作区或文件 |
getAllSignalIDs |
获取所有信号的信号id金宝appSimulink.sdi.Run 对象 |
getAllSignals |
接收所有信号金宝appSimulink.sdi.Run 对象 |
getDatasetRef |
为运行创建一个Si金宝appmulink.sdi.DatasetRef对象 |
getSignalByIndex |
接收信号金宝appSimulink.sdi.Run 对象(按索引) |
getSignalIDByIndex |
获取指定索引中的信号的信号ID金宝appSimulink.sdi.Run 对象 |
getSignalIDsByName |
获取内部信号的信号id金宝appSimulink.sdi.Run 使用信号名的对象 |
getSignalsByName |
接入信号金宝appSimulink.sdi.Run 使用信号名的对象 |
isValidSignalID |
检查信号ID是否与in对应金宝appSimulink.sdi.Run 对象 |
例子
绘制模拟运行的信号
该示例演示如何访问金宝appSimulink.sdi.Run
对象,用于由日志记录信号创建的运行模拟数据检查器。从金宝appSimulink.sdi.Run
你可以得到的对象金宝appSimulink.sdi.Signal
对象,其中包含记录的信号数据和元数据。您可以使用信号
对象和plotOnSubPlot
函数在模拟数据检查器中绘制数据。
创建模拟运行并访问运行
对象
的ex_vdp
模型记录两个信号。要创建包含日志数据的模拟运行,请模拟模型。
sim卡(“ex_vdp”);
模拟数据检查器通过为模拟创建的每个运行分配唯一的数值运行ID、导入数据或打开会话来跟踪运行。要访问刚刚执行的模拟的运行对象,请使用金宝appSimulink.sdi.getAllRunIDs
函数,并取返回向量中的最后一个运行ID。
runIDs = 金宝appSimulink.sdi.getAllRunIDs;runID = runIDs(end);
有了运行的运行ID之后,就可以使用金宝appSimulink.sdi.getRun
函数来获取金宝appSimulink.sdi.Run
对象对应于运行。您可以使用运行
对象来检查与运行相关的元数据,包括运行中的信号数量。
vdpRun = 金宝appSimulink.sdi.getRun(runID);vdpRun。信号Count
ans =int322
绘图数据使用信号
对象
使用getSignalByIndex
的函数访问信号运行
对象,fuelRun
.
signal1 = getSignalByIndex(vdpRun,1);signal2 = getSignalByIndex(vdpRun,2);
使用金宝appSimulink.sdi.setSubPlotLayout
函数指定一个3乘1的布局。
金宝appSimulink.sdi.setSubPlotLayout (2, 1)
在绘制数据之前,请使用金宝appSimulink.sdi.clearAllSubPlots
函数清除已绘制的任何数据。
金宝appSimulink.sdi.clearAllSubPlots
在每个副图上画一个信号。若要在第一个子图上绘制信号,可以设置检查
属性。若要在第一个子图以外的子图上绘制信号,请使用plotOnSubPlot
函数。
signal1。Checked = true;plotOnSubPlot (signal2 2 1,真实);
查看绘制数据
要查看您刚刚创建的图,请使用金宝appSimulink.sdi.view
函数。
创建一个运行和查看数据
此示例演示如何创建运行,向其添加数据,然后在仿真数据检查器中查看数据。
为运行创建数据
创建timeseries
对象,以包含正弦信号和余弦信号的数据。给每个timeseries
对象的描述性名称。
时间= linspace(0,20,100);sinine_vals = sin(2*pi/5*time);Sine_ts =时间序列(sine_vals,time);sine_ts。Name =“sin, T = 5”;Cos_vals = cos(2*pi/8*time);Cos_ts =时间序列(cos_vals,time);cos_ts。Name =“余弦,T = 8”;
创建运行并添加数据
使用金宝appSimulink.sdi.view
函数来打开模拟数据检查器。
金宝appSimulink.sdi.view
要从工作区将数据导入到仿真数据检查器中,请创建一个金宝appSimulink.sdi.Run
对象使用金宝appSimulink.sdi.Run.create
函数。方法将有关运行的信息添加到元数据中的名字
而且描述
的属性运行
对象。
sinusoidsRun = 金宝appSimulink.sdi.Run.create;sinusoidsRun。Name =正弦曲线的;sinusoidsRun。描述=“不同频率的正弦和余弦信号”;
使用添加
函数将在工作空间中创建的数据添加到空运行。
添加(sinusoidsRun“var”、sine_ts cos_ts);
在模拟数据检查器中绘制数据
使用getSignalByIndex
访问功能金宝appSimulink.sdi.Signal
对象,其中包含信号数据。您可以使用金宝appSimulink.sdi.Signal
对象属性,以指定信号的线样式和颜色,并在仿真数据检查器中绘制它。指定LineColor
而且LineDashed
每个信号的属性。
sinine_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 =“——”;
使用金宝appSimulink.sdi.setSubPlotLayout
命令,配置。2
——- - - - - -1
模拟数据检查器绘图区域中的子图布局。然后使用plotOnSubplot
函数在顶部子图上绘制正弦信号,在底部子图上绘制余弦信号。
金宝appSimulink.sdi.setSubPlotLayout (2, 1);plotOnSubPlot (sine_sig 1 1,真实);plotOnSubPlot (cos_sig 2 1,真实);
关闭模拟数据检查器并保存数据
在完成对绘制的信号数据的检查后,可以关闭仿真数据检查器并将会话保存到MLDATX文件中。
金宝appSimulink.sdi.close (“sinusoids.mldatx”)
从并行模拟中访问数据
此示例执行模型的并行模拟slexAircraftExample
使用不同的输入过滤器时间常数,并展示了使用模拟数据检查器编程接口访问数据的几种方法。
设置
首先确保仿真数据检查器为空,并配置并行计算工具箱支持以自动导入在本地工作者上创建的运行。金宝app然后,创建一个用于每个模拟的过滤器参数值向量。
%确保模拟数据检查器为空,并且PCT支持为金宝app%启用。金宝appSimulink.sdi.clear Simulink.sdi.enab金宝applePCTSupport (“本地”)定义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”) 金宝appSimulink.sdi.markSignalForStreaming (“slexAircraftExample /试点”, 1“上”) 金宝appSimulink.sdi.markSignalForStreaming ('slexAircraftExample/飞机动力学模型'4“上”)在每个worker上创建临时目录workDir = pwd;addpath(workDir) tempDir = tempname;mkdir (tempDir) cd (tempDir)结束
运行并行模拟
使用parfor
同时进行七个模拟。为Ts
对于每次模拟,并修改值Ts
在模型工作区中。然后,运行模拟并构建一个数组金宝appSimulink.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) = 金宝appSimulink.sdi.WorkerRun.getLatest结束spmd%删除临时目录cd (workDir)删除文件夹(tempDir,“年代”) rmpath (workDir)结束
从并行模拟输出中获取数据集对象
的getDataset
方法将数据放入WorkerRun
成一个数据集
对象,以便您可以轻松地进行后处理。
ds(7) = 金宝appSimulink.SimulationData.Dataset;为a = 1:7 ds(a) = workerRun(a).getDataset;结束ds (1)
ans Bl金宝appockPath = 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。金宝app执行]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)。Name =strcat('slexAircraftExample run Ts=', Ts_val_str);结束
清理工作者存储库
清理工作人员使用的文件,为希望在工作人员池上运行的其他模拟释放磁盘空间。
金宝appSimulink.sdi.cleanupWorkerResources
选择
您可以使用模拟数据检查器UI查看运行元数据并导入数据。有关更多信息,请参见在仿真数据检查器中查看数据.
另请参阅
对象
功能
getLocalRun
|金宝appSimulink.sdi.addToRun
|金宝appSimulink.sdi.createRun
|金宝appSimulink.sdi.getRun
|金宝appSimulink.sdi.getRunIDByIndex
|金宝appSimulink.sdi.setRunNamingRule
主题
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。