主要内容

金宝appSimulink.sdi.compareSignals

比较两个数据金宝appSimulink.sdi.Signal对象

描述

例子

diff= 金宝appSimulink.sdi.compareSignals (sigID1,sigID2)比较了信号对应于信号idsigID1sigID2并返回的结果金宝appSimulink.sdi.DiffSignalResult对象。更多信息在比较结果是如何计算的,看到的仿真数据检查比较如何

例子

全部折叠

下面的例子使用了slexAircraftExample模型来演示如何对比输入和输出信号的控制系统。

配置和模拟模型

slexAircraftExample模型没有日志数据。负荷模型的输入和输出信号和马克日志记录。

load_system (“slexAircraftExample”)S金宝appimulink.sdi.markSignalForStreaming (“slexAircraftExample /试点”,1“上”)S金宝appimulink.sdi.markSignalForStreaming (“slexAircraftExample /飞机动力学模型”4“上”)

模拟模型。日志记录的数据信号仿真数据检查和工作区。

= sim卡(“slexAircraftExample”);

仿真数据的访问

使用仿真数据检查员编程接口来访问数据。的金宝appSimulink.sdi.Run.getLatest函数返回最近运行仿真数据检查存储库中创建。使用getSignalIDByIndex函数来访问记录信号的信号id。

aircraftRun = 金宝appSimulink.sdi.Run.getLatest;signalID1 = getSignalIDByIndex (aircraftRun, 1);signalID2 = getSignalIDByIndex (aircraftRun 2);

指定公差值

您可以指定公差值,使用比较的属性的记录金宝appSimulink.sdi.Signal对象。使用金宝appSimulink.sdi.getSignal函数来访问信号对象使用信号ID。

signal1 = 金宝appSimulink.sdi.getSignal (signalID1);signal1。AbsTol = 0.1;

比较信号

使用金宝appSimulink.sdi.compareSignals函数比较输入和输出信号。下面的例子使用了isValidSignalID函数来验证这两个信号id调用之前仍然有效金宝appSimulink.sdi.compareSignals函数。信号ID就变得无效信号从模拟数据中删除检查员。比较后,检查的地位金宝appSimulink.sdi.DiffSignalResult对象。

如果(isValidSignalID (aircraftRun signalID1) & & isValidSignalID (aircraftRun signalID2)) sigDiff金宝app = Simulink.sdi.compareSignals (signalID1 signalID2);匹配= sigDiff.Status结束
匹配= OutOfTolerance

比较结果是宽容。您可以使用金宝appSimulink.sdi.view功能检查和分析比较的结果。

这个例子展示了如何比较不同模拟运行时使用模拟数据信号从检查员金宝appSimulink.sdi.compareSignals函数。当你只有一个信号比较感兴趣的,使用一个信号比较返回金宝appSimulink.sdi.diffSignalResult直接对象的比较数据。

生成仿真数据

使用slexAircraftExample模型来生成模拟运行。之间的运行时,输入滤波器时间常数的变化。

%加载示例模型load_system (“slexAircraftExample”)%的α,rad信号流金宝appSimulink.sdi.markSignalForStreaming (“slexAircraftExample /飞机动力学模型”4“上”)%模拟系统out_1 = sim卡(“slexAircraftExample”);变化百分比输入滤波器时间常数modelWorkspace = get_param (“slexAircraftExample”,“modelworkspace”);assignin (modelWorkspace“t”,0.2)%再次模拟out_2 = sim卡(“slexAircraftExample”);

得到信号IDs的信号比较

创建使用run运行对象id,然后使用getSignalIDByIndex信号通过id金宝appSimulink.sdi.compareSignals

%得到运行数据runIDs = 金宝appSimulink.sdi.getAllRunIDs;runID1 = runIDs (end-1);runID2 = runIDs(结束);run1 = 金宝appSimulink.sdi.getRun (runID1);run2 = 金宝appSimulink.sdi.getRun (runID2);sigID1 = getSignalIDByIndex (run1, 1);sigID2 = getSignalIDByIndex (run2, 1);

比较信号

比较信号,并打开仿真数据检查员来查看结果。

diffResult = 金宝appSimulink.sdi.compareSignals (sigID1 sigID2);金宝appSimulink.sdi.view

输入参数

全部折叠

基线信号,信号ID指定为一个整数。仿真数据检查信号分配一个ID来创建运行时每一个信号。你可以得到一个信号的信号ID使用这些功能之一:

信号ID的信号比较,指定为一个整数。仿真数据检查信号分配一个ID来创建运行时每一个信号。你可以得到一个信号的信号ID使用这些功能之一:

输出参数

全部折叠

信号比较结果,作为一个返回金宝appSimulink.sdi.DiffSignalResult对象。复杂的信号比较结果作为一个数组返回DiffSignalResult对象。一个DiffSignalResult对象包含的实际数据,另一个包含的数据。检查的名字财产的DiffSignalResult对象来确定它是否包含真实或虚构的数据。

介绍了R2011b