金宝appSimulink.sdi.getAllRunIDs
获取所有模拟数据检查器运行标识符
描述
例子
Get Simulation Data Inspector运行id
使用“模拟数据检查器”编程接口执行的许多任务都是从获取模拟运行的运行ID开始的。这个例子说明了获取运行ID的几种方法。可以使用运行ID访问金宝appSimulink.sdi.Run
对象,该对象包含运行数据和元数据,并使用金宝appSimulink.sdi.compareRuns
函数。
创建一个运行
该模型sldemo_fuelsys
已为日志记录配置。当您模拟模型时,仿真数据检查器会自动创建一个运行并为其分配一个运行ID。
load_system (“sldemo_fuelsys”) sim卡(“sldemo_fuelsys”)
使用获取运行ID金宝appSimulink.sdi.getAllRunIDs
的金宝appSimulink.sdi.getAllRunIDs
函数返回一个数组,其中包含模拟数据检查器存储库中运行的所有运行id,按顺序,最近创建的运行位于最后。
runIDs = 金宝appSimulink.sdi.getAllRunIDs;runID = runIDs(end);
使用获取运行ID金宝appSimulink.sdi.getRunIDByIndex
你也可以使用金宝appSimulink.sdi.getRunCount
而且金宝appSimulink.sdi.getRunIDByIndex
函数获取运行的运行ID。如果您也想使用此方法,则此方法非常有用数
作为一个计数变量,以索引模拟数据检查器存储库中的运行。
count = 金宝appSimulink.sdi.getRunCount;runID = 金宝appSimulink.sdi.getRunIDByIndex(count);
获取运行ID金宝appSimulink.sdi.Run
对象
方法获取运行ID金宝appSimulink.sdi.Run
对象,该对象与运行对应。本例使用金宝appSimulink.sdi.getCurrentSimulationRun
函数来获取运行
对象的最新模拟对应的sldemo_fuelsys
模型。你也可以使用金宝appSimulink.sdi.Run.getLatest
函数访问最近创建的运行
对象。
fuelsysRun = 金宝appSimulink.sdi.getCurrentSimulationRun(“sldemo_fuelsys”);runID = fuelsysRun.ID;
使用信号公差分析仿真数据
使用“模拟数据检查器”编程接口,可以指定要在比较中使用的信号容差值。本例使用slexAircraftExample
模型和仿真数据检查器,以评估在控制输入之后改变低通滤波器的时间常数的效果。
配置模型
加载模型并标记感兴趣的信号以进行日志记录。的日志数据问
而且α
信号。
load_system (“slexAircraftExample”) 金宝appSimulink.sdi.markSignalForStreaming ('slexAircraftExample/飞机动力学模型',3,“上”) 金宝appSimulink.sdi.markSignalForStreaming ('slexAircraftExample/飞机动力学模型'4“上”)
运行模拟
使用不同的低通滤波器时间常数运行模拟以生成结果进行比较。的slexAircraftExample
模型在模型工作区中存储与模型相关的变量。要修改时间常数值,请访问模型工作区并使用assignin
函数。
Out1 = sim(“slexAircraftExample”);modelWorkspace = get_param(“slexAircraftExample”,“modelworkspace”);assignin (modelWorkspace“t”,1) out2 = sim(“slexAircraftExample”);
访问和比较仿真结果
使用“仿真数据检查器”编程接口访问仿真结果。每个模拟在模拟数据检查器中创建一个具有唯一运行ID的运行。您可以使用运行id来比较模拟结果。
runIDs = 金宝appSimulink.sdi.getAllRunIDs;runIDTs1 = runIDs(end-1);runIDTs2 = runIDs(end);
使用金宝appSimulink.sdi.compareRuns
函数比较来自模拟的数据。然后检查状态
属性,以查看信号是否落在默认容差为0的范围内。
diffRun1 = 金宝appSimulink.sdi.compareRuns(runIDTs1,runIDTs2);sig1Result1 = getResultByIndex(diffRun1,1);sig2Result1 = getResultByIndex(diffRun1,2);sig1Result1。状态
ans = out toftolerance
sig2Result1。状态
ans = out toftolerance
比较运行与信号公差
默认情况下,使用信号0
对于所有公差值,因此当信号不相同时,比较返回超出公差的结果。为了进一步分析时间常数变化的影响,指定信号的容差值。属性的属性指定编程比较的公差金宝appSimulink.sdi.Signal
您比较的运行中的对象。比较使用为基线指定的公差信号
对象。这个例子指定了时间公差和绝对公差的组合。
要指定公差,首先访问金宝appSimulink.sdi.Signal
与要比较的运行中的每个信号对应的对象。
run1 = 金宝appSimulink.sdi.getRun(runIDTs1);sigID1 = getSignalIDByIndex(run1,1);sigID2 = getSignalIDByIndex(run1,2);sig1 = 金宝appSimulink.sdi.getSignal(sigID1);sig2 = 金宝appSimulink.sdi.getSignal(sigID2);
检查的名字
属性来标识每个信号
对象。
sig1。的名字
Ans = 'q, rad/sec'
sig2。的名字
Ans = 'alpha, rad'
指定的绝对公差0.1
和时间的容忍度0.6
为问
信号使用AbsTol
而且TimeTol
的属性问
基线运行中的信号对象。
sig1。AbsTol = 0.1;sig1。TimeTol = 0.6;
指定的绝对公差0.2
和时间的容忍度0.8
为α
信号使用AbsTol
而且TimeTol
的属性α
基线运行中的信号对象。
sig2。AbsTol = 0.2;sig2。TimeTol = 0.8;
再次比较运行并访问结果。
diffRun2 = 金宝appSimulink.sdi.compareRuns(runIDTs1,runIDTs2);sig1Result2 = getResultByIndex(diffRun2,1);sig2Result2 = getResultByIndex(diffRun2,2);
检查状态
属性,以确定比较结果是否落在规定的公差范围内。
sig1Result2。状态
不宽容
sig2Result2。状态
不宽容
输出参数
runIDs
-矩阵的仿真数据检查运行id
矩阵
模拟数据检查器存储库中的运行id矩阵。
另请参阅
金宝appSimulink.sdi.compareRuns
|金宝appSimulink.sdi.copyRun
|金宝appSimulink.sdi.copyRunViewSettings
|金宝appSimulink.sdi.deleteRun
|金宝appSimulink.sdi.exportRun
|金宝appSimulink.sdi.getRun
|金宝appSimulink.sdi.getRunCount
|金宝appSimulink.sdi.isValidRunID
|金宝appSimulink.sdi.Run
主题
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。