MBD中 MIL、SIL、PIL、HIL 的目的和实现方式

2024-02-16 01:30
文章标签 实现 方式 pil mil 目的 hil mbd sil

本文主要是介绍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 的目的和实现方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/713115

相关文章

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

idea设置快捷键风格方式

《idea设置快捷键风格方式》在IntelliJIDEA中设置快捷键风格,打开IDEA,进入设置页面,选择Keymap,从Keymaps下拉列表中选择或复制想要的快捷键风格,点击Apply和OK即可使... 目录idea设www.chinasem.cn置快捷键风格按照以下步骤进行总结idea设置快捷键pyth

Linux镜像文件制作方式

《Linux镜像文件制作方式》本文介绍了Linux镜像文件制作的过程,包括确定磁盘空间布局、制作空白镜像文件、分区与格式化、复制引导分区和其他分区... 目录1.确定磁盘空间布局2.制作空白镜像文件3.分区与格式化1) 分区2) 格式化4.复制引导分区5.复制其它分区1) 挂载2) 复制bootfs分区3)

Java数组动态扩容的实现示例

《Java数组动态扩容的实现示例》本文主要介绍了Java数组动态扩容的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1 问题2 方法3 结语1 问题实现动态的给数组添加元素效果,实现对数组扩容,原始数组使用静态分配

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

Java使用Spire.Barcode for Java实现条形码生成与识别

《Java使用Spire.BarcodeforJava实现条形码生成与识别》在现代商业和技术领域,条形码无处不在,本教程将引导您深入了解如何在您的Java项目中利用Spire.Barcodefor... 目录1. Spire.Barcode for Java 简介与环境配置2. 使用 Spire.Barco