SIL测试的目的是为了验证自动生成的代码和用于代码生成的模型的一致性,做这项测试的初衷是因为代码生成过程可能会引入错误。
有些人会问?代码不是自动生成的吗?为什么会有错误?
笔者认为,一般情况matlab自动生成的代码是不会出现问题的,但是生成代码这个东西受到电脑硬件(内存,CPU,硬盘等)使用情况的影响,以及软件运行的影响,自然可能出现问题。这个问题可以是编译器本身的问题,也可以是电脑环境的问题,更可能是操作者的问题。例如你运行个浏览器,浏览器有时候也会卡死,出现各种各样的bug,这是软件问题,同时也有可能你生成代码的时候正好碰到硬盘坏道或者存储颗粒出问题,那么你的代码可能也会出问题。
同时,不同环境下的执行结果也可能不一样。
第三,SIL测试是一般公认的工程化检查方法。
好了,言归正传。
首先测试用例来源:
测试用例的来源主要是MIL测试的用例所生成的测试向量,SIL测试直接使用即可。
测试环境:
测试环境有很多种,一般使用simulink即可,不用投入太多资源,一般simulink模型分为两个,一个是测试环境模型,提供输入信号源,设置Normal模式;一个是被测模型,存储为独立的slx;
在测试环境模型中使用两个Model Referrence引用被测模型,并设置其中一个为Normal模式,另一个为SIL模式,然后进行仿真。
一般遵循以下步骤:
1.选择目标硬件
2.设置可移植端口
3. 构建back2back验证用的TopModel,使用Model Ref引用要测试的组件级别模型,设置mode为SIL,同时引用Normal模式的该组件作为对比使用。
通过该环境就可以进行SIL测试了。