主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

使用时序评估来评估时序逻辑

R2025b

具有离散和连续时序行为的混合系统可能需要复杂的时序相关信号逻辑。Simulink® Test™ 使您能够通过在测试管理器中编写时序评估测试用例评估模型时序和事件顺序。

要在测试管理器中使用时序评估:

  1. 选择一个评估模板。

  2. 输入评估条件。

    • 将符号映射到模型元素,例如信号、时间序列或常量。

    • 查看评估摘要。

    您可以通过选择摘要并右键点击以显示上下文菜单或使用键盘快捷键来复制、粘贴和删除评估。当您复制并粘贴评估时,它会被添加到评估的末尾。如果您删除评估,则即使在删除之前复制了它,也无法粘贴它。

  3. 运行测试用例。

  4. 使用结果来根据您的需求评估在测系统 (SUT)。

例如,考虑具有以下需求的受迫振动阻尼问题:

对于信号 S,如果信号幅度超过值 P,则在 d 秒内,它必须稳定在值 Q 以下,并在 Q 秒内保持在 u 以下。

Oscillation damping signal

创建时序评估

要创建时序评估:

  1. 在测试管理器中创建或打开测试用例。

  2. 导航到逻辑和时序评估编辑器。

  3. 点击添加评估。这些评估模板可用:

    • 逻辑评估模板

      • 边界检查 - 检查信号和表达式的最大和最小边界。

      • 自定义 - 检查逻辑表达式是否适用于所有时间步。

    • 时序评估模板

      • 触发响应 - 检测到触发器时检查信号响应。

    Logical and Temporal Assessments menu options

    对于此示例,选择触发-响应。

    Trigger response template

出现触发响应模板。为了完成创建评估,您需要在 SUT 的上下文中定义时序评估条件。

定义时序评估条件

触发响应评估需要:

  • Trigger 参数

  • Response 参数

  • 可选的 Delay 参数

注意

在逻辑或时间评估语句中使用 == 或 ~= 运算符可能会导致在比较浮点数时测试发出警告或失败。如果您使用浮点数据,请考虑在评估中包含一个容差值。例如,在语句中使用 if(x == 5) 时,请使用 x 检查 if(abs(x-5) < 0.001) 是否在 0.001 的容差范围内。

对于受迫振动阻尼问题:

  1. 选择只要为 true 作为触发器,并输入 abs(S) > P 作为 condition。触发条件是评估响应信号的条件模式。当信号 S 的幅度超过值 P 时,就会触发响应条件。

  2. 选择保持为 true 的时间至少为作为响应,并分别输入 abs(S) < Q 和 u 作为 condition 和 min-time。响应条件描述了 SUT 响应触发条件的行为。响应条件是信号 S 的幅度必须稳定在值 Q 以下,并保持在 Q 以下至少 u 秒。

  3. 选择延迟最多作为延迟类型,并将 d 设置为 max-time 参数。延迟是一个可选的时间区间,从时间参考参数开始并持续到预计满足响应条件的点。延迟最多为 d 秒。

所有时间单位均为秒。

当您在逻辑和时序评估编辑器中将符号作为时序评估参数的一部分添加时,它会作为未解析的符号添加到符号列表中。使用编辑器中的符号窗格解析符号。

解析评估参数符号

要解析符号,请右键点击该符号。有两个选项可用:

  1. 映射到模型元素 – 使用映射对话框将符号映射到 SUT 中的信号、参数或模块。

    Selected signal and mapping dialog box

    从映射对话框顶部的下拉列表中选择要映射的符号。

    将符号映射到模型元素后,符号窗格将显示与模型元素相对应的元数据。

    Mapped symbol name, path, port index, and field

    当您运行测试用例时,会记录映射到编辑器中评估所使用的符号的信号。

    如果将总线或数组映射到符号,请使用符号窗格中的字段/元素行从总线或数组中选择标量信号。例如:

    • 要将符号映射到包含总线元素 fieldA 的总线信号,请输入 .fieldA。

    • 要将符号映射到信号数组中与索引 (5,5) 相对应的信号元素,请输入 (5,5)。

    • 要组合两个表达式,请输入 .fieldA(5,5)。

  2. 映射到表达式 – 将标量常数值或变量分配给符号。

    当您选择映射到表达式时,您必须在表达式字段中输入一个表达式。表达式必须采用 MATLAB® 代码,并且计算结果为标量文字或 timeseries 对象。如果表达式很长或很复杂,您可以使用评估回调部分编写 MATLAB 代码,检索模型、测试和仿真数据并将数据分配给变量,然后将变量分配给符号表达式。有关定义变量的更多信息,请参阅在评估回调部分定义变量。

    要检索存储在工作区变量中的数据,请使用 evalin 函数。例如,要将工作区变量 var 分配给某个符号,请直接在符号表达式中输入 evalin("base","var"),或者在评估回调部分输入 v = evalin("base","var"),并在符号表达式中输入 v。

    因为 t 符号自动绑定到仿真时间,所以您不需要将其映射到表达式。t 在符号窗格中不可见。

    提示

    在评估回调部分输入 sig = sltest_simout.logsout.get('mySignal') 并使用映射到表达式将符号映射到 sig 变量相当于使用映射到模型元素将符号映射到 mySignal 信号。

如果将符号映射到线性插值的离散数据信号,则在评估期间插值会自动更改为零阶保持。此外,符号窗格中符号名称旁边会出现一个信息图标 ()。指向该图标将出现一个工具提示,表明线性插值已被覆盖。

查看时序评估摘要

输入评估参数后,点击评估描述左侧的箭头可查看评估摘要。

可视化表示窗格提供了评估通过用例的图形说明。

点击“探索模式” 图标查看评估的通过和失败案例。从下拉列表中选择要查看的用例类型,然后点击 以查看不同的通过和失败用例。Triggers versus time for passing and failing cases

评估 SUT

运行测试用例来评估 SUT。通过使用记录的信号数据,在仿真之后对时序评估进行评估。使用测试用例结果来检查 SUT 是否符合您的需求。

您可以运行包含多个版本中的逻辑或时序评估的测试用例。有关详细信息,请参阅评估多个版本中的时态逻辑。

查看评估结果

从测试管理器的结果和工件窗格查看评估评价的结果。选择测试用例并点击结果树中的评估以打开新的评估结果选项卡。Simulink Test 评估评估并显示评估执行的预期行为和实际结果,并描述不同时间步中的评估失败。

Expected results and actual results

注意

评估结果数据无法导出至 Simulink Test 报告。

使用 和 按钮以及故障点的文本描述调查 SUT 行为。

如需进行更详细的调查,请展开表达式树以查看评估每个单独元素的结果。

Expanded expression tree with results for all assessments

使用缩放、平移和数据光标功能来分析表达式树中的评估结果。

将时序评估与需求联系起来

如果您拥有 Requirements Toolbox™ 许可证,您可以通过将评估链接到需求来建立时序评估和需求之间的可追溯性。要创建指向需求的链接,请在逻辑和时序评估编辑器中选择评估,然后点击需求列以打开需求编辑器对话框。有关详细信息,请参阅链接至需求。

另请参阅

| |

主题