由于MATLAB Scopes可视化功能有限,不足以支持工程师进行详细的数据分析。优化模型参数的过程费时费力——需修改MATLAB Workspace中的值或生成特定的GUI元素。为此CANape推出的Simulink XCP Server功能,针对Simulink模型以及ECU内部数据的参数化和可视化,让模型调参变得简单。并且从CANape19.0版本起,该功能面向所有用户,不需额外选配,所以开发人员可以充分利用它们各自的优势,实现更加高效和精确的开发过程。

1.CANape Add-On插件的安装

安装过后,运行matlab后命令行窗口会弹出如下界面。

成功安装Add-on插件后,可以在Simulink Library Browser库中看到CANapeI/O模块,如下图所示。

2.模型搭建
搭建Simulink模型时,我们通常需要将整车CAN的信号作为输入信号,将DBC中的报文信号通过与CANape的Input模块关联起来,如下图所示。

Simulink的不同模块可以使用Function-Call来设置调用周期。

输出信号可以使用CAN FD Pack模块将相关接口信号按DBC中的规则组成报文,随后传至CANapeOutput模块进行输出。


报文输出时,需要对该报文进行CRC校验,CRC校验算法由主机厂输入,我们需要根据该算法及DBC文件中的规则计算出相关报文的CRC值,如下图所示。

该实例中的CRC算法如下:
3.模型编译生成dll文件
打开设置,选择code Generation,之后选择系统目标文件与编译语言,目标文件选择与CANape相关的cnp.tlc,编译语言选择C语言。

之后配置dll文件的存储地址,可勾选同时生成A2L文件。

按下图配置模型运行的周期。

4.CANape导入dll文件
打开CANape工程,点击Measurment Configuration,之后在Algorithms下面的Matlab/Simulink中右键选择Insert Matlab/Simulink,将生成的dll文件导入,如下图所示。


5.Input/Output信号相关联

之后筛选出未关联的outputs量,与Global variables进行关联,输出的CANFD报文可与CANape Function中创建的报文相关联,如下图所示。

按下图所述规则编写CAN报文发送函数function MessageOut_ADAS_CMD_20_20ms (),确保可正常编译。

在measurement中将MessageOut_ADAS_CMD_20_20ms添加至Functions模块,并设置为周期型20ms(需按照DBC中报文定义进行设置)。

文章转载自公众号:智驾人在路上
作者:Yang00168原文链接:https://mp.weixin.qq.com/s/Ta0D3_x5Ha0wUnYDuJNjfQ
