CANoe软件使用(四)——CANoe与Simulink联合仿真

CANoe软件使用(四)——CANoe与Simulink联合仿真

    • 前言
    • CANoe和Simulink联合仿真
      • 插件安装
      • simulink设置
      • CANoe设置

前言

在介绍CANoe和Simulink联合仿真之前,先熟悉下汽车软件开发过程中的V模型流程开发。推荐如下文章,简单介绍了MIL/SIL/PIL和HIL等相关概念。

https://www.ind4.net/html/news/newsDetail_7007.html.
http://www.ind4.net/html/news/newsDetail_7030.html.
基于模型的设计(MBD)汽车软件流程总结大概流程如下:
1、基于功能需求,搭建对应Simulink模型
2、将模型转化为C代码
3、将C代码进行编译,通常为.o或者lib格式文件
4、编译后软件集成,通常为hex格式文件
5、将hex文件刷写至ECU中,测试标定
(涉及到一系列的工具链使用,包括代码生成,包括编译,包括软件集成,包括测试标定等等。。)

此时,会有一个问题:
CANoe可对信号进行简单收集处理,若是我想基于CAN通信上现有的信号,想做复杂的控制运算(通过simulink实现),之后我又想在通过CANoe实时查看simulink运行后的结果是否可行。这样的话,我可以随时的修改simulink模型逻辑,实现控制算法的验证。就直接避免了一系列的开发流程,做到提前快速验证模型的算法,类似快速原型的开发。(控制器是虚拟的(simulink),控制对象是实际的(实车车辆))。
比如,基于四轮轮速和加速度信号,通过simulink计算当前车辆的参考车速

CANoe和Simulink联合仿真

插件安装

simulink既然可通过CAN信号进行计算,那么第一步,必须安装插件让simulink可识别到CAN网络中的信号

1、安装Vector_AddOn_Matlab_Interface
在这里插入图片描述
2、安装好后,simulink中library中会出现CANoe库,打开后可添加输入信号和输出信号至simulink中
注:
1、matlab安装路径必须不能包含空格,否则无法安装成功插件,建议直接安装在D盘目录下,不在program files中。
2、输出的信号(此信号可通过编辑DBC,添加虚拟节点输出)参考之前文章进行DBC的信号、报文、节点的编辑

https://blog.csdn.net/qq_29786089/article/details/106817656.

在这里插入图片描述
此时,可根据你的需求搭建simulink模型,并通过插件导入CAN网络信号。
在这里插入图片描述
注:导入和导出CAN网络信号时,需要同时打开CANoe软件并导入编辑好的DBC,否则无法识别

simulink设置

在solver中设置求解,因为是实时运行,所以设置stop time为无穷大,模型运行是周期离散的,设置固定步长和离散求解
在这里插入图片描述
在Code Generation中进行设置选择CANoe接口cn.tlc,下面的设置基本不用变,系统自动根据cn.tlc进行配置
在这里插入图片描述
在Inteface中选择C89/C90(ANSI), Interface中选择C API 如下图红色标注设置
在这里插入图片描述
设置完毕后,进行编译,会生成dll文件和ini文件
注:生成.dll文件, Matlab需要有对应的C编译器
在这里插入图片描述
在这里插入图片描述

CANoe设置

在simulation setup 选择Insert Network Node,之前已经完成从simulink输出的CAN信号报文节点等信息的编辑
在这里插入图片描述
右键单击选择 Configuration,选择simulink,把simulink模型中生成的dll文件和ini文件导入:
在这里插入图片描述
设置完成后,及可关闭simulink模型,实时运行CANoe,通过Graphic查看从simulink输出的信号。