测试顺序和评估语法
中使用的语法测试序列而且测试评估块,Stateflow®图表。在这些块中,您将此语法用于测试步骤操作、转换和评估。在图表中,可以在状态和转换中使用此语法。
有关使用命令行界面创建和编辑测试序列步骤、转换和数据符号的信息,请参阅下面列出的函数测试序列在测试脚本页面。
测试序列而且测试评估块使用MATLAB®作为动作语言。您还可以在测试序列步骤和转换中使用字符串,包括字符串比较。您可以定义操作、转换、带有评估操作符、时间操作符、转换操作符、信号生成函数、逻辑操作符和关系操作符的评估。除了验证
,状态流图可以使用MATLAB或C中的所有操作符作为动作语言。验证
只能在MATLAB语言中使用,不能在验证
语句。例如:
输出周期为的方波
10
证券交易委员会:广场(et / 10)
过渡时
h
更改0
:hasChangedTo (h, 0)
验证x大于y:
验证(x > y)
评估语句
要验证仿真,停止仿真,并返回验证结果,请使用评估语句。
关键字 | 声明的语法 | 描述 | 例子 |
---|---|---|---|
验证 |
|
求值逻辑表达式。可选参数在测试管理器和诊断查看器中标记结果。 |
验证(x > y,...“SimulinkTest: greaterThan”,...'x和y值为%d, %d',...x, y) |
断言 |
|
求逻辑表达式的值。失败停止模拟并返回错误。可选参数返回错误消息。 |
断言(h = = 0 & & k = = 0,...“h和k必须”...“初始化到0”) |
表格中的语法使用了这些参数:
颞运营商
要创建计算模拟时间的表达式,请使用时态运算符。信号条件中使用的变量必须是函数中的输入、参数或常数测试序列块。
操作符 | 语法 | 描述 | 例子 |
---|---|---|---|
等 |
|
测试步骤的运行时间 |
测试序列步骤的运行时间,以毫秒为单位: 东部时间(毫秒) |
t |
|
中的模拟运行的时间 |
以微秒为单位的模拟运行时间: t(购买) |
后 |
|
返回 |
4秒后: 后(4秒) |
之前 |
|
返回 |
4秒前: 前(4秒) |
持续时间 |
|
返回 |
返回 持续时间(φ> 1,msec) > 550 |
表格中的语法使用了这些参数:
转换操作符
要创建计算信号事件的表达式,请使用转换运算符。常见的转换操作符包括:
操作符 | 语法 | 描述 | 例子 |
---|---|---|---|
焕然一新 |
焕然一新(u) |
返回
|
过渡时 焕然一新(h) |
hasChangedFrom |
hasChangedFrom (u) |
返回true,如果
|
过渡时 hasChangedFrom (h, 1) |
hasChangedTo |
hasChangedTo (u, B) |
返回true,如果
|
过渡时 hasChangedTo (h, 0) |
信号生成函数
下表列出了可以在Test Sequence块中使用的常用函数,用于创建测试信号、随机数值和自然指数。它还描述了门闩
函数,该函数保存并返回在测试序列步骤中计算的特定值。有关每个函数的更多信息,请单击第一列中的名称。
一些信号生成函数使用时间算子等
,它是以秒为单位的测试步骤的运行时间。用于附加相关的运算符等
您可以在测试序列步骤中使用,参见颞运营商.
请注意
参数值的缩放、四舍五入和其他近似值会影响函数输出。
函数 | 语法 | 描述 | 例子 |
---|---|---|---|
罪 |
sin (x) |
返回的正弦值 |
周期为10秒的正弦波: 罪(et * 2 *π/ 10) |
因为 |
cos (x) |
返回cos |
周期为10秒的余弦波: 因为(et * 2 *π/ 10) |
广场 | 广场(x) |
方波输出周期为 时间间隔内
|
输出周期为的方波 广场(et / 10) |
锯齿波 | 锯齿(x) |
周期为的锯齿波输出 时间间隔内
|
输出周期为的锯齿波 锯齿(et / 10) |
三角形 | 三角形(x) |
三角波输出周期为 时间间隔内
|
输出一个周期为的三角波 三角形(et / 10) |
斜坡 | 斜坡(x) |
斜坡斜坡信号
|
每5秒增加一个单位的测试步骤运行时间: 斜坡(et / 5) |
亥维赛 | 亥维赛(x) |
重步信号,返回
|
输出一个沉重的信号后 亥维赛(et-5) |
经验值 |
exp (x) |
返回自然指数函数, . |
以十分之一的测试步骤运行时间前进的指数信号: exp (et / 10) |
兰德 |
兰德 |
均匀分布伪随机值 |
通过声明为每个模拟生成新的随机值 coder.extrinsic (“兰德”) nr = rand sg = a + (b-a)*nr
|
randn |
randn |
正态分布伪随机值 |
通过声明为每个模拟生成新的随机值 coder.extrinsic (“randn”) nr = randn sg = nr*
|
门闩 | 锁(x) |
的值保存
|
门闩 b =闩(扭矩) |
逻辑运算符
您可以在操作、转换和评估中使用逻辑连接词。在这些例子中,p
而且问
表示布尔信号或逻辑表达式。
操作 | 语法 | 描述 | 例子 |
---|---|---|---|
否定 |
~ p |
不 |
|
结合 |
p & & |
|
|
析取 |
p | |问 |
|
|
含义 |
~ p | | q |
如果 |
|
双条件的 |
(~p && ~q) || |
|
|
关系运算符
您可以在操作、转换和评估中使用关系操作符。在这些例子中,x
而且y
代表数值类型变量。
使用= =
或~ =
运营商在一个验证
语句在比较浮点数据时返回警告。在实现时考虑与浮点数相关的精度限制验证
语句。看到浮点数.如果使用浮点数据,请考虑为评估定义一个公差。例如,代替验证(x = = 5)
,验证x
在容忍的范围内0.001
:
验证(abs (x5) < 0.001)
运营商和语法 | 描述 | 例子 |
---|---|---|
x > y |
大于 | 验证(x > y) |
x < y |
不到 | 验证(x < y) |
x > = y |
大于或等于 | 验证(x > = y) |
x < = y |
小于或等于 | 验证(x < = y) |
x = = y |
等于 | 验证(x = = y) |
x ~ = y |
不等于 | 验证(x ~ = y) |