Simulink与树莓派联合仿真(HIL平台搭建)

Simulink与树莓派-HIL(硬件在环)平台搭建

1. 序

最早知道树莓派能够和Simulink进行连接,是无意中看到的一个simulink网上研讨会的视频,基于Simulink的树莓派开发板(Raspberry Pi)编程,还记得当时看完之后心潮澎湃,这简直就是一个HIL平台啊,不了解汽车电子的童靴可能不是很清楚,最近这几年,各大厂商已经逐渐拥抱AUTOSAR软件架构,并用MBD(Model based design)的开发方式替代传统手写C语言,简单来说,就是使用搭建模型的方式进行软件开发,然后再利用工具生成嵌入式级的c代码,编译好后烧到板子里。

而就目前情况来看,MBD工具主流只有Simulink,在研发和测试阶段,需要依次进行:

  • MIL : 模型在环仿真,可以理解为在PC上直接进行Simulink模型仿真测试
  • SIL : 软件在环仿真,与MIL不同的是,在PC上,使用模型生成出来的C代码,并在电脑的环境下编译(此处注意,不是交叉编译成嵌入式芯片的二进制文件,而是在PC环境下编译成可执行文件),然后使用编译好的程序进行仿真测试
  • PIL : 处理器在环仿真,使用项目用到的MCU,搭载到特定的开发板上,进行仿真测试
  • HIL : 硬件在环仿真,使用真实硬件,进行程序的仿真测试

其中,MIL 和 SIL 在PC上使用Simulink就可以顺利完成,但是PIL和HIL这两步,差不多要投入百万RMB才能建的起来(买dSPICE或者其它专业厂商做的配套工具),所以,当笔者看到,Simulink模型能够在树莓派上跑,而且还能通过网络连接PC,进行在线仿真联调时,真是内心小激动了一把,这种300块钱的HIL平台简直不要太好!

好的,话不多说,接下来本文会详细指导,如何使用Simulink与树莓派进行连接,搭建简易的HIL平台。

2. 准备工作

本文所介绍的内容和方法,基于如下环境:

  • Matlab 版本 2017a
  • 编译器 Microsoft Visual C++ 2012 (C) (可以选择其它编译器,只要matlab支持就行)
    Simulink与树莓派联合仿真(HIL平台搭建)

  • 树莓派 ,版本为 3b,添加了外壳散热内存卡和摄像头
    Simulink与树莓派联合仿真(HIL平台搭建)

  • Mathwork账号,可以到官网上免费注册,有了账号才能下载Simulink支持树莓派的相关工具包

3. 下载适配包

  • 选择 附加功能 -> 获取硬件支持包 ,然后再弹出的页面点击安装,这一步比较耗时,因为要下载716mb的内容。
    Simulink与树莓派联合仿真(HIL平台搭建)
    Simulink与树莓派联合仿真(HIL平台搭建)
    注意: 如果安装失败需要看界面提示,例如我使用的是matlab2017a的版本,是会报下载第三方软件支持包失败的错误,到官网上查找,发现有这个bug报出,并有一套解决方案,解决方案如下链接-1741173,就是下载一个attachment_1741173_13b_through_17a_win64_2018-03-08.zip的包,然后把包里的内容替换掉matlab安装目录中的内容就行。

  • 针对连接mathwork官网网速奇差的童鞋,我这边分别把下载好的树莓派硬件支持包,和bug修复补丁文件上传到了百度云上。

4. 配置连接

  • 安装好插件之后需要进行配置,配置的时候需要注意,如下在进行连接选择的时候,选择使用网线进行直连,从选项可以看出,树莓派与simulink的连接支持中继网络,无线wifi,和自定义设置,为了稳妥起见,我们还是选择使用网线进行单线连接。
    Simulink与树莓派联合仿真(HIL平台搭建)

  • 配置好之后,需要把配置生成的树莓派定制系统烧写到TF卡上,这步需要用到读卡器来读写TF卡。
    Simulink与树莓派联合仿真(HIL平台搭建)

  • 烧写好之后,把TF卡插到树莓派上,然后在matlab上进行连接测试。如下为测试连接成功,可以进行后续联调仿真的操作。这一步需要注意,如果对linux的CLI界面操作不熟悉,就需要把如下截图中的信息记录下来,如果比较熟悉可以连上显示器键盘,直接在树莓派的linux系统中查看和修改下面的信息
    Simulink与树莓派联合仿真(HIL平台搭建)

5. 简单测试模型搭建

首先要确保树莓派硬件支持包已经成功安装,并且主机PC能够和树莓派进行正常通讯。

  • 确保硬件支持包正确安装,可以查看simulink library中是否有相关的库模型导入。
    Simulink与树莓派联合仿真(HIL平台搭建)

  • 确保主机和树莓派正常通讯可以使用ping命令,ping (树莓派的IP address)
    Simulink与树莓派联合仿真(HIL平台搭建)

确保如上两点成功后就可以进行模型搭建了,如下搭建了一个摄像头仿真的模型,并成功进行了上下位机联调仿真。

  • 模型及仿真结果如下
    Simulink与树莓派联合仿真(HIL平台搭建)

  • 树莓派实物连接图,可以看到摄像头在运行的时候会有功能指示的小红灯一直在亮,另外树莓派3b型号发热还是挺严重的,贴片散热一定要加,风扇可以暂时不加,我个人这边实际测试,风扇噪音还是有些大的,所以把风扇电源线拔掉了
    Simulink与树莓派联合仿真(HIL平台搭建)
    Simulink与树莓派联合仿真(HIL平台搭建)

至此,一个使用树莓派的简易HIL平台搭建完毕,后续使用模型进行GPIO控制,PWM输出,控制算法实物仿真啊等等,都可以进行拓展。