CANoe 在整车系统开发测试中的应用
2019-09-11王永辉
王永辉
(比亚迪汽车工业有限公司,广东 深圳 518118)
引言
CANoe 是德国Vector 公司出的一款总线开发环境,全称叫CAN(控制器局域网) open environment,主要用于完成总线通信网络的建模、仿真、测试和开发工作。
本文主要工作为针对CANoe 在整车控制系统开发过程中,涉及的几个方面的应用,主要包括以下内容:(a)CANoe/MATLAB 联合仿真;(b) ECU 软件集成测试;(c) 数据监测分析。
1 CANoe/MATLAB 联合仿真
基于CANoe/MATLAB 的联合仿真,需要先在CANoe的安装路径下安装Vector_AddOn_Matlab_ Interface_ V513.exe,安装完成后,在MATLAB/Simulink 中会出现Vector CANoe 组件,CANoe 与Matlab/Simulink 通过这些组件实现数据交互,数据交互的内容包括:信号、系统变量、环境变量、CAPL(类C 语言的程序语言)函数。然后在MATLAB/Simulink 中建立控制单元模型,并将该模型导入到CANoe中,测试验证控制单元模型的功能逻辑。
采用CANoe/Matlab 联合仿真,需要完成以下工作:(a)建立网络数据库(DBC 文件);(b)建立联合仿真模型;(c)建立网络拓扑架构和仿真面板。
1.1 建立网络数据库
根据整车系统通信矩阵定义,使用用CANoe 软件的CANdb++编辑器创建整车CAN 网络数据库文件(DBC 文件)。数据库文件中包括了CANoe 所用到的信号信息,包括了报文和信号的网络节点和符号名称,以及环境变量等信息。
新建DBC 文件时,选择Vector_IL_Basic Template.dbc模板,在CANdb++Editor 新建信号和报文,并填写信号的相关参数信息。然后再创建节点,并在信号、报文、节点都建立好后,建立节点之间报文的收发关系。
完成节点间的收发关系后,根据通信矩阵中时间周期等的定义完成Attribute Difinitions 和报文中Attributes 发送接收的参数定义。这样,就把完整的数据库建立好了。
1.2 建立联合仿真模型
在Matlab/Simulink 中,建立整车控制单元模型作为网络中的1 个节点。将原Simulink 模型的输入输出模块替换成CANoe/Matlab 接口库中的相应模块,并添加离线模式模块。
整车控制单元需要的输入信号包含开关量信号(比如点火状态和档位状态)、模拟量信号(驾驶员的加速踏板信号值、制定踏板信号值)和CAN 信号(包括电池管理单元、发动机控制单元、发电机单元等)。本文以整车控制单元中的发电模块为例,完成CANoe/Matlab 联合仿真功能。
如图4 所示,环境变量中的时间模块ignition 是模拟汽车的启动信号,该事件触发,整车即进入正常上电流程,上电完成后整车即进入到正常行驶状态(由于该模块仅为发电功能模块,所以默认启动ignition 后,均满足上电条件,整车到Ready 状态)。环境变量Acc_act 和Brk_act 用于模拟驾驶员的加速和制定信号,其他的Signal input 和Signal output分别用于接收和发送相应的CAN 信号。然后把这些信号和上一步骤建立的网络数据库(DBC 文件)关联起来。
图1 联合仿真模型例子
1.3 建立网络拓扑架构和仿真面板
根据整车实际网络拓扑架构搭建各控制单元节点,本文按照发电功能仿真案例搭建与该功能的交互模块,网络拓扑架构如图2 所示。
图2 网络拓扑架构
然后将CANoe/Matlab 联合仿真模型编译生成DLL 文件导入到CANoe 的VCU 的Node Configuration 中,完成联合仿真模型的搭建。
最后,利用CANoe 中的面板编辑器(Panel Designer)创建用户操作界面和显示窗口。面板编辑器用于创建图形面板,在图形面板中可以在模拟测量的设置中方便地改变离散或是连续的环境变量的值。
根据该发电功能测试的输入输出,建立的控制面板如图3 所示。
图3 功能测试控制面板
2 ECU 软件集成的功能测试
在CANoe/Matlab 联合仿真阶段,主要完成的是MIL(模型在环)测试,验证控制算法模型是否准确的实现功能需求。ECU 的功能测试则为半实物仿真测试,在软件集成烧录到整车控制单元后,在CANoe/Matlab 联合仿真搭建的网络拓扑上把该控制单元(VCU)冻结,然后用CANoe 和VCU 的CAN 通道相连,接上电源,建立通讯。其他网络数据库(DBC文件)和仿真面板沿用前面CANoe/Matlab 联合仿真搭建的模型即可。通过总线接口与CANoe 上剩余的虚拟节点相连接,来测试真实节点的功能逻辑。
该测试步骤主要完成整车控制单元的PIL(控制器在环)测试,在目标控制器上验证代码实现的功能是否与模型一致。把整车控制单元系统功能测试在CANoe 环境下完成,能够大大缩短整车系统开发测试的时间,也能够保证功能测试的准确性和便利性。
3 数据监测分析
在数据监测分析阶段,所有节点均为真实的物理节点,CANoe 完成数据监控与回放分析的功能。通过该测试阶段,能够验证整车系统的功能开发与仿真测试结果是否一致。
在该阶段,CANoe 完成数据的实时采集,通过建立的网络数据库文件,在Graphics 窗口中能够实时监测解析后的物理量值,完成功能逻辑的测试验证。在数据采集后,通过Measurement Setup 窗口中,选择离线分析模式,导入保存的数据文件,运行CANoe 环境,也能够实现数据的回放再分析功能。在主窗口中,通过Tool 下的Logging File Conversion功能模块也能把数据导成.mat 或.csv 等格式,然后通过Excel或者Matlab 等脚本文件完成数据处理分析,验证功能是否满足需求定义以及性能相关的标定量优化。
4 总结
随着汽车电子的快速发展,整车系统中电子控制单元数量急剧级攀升。CANoe 作为强大的网络分析与系统仿真工具,能够为整车系统开发测试过程中的模型测试、ECU 软件集成测试以及数据监测分析阶段提供强大的支持,大大缩短整车系统开发测试周期。
当然CANoe 的功能不仅包括本文介绍的这些内容,在结合CANScope、VTSystem 等工具或CANdela Studio、Diva插件能够完成更多的仿真测试与诊断工作。本文介绍的应用可为整车系统开发测试提供参考。