菜鸟教程:硬件在环仿真测试入门

对于控制器的开发,基于模型的开发方式(Model based development)越来越成为主流。在这个开发模式中,硬件在环仿真测试(Hardware-in-loop,HIL)是一种典型的测试方法。

~~~~~~~~~~

关于为什么要进行硬件在环仿真(HIL),前文已经做了详细介绍。

实时仿真之  快速控制原型(RCP)与硬件在环仿真(HIL)129 赞同 · 18 评论文章

简而言之,硬件在环仿真,是将真的控制器连接假的被控对象(用实时仿真硬件来模拟),以一种高效、低成本的方式对控制器进行全面测试。

一般而言,做HIL测试的前提是控制器已经开发好,需要在理想或安全的环境下,测试控制器的功能是否正常。在该应用场景中,实时仿真硬件(或者说HIL台架)充当被控对象,以实时的方式运行被控对象模型,并模拟各类故障等。实时仿真硬件(或者说HIL台架)本质上来说,就是要尽可能逼真地模拟真实被控对象,以有效地欺骗控制器,让控制器以为它正在控制一个真实的被控对象。

~~~~~~~~~~

HIL系统是通过实时主机运行被控对象的模型,并通过IO端口连接至被测的控制器。一般而言,HIL系统的IO通道方向与控制器的方向相反。

~~~~~~~~~~

HIL台架供应商有不少,每家的形式略有不同,本文以基于Speedgoat的硬件在环仿真测试HIL台架为例,进行介绍。

@二流半仙儿

兄台已经对此做了详细介绍,可以参看此文。该文侧重于测试流程,而本文侧重HIL台架本身,做一个入门、基础的介绍。

根据不同的需求,HIL硬件小则可做成桌面式,大则可做成机柜式。考虑到介绍的全面性,本文以机柜式为例。

1. HIL机柜看起来那么复杂,都有些什么东东?

~~~~~~~~~~

当我第一眼看到上图这样的HIL机柜的时候,我是懵的……上面一排排的面板、一个个的插孔,完全是丈二和尚摸不着头脑……然后打开机柜的门,看到里面的布线,就更懵了。

~~~~~~~~~~

以至于,在刚开始接触HIL的那段时间里,我看到机柜是发憷的,这玩意实在是太复杂了。但如果真的理清了它的结构,实际上整个HIL机柜也并没有那么复杂。一般而言,完整的HIL系统拓扑结构如下:

~~~~~~~~~~

为什么需要上图中这么多东东?我们可以来理一下思路:

HIL测试,首先肯定需要有一个被控对象的模型去模拟被控对象的状态,那么必然需要有一个处理器去运行模型,而且得是带实时操作系统的处理器,这就是第一个东东——实时主机(Real Time Target Computer)。

实时主机中运行的模型,是一个纯虚拟的东西。而控制器的接口是真实的电气接口,没法直接跟虚拟的模型连接。这时候就需要给实时主机提供IO板卡,虚拟的模型通过这些IO板卡获得真实的电气接口,用以跟控制器连接。

然而很多时候,控制器接口的电气规格和实时主机的IO板卡的电气规格是不一致的,比如控制器接口是24V的,而IO板卡接口是5V的,这时候就需要信号调理模块去将不一致的规格调理成一致,比如说把5V转换成24V。

真实的被控对象中,会有一些执行器被控制器所控制,这些执行器被称为负载。在HIL测试中,我们需要模拟这些负载,这就是负载仿真。

有时候为了让HIL机柜更接近真实的被控对象,会把一些真实的执行器和真实的传感器接入到HIL机柜中,所这就是Real Loads/Real Sensors,有些机柜会提供一个专门的负载抽屉来放置这些设备。

对于汽车来说,车上会有一个车载电源,给车内设备和控制器供电,因此HIL机柜需要一个设备去模拟车载电源,这就是HIL机柜中的程控电源,电源电压可以通过软件来控制。

真正开车的时候,传感器、执行器等等都有可能出现故障,比如短路、断路等等,HIL测试也要模拟这些故障,这就是故障注入模块。

这样一来,整个结构和原理就很清晰。我们再来更详细地说明下各个模块(并不是每个HIL系统都包括了所有以下模块,简化的情况下可能只有少数一两个模块)。

· Real Time Target Computer + IO(实时主机和IO板卡):实时系统的核心部分,主要是实时处理器加外围IO。这里的IO通道一般根据被测控制器的接口信息调整。比如当被测控制器的通道为模拟输入时,此时HIL系统一般配模拟输出,以此类推。在配置系统时需注意要预留一定的IO通道。

· Signal Conditioning(信号调理):信号调理模块,主要是因为控制器接口的规格和实时系统的IO规格可能不一致,所以需要一些信号调理板卡,将实时系统的IO规格转换成控制器所需要的规格。比如控制器的数字输入信号的规格是12V的,而实时系统的模拟输出规格是5V的,那么就需要一个5V转12V的信号调理模块。

· FIU(故障注入):故障注入模块,串接在控制器和实时系统IO线束上的开关矩阵,用于控制模拟控制器引出线束上的一些故障,比如短路、断路等。故障注入是HIL测试的一个重要环节,可以测试控制器在发生故障情况下的反应。

· Load Simulation:负载仿真。当控制器工作时,部分通道需要输出电流控制某些继电器、阀体等。如果将这些通道直接连接到实时系统IO上,由于实时系统IO的阻抗很高,不能产生足够的电流。因此需要在通道上连接一些负载,让控制器可以正常工作,不会被诊断存在问题。

