测试序列和评估语法
本主题描述语法中使用测试序列和测试评估块,Stateflow®图表。块,你使用这个语法测试步骤操作,转换和评估。在图表中,您使用这种语法在状态和转换。
使用命令行界面的信息创建和编辑测试序列步骤,转换和数据符号,看到下面列出的功能测试序列在测试脚本页面。
测试序列和测试评估块使用MATLAB®作为动作语言。您还可以使用字符串,包括字符串比较,在测试序列的步骤和转换。您定义操作、转换与评估运营商评估,颞运营商,运营商、过渡信号生成函数、逻辑运算符、关系运算符。除了验证
Stateflow图表可以使用所有运营商在MATLAB和C作为动作语言。验证
只可以使用MATLAB语言,你不能使用字符串验证
语句。例如:
与一段输出一个方波
10
证券交易委员会:广场(et / 10)
过渡时
h
更改0
:hasChangedTo (h, 0)
验证x比y:
验证(x > y)
评估语句
验证仿真,停止仿真,并返回验证结果,使用评估报表。
关键字 | 声明的语法 | 描述 | 例子 |
---|---|---|---|
验证 |
|
评估一个逻辑表达式。可选参数标签测试经理和诊断结果查看器。 |
验证(x > y,…“金宝appSimulinkTest: greaterThan”,…“x和y值% d % d ',…x, y) |
断言 |
|
评估一个逻辑表达式。故障停止仿真,并返回一个错误。可选参数返回一个错误消息。 |
断言(h = = 0 & & k = = 0,…k h和必须的…“初始化到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) |
信号生成函数
下表列出了常见的功能,您可以使用测试序列块创建测试信号,随机数的价值观,和自然指数。它还描述了门闩
函数,它保存并返回一个特定值评估在一个测试序列的一步。关于每个函数的更多信息,请单击其名称在第一列中。
一些信号生成函数使用时间运算符等
测试步骤的时间,以秒为单位。额外的运营商有关等
,您可以使用在测试序列的步骤中,看到的颞运营商。
请注意
缩放、舍入和其他近似的参数值可以影响函数输出。
函数 | 语法 | 描述 | 例子 |
---|---|---|---|
罪 |
sin (x) |
返回的正弦 |
一个正弦波10秒的时间: 罪(et * 2 *π/ 10) |
因为 |
cos (x) |
返回的余弦 |
一个余弦波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 (“兰德”兰德sg) nr = = + * nr (b)
|
randn |
randn |
正态分布的伪随机值 |
为每个模拟通过声明生成新的随机值 coder.extrinsic (“randn”)nr = randn sg = nr * 2
|
门闩 | 锁(x) |
保存的值
|
门闩 b =闩(扭矩) |
逻辑运算符
您可以使用逻辑连接词在操作、转换和评估。在这些例子中,p
和问
代表布尔信号或逻辑表达式。
操作 | 语法 | 描述 | 例子 |
---|---|---|---|
否定 |
~ p |
不 |
|
结合 |
p & & |
|
|
析取 |
p | |问 |
|
|
含义 |
~ p | | q |
如果 |
|
双条件的 |
(p & &) | | (~ p & & ~) |
|
|
关系运算符
您可以使用关系运算符的操作、转换和评估。在这些例子中,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) |