主要内容

金宝appSimulink.sdi.constraints.MatchesSignal类

包裹:金宝appSimulink.sdi.constraints
超类:matlab.unittest.Constraints.Constraint.

使用模拟数据检查器将时间序列数据与公差进行比较的约束

描述

使用金宝appsimulink.sdi.constraints.matchessignal.作为测试的一部分,将时间序列数据与期望值进行比较的约束。您可以将约束配置为使用绝对、相对和时间公差值的组合进行比较。您还可以使用金宝appSimulink.sdi.constraints.MatchesSignalOptions对象或使用一个或多个名称-值对的观点.有关公差和对齐选项如何影响比较的更多信息,请参见仿真数据检查器如何比较数据

笔记

MatchesSignal约束使用仿真数据检查执行比较并要求其中一个产品许可证:下载188bet金宝搏

  • 金宝app®

  • 信号处理工具箱™

  • MATLAB®编码器™

  • 定点设计师™

创造

描述

例子

匹配信号(expVal)创建一个约束,该约束确定表示实际值的时间序列数据是否与预期值指定的数据匹配,expval.

例子

MatchesSignal (expval.名称,价值使用附加的性质由一个或多个指定名称,价值对参数。

输入参数

全部展开

名称值对参数

指定可选的逗号分离对名称,价值参数。名称是参数名称和价值是对应的值。名称必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:Name1, Value1,…,的家

例子:“IgnoringDataTypes”,真的

将约束灵敏度配置为与预期值具有不同数据类型的实际值。

  • 错误的-该约束检查预期值和实际值数据类型是否匹配。

  • 符合事实的- 对预期值和实际值之间的数据类型不敏感而不敏感约束。

例子:“IgnoringDataTypes”,真的

配置对一个或多个未在期望值和实际值之间对齐的信号的约束灵敏度。

  • 错误的—约束检查期望值和实际值之间没有对齐的信号。

  • 符合事实的- 约束对在预期值和实际值之间不对齐的一个或多个信号不敏感。

例子:“忽略信号未标记”,对

将约束敏感性配置为包含由期望值定义的时间间隔之外的数据的实际值。

  • 错误的-约束检查实际值是否包含超出预期值定义的时间间隔的数据。

  • 符合事实的- 约束对包含由预期值定义的时间间隔之外的数据的实际值不敏感。

例子:“IgnoringExtraData”,没错

比较标准进行比较。当预期值包含多于一个信号时,模拟数据检查器比较算法对准信号以进行预期和实际值之间的比较。默认情况下,模拟数据检查器由数据源对齐,然后按块路径,然后由SID,然后按信号名称逐。有关仿真数据检查器对齐算法的详细信息,请参阅仿真数据检查器如何比较数据

将对齐条件指定为字符串数组,其中包含您希望它们所考虑的顺序列出的一个或多个选项:

  • 闭塞通道—信号到源块的路径。

  • s-S金宝appimulink标识符。有关详细信息,请参阅金宝appSimulink标识符

  • SignalName- 信号的名称。

  • 数据来源—变量的路径。

例子:'对齐方式',[“信号名称”,“块路径”]通过信号名称,然后按块路径指定信号对齐。

属性

全部展开

用作比较的基线的预期价值。预期值的数据必须随时间配对数据值。数据可以是模拟数据检查器支持的任何格式。金宝app模拟数据检测器需要以与时间相关联的格式的格式。金宝app支持的格式包括时间序列随时间变化的结构数据集

可以使用包含数据的工作空间中的变量,或通过将包含数据的文件的完整路径或文件名指定为字符串标量或字符数组,来指定约束的预期值。

属性:

GetAccess
公共
设置访问
不可变的

金宝appSimulink.sdi.constraints.MatchesSignalOptions对象,该对象指定用于配置约束的比较的选项。默认情况下,比较使用Simulation Data Inspector的默认对齐设置,并具有严格的接受标准,这意味着比较不会忽略任何检查。你可以使用matchessignaloptions.属性配置约束在预期和实际运行中如何对齐信号,以及使用约束的测试是否对以下情况敏感:

  • 具有来自预期值的不同数据类型的实际值。

  • 预期运行和实际运行之间的一个或多个信号没有对齐。

  • 包含预期值定义的时间间隔之外的数据的实际值。

您可以指定matchessignaloptions.使用个人的约束的财产名称-值对的观点或者使用名称-值对'withoptions'用一个金宝appSimulink.sdi.constraints.MatchesSignalOptions对象作为值。当你指定matchessignaloptions.使用A的财产matchessignaloptions.对象,您可以使用单个名称值对来配置使用约束的比较的所有选项。

属性:

GetAccess
公共
设置访问
不可变的

数据类型:金宝appSimulink.sdi.constraints.MatchesSignalOptions

使用约束条件进行比较的绝对公差。有关仿真数据检查器如何在比较中使用公差值的详细信息,请参见仿真数据检查器如何比较数据

例子:0.1

例子:2

属性:

GetAccess
公共
设置访问
不可变的

数据类型:

使用约束条件进行比较的相对公差。例如,指定0.1使用10%的公差进行比较。有关模拟数据检查器在比较中如何使用公差值的详细信息,请参见仿真数据检查器如何比较数据

例子:0.05

属性:

GetAccess
公共
设置访问
不可变的

数据类型:

使用约束进行比较的时间公差,以秒为单位。有关仿真数据检查器如何在比较中使用公差值的详细信息,请参见仿真数据检查器如何比较数据

例子:0.001

属性:

GetAccess
公共
设置访问
不可变的

数据类型:

例子

全部收缩

这个例子展示了如何使用金宝appsimulink.sdi.constraints.matchessignal.约束使用工作区中生成的数据来比较时间序列数据。你可以使用MatchesSignal约束比较来自多个来源的数据,包括文件中测量的测试数据和记录的模拟输出。

当你使用的时候MatchesSignal约束,您可以指定要在比较中使用的绝对、相对和时间公差MatchesSignal约束使用仿真数据检查器比较算法,该算法包括对齐和同步步骤。有关该算法的更多信息,请参阅仿真数据检查器如何比较数据

MatchesSignal约束使用模拟数据检查器进行时间序列比较,并要求其中一个产品:下载188bet金宝搏

  • 金宝appSimulink®

  • 信号处理工具箱™

  • Matlab Coder™

  • 定点设计师™

创建时间序列数据

此示例生成工作区数据时间序列格式仅用于说明目的。你可以使用MatchesSignal约束来比较来自其他来源的数据,例如模拟输出或包含测试数据的文件,并且约束可以比较仿真数据检查器支持的任何格式的时间序列数据。金宝app

在这个例子中,第一个信号是a时间序列对象,该对象包含具有名称的正弦波的数据波数据

time=0:0.1:20;sig1vals=sin(2*pi/5*time);sig1\u ts=timeseries(sig1vals,time);sig1\u ts.Name=“波浪数据”;

第二个信号也是相同频率的正弦波,具有轻微的衰减,并以不同的速率采样。因为比较算法MatchesSignal约束包括一个同步步骤,用不同的时间向量比较这两个信号并不总是导致测试失败。第二个信号也被命名波数据因此,对齐算法可以对信号进行比较。

time2 = 0:0.05:20;sig2vals = 0.98 * sin(2 * 5π/ * time2);sig2_ts = timeseries (sig2vals time2);sig2_ts.name =.“波浪数据”;

创建一个测试用例并比较信号

为了便于说明,本例使用了一个交互式测试。你可以使用MatchesSignal在MATLAB测试框架中对其他类型的单元测试约束。例如,要编写基于类的单元测试,请参阅使用类写简单的测试用例

创建一个测试用例用于交互式使用的实例。

进口matlab.unittest.testcase.testCase=testCase.forInteractiveEUSE;

比较信号1信号2使用MatchesSignal约束。使用信号1对于预期的值在实例中MatchesSignal约束。

进口金宝appsimulink.sdi.constraints.matchessignal.测试用例。验证(sig2_ts,匹配信号(sig1_ts));
验证失败。--------------------- 框架的诊断 : --------------------- MatchesSignal(<值>)失败。——>以下一致信号不匹配:名字ActualSignals ExpectedSignals  ___________ _______________ _________________ " 波数据”“实际> <。数据" < >。Data"比较结果已保存到:——> /tmp/Bdoc21b_1757077_215148/comparisonResults_5e6094cb-a0a1-48af-b539-cd39d3eee182。mldatx ------------------ Stack Information: ------------------ In /tmp/Bdoc21b_1757077_215148/tpbee1877b/金宝appsimulink-ex22803619/ testtimeseriesdatawithtimeoleranceexample . txt . txt在/mathworks/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/codetools/embeddedoutputs/+matlab/+internal/+editor/evaluateRegions. conf . conf . conf . conf . conf . conf . conf。在/mathworks/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/codetools/embeddedoutputs/+matlab/+internal/+editor/EvaluationOutputsService. p (evaluateRegions) at 0。p (EvaluationOutputsService.evalRegions) at 0In /mathworks/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/codetools/+matlab/+internal/+liveeditor/@LiveEditorUtilities/execute.m (execute) at 43 In /mathworks/devel/bat/Bdoc21b/build/matlab/tools/examples/exampletools/+mwtools/liveCodeToDocbook.m (doRun) at 388 In /mathworks/devel/bat/Bdoc21b/build/matlab/tools/examples/exampletools/+mwtools/liveCodeToDocbook.m (doRunConvert) at 338 In /mathworks/devel/bat/Bdoc21b/build/matlab/tools/examples/exampletools/+mwtools/liveCodeToDocbook.m (liveCodeToDocbook) at 164 In /mathworks/devel/bat/Bdoc21b/build/matlab/tools/build_using_matlab/BML.m (BML) at 13

诊断信息显示验证失败。当测试失败时,比较结果和原始运行数据将保存在仿真数据检查器会话文件中。单击MLDATX文件的链接可在仿真数据检查器中打开该会话,从中可以调查测试和比较结果所比较的数据结果。当你检查结果时,你可以看到衰减造成了差异并导致比较失败。

指定的绝对公差为0.02例如MatchesSignal要在比较中使用的约束。

测试用例。验证(sig2),匹配信号(sig1,'ABSTOL', 0.02));
验证通过。

