测试两个模拟是否等价
验证模型在正常和SIL仿真模式下的等效性。
这个例子展示了如何使用测试工具和测试管理器来测试两个模型之间的等价性。一个模型在正常模式下运行,而一个从子系统创建的测试集模型在软件在环(SIL)模式下运行。
测试管理器中的等效测试用例比较两个模拟之间的信号输出以确定等效性。在本例中,将设置来自主模型和测试集的信号用于日志记录。记录的信号被用作正常模式和SIL模式之间的等效准则。
配置模型
打开sltestNormalSILEquivalenceExample
模型。
mdl =“sltestNormalSILEquivalenceExample”;harnessOwner =“sltestNormalSILEquivalenceExample /控制器”;open_system (mdl);
在模型中打开信号记录。
set_param (mdl“SignalLogging”,“上”,“SignalLoggingName”,“SIL_signals”);
标记Controller子系统的输出和输入信号,以便记录日志。
Ph_controller_in = get_param(“sltestNormalSILEquivalenceExample /控制器/ In1”,“PortHandles”);Ph_controller_out = get_param(“sltestNormalSILEquivalenceExample /控制器”,“PortHandles”);set_param (ph_controller_in.Outport (1),“数据采集”,“上”);set_param (ph_controller_out.Outport (1),“数据采集”,“上”);清晰的ph_controller_inph_controller_out;
模拟模型并输出日志信号。信号数据被用作测试线束的输入。
Out = sim(mdl);
获取记录的信号数据。
Out_data = out.get(“SIL_signals”);Control_in1 = out_data.get(2);
为SIL验证创建一个测试工具。
创建工具的命令将生成代码。切换到有写权限的目录。
origDir = pwd;dirName = tempname;mkdir(目录名);cd(目录名);cleanup = onCleanup(@()cd(origDir));sltest.harness.create (harnessOwner“名字”,“SIL_Harness”,“VerificationMode”,“银”);
###控制器的构建过程已成功完成:控制器的构建过程###正在创建SIL块…使用“gcc”构建。MEX完成成功。模型建立目标:总结构建模型重建行动的理由 ============================================================================================ 控制器代码生成和编译。代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 21.761s
打开测试套具。
sltest.harness.open (harnessOwner“SIL_Harness”);
在测试工具中设置日志记录
在测试线束中打开信号记录。
set_param (“SIL_Harness”,“SignalLogging”,“上”,“SignalLoggingName”,“SIL_signals”);
标记测试线束输出端口,以便在等效测试用例中使用信号记录。
Ph_harness_out = get_param(“SIL_Harness /控制器”,“PortHandles”);set_param (ph_harness_out.Outport (1),“数据采集”,“上”);清晰的ph_harness_out;
将模拟的输入数据分配给测试线束。
set_param (“SIL_Harness”,“LoadExternalInput”,“上”,...“ExternalInput”,“control_in1。值的);
在测试管理器中创建一个等价测试用例
打开测试管理器应用程序选项卡上,单击万博1manbetx仿真软件测试在“模型验证、验证和测试”部分,然后单击“*测试”选项卡中的“*Simulink测试管理器”。万博1manbetx或者使用命令
sltestmgr
创建一个等价测试用例。
从测试管理器工具条中,单击新点击箭头选择测试文件>空白测试文件.
指定测试文件为
testHarnessEquivalence.mldatx
.默认情况下,测试管理人员使用新的测试套件和基线测试用例创建测试文件。在测试浏览器窗格,选择基线测试用例,
新的测试用例1
,并单击删除.选择
新的测试套件1
.从工具条中单击新点击箭头选择等效性测试.
在测试浏览器窗格中,右键单击新的等价测试用例并选择
重命名
.命名新的等价测试用例SIL等价检验
.
将测试工具分配给等价测试用例模拟1.
扩大模拟1而且测试中的系统.
单击使用当前模型分配按钮
sltestNormalSILEquivalenceExample
来模型.扩大测试工具.
单击刷新按钮以获取可用测试工具的最新列表。
控件中选择SIL_Harness利用菜单使用测试中的系统.
分配sltestNormalSILEquivalenceExample
模型模拟2.
崩溃模拟1.
扩大模拟2而且测试中的系统.
单击使用当前模型分配按钮
sltestNormalSILEquivalenceExample
来模型.崩溃模拟2.
捕获等价性标准。下等价的标准,点击捕获运行测试套具模拟1并识别等效信号。
运行测试用例并查看结果
选择SIL等价检验
在测试浏览器窗格,然后单击运行在工具条中。测试管理器切换到结果和工件窗格并运行等价测试用例。测试用例通过了,因为模型和测试线束之间的信号比较匹配。展开结果集并选择控制器:1
单选按钮,用于绘制信号比较图。
close_system (mdl 0);清晰的mdlharnessOwner清理control_in1origDir出out_data;