逻辑和时序评估语法
Simulink® Test™ 提供了三个逻辑与时序评估模板:
逻辑评估模板
边界检查——检查信号和表达式的最大和最小边界。
自定义 — 检查逻辑表达式是否适用于所有时间步。
时序评估模板
触发响应——检测到触发器时检查信号响应。
边界检查评估
创建边界检查评估来检查您测试的信号和表达式是否满足您为其指定的边界条件模式。边界条件模式模板可让您测试您指定的边界值的信号和表达式是否:
始终小于(或等于)
始终大于(或等于)
始终在里面
总是在外面
触发反应评估
创建触发响应评估以验证检测到触发器时的信号响应。触发反应评估需要:
Trigger
参数Response
参数可选的
Delay
参数
触发条件是评估响应信号的条件模式。有五种触发条件模式可用:
触发条件模式 | 行为 | 可用时间参考 | |
---|---|---|---|
![]() | 只要为 true | 当触发条件为 true 时,持续检查响应信号。 | 不适用 |
![]() | 变为 true | 每次触发条件成立时检查响应信号。 | 上升沿 |
![]() | 变为 true 并且保持为 true 的时间至少为 | 每次触发条件变为 true 时检查响应信号,并且至少在 min-time 参数指定的区间保持为 true(以 s 为单位)。您还可以指定一个额外的时间参考参数来评估响应信号。 | 触发器的上升沿或 min-time 的结束 |
![]() | 变为 true 并且保持为 true 的时间最多为 | 每次触发条件变为 true 时检查响应信号,并且最多在 max-time 参数指定的区间保持为 true(以 s 为单位)。您还可以指定一个额外的时间参考参数来评估响应信号。 | 触发器的上升沿或下降沿或 max-time 的结束 |
![]() | 变为 true 并且保持为 true 的时间介于 | 每次触发条件变为 true 并在 min-time 和 max-time 参数指定的区间之间保持为 true 时检查响应信号。您还可以指定一个额外的时间参考参数来评估响应信号。 | 触发器的上升沿或下降沿或 min-time 或 max-time 的结束 |
要完成触发响应评估的创作,您需要指定响应条件模式和响应条件。有五种响应条件模式可用:
响应条件模式 | 行为 | |
---|---|---|
![]() | 必须为 true | 从时间参考参数开始到延迟(如果定义了)为止,响应条件模式必须为 true。 |
![]() | 保持为 true 的时间至少为 | 响应条件模式必须至少在 min-time 参数指定的持续时间内保持为 true。 |
![]() | 保持为 true 的时间最多为 | 响应条件模式最多必须在 max-time 参数指定的时间内保持为 true。 |
![]() | 保持为 true 的时间介于 | 响应条件模式必须至少在 min-time 参数指定的持续时间内保持为 true,最多在 max-time 参数指定的持续时间内保持为 true。 |
![]() | 必须保持为 true 直到 | 响应条件必须保持为 true,直到 until-condition 参数在 max-time 参数指定的持续时间内变为 true。 |
延迟是从时间参考参数开始到预计满足响应条件的点之间的可选时间区间。您可以将延迟设置为最大值或指定以秒为单位的时间范围。
定制评估
自定义评估模板允许您指定以前的模板不适合的逻辑 MATLAB® 表达式。评估旨在评估信号属性,因此自定义模板中定义的所有符号都必须映射到信号数据(模型元素或时间序列或常数标量值)。
逻辑和时序评估条件
您可以输入包含这些运算符作为评估条件的 MATLAB 表达式:
逻辑运算符:
&
、|
和~
关系运算符:
<
、<=
、==
、~=
、>=
和>
算术运算符:
+
、-
和*
(仅限标量常量乘法)强制类型转换运算符:
不支持逻辑、关系和算术运算符的函数形式。除了运算符之外,您还可以使用 abs
函数来构造评估条件。您还可以使用 t
符号来构造评估条件,它会自动与仿真时间绑定。不支持在评估条件中使用 t
符号作为 min-time
或 max-time
参数。逻辑或时序评估不支持基于事件的信号。
评估条件中的数据类型
逻辑和时序评估条件支持 Simulink 支持的数据类型 上列出的内置数据类型,但 string
除外。您也可以使用 Simulink.defineIntEnumType
。评估不支持定点数据类型。
评估条件中的所有操作数必须属于同一数据类型。您可以使用强制转换运算符来更改操作数的数据类型或将操作数更改为符号并将该符号映射到表达式。阅读有关将符号映射到 解析评估参数符号 上的表达式的信息。阅读有关在 在评估回调部分定义变量 上的表达式中使用变量的定义。将符号映射到表达式时,该表达式必须与评估条件中的其他操作数具有相同的数据类型。
将符号映射到总线信号或多维信号时,必须将该符号映射到总线或多维信号中的仅一个元素。阅读有关 解析评估参数符号 上的模型元素映射。从总线或多维信号中选择的元素的数据类型应始终是受支持的类型,并且必须与评估条件中的其他操作数的数据类型相同。
在评估回调部分定义变量
评估回调部分允许您定义可在逻辑与时序评估条件和表达式中使用的变量。您可以按照在 MATLAB 工作区中相同的方式定义变量。此回调还可以访问包含来自测试、模型和仿真的数据的预定义变量,例如来自 Simulink 模块的信号。您可以定义一个变量作为该数据的函数。这些对象可用:
对象名称 | 描述 |
---|---|
TestResult | 从仿真创建的测试用例结果(sltest.testmanager.TestCaseResult )或测试迭代结果(sltest.testmanager.TestIterationResult )。 |
sltest_simout | 仿真输出数组(Simulink.SimulationOutput )。 |
sltest_testCase | 当前测试用例对象(sltest.testmanager.TestCase )。 |
sltest_bdroot | 通过测试用例仿真的模型单元数组。可以是框架模型。 |
sltest_sut | 在测系统的单元数组。对于框架,此数组包含被测试的组件。 |
sltest_isharness | 如果 sltest_bdroot 是框架模型,则返回 true 的单元数组。 |
sltest_iterationName | 当前测试迭代的名称。 |
sltest_testIteration | 当前测试迭代对象(sltest.testmanager.TestIteration )。 |
在回调中定义变量后,您可以将符号映射到变量以用于评估条件和表达式。阅读有关将符号映射到 解析评估参数符号 上的表达式的信息,以获取有关如何将符号映射到变量的信息。
在评估回调部分创建的变量只能在逻辑和时序评估窗格中的条件和表达式中使用。这些变量不能在测试管理器的其他区域使用。评估回调被保存为测试文件的一部分。