本示例演示如何配置a的比较行为金宝appsimulink.sdi.constraints.matchessignal.使用金宝appSimulink.sdi.constraints.MatchesSignalOptions目的。你可以使用一个matchessignaloptions.对象配置多个比较属性,其中单个名称值对在构造中输入MatchesSignal实例。

创建时间序列数据

此示例仅创建工作区数据以仅用于说明目的。你可以使用MatchesSignal约束来比较来自其他来源的数据,例如模拟输出或包含测试数据的文件,并且约束可以比较仿真数据检查器支持的任何格式的时间序列数据。金宝app

在这个例子中,第一个信号是a时间序列对象名称波数据包含正弦波的数据。

time=0:0.1:20;sig1vals=sin(2*pi/5*time);sig1\u ts=timeseries(sig1vals,time);sig1\u ts.Name=“波浪数据”;

第二个信号也是相同频率的正弦波,具有轻微的衰减,并以不同的速率采样。因为比较算法MatchesSignal约束包括一个同步步骤,用不同的时间向量比较这两个信号不一定会导致测试失败。第二个信号被转换为仅有一个的数据类型和名称波数据因此,对齐算法可以对信号进行比较。

time2 = 0:0.1:22;sig2vals =单身(0.98 * sin(2 * pi / 5 * time2));sig2_ts = timeseries (sig2vals time2);sig2_ts.name =.“波浪数据”;

