主要内容

sldv.condition

用于 Stateflow 图和 MATLAB Function 模块的测试条件函数

说明

sldv.condition(expr) 指定在生成的测试用例中,expr 在每个时间步都为 true。可以对 expr 使用任何有效的布尔表达式。

此函数没有输出,也不会对其父函数产生任何影响,但会对计算 expr 产生间接副作用。如果从 MATLAB® 命令行发出该函数,则该函数无效。

可以在 MATLAB 代码中穿插使用 sldv.condition 测试条件,也可以将条件单独放在验证脚本中。

测试生成窗格中的测试条件选项适用于用 sldv.condition 函数和 Test Condition 模块表示的测试条件。

示例

示例

全部折叠

使用 MATLAB Function 模块添加测试目标和测试条件。

下面的命令会打开一个关联了 sldvdemo_cruise_control 模型的示例。打开模型。

openExample('sldv/CruiseControlTestGenerationExample')

将模型另存为 ex_sldvdemo_cruise_control

删除 speed 模块信号的 Test Condition 模块。此示例使用 sldv.testsldv.condition,而不是使用 Test Condition 模块。

从 User-Defined Functions 库中,添加一个 MATLAB Function 模块:

  1. 将该模块命名为 tests

  2. 打开该模块并添加以下代码:

    function define_tests(speed, target)
    %#codegen
    
    sldv.condition(speed >= 0 && speed <= 100);
    sldv.test(speed > 60 && target > 40 && target < 50);
    sldv.test(speed < 20 && target > 50);
  3. 保存模型并返回到顶层模型。

  4. 将该模块连接到 speed 模块和 target 模块的信号。

保存对 ex_environment_controller 模型的更改。

要生成测试用例,请在 Design Verifier 选项卡上点击生成测试

输入参数

全部折叠

条件表达式,指定为布尔表达式。例如,x > 0

备选方法

除了使用 sldv.condition 函数外,您还可以在模型中插入 Test Condition 模块。要了解 Test Condition 模块与 sldv.condition 之间的区别,请参阅测试生成工作流

您也可以通过使用 MATLAB 生成代码来指定测试条件,而无需使用 sldv.condition 函数。使用 sldv.condition 而不是直接使用 MATLAB 生成代码可以省去以下操作:

  • 使用 Simulink® 模块表达约束。

  • 将条件输出显式连接到 Simulink 模块。

版本历史记录

在 R2009b 中推出