主要内容

测试序列和评估语法

本主题描述内部使用的语法测试序列测试评估块,Stateflow®图表。在块中,您可以将此语法用于测试步骤操作、转换和评估。在图表中,在状态和转换中使用此语法。

有关使用命令行界面创建和编辑测试序列步骤、转换和数据符号的信息,请参阅下面列出的函数测试序列测试脚本页面。

测试序列测试评估块使用MATLAB®作为行动语言。您可以定义操作、转换、使用评估操作符、临时操作符、转换操作符、信号生成函数、逻辑操作符和关系操作符的评估。除了验证,状态流图可以使用MATLAB或C中的所有运算符作为动作语言。验证只能使用MATLAB语言。例如:

  • 输出周期为的方波10证券交易委员会:

    广场(et / 10)
  • 过渡时h更改0

    hasChangedTo (h, 0)
  • 为了验证x大于y:

    验证(x > y)

评估语句

验证模拟,停止模拟,并返回验证结果,使用评估报表。

关键字 声明的语法 描述 例子
验证

验证(表达)

验证(表情,errorMessage)

验证(表情,标识符,errorMessage)

计算逻辑表达式。可选参数标签在测试管理器和诊断查看器中显示结果。

验证(x > y,...“金宝appSimulinkTest:”...“greaterThan”...'x和y值是'...' % d % d ', x, y)
断言

断言(表达)

断言(表情,errorMessage)

计算逻辑表达式。失败将停止模拟并返回错误。可选参数返回错误消息。

断言(h = = 0 & & k = = 0,...“h和k必须”...“初始化到0”

表中的语法使用了以下参数:

表达式

标识符

errorMessage

颞运营商

要创建计算模拟时间的表达式,请使用时态操作符。函数中使用的变量必须是输入、参数或常量测试序列块。

操作符 语法 描述 例子

等(TimeUnits)

测试步骤的运行时间TimeUnits.省略TimeUnits以秒为单位返回值。

测试序列步骤经过的时间(以毫秒为单位):

东部时间(毫秒)
t

t (TimeUnits)

中模拟运行的时间TimeUnits.省略TimeUnits以秒为单位返回值。

模拟运行的时间(以微秒计):

t(购买)

后(n, TimeUnits)

返回真正的如果n单位时间TimeUnits自当前测试步骤开始以来的过去时间。

4秒后:

后(4秒)
之前

之前(n, TimeUnits)

返回真正的直到n单位时间TimeUnits流逝,从当前测试步骤开始。

4秒前:

前(4秒)
持续时间

ElapsedTime = duration (Condition, TimeUnits)

返回ElapsedTimeTimeUnits条件一直真正的ElapsedTime是在重新输入测试步骤时重置还是什么时候重置条件不再是真正的

返回真正的如果时间以毫秒为单位φ> 1大于550:

持续时间(φ> 1,msec) > 550

表中的语法使用了以下参数:

TimeUnits

条件

转换操作符

要创建计算信号事件的表达式,请使用转换操作符。常见的转换操作符包括:

操作符 语法 描述 例子
焕然一新
焕然一新(u)

返回真正的如果u自测试步骤开始以来值的变化,否则返回

u必须是输入数据符号。

过渡时h变化:

焕然一新(h)
hasChangedFrom
hasChangedFrom (u)

返回true,如果u值的变化一个,否则返回false。

u必须是输入数据符号。

过渡时h改变从1

hasChangedFrom (h, 1)
hasChangedTo
hasChangedTo (u, B)

返回true,如果u值的更改B,否则返回false。

u必须是输入数据符号。

过渡时h更改0

hasChangedTo (h, 0)

信号生成函数

一些信号产生函数使用时间算子,这是测试步骤运行的时间,以秒为单位。参数值的缩放、舍入和其他近似值会影响函数的输出。常见的信号产生功能包括:

函数 语法 描述 例子
广场 广场(x)

表示周期为的方波输出1和范围11

时间间隔内0 <= x < 1广场(x)返回的值10 <= x < 0.510.5 <= x < 1

广场状态流图中不支金宝app持。

输出周期为的方波10证券交易委员会:

广场(et / 10)
锯齿波 锯齿(x)

表示输出周期为的锯齿波1和范围11

时间间隔内0 <= x < 1锯齿(x)增加。

锯齿波状态流图中不支金宝app持。

输出周期为的锯齿波10证券交易委员会:

锯齿(et / 10)
三角形 三角形(x)

表示输出周期为的三角形波1和范围11

时间间隔内0 <= x < 0.5三角形(x)增加。

三角形状态流图中不支金宝app持。

输出周期为的三角波10证券交易委员会:

三角形(et / 10)
斜坡 斜坡(x)

表示斜坡信号1,返回坡道在时间点的值x

斜坡(et)有效地返回测试步骤经过的时间。

斜坡状态流图中不支金宝app持。

斜坡为每5秒的测试步经过时间:

斜坡(et / 5)
亥维赛 亥维赛(x)

表示一个大步长信号,返回0x < 01x > = 0

亥维赛状态流图中不支金宝app持。

之后输出一个大信号5秒:

亥维赛(et-5)
门闩 锁(x)

保存的价值x第一次锁(x)在测试步骤中计算,并随后返回保存的值x.重置保存的值x当步骤退出时。要重新计算锁(x)当下一步是活动的。

门闩状态流图中不支金宝app持。

门闩b价值转矩

b =闩(扭矩)
sin (x)

返回sinx,在那里x在弧度。

周期为10秒的正弦波:

罪(et * 2 *π/ 10)
因为 cos (x)

返回余弦值x,在那里x在弧度。

周期为10秒的余弦波:

因为(et * 2 *π/ 10)
兰德 兰德

均匀分布的伪随机值

通过声明为每个模拟生成新的随机值兰德外在与coder.extrinsic.将随机数赋给一个局部变量。例如:

coder.extrinsic (“兰德”) nr = cross (b-a)
randn randn

正态分布伪随机值

通过声明为每个模拟生成新的随机值randn外在与coder.extrinsic.将随机数赋给一个局部变量。例如:

coder.extrinsic (“randn”nr = nr*2
经验值 exp (x)

返回自然指数函数, e x

以测试步的十分之一的时间前进的指数信号:

exp (et / 10)

逻辑运算符

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

操作 语法 描述 例子

否定

~ p

p

验证(~ p)

结合

p & &

p

验证(p & &)

析取

p | |问

p

验证(p | |问)

含义

~ p | | q

如果p.逻辑上等同于蕴涵p

验证(~ p | |问)

双条件的

(p & p & q) p & q

p,或者不p而不是.逻辑上等价于双条件的p

验证(p && q) || (~p && q))

关系运算符

可以在操作、转换和计算中使用关系操作符。在这些例子中,xy代表数值类型变量。

使用==~ =运营商在一个验证语句在比较浮点数数据时返回警告。在实现时考虑与浮点数相关的精度限制验证语句。看到浮点数.如果您使用浮点数据,请考虑为评估定义一个容忍度。例如,而不是验证(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)

相关的话题