配置A.MatchesSignal实例并比较数据

你可以使用一个matchessignaloptions.对象的实例如何指定MatchesSignal约束处理不匹配的数据类型以及信号如何在实际数据集和预期数据集之间对齐等条件。您可以指定matchessignaloptions.对象以适合要编写的测试。例如,如果希望测试比较不同类型的数据,并且数据类型匹配在功能上不相关,则可以设置IgnoreDataTypes财产符合事实的

创建一个matchessignaloptions.对象创建MatchesSignal实例,该实例忽略实际和预期信号共享的时间间隔之外的数据类型不匹配和数据样本。

进口金宝appSimulink.sdi.constraints.MatchesSignalOptions选择= MatchesSignalOptions ('忽略数据类型'符合事实的“IgnoringExtraData”,对);

创建一个测试用例用于交互式使用和比较的实例信号1信号2使用MatchesSignal约束,matchessignaloptions.对象的绝对公差0.02

进口matlab.unittest.testcase.testCase=testCase.forInteractiveEUSE;导入金宝appsimulink.sdi.constraints.matchessignal.测试用例。验证(sig2),匹配信号(sig1,'ABSTOL', 0.02,'withoptions',选择))
验证通过。

测试通过。属性定义的选项再次运行相同的测试时matchessignaloptions.对象,由于数据类型不匹配,测试失败。

测试用例。验证(sig2),匹配信号(sig1,'ABSTOL',0.02)))
验证失败。--------------------- 框架的诊断 : --------------------- MatchesSignal(< >价值,AbsTol, 0.02)失败。- - - >数据类型不匹配的对齐后的信号:名字ActualSignals ActualDataType ExpectedSignals ExpectedDataType  ___________ _______________ ______________ _________________ ________________ " 波数据”“实际> <。数据”{'单'}" > <预期。“{双数据 '} ------------------ 堆栈信息 : ------------------ 在C:\Users\snadeau\AppData\Local\Temp\ Editor_oxzoe \ LiveEditorEvaluationHelperE1184446395。在E: jobarchive\Bdoc20b\2020_06_06_h12m11s21_job1400967_pass\matlab\工具箱\matlab\codetools\embeddedoutputs\+matlab\+internal\+editor\ evaluatereregions。在E:\jobarchive\Bdoc20b\2020_06_06_h12m11s21_job1400967_pass\matlab\工具箱\matlab\codetools\embeddedoutputs\+matlab\+internal\+editor\EvaluationOutputsService。p (EvaluationOutputsService.evalRegions) at 0

兼容性考虑

全部展开

R2020a中的行为发生了变化

在R2019A介绍