HiL环境搭建及仿真调试

前言

HiL硬件在环就不详细介绍了,汽车电子行业的大多都有耳闻,根据实物仿真度的多少可以简单概括为3种:

  • 信号级,除了ECU是实物,被控对象完全虚拟化,这种比较适用于简单场景的被控对象或者说被控对象的零部件比较珍贵(比如航空航天业)
  • 驱动级,除了ECU外,被控对象中的执行器也成为了实物,其余为虚拟化,这种是最常见的,代表有dSPACE,NI
  • 系统级,除ECU外,被控对象基本用实物,仅环境是虚拟化的,比如测电机,电机本身是实物,车辆传动系统和驾驶员是虚拟化的模型,这种适用于对测试精度有要求的场景
    上面虽然列举了三种形式的HiL,但从结构上看,都是“ECU+仿真机+执行器(可选)”这样的一个回路。

环境组成

我们常说的HiL环境是不包含ECU的,所以这套环境的开发主要集中在仿真系统的开发上,可以细分成以下几个部分:

  • 仿真系统,为硬件部分,包括可编程电源、IO板卡(驱动、采集、通讯)、主控机柜(含实时OS)、调理电路、外壳结构件
  • 模型系统,被控对象逻辑计算及物理特性仿真,可以是同一种模型搭建比如Simulink,也可以是异构的(高精度模拟),比如Simulink+GT+AMEsim等,具体根据被控对象结构及功能来划分
  • 操控系统,包括上下位机,一方面提供用户界面,另一方面集成了各类板卡驱动及OS的调度
  • 负载系统,被控对象的各执行器回路
  • 其他,电气线束,BOB(断线盒/故障注入盒)
    HiL环境搭建及仿真调试_第1张图片
    从上面可以看到,如果完全要正向开发一套HiL系统,需要软硬件开发、模型开发、结构设计、电气开发、系统集成、测试认证等多个领域人才组成团队,而一般HiL用户是不太可能在开发控制器的过程中又去开发测试系统的,所以大多数情况HiL设备供应商都会打包提供,只有小部分需要客户做下适配。

搭建过程

需要做适配的那部分工作对HiL用户而言就是搭建控制器HiL测试环境的过程,供应商提供的设备至少保证在通道的类型和数量上涵盖了用户需求,并且完成了端到端的电气测试(避免信号间短路、开路)以及整个系统的功率过载能力、EMC、耐久等可靠性测试,至于模型部分看具体采购合同,可以全包,也可以只提供基础版本由用户自己完善,或者干脆提供案例和接口供用户移植自己的模型。剩下需要用户自己做的包括:

  1. ECU接口硬件匹配,根据PIN脚定义制作接插件,和HiL上提供的对接头吻合。这里可能是用户提前提供了ECU针脚定义,HiL供应商做好了接头可以直接用,但对于多项目公用HiL设备的情况,建议还是要做转接头,如果没有BOB建议也加上。
  2. ECU接口通信检查,这部分相当于HiL供应商信号自检的拓展,即原来他供货时保证了HiL输出的信号是对的,那加上上面的转接头和BOB后,要确认ECU是否接收到的信号是对的,同样ECU输出HiL接收到的是否正确,这里还涉及到电气信号和物理信号的转换,还包括CAN信号。如果条件允许,此时还能进行故障注入的测试,这些还涉及到一部分上位机使用,需要调用一些控件模块显示及控制,甚至编写测试脚本来调用API。
  3. 搭建或者移植被控模型,即使用户已有较成熟的被控模型(如MiL阶段使用的),但到了HiL还是需要做较多的适配工作的,一方面是要兼容HiL下位机底层库的接口,另一方面可能存在一些环境限制,比如编译器的原因导致标定量需要满足特定命名规范,又或是版本兼容性原因导致原有模型使用的有些模块不支持。除此之外,更难的可能还是对模型实时性的要求,MiL阶段模型单步仿真时间可长可短,到了HiL就没有这么自由了,必须严格满足ECU处理需求否则就没有HiL的意义了,这会导致模型做进一步精简,也可能要牺牲掉一些精度,需要取得一个平衡。这也是上面说到的异构模型的优势,因为数据模型运算一般是最快的,而物理模型相对较慢,如果通过详尽的试验数据拟合出部分变量间关系,那计算量可以大大减少,超时的可能性就降低了。
  4. 模型可以跑起来后,还需要把相关的零部件负载给接上,这样整个系统才完整,通常是执行器需要实物,而传感器可以用IO板卡代替,虽然相对简单,类比于DIY一台主机,里面的各个零部件间需要布线整齐,贴上标签易于分辨,除了检查短路/开路,还要考虑散热,甚至有些零部件比如后处理SCR的尿素喷射系统还要做水电隔离。
  5. 以上一切都做妥当了,可以尝试弄个Demo来简单测试下系统了,这个过程中会进一步完善上位机的UI界面,暴露方方面面的问题,大部分是来自HiL测试环境,此时如果能测到ECU的Bug那就更值了。
    所以别以为HiL买来了就能用了,即使熟练的团队从头弄好一个环境可能还是要搞个一两个月的。当然上面说的还是看HiL用户自身的能力或者实施成本,有时候全包给HiL供应商也是一种可行的选择。

