Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

扩展闭环系统测试用例

假设您有一个带有闭环控制器的模型,该模型由 Model模块引用。您没有记录所引用模型的 100%覆盖率。扩展现有的测试用例可以帮助您实现100%的覆盖率。Simulink® Design Verifier™ 软件在分析参考模型实现的控制器时,为现有的测试用例添加了时间步。分析产生的测试用例真实地反映了闭环控制器预期的连续时间行为。

闭环控制器将指令传递给受控系统,并在控制指令执行时从环境接收信息。控制器在收到此信息时可以调整和改变其指令。

记录启动测试用例

本示例使用示例模型sldemo_mdlref_basic 。CounterA Model模块引用模型sldemo_mdlref_counter 。当您仿真父模型sldemo_mdlref_basic 并收集覆盖率时,您仅记录到 sldemo_mdlref_counter 的 75%覆盖率。记录来自仿真的数据并扩展这些测试用例以实现引用模型的 100%覆盖率。

  1. 打开示例模型 sldemo_mdlref_basic

    openExample('sldemo_mdlref_basic');
  2. App 选项卡上,点击App 部分右侧的箭头。

    模型验证、确认和测试 下,点击覆盖率分析器

  3. 覆盖率 选项卡上,点击设置

  4. 在配置参数的 覆盖率窗格中,选择 启用覆盖率分析

  5. 选择 引用模型

    请注意,分析仅记录将 仿真模式 设置为 普通SILPIL 的引用模型的覆盖率。在 sldemo_mdlref_basic 中,CounterC Model模块将 仿真模式 设置为 加速,因此您无法记录它的覆盖率。

  6. 覆盖率度量下,将结构覆盖率级别设置为修正条件决策覆盖率(MCDC)以记录决策、条件和修正条件/决策覆盖率。

  7. 点击确定

  8. 点击 Analyze Coverage

    要打开覆盖率报告,请在 查看结果 部分中点击生成报告

    仿真完成后,生成的覆盖率报告将在浏览器窗口中打开。该报告显示引用模型的以下覆盖率结果:

    • 健康)状况:50% (2/4) 的条件结果

    • 决策:25%(1/4)决策结果

    • MCDC:0% (0/2) 的情况扭转了结果

    覆盖率结果也在参考模型sldemo_mdlref_counter 中突出显示。您可以选择单个模型对象来在“覆盖率”对话框中查看特定的覆盖率结果,如下面的屏幕截图所示。

    Simulink Canvas for sldemo_mdlref_counter model showing coverage results.

  9. 要在仿真期间记录 sldemo_mdlref_basic 中 CounterA Model模块的输入信号,请在 MATLAB® 命令提示符下输入以下代码:

    logged_data = sldvlogsignals('sldemo_mdlref_basic/CounterA');
  10. 将记录的数据保存在名为 existingtestcase.mat 的 MAT 文件中:

    save('existingtestcase.mat', 'logged_data');

    当您分析 CounterA (sldemo_mdlref_counter) 中引用的模型以扩展现有测试用例时,您可以指定此 MAT 文件。

扩展现有测试用例

分析sldemo_mdfref_counter模型,指定分析扩展已经满足的测试用例:

  1. 要打开 sldemo_mdfref_counter模型,请在 sldemo_mdlref_basic模型中双击 CounterA Model模块。

  2. Design Verifier 选项卡上,点击Test Generation Settings

  3. 在配置参数对话框的 测试生成窗格中,在 模型覆盖率目标 框中选择 MCDC

  4. 高级参数 下,选择 针对缺失覆盖率添加测试

  5. 选中 Extend using existing data 复选框。

  6. 覆盖率数据 字段中,指定包含记录数据的 MAT 文件的名称,在本例中为 existingtestcase.mat

  7. 点击确定

  8. 点击 生成测试

    分析首先加载已记录的测试用例所满足的目标。然后,它会为这些测试用例添加额外的时间步并尝试满足任何缺失的目标。当分析完成后,Simulink Design Verifier 日志窗口将打开并指示所有 12 目标均已满足。

  9. 要查看模型的分析结果,请在Simulink Design Verifier日志窗口中选择在模型上突出显示分析结果

    Simulink Design Verifier 结果在引用模型sldemo_mdlref_counter 中突出显示。您可以选择单个模型对象来在Simulink Design Verifier结果对话框中查看具体的分析结果,如下面的屏幕截图所示。

    Simulink canvas showing Simulink design Verifier results for sldemo_mdlref_counter.

  10. 为了验证分析结果并查看生成的测试用例,在Simulink Design Verifier日志窗口中选择生成详细的分析报告

  11. 要使用扩展测试套件收集模型覆盖率,请在 Simulink Design Verifier 日志窗口中选择 仿真测试并生成模型覆盖率报告

    仿真完成后,生成的覆盖率报告将在浏览器窗口中打开。该报告现在显示引用模型sldemo_mdlref_counter 的以下覆盖率结果:

    • 健康)状况:100% (4/4) 条件结果

    • 决策:100% (4/4) 决策结果

    • MCDC:100%(2/2)的情况扭转了结果

相关示例

详细信息