使用 verify
和实时测试进行投影仪控制器测试
此示例演示了如何使用模型仿真和在目标计算机上的实时执行来测试投影仪控制系统。测试使用锻炼顶层控制器模型的测试序列场景来验证控制器。控制器使用按钮输入和温度传感器输入,并输出控制风扇、风扇速度和投影仪灯的信号。
为示例设置测试文件、模型和内部测试框架的名称。
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 测试用例。仿真完成后,在测试管理器中点击结果和工件窗格。
展开仿真测试结果及四个场景。选择其中一个验证语句复选框,以在数据检查器选项卡中查看结果。验证语句部分的结果展示了失败、通过和未测试的结果:
在除 Basic_Overheat 之外的所有场景中,控制器不会在高温或过热模式下运行,因此关联的
verify_overheat
语句的verify_high_temp
和verify
语句未经测试。在所有场景中,控制器都通过了以下测试:如果灯亮,则风扇也会亮:
verify_lamp_implies_fan
。在 Overheat_Shutoff 场景中,控制器通过测试,如果在温度高于限制时按下 on_off 按钮,系统将保持关闭状态:
verify_sc4_on
。对于其他场景,verify_sc4_on
尚未测试。仅在 Overheat_Shutoff 场景中,当温度超过限制时按下 on_off 按钮,系统就会关闭,控制器无法通过该测试:
verify_sc4_off
。解决此故障需要修改主模型中的OnOff Check
子系统。
有关更多信息,请参阅通过 when 分解验证模型仿真。
在过热关机场景中,在检查窗格中,选择 verify_sc4_off、verify_lamp_implies_fan 和 verify_overheat 结果。
执行实时测试并查看结果
实时测试用例(HIL_Tests)验证实时执行结果与模型仿真结果是否相符,以及 verify
语句是否通过。
在测试管理器中,运行实时测试用例 (HIL_Tests)。
仿真测试(Simulation_Tests)和硬件在环测试(HIL_Tests)的结果显示,通过、失败和未测试状态一致。
在过热关机场景中,在检查窗格中,选择 verify_sc4_off、verify_lamp_implies_fan 和 verify_overheat 以查看结果。验证语句部分显示了与模型仿真类似的结果。
close_system(testharness,0) close_system(model,0) sltest.testmanager.clear; sltest.testmanager.clearResults; sltest.testmanager.close clear testFile testHarness model;
另请参阅
Test Sequence | Test Assessment