· Real Loads/Real Sensors:当有一些传感器/负载无法有效模拟时,可以连接真实的负载或传感器。但真实传感器的信号需要由实时系统控制或读取,真实负载的驱动信号也要有实时系统读取,然后参与模型运算。

· 程控电源:由实时系统控制的供电模块,模拟车载低压电池的供电。同时该供电也是作为故障注入单元,负载仿真的参考点等。

· 上位机:上位机用于搭建模型、编译下载、监控模型运算,同时通过标定诊断工具,读取控制器中变量。运行自动化测试软件。

~~~~~~~~~~

2. HIL模型怎么建?

HIL机柜中需要运行被控对象模型,以模拟被控对象的状态。用户可以使用MATLAB和Simulink相关工具箱构建被控对象模型,Speedgoat HIL机柜支持将Simulink模型一键编译下载到实时处理器中。Simulink模型主要分为两类:数学模型(主要基于Simulink基础工具箱)和物理模型(基于SimScape)。

2.1 数学模型

MATLAB提供了各个领域的一些示例模型,供用户参考使用。比如在汽车领域,有燃油车、纯电车、混动车(P0/ P1/ P2/ P3/ P4 )。

~~~~~~~~~~

https://www.mathworks.com/help/releases/R2020a/autoblks/examples.html#d2e19www.mathworks.com/help/releases/R2020a/autoblks/examples.html#d2e19

Example List - MATLAB & Simulink

车辆参考模型www.mathworks.com/help/releases/R2020a/autoblks/examples.html#d2e19

参考模型是类似这样的:

~~~~~~~~~~

~~~~~~~~~~

2.2 物理模型

SimScape工具箱在电机、电力电子等领域使用尤其广泛。SimScape模型可在Speedgoat的CPU中直接运行,这部分内容我们不做详述。CPU因为本身的一些限制,导致无法将模型运行周期降低到亚微妙级别,这时候需要引入FPGA来运行这些高速模型。

Speedgoat结合MathWorks的HDL Coder,完美支持将SimScape模型运行在Speedgoat的FPGA中。

~~~~~~~~~~

~~~~~~~~~~

3. 一套HIL多少钱?

这是用户最常问的一个问题,在需求不确定的情况下,这个问题很难回答。一套HIL可能从几十万到上千万不等,完全取决于需求。一套HIL的费用主要包括以下三部分:

硬件的费用

硬件包括上文提到的实时主机和IO板卡、信号调理模块、故障注入模块、程控电源、负载仿真等等,如果这些模块都要配备,那么硬件的费用也不低,但基本很少会超过100万。如果要做自动驾驶的HIL,或者功率级、机械级的HIL,那么硬件的费用会非常高。

很多HIL测试的需求,其实没有那么复杂,负载仿真、程控电源、故障注入等等可能都不需要。这个时候,就不一定要集成为机柜的形式,可以直接将实时主机、IO板卡、信号调理模块等放在桌面上,做成桌面级的HIL,先对来说,成本能降低不少。

软件的费用

除了基础的MATLAB/Simulink,HIL测试中还需要实验管理软件、自动化测试软件等等,这些软件的总费用加起来也可能达到几十万。基于Speedgoat的HIL测试,基本上所有工作都是All in Simulink:实验管理软件用的是Simulink自带的Simulink Real-Time Explorer,自动化测试软件用的是Simulink Test。除了MATLAB/Simulink,可以做到无需额外的软件费用。

~~~~~~~~~~

服务的费用

服务包括:被控对象模型开发、闭环调试、测试用例编写等等。对于汽车行业,这些已经是比较标准的服务内容了,费用一般也不低。对于其他行业的应用,尤其是用户自己开发被控对象模型,那么也就不存在服务费用了。

总的来说,对于HIL测试,穷有穷的方案,富有富的玩法,一切都得先从需求谈起。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月27日

PHP abspath函数代码示例

PHP abspath函数代码示例本文整理汇总了PHP中abspath函数的典型用法代码示例。如果您正苦于以下问题:PHP abspath函数的具体用法?PHP abspath怎么用?PHP abspath使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。在下文中一共展示了abspath函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您

PHP魔术常量__DIR__备忘

PHP魔术常量__DIR__备忘概述:本文简要讨论在TP5.0中定义目录常量时,用到的PHP魔术常量__DIR__的含义及其它相关的用法。截止到PHP7.4,通过官方手册查知,目前PHP一共有八个魔术常量,分别为:__LINE__,__FILE__,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__。__DIR__ 是

热门专题

易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
云南巨榕教育投资集团有限公司|云南巨榕教育投资集团有限公司,巨榕教育集团,巨榕教育
云南巨榕教育投资集团有限公司
综合高中|云南综合高中,昆明综合高中,综合高中能考本一吗,综合高中和普通高中的区别,综合高中是什么意思,综合高中能参加全国统一高考吗,综合高中可以考哪些大学,综合高中的学籍是什么
综合高中
天麻的功效与作用吃法|天麻的功效与作用,天麻的功效与作用吃法,天麻炖什么治头痛最好,天麻的功效与作用禁忌,天麻多少钱一斤,天麻的功效与作用吃法及禁忌,天麻怎么吃效果最好,天麻粉的功效与作用,天麻怎么吃
天麻的功效与作用吃法
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
云南高职单招|云南单招,云南单招网,云南高职单招网,云南高职单招,云南单招学校,云南单招培训
云南高职单招
云南网站建设|云南网站制作,网站建设,云南网站开发,云南网站设计,云南网页设计,云南网站建设公司,云南网站建设
云南网站建设
易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部