主要内容

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

定义测试步骤和评估

您可以通过在 Test SequenceTest Assessment 模块中创建测试步骤操作、转移和评估来评估您的模型仿真。

Test SequenceTest Assessment 模块使用 MATLAB® 作为动作语言。步骤和转移可以包含字符串,包括字符串比较,以及评估语句、信号生成函数和关系运算符。有关更多信息,请参阅 Test AssessmentTest Sequence测试序列编辑器

评估声明

要验证仿真、停止仿真并返回验证结果,请使用评估语句。

关键字描述
verify

评估一个逻辑表达式,并返回一个 passfailuntested 结果。您可以使用可选的参量在测试管理器和诊断查看器中标记结果,或在 verify 语句失败时返回错误消息。

assert

评估一个逻辑表达式,如果表达式评估结果为 false,则停止仿真。您可以使用可选项的参量在测试管理器或诊断查看器中返回错误消息。

时序运算符

要创建评估仿真时序的表达式,请使用时序运算符。信号条件中的变量必须是 Test Sequence 模块中的输入、参数或常量。您可以使用以下时间运算符:

运算符描述
et测试步骤的执行时间。您可以指定时间单位。如果您未指定时间单位,则返回的经过时间以秒为单位。
t

仿真的经过时间。您可以指定时间单位。如果您未指定时间单位,则返回的经过时间以秒为单位。

after

如果自当前测试步骤开始以来已过去指定的时间,则返回 true

before

返回 true,直到从当前测试步骤开始起指定的时间已过。

duration

返回指定条件满足 true 状态的累计时间。当测试步骤被重新进入或指定条件不再为 true 时,已经过的时间将重置。

转移运算符

要创建评估信号事件的表达式,请使用转移运算符。要评估信号事件,信号必须输入到 Test SequenceTest Assessment 模块中。

运算符描述
hasChanged

如果指定的信号在测试步骤开始后其值发生变化,则返回 true,否则返回 false

hasChangedFrom

如果指定的信号从指定的值更改为不同的值,则返回 true,否则返回 false

hasChangedTo

如果指定的信号值变为指定的值,则返回 true,否则返回 false

信号生成函数

您可以在 Test Sequence 模块中使用这些函数来生成测试信号、随机值和自然指数。您可以将时间运算符与某些信号生成函数结合使用。有关详细信息,请参阅时序运算符

注意

参量值的缩放、舍入和其他近似值可能会影响函数输出。

函数描述
sin

返回输入值的正弦值,单位为弧度。

cos

返回输入参量的余弦值,单位为弧度。

square

生成方波测试信号。

sawtooth

生成锯齿波测试信号。

triangle

生成三角波测试信号

ramp

返回输入的值。

heaviside

当输入小于等于 0 时,返回 0,否则返回 1

exp

返回自然指数函数 ex

rand

返回均匀分布的伪随机值。

randn

返回服从正态分布的伪随机值。

latch

保存输入的值并返回保存的值。当步骤退出时重置保存的值,并在步骤下次激活时重新评估。

逻辑运算符

您可以在动作、转移和评估中使用逻辑连接词。在这些示例中,pq 表示布尔信号或逻辑表达式。

运算语法描述示例

否定

~p

不是 p

verify(~p)

连词

p && q

pq

verify(p && q)

分离

p || q

pq

verify(p || q)

含义

~p || q

如果 pq。逻辑上等同于蕴涵 pq

verify(~p || q)

双条件

(p && q) || (~p && ~q)

pq,或者不是 p 也不是 q。逻辑上等同于双条件 pq

verify((p && q) || (~p && ~q))

关系运算符

您可以在动作、转移和评估中使用关系运算符。在这些示例中,xy 代表数值类型变量。

== 语句中使用 ~=verify 运算符在比较浮点数据时会返回警告。在实现 verify 语句时,请考虑与浮点数相关的精度限制。请参阅浮点数。如果使用浮点数据,请考虑定义评估的容差。例如,不要验证 verify(x == 5),而是验证 x0.001 的容差范围内:

verify(abs(x-5) < 0.001)

运算符和语法描述示例
x > y大于verify(x > y)
x < y少于verify(x < y)
x >= y大于或等于verify(x >= y)
x <= y小于或等于verify(x <= y)
x == y等于verify(x == y)
x ~= y不等于verify(x ~= y)

另请参阅

主题