软件在环测试 Software in-The-Loop Test

MIL模型在环测试:

        如图1所示,如果在Simulink模型中,将控制算法模型和被控对象模型连起来形成闭环,就是我们经常说的MIL,顾名思义,在模型层面上实现闭环测试。这种测试通常发生在两种场景之下,一是系统工程师为了验证算法,使用控制算法模型控制被控对象模型;另外一种是软件工程师做模型级别的集成测试。当然,MIL测试的前提是要有被控对象模型,搭建被控对象模型或者采购现成的被控对象模型都可以。

                                                                                图1 模型在环测试(MIL)示意图

SIL软件在环测试:

      SIL测试,这里的Software是指控制策略模型转换成的C代码编译之后的软件。我们可以想象,对于图1,如果我们把控制策略模型替换成由控制策略模型转换得到的C代码编译后的DLL文件,如果我们使用了和MIL测试时相同的测试用例,如果我们的测试用例足够多,如果我们得到了和MIL测试相同的结果,那么我们是不是可以认为我们生成的C代码就和用于代码生成的模型是一致的呢?没错,SIL测试的目的就是为了验证自动生成的代码和用于代码生成的模型中行为上是一致的。

       也就是说SIL测试是一种等效性测试,既然是等效性测试,那么我们就没必要搭建图1那样的闭环模型,而可以用图2实现等效性测试:

                                                      图2 软件在环测试(SIL)示意图

        其实Simulink提供了SIL仿真模式,所以,我们可以用更方便的方式实现SIL测试,使用set_param(model_name,’SimulationMode’,’Software-in-the-loop(SIL)’)设置算法模型的仿真模式为SIL,然后对比Normal模式下的输出结果即可,并且这样做有助于过程自动化。如图3所示:

                                                    图3 选择SIL仿真模式测试

第一步:MATLAB的当前文件夹如下,创建两个slx文件。

第二步:打开Blink_LED.slx,配置Solver为定步长类型,离散型,步长1s等;Hardware Implementation配置如下。

第三步:在All Parameters中输入Create Block找到对应的参数设置,我们选择SIL,再选择Code Generation>Verification>Enable portable word sizes。

 

 第四步:搭建模型如下,点击编译下载按钮,稍等片刻会生成一个slx模型,我们将它复制到SIL_Blink_LED.slx中。

    第五步:在SIL_Blink_LED.slx中搭建模型如下,参数配置同Blink_LED.slx。

第六步:分别将Normal和SIL模块添加信号线数据标记。

第七步:添加两个Lamp,分别与两个信号线绑定,信号线输出为0的时候,Lamp为绿色;输出为1的时候,Lamp为红色。

第八步:点击Run运行,仿真结束,看见两个Lamp都为红色,双击Scope查看三路输入的曲线,中间一路数据为0,说明SIL生成代码的仿真结果和实际Normal的仿真结果一致。 

模型下载链接:https://download.csdn.net/download/qq_20672671/11171211 

  • 13
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值