01 --模型
首先要有一个供测试的模型,这里我以一个子系统和状态机的模型为例。
02 --创建测试框架(test harness)
在进行测试之前,首先要把模型内的测试框架(test harness)创立好,不然的话Simulink test只能对一个总的模型的输入输出编写测试用例。当你的模型太大的时候,这非常不友好,还是想一个个的子系统进行测试。
按如下方式进行创建测试框架:
右击需要创建的子系统
把名称和路径填好,最好就放在该模型的路径下
单独打开的测试框架模型如下
利用相同的方式为状态机也创建好测试框架
03 --使用simulink test 创建一个测试用例表格
通过生成的表格,该表格上面有输入输出信号,及采样时间。输入信号是你要给的测试用例,而输出信号则填写你预期的结果。这个预期的结果会和模型运行之后的实际结果进行比较,这样一来就完成了单元模型的测试。
按如下方式创立表格,当然你也可以自己导入已经做好了的表格。
接下来下图中,第一个空白行选择你要测试的模型,第二个空白行如果选择None,则是测试整个模型的输出,如果选择测试框架,则是测试我们最开始创建好的测试框架模型,这里我们先选其中一个测试框架模型进行测试,确保将所有的最小子系统都能够测试完成。
下图中勾选Comparison signals很重要,如果不选,将没有预期信号的输出,模型运行完成后,只能通过表格和模型生成的实际信号进行肉眼比对,非常不方便。
所生成的表格页数及其命名,默认即可
以下两行是为该模型或测试框架模型生成的两个文件,分别是.mldatx(该文件用于记录测试中的设置)和.xlsx,空白的地方是需要为他们寻找一个路径并命名文件。这里我们都放在模型的路径下。
打开生成的表格后,发现采集信号有1000个点,实在是太多了,不方便内容讲解,我们先把采集点取少一点,这个采集点跟求解器有很大关系,打开求解器后发现采样时间是0.01s,而仿真时间10s,刚好1000个点
我们把停止时间改为0.1s,只采集10个点,再重新配置生成一下表格,我们看到只有10个采集点了
04 --单元测试
把excel表格在外部用excel格式打开并按如下去编辑采样时间,输入输出信号值,即测试用例,由于信号太多,表格生成的信号及采样时间顺序有点乱,对照模型可以知道我们有5个输入信号,6个输出信号。
该子系统的内部模型如下
封装模型如下,即U>U/Z是个脉冲信号,输入置1后输出只在一个采样时间置1后便回到0
回到test manager内并点击run运行模型
文章来源地址https://www.toymoban.com/news/detail-464237.html
从上图中
Test Browser(白色边框)内容是修改表格内的测试用例之后,可运行该模型进行仿真
而Results and Artifacts则是输入输出结果进行比较,其中蓝色线Baseline是你表格内填写的输出信号即预期信号,而Sim Output 则是模型仿真运行后的实际信号。
如果将excel表格中的ell_eol_ena输出信号全部改为1,那么该单元测试将会失败。原因是前面提到过的模型U>U/Z是个脉冲信号
可以看到预期信号和实际信号不相符
测试框架状态机和总的模型配置及测试与上述子系统的测试相似,这里不再进行讲解。
05 --补充
①上述测试过程中,默认只有输出信号的仿真,按如下设置可显示输入信号
②测试报告生成
文章来源:https://www.toymoban.com/news/detail-464237.html
到了这里,关于Simulink模型的MIL单元测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!