主要内容

测试序列和评估语法

本主题描述语法中使用测试序列测试评估块,Stateflow®图表。块,你使用这个语法测试步骤操作,转换和评估。在图表中,您使用这种语法在状态和转换。

使用命令行界面的信息创建和编辑测试序列步骤,转换和数据符号,看到下面列出的功能测试序列测试脚本页面。

测试序列测试评估块使用MATLAB®作为动作语言。您还可以使用字符串,包括字符串比较,在测试序列的步骤和转换。您定义操作、转换与评估运营商评估,颞运营商,运营商、过渡信号生成函数、逻辑运算符、关系运算符。除了验证Stateflow图表可以使用所有运营商在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,k h和必须的“初始化到0”)

语法表中使用这些参数:

表达式

标识符

errorMessage

颞运营商

创建一个表达式,计算仿真时间,使用时间操作符。变量必须输入,用于信号条件参数,或常量测试序列块。

操作符 语法 描述 例子

等(TimeUnits)

测试步骤的时间TimeUnits。省略TimeUnits返回值在秒。

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

东部时间(毫秒)
t

t (TimeUnits)

仿真的运行时间TimeUnits。省略TimeUnits返回值在秒。

仿真的运行时间以微秒为单位:

t(购买)

后(n, TimeUnits)

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

4秒后:

后(4秒)
之前

之前(n, TimeUnits)

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

4秒前:

前(4秒)
持续时间

TimeUnits ElapsedTime =持续时间(条件)

返回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)

信号生成函数

下表列出了常见的功能,您可以使用测试序列块创建测试信号,随机数的价值观,和自然指数。它还描述了门闩函数,它保存并返回一个特定值评估在一个测试序列的一步。关于每个函数的更多信息,请单击其名称在第一列中。

一些信号生成函数使用时间运算符测试步骤的时间,以秒为单位。额外的运营商有关,您可以使用在测试序列的步骤中,看到的颞运营商

请注意

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

函数 语法 描述 例子
sin (x)

返回的正弦x,在那里x在弧度。

一个正弦波10秒的时间:

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

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

一个余弦波10秒的时间:

因为(et * 2 *π/ 10)
广场 广场(x)

方波输出的时期1和范围11

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

广场不支持在Sta金宝appteflow图表。

输出一个方波的时期10证券交易委员会:

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

锯齿波输出与一段时间的1和范围11

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

锯齿波不支持在Sta金宝appteflow图表。

输出一个锯齿波的时期10证券交易委员会:

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

与一段三角波的输出1和范围11

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

三角形不支持在Sta金宝appteflow图表。

输出一个三角波的时期10证券交易委员会:

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

斜坡信号的斜率1在时间,返回的值增加x

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

斜坡不支持在Sta金宝appteflow图表。

增加一个单位每5秒测试步骤运行时间:

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

亥维赛步信号,返回0x < 01x > = 0

亥维赛不支持在Sta金宝appteflow图表。

亥维赛信号后输出5秒:

亥维赛(et-5)
经验值 exp (x)

自然指数函数返回, e x

一个指数信号速度的十分之一测试步骤运行时间:

exp (et / 10)
兰德 兰德

均匀分布伪随机值

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

coder.extrinsic (“兰德”兰德sg) nr = = + * nr (b)
randn randn

正态分布的伪随机值

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

coder.extrinsic (“randn”)nr = randn sg = nr * 2
门闩 锁(x)

保存的值x在第一次锁(x)评估在一个测试步骤,随后返回的保存价值x。重置的保存价值x当一步退出。要重新计算锁(x)当接下来一步是活跃。

门闩不支持在Sta金宝appteflow图表。

门闩b的价值转矩:

b =闩(扭矩)

逻辑运算符

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

操作 语法 描述 例子

否定

~ p

p

验证(~ p)

结合

p & &

p

验证(p & &)

析取

p | |问

p

验证(p | |问)

含义

~ p | | q

如果p,。在逻辑上等同于含义p

验证(~ p | |问)

双条件的

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

p,或者不p而不是。在逻辑上等同于双条件的p

验证((p & &) | | (~ 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)

相关的话题