使用 verify
和实时测试进行投影仪控制器测试
在目标计算机上进行实时测试并验证仿真和实时结果。
此示例演示了如何使用模型仿真和在目标计算机上的实时执行来测试投影仪控制系统。测试使用锻炼顶层控制器模型的测试序列场景来验证控制器。控制器使用按钮输入和温度传感器输入,并输出控制风扇、风扇速度和投影仪灯的信号。
此示例使用 Simulink® Real-Time™。开始之前,请先查看 Simulink Real-Time 系统需求。
为示例设置测试文件、模型和内部框架名称。
testFile = 'sltestProjectorCtrlTests.mldatx'; model = 'sltestProjectorController'; testharness = 'Test_Scenarios';
打开模型。
open_system(model)
查看测试框架
打开 Test_Scenarios 内部测试框架。
sltest.harness.open(model,testharness);
测试框架使用 Test Sequence 模块来定义测试场景,并使用 Test Assessment 模块来验证结果。
在测试框架中,打开 Test Sequence 模块来查看选项卡中定义的场景。
打开 Test Assessment 模块来查看验证语句。
打开测试文件并配置实时目标计算机
输入以下命令在测试管理器中打开测试文件:
open(testFile)
该测试文件包含一个带有两个测试用例的测试套件,每个测试用例测试四种测试场景。Simulation_Tests 测试用例仿真模型,HIL_Tests 测试用例在实时目标计算机上运行测试。
运行示例之前:
使用 Simulink Real-Time Explorer 配置您的目标计算机。
连接到您的目标计算机。
如果您的目标计算机不是默认目标,请更新 HIL_Tests 测试用例的在测系统部分中的目标计算机。
有关实时配置的更多信息,请参阅System Configuration (Simulink Real-Time)。
运行模型仿真测试
运行 Simulation_Tests 测试用例。仿真完成后,点击测试管理器中的结果和工件窗格。
展开 Simulation_Tests 结果和每个场景以查看 Verify Statements 结果。verify
语句演示了失败、通过和未经测试的结果:
在除 Basic_Overheat 之外的所有场景中,控制器不会在高温或过热模式下运行,因此关联的
verify
语句的verify_overheat
和verify_high_temp
语句未经测试。在所有场景中,控制器都通过了以下测试:如果灯亮,则风扇也会亮:
verify_lamp_implies_fan
。在 Overheat_Shutoff 场景中,控制器通过测试,如果在温度高于限制时按下 on_off 按钮,系统将保持关闭状态:
verify_sc4_on
。对于其他场景,verify_sc4_on
尚未测试。仅在 Overheat_Shutoff 场景中,当温度超过限制时按下 on_off 按钮,系统就会关闭,控制器无法通过该测试:
verify_sc4_off
。解决此故障需要修改主模型中的OnOff Check
子系统。
有关更多信息,请参阅 使用 verify 语句评估模型仿真。
在 Overheat_Shutoff 场景中,选择 verify_sc4_off,
verify_lamp_implies_fan, and verify_overheat
结果来可视化 verify
语句结果。
执行实时测试并查看结果
实时测试用例(HIL_Tests)验证实时执行结果与模型仿真结果是否相符,以及 verify
语句是否通过。
在测试管理器中,运行实时测试用例(HIL_Tests)。
Simulation_Tests 和 HIL_Tests 的结果显示匹配的通过、失败和未测试状态。
在 Overheat_Shutoff 场景中,选择 verify_sc4_off,
verify_lamp_implies_fan, and verify_overheat
结果来可视化 verify
语句结果。验证语句部分显示了与模型仿真类似的结果。
close_system(testharness,0) close_system(model,0) sltest.testmanager.clear; sltest.testmanager.clearResults; sltest.testmanager.close clear testFile testHarness model;