本文介绍TSMaster 从零打造车辆控制器HIL实时仿真系列第五章节,继续介绍控制器实时HIL的实现。
一、HIL硬件在环
ABS算法仿真和车辆模型的运行,它们的功能并不是简简单单地绘制曲线,搜集运行数据,而是有着更深层次的目的,那就是与外部世界联动,将输入和输出数据完完全全暴露在真实世界中,达到HIL的真正目的—硬件在环。
与外部世界交互这个过程可以说十分简单,只需要为此专门设计一个dbc文件,加载到TSMaster中,再将系统变量中的内容映射到总线上即可。
在此我准备了一个简单的dbc文件,它包含四个轮速,还有四个轮缸压力信号。我们将其拖入tsmaster中。
再打开RBS,让剩余总线仿真接管这些信号的发送。
随后我们打开硬件通道选择器,将CAN通道选择为同星的一款总线工具—TC1005作为演示,TC1005的通道1和通道2互相连接在了一起,确保发出的报文可以被正确应答。
我们启动RBS,打开Trace窗口,就可以看到我们需要的信号都在总线上以预定的频率发送着,当然这些信号由于没有更新,初始值都是0,下一步就是做信号绑定,将系统变量中的值传给这些信号。
首先停止仿真,回到我们的算法小程序,添加预发送函数,接管轮速和压力报文的发送过程,这意味着每当报文即将被发出,系统都会调用这些预发送函数,我们只需要简单地在这些函数内更新我们所需的信号即可。
我们试着赋一下值。最后我们在图形窗口中,添加需要观测的CAN信号,包括速度信号和压力信号等等。
至此,我们完成了所有所需的信号的预发送函数,是时候启 动整个仿真过程了,还是同样的流程,连接TSMaster的应 用程序,点击自动化模块的启动按钮。可以看到车辆正在运行过程中。
随着程序的运行,我们可以实时观测到总线上活跃的轮速和 压力信号,这些信号就最终与真实世界发生了交互。
二、实现车辆控制器的HIL仿真
有了前面的基础,可以说此时我们真正踏入了HIL实时仿真的大门。使用这一整套流程,以不变应万变,实现各式各样的车辆控制器的HIL仿真。
举个简单的例子,倘若我们需要对所开发的ibooster进行HIL仿真,ibooster是真实的ECU。我们就需要导入这个ibooster的所有网络的dbc文件,用我们的RBS将它所需的信号全部仿真出来。
而要仿真信号,最简单的方法则是,在RBS仿真界面上,选中我们所需的ibooster节点,点击右键,一键自动生成HIL配置,这步操作可以自动激活ibooster依赖的其他节点和报文。
其次,来到小程序中,通过预发送函数,构造此节点所需的各类总线信号。
再接下来就是一些硬件的信号,比如遇到踏板信号,可以通过电缸自动化接口或是定制的 API实现。
同时,如果遇到IO或通断信号,则通过我们的IO板卡和继电器 板卡API实现;
如果是遇到轮速等特殊传感器信号,则通过我们的轮速模拟板卡API实现;
如果遇到电源电压的控制,可以使用可编程电源配合API 的方式实现;
最后,我们可以打开自动化模块,编写一系列用例,来对我们的产品进行各种可能的测试。
当然,这一切背后还有个重要的前提,那就是软件之外的一切准备工作,也就是ECU机械和液压负载必须提前准备完毕。
只要上述内容都就绪,那么便可以设计并最终执行无人值守的全自动化参数遍历和测试,在测试结束后,再通过预先配置的信息,实现测试报告的一键自动生成。
最后的实现内容,由于细节过于繁杂,实现方式各异。我们有理由相信,基于TSMaster的这一整套仿真架构,小伙伴们也可以发挥自己的聪明才智,设计出各式各样的HIL实时仿真系统。