仿真数据检查器如何比较数据

可以定制仿真数据检查器比较过程,以多种方式满足您的需求。在比较各运行时,仿真数据检查器会执行以下操作:

  1. 根据对齐设置,对齐基线运行和比较项运行中的信号对组。

    仿真数据检查器不会比较无法对齐的信号。

  2. 根据指定的同步方法同步对齐的信号对组。

    根据指定的插值方法,对同步中添加的时间点值进行插值。

  3. 计算信号对组的差值。

  4. 将差值结果与指定的容差进行比较。

在比较运行完成后,比较的结果将显示在导航窗格中。

状态 比较结果

差值在指定的容差范围内。

差值违反指定的容差。

信号未与来自比较项运行的信号对齐。

        当比较具有不同时间区间的信号时,仿真数据检查器会比较其重叠区间上的信号。

信号对齐

        在对齐步骤中,仿真数据检查器决定来自比较项运行的哪个信号与基线运行中的给定信号配对。当使用仿真数据检查器比较信号时,可以通过选择基线比较项信号来完成对齐步骤。

        仿真数据检查器使用信号的数据源、路径、SID 和信号名称属性的组合来对齐信号。

属性 描述
数据源 从工作区导入的数据在 MATLAB® 工作区中的变量路径
路径 模型中数据源的模块路径
SID

自动分配的 Simulink® 标识符

信号名称 模型中信号的名称

使用默认对齐设置时,仿真数据检查器会根据此流程图在各运行之间对齐信号。如图所示:

仿真数据检查器如何比较数据_第1张图片

        可以在仿真数据检查器的预设项中为用于对齐的每个信号属性指定优先级。对齐方式字段指定用于对齐信号的最高优先级属性。优先级随着每个后续的然后依据字段依次下降。必须在对齐方式字段中指定主要对齐属性,但可以将任何数量的然后依据字段留空。

同步

        通常,要比较的信号包含的时间点集合不会完全相同。仿真数据检查器比较中的同步步骤解决信号的时间向量的差异。可以选择 union 或 intersection 作为同步方法。默认情况下,MATLAB 中的数字的数据类型为 double。可以使用 class 函数验证变量的类型。

        当指定 union 同步时,仿真数据检查器会构建一个时间向量,其中包括两个信号之间的每个采样时间。对于两个信号中最初都不存在的每个采样时间,仿真数据检查器会对其进行插值。示意图中的第二个图显示联合同步过程,其中仿真数据检查器识别要添加到每个信号中的采样,由非实心圆表示。最终绘图显示仿真数据检查器对添加的时间点进行插值后的信号。仿真数据检查器使用最终绘图中的信号计算差值,以便计算的差值信号包含信号之间的所有数据点。

        如图所示:

仿真数据检查器如何比较数据_第2张图片

        当指定 intersection 同步时,仿真数据检查器在比较中仅使用两个信号中都存在的采样时间。在第二个绘图中,仿真数据检查器识别没有对应采样进行比较的采样,显示为非实心圆。最终图显示用于比较的信号,不包含第二个图中识别出的那些采样。

        如图所示:     仿真数据检查器如何比较数据_第3张图片

        选择哪个同步选项涉及速度和准确度之间的权衡。union 同步所需的插值需要耗费一定的时间,但会提供更准确的结果。当使用 intersection 同步时,比较会很快完成,因为仿真数据检查器会计算较少数据点的差异,而且不会进行插值。但是,使用 intersection 同步时,会丢弃一些数据,准确度有所降低。

插值

        信号的插值属性确定仿真数据检查器如何显示信号以及在同步中如何计算其他数据值。可以选择使用零阶保持 (zoh) 或线性逼近对数据进行插值。也可以指定不进行插值。

        如图所示:

仿真数据检查器如何比较数据_第4张图片

        当为插值方法指定zoh 或 none 时,仿真数据检查器将对插值的采样时间复制上一个采样的数据。当指定 linear 插值时,仿真数据检查器使用插值点两侧的采样来线性逼近所插的值。通常,离散信号使用 zoh 插值,连续信号使用 linear 插值。可以在信号属性中为信号指定插值方法

容差设定

        仿真数据检查器允许您指定信号容差的范围和值。可以使用绝对、相对和时间容差值的任意组合来定义容差带,并且可以指定所指定的容差是应用于单个信号还是应用于一次运行中的所有信号。

容差范围

        在仿真数据检查器中,可以为数据全局指定容差,也可以为单个信号指定容差。全局容差值会应用于覆盖全局容差未设置为yes的一次运行中的所有信号。可以在比较视图的图形查看区域顶部为数据指定全局容差值。要指定信号特定的容差值,请编辑信号属性,并确保覆盖全局容差属性设置为yes。

容差计算

        在仿真数据检查器中,可以使用绝对、相对和时间容差值的组合为运行或信号指定容差带。当使用多种类型的容差为运行或信号指定容差时,每个容差可能在每个点上产生不同的容差结果。这时仿真数据检查器会通过为每个数据点选择最宽松的容差结果来计算整体容差带。

        当仅使用绝对和相对容差属性定义容差时,仿真数据检查器会简单地将每个点的容差计算为最大值。

tolerance = max(absoluteTolerance,relativeTolerance*abs(baselineData));

        容差带的上界通过将 tolerance加到基线信号上形成。同样,仿真数据检查器通过从基线信号中减去 tolerance 来计算容差带的下界。

        当指定时间容差时,仿真数据检查器会首先计算每个采样在其时间区间内的时间容差,该时间区间定义为 [(tsamp-tol), (tsamp+tol)]。仿真数据检查器通过选择每个采样的时间区间容差内的最小值点来构建容差带的下界。同样,它还会选择每个采样的时间区间容差内的最大值点定义为其容差上界。

        如图所示:

仿真数据检查器如何比较数据_第5张图片

        如果除了使用时间容差,还使用绝对或相对容差指定容差带,则仿真数据检查器将首先应用时间容差,然后将绝对和相对容差应用于用时间容差选择的最大值和最小值点。

        如图所示:

仿真数据检查器如何比较数据_第6张图片

upperTolerance = max + max(absoluteTolerance,relativeTolerance*max)

lowerTolerance = min - max(absoluteTolerance,relativeTolerance*min)

你可能感兴趣的:(Matlab,算法)