我是靠谱客的博主 无聊水杯,最近开发中收集的这篇文章主要介绍MBD中 MIL、SIL、PIL、HIL 的目的和实现方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MBD设计中需要多重验证,包括算法验证等等,以下是经常听到的一些测试(in the loop)

不是所有的in-the-loop都得做,但是建议不省略SIL环节


  1)MIL,模型在环测试,在Simulink环境里,除建立控制器模型之外,还需要建立被控对象模型,将控制器和被控对象连接起来并形成闭环,让控制器去控制被控对象。是否一定要做这个In-the-Loop 呢?或者说,是否一定要有被控对象模型呢?其实不一定,这取决于模型验证的可能方式。在不少应用里,控制器模型的输出是开关量,工程师可以很方便的通过设定输入并给出期望输出,这样的情况,被控对象是没必要的,比如,汽车电子里面的车身控制,控制一个灯的开或者关, 只需要知道输出是ON或者OFF即可,没必要去做一个灯泡的模型放到Simulink里。

 

2)SIL,软件在环测试,软件在环测试,应该说是从模型在环测试引申过来的,区别只是把控制器的模型换成了由控制器模型生成的C代码编译成的S-functionSIL的目的是为了验证生成的代码和模型在功能上是否一致,或者说验证生成的代码和模型在功能上是否等效。验证等效性,是否一定需要被控对象模型?

不必要,既然验证生成的代码和模型的一致性,那只需要给生成代码和用于代码生成的模型相同的输入,比较它们在相同的输入条件下,输出是否一致即可。


3)PIL,PIL 有两个目的,

一是为了等效性验证。

PILS需要Simulink模型和目标硬件协同工作。将生成的嵌入式C代码编译为目标文件下载到目标硬件,硬件与PC进行硬件通信方式连接,建立Simulink和硬件开发板上MCU之间的通信通路。Simulink信号源提供信号输入,经过串口传递给目标硬件,经过MCU计算之后通过串口传回Simulink模型,并与MIL模型的仿真结果进行比较,比较二者相同参数,同步计算的输出是否相同。

二是为了测量模型生成的代码在目标处理器上的运行时间。有关运行时间的测量,如果你选择的处理器足够强大,或者你非常把握目标代码的运行不会超限,那么PIL的意义就要打折扣了。


4)HIL测试的目的是为了验证控制器的,HIL过程中,会把被控对象的模型生成C代码并编译成可执行的文件放到工控机上运行,以便工控机替代真实的被控对象,然后把控制器和工控机连接起来,实现闭环控制,从控制器的角度上看,就相当于工作到实际控制系统之中。HIL 经常被用于以下几种情形:
a)被控对象非常昂贵,如果控制器不成熟会导致被控对象的损害;
b)被控对象失效会危及人身安全;
c)开发过程中,先开发出了控制器,而被控对象还没有开发出来。

HILS提供一个平台,能够将各种复杂的被控对象以数学的表示方法作为动态系统追加到测试环境中,,他能够很好的仿真被控对象,这些被仿真的被控对象通过传感器等设备作为接口,将控制系统MCU与被控对象的HIL平台连接起来,进行实时仿真。

最后

以上就是无聊水杯为你收集整理的MBD中 MIL、SIL、PIL、HIL 的目的和实现方式的全部内容,希望文章能够帮你解决MBD中 MIL、SIL、PIL、HIL 的目的和实现方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部