仿真调试案例

自己有幸参与公司第一台dSPACE采购并组织了HiL搭建环境,还主导了第二台dSPACE的采购及并规划搭建,其实不管dSPACE还是NI、ETAS、Vector,这些大牌厂商都有完善的工程技术服务,并且由于市场占有率大,各家积累的经验也比较多,资料也很全面,实施难度相对小,所以这里想说个我经历过的一个相对小众的设备品牌——Speedgoat,其实它来头也不小,该厂商为Mathworks联营,由Mathworks前员工成立,因此对Matlab/Simulink那是原生支持。
我接触到这个设备是因为有个项目需要搭建一套燃料电池控制系统的展示环境。而搭建过程稍微特殊一点,包含了两大阶段:原型调试阶段,HiL机柜移植阶段。
原型调试阶段中,快速原型设备不仅用于模拟ECU(FCCU),也用来代替HiL机柜,运行模型输出信号,信号交互通过以太网UDP协议。这阶段主要目的是调试模型以及上位机界面,所以信号是否真实就不是那么重要,没有通过电气信号进行转换。和传统的HiL类似,第一步也要做信号接口匹配,只不过简单得多,一切都可以在matlab中通过模型配置,收发信号的数量及定义一一对应,还有注意单位转换,测试时只需要给一端的模型中设定测试值,再另一端的模型中查看确认接收值,也可以做到上位机中去检测,更为方便些。设备还提供了运行性能监控,能够记录最大运行周期,当有超时时就比较容易看到甚至可以中止运行,对于调试模型还是挺方便的,当发生模型超时,常用的一个方法是检查模型中不同模块的仿真速率,如果复杂的模块仿真步长又很低,计算量会很大,通过Rate Transmission模块协调不同速率。由于项目目标要展览用,上位机人机界面不能太差,但自认为已经发掘了Simulink Real-Time explorer的90%以上的潜力,GUI也只能做到60分(见下图) ,这算是这套系统一个比较大的不足了,好在看到Matlab2020b中可以扩展支持基于APP Designer的GUI设计了。
HiL环境搭建及仿真调试_第2张图片
HiL机柜移植阶段就容易得多了,因为HiL仿真系统的硬件性能更强大,快速原型机中模型计算比较吃力的部分在HiL仿真机都毫无压力了,只要把信号接口调配好就基本没有什么大问题。
为了优化演示效果,还写了一些matlab脚本调用Simulink Real-Time的API方便系统仿真的启停,还预留了标定界面供观众尝试,测试循环的加载则通过GUI的控件绑定变量实现。最终这套系统在Testing Expo2020上海成功展示。

HiL展望

现在基本在汽车电子各个领域都能见到HiL的身影,从传统的动力总成、底盘转向,到各类新能源,再到智能驾驶,HiL技术的应用无处不在,这是个好事情,说明有大量的开发成本和时间被节约了下来。但后面除了不同领域外,HiL技术还有什么应用可以拓展呢,我能想到的一个是“虚拟标定”,这源自我自己负责的一个开发项目,它的意义在于采用高精度的模型为基础构成高实时系统,可以让相当一部分的标定工作在HiL设备上进行,从而HiL的应用从测试领域拓展到了标定领域。
作为虚拟化技术的一种,HiL是立足于虚实结合的,只要我们还在物理世界中生活就有其存在的必要,真哪一天我们都把思维转移到数字世界中生活了,那时候HiL就不再存在了。

你可能感兴趣的:(技术天地)