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运行模型

 

 

 从上图中

Test Browser(白色边框)内容是修改表格内的测试用例之后,可运行该模型进行仿真

而Results and Artifacts则是输入输出结果进行比较,其中蓝色线Baseline是你表格内填写的输出信号即预期信号,而Sim Output 则是模型仿真运行后的实际信号。

如果将excel表格中的ell_eol_ena输出信号全部改为1,那么该单元测试将会失败。原因是前面提到过的模型U>U/Z是个脉冲信号

 

 

 可以看到预期信号和实际信号不相符

测试框架状态机和总的模型配置及测试与上述子系统的测试相似,这里不再进行讲解。

05 --补充

①上述测试过程中,默认只有输出信号的仿真,按如下设置可显示输入信号

 ②测试报告生成

 

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: