MQTester自动处理“孤立元素”

Home/MQTester / MQTester自动处理“孤立元素”

在模型中,Simulink Function与Function Caller、Goto与From、Data Store Write/Memory与Data Store Read模块通常是成对出现使用的,但有可能不在同一层级。

若测试对象中只包含function caller、from或data store read/

write模块时,模型的仿真因缺少对应模块无法正常进行。

在MQT新版本中,增加了针对仅拥有function caller、from、data store read模块的子系统仿真的功能。

Function Caller/Simulink Function模块

Simulink Function caller 能够方便地调用并执行模型中的函数,并获取其输出结果,从而更灵活地进行模型的设计和仿真,使得模型的功能更加模块化和易于维护。

图1 Simulink Function与Function Caller模块

MQT针对以下三种情况增加了新功能:

  • 如果测试对象中的function caller对应的Simulink function不在用户所选择的测试对象中,但是存在于原模型中,那么在产生的测试环境时,会自动将对应的simulink function拷贝到测试对象中
图2 测试环境生成时自动拷贝
  • 若原模型中只有function caller而没有对应的Simulink function,则在产生带有function caller的测试环境时,会自动创建一个符合function caller要求的simulink function,并且系统自动为此function caller的输出信号定义变量,该变量可以在测试用例中根据需要修改值。
图3 测试环境自动创建
图4 自动为输出信号定义变量
  • 也可以指定C代码,在产生的Simulink function 中嵌入此C代码,MQT在生成测试环境时会自动将对应的simulink function拷贝到测试对象中。(目前还未实现全自动,可使用MQT的代码测试功能进行手动嵌入,可根据您的需要实现自动嵌入)。
图5 嵌入C代码

Data Store模块

Data Store模块用于实现在模型中对某一全局变量的多次读取和赋值,从而极大提高工作效率和仿真精度。

Data Store模块包括Datastore变量以及Simulink中的Data Store Memory、Data Store Read和Data Store Write模块。

图6 Data Store模块

Data Store Memory模块:用于定义存储的数据的名称、初始值和类型。可以在顶层系统或子系统中定义。

Data Store Read模块:用于从指定的数据存储(Data Store Memory)中读取数据,并将其输出到仿真模型中。

Data Store Write模块:用于将输入信号写入到指定的数据存储(Data Store Memory)中。

Data Store Read和Data Store Write模块都需要指定要访问的数据存储的名称(即Data Store Memory模块中定义的名称)。

MQT针对以下三种情况增加了新功能:

  • 测试对象中只有Data store read 和data store write模块,而没有对应的data store memory模块,在生成测试对象时MQT自动生成相应的参数变量,使数据传递顺利进行。
图7 工作区自动生成相应变量
  • 若测试对象中只有data store read,没有对应data store write和data store memory,在生成测试对象时MQT会为此data store read 模块产生相应的data store write模块,并把该变量作为输入信号,在编写测试用例时可以随时修改。
图8 自动生成Data Store Write模块
图9 测试用例中自动增加输入信号
  • Stateflow Chart中所使用的Data store memory 数据,如果在Chart中没有对该变量赋值的语句,或者则按照只有data store read(第二种)描述的情况处理,在测试环境中增加输入信号
图10 适用于Stateflow Chart

Goto/From模块

在Simulink中可以使用From模块和Goto模块搭配,精简模型,省略许多的连线。

Goto 模块将其输入传递给其对应的From模块。输入可以是任何数据类型的实数值或复数值信号或向量。

From和 Goto模块允许信号从一个模块传递给另一个模块,而无需实际连接它们

一个Goto模块可将其输入信号传递到多个From模块,但是一个From模块只能接收来自一个Goto模块的信号。

图11 Goto与From模块

Goto模块的输入传递到与它关联的 From 模块,两者通过Goto标记进行匹配,Goto模块标记的作用域可以为局部、限定作用域或全局。

MQT针对下述情况增加了新功能:

  • 若测试对象中只有from模块,没有对应goto模块,在生成测试对象时MQT为此From模块自动产生对应的Goto模块,并把该变量作为输入信号,在编写测试用例时可以随时修改。
图12 Goto模块在测试对象外
图13 测试环境自动产生对应的Goto模块
图14 测试用例中增加为输入信号且随时修改

若对此感兴趣

欢迎留下联系方式

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注