基于CANoe/Matlab的纯电动汽车上下电控制过程仿真

2018-12-06 02:10辉,韩梅,胡清,王
汽车电器 2018年11期
关键词:离线总线整车

刘 辉,韩 梅,胡 清,王 颖

(陕西汽车集团有限责任公司技术中心,陕西 西安 710200)

CANoe (CAN Open Environment) 是德国Vector公司推出的一款用于总线网络开发、测试和分析的专业工具,在汽车电子行业应用广泛。Matlab/Simulink是美国MathWorks公司发布的一种可视化设计工具,它提供了一个动态系统建模、仿真和综合分析的集成环境,广泛应用于复杂控制过程和数字信号处理的仿真和设计。CANoe/Matlab联合仿真结合了CANoe完善的总线分析能力和Matlab/Simulink强大的图形化建模能力,使总线网络中各节点的控制算法得到准确描述,极大地提高了各控制单元通信功能的开发和验证效率。

本文基于CANoe/Matlab联合仿真工具,对纯电动汽车上下电控制过程进行仿真测试,验证控制过程的可行性和准确性。

1 CANoe/Matlab接口软件的安装和导入

Matlab版本的不同,与之相匹配的C编译器也有所不同,这会影响动态链接库dll的生成。因此,在CANoe/Matlab接口软件安装前首先应安装与所选Matlab版本相匹配的编译器,本文选择Matlab2012b,并选用VisualC++6.0进行编译。同时所选CANoe为7.2版本。

CANoe/Matlab接口软件的存储路径:(CANOE DEMOS)Demo_AddOnMatlab,运行Vector_AddOn_Matlab_Interface_V300.exe文件,其安装路径是默认的,安装完成后,Matlab/Simulink的模块库中会自动生成Vector CANoe的功能模块。

在Matlab/Simulink中建立控制单元模型,CANoe中对简单的节点功能可以通过CAPL(CAN Access Programming Language)编程来实现,Matlab/Simulink可以看作是CANoe中CAPL功能的扩展,它可以通过图形化的方式描述复杂的控制过程。Matlab/Simulink的Vector CANoe模块库提供了多种输入接口和与其对应的输出接口,这些接口模块是实现CANoe和Simulink联合仿真的关键,CANoe的环境变量、系统变量、总线信号都可以通过这些输入输出模块与Simulink模型进行数据交互。本文中所用到的整车上下电流程如图1中所示。

一般情况下,Simulink模型中控制单元的主体部分是相对独立的,输入输出模块在Vector CANoe模块库中选取,这些输入输出模块可以直接关联CANoe中加载的数据库文件或系统变量,如图2所示。

图1 整车上下电流程

图2 关联数据库文件

2 仿真模式的选择

CANoe/Matlab联合仿真提供了3种仿真模式:离线模式(Offline Mode)、同步模式 (Synchronized Mode)与硬件在环模式 (Hardware-In-The-Loop)。

离线模式是在Matlab/Simulink环境下运行的一种非实时仿真,是以Matlab的时钟为基准的,仿真的开始和结束都由Matlab控制。一般完全的虚拟仿真可以采用这种模式。

同步模式也是在Matlab/Simulink环境下运行的,但它的运行是以CANoe的时钟为基准的,CANoe总线中可以是完全虚拟的节点,也可以接入真实节点。离线模式和同步模式仿真时都需要在Simulink模型中添加“Simulation Step”模块并选择对应的模式,这两种仿真模式一般用于设计的早期阶段。

硬件在环模式是在CANoe环境下运行的一种实时仿真。一般运行复杂的模型或进行残余总线仿真时建议采用这种模式。

3 网络仿真环境的构建

3.1 创建数据库文件

利用CANdb++->Editor创建数据库文件,按照网络通信协议中定义的各信号参数编辑信号列表,然后对信号与报文、报文与节点之间的从属关系进行配置,硬线输入输出信号在环境变量中定义。将创建好的数据库文件导入到CANoe/Simulation Setup中,如图3所示。建议创建数据库文件时选择“Vector_IL_Basic Template.dbc”模板。

3.2 创建人机交互界面

仿真过程中可能需要对某些信号进行直接显示以便观测,也可能需要将外界的某些变量值输入到总线网络中。使用CANoe的Panel Designer功能,可以根据仿真需要创建友好的人机交互界面。

3.3 创建必要的CAPL程序

图3 加载数据库的仿真界面

CANoe的CAPL编程功能可以准确地描述节点在总线上的动作。在CANoe/Matlab联合仿真中,目标节点的控制过程由Simulink模型来实现,但对一些必要的底层触发条件或不同节点之间信号的关联关系则需要通过CAPL编程来实现,如图4所示,本次仿真过程中,BMS的充电状态需要设置为键盘事件触发发送。

图4 CAPL程序编辑界面

4 CANoe/Matlab联合仿真的实现

开始仿真之前,还需对Simulink模型的求解器参数进行配置,如果要用到硬件在环模式仿真,还需要对代码生成参数进行配置。

4.1 在Matlab/Simulink环境下运行仿真

离线模式仿真和同步模式仿真都需要在Matlab/Simulink环境下运行,仿真模式由“Simulation Step”模块控制。仿真的启动和结束由Matlab/Simulink控制,仿真启动时会自动关联到CANoe,在CANoe的Trace窗口即可观察到总线数据。离线模式仿真是以Matlab为主体的,CANoe默认工作在Simulation Bus模式;同步模式是以CANoe为主体的,CANoe的工作模式Simulation Bus或Real Bus是根据CANoe的实际仿真方式来设置的。

4.2 在CANoe环境下运行仿真

硬件在环模式的仿真需要在CANoe环境下运行。首先需要在Matlab/Simulink环境下编译目标节点的Simulink模型,生成面向CANoe的DLL文件,模型编译前需要选择好合适的编译器并且要将当前的工作路径设置为模型所在的文件夹。编译完成后生成的DLL文件和配置文件会自动保存到xxx_cn_rtw/Release文件夹下。如图5所示,将生成的dll文件、ini文件和创建好的mdl文件导入到CANoe的目标节点中,根据实际需求对CANoe的配置参数进行设置。

完成上述联合仿真的准备工作后,即可以在Matlab或CANoe内运行仿真。

图5 加载DLL文件

5 联合仿真结果分析

5.1 Matlab/Simulink环境下运行的离线模式仿真和同步模式仿真

在Matlab/Simulink中启动仿真,通过CANoe/Panel面板上钥匙开关、挡位状态的切换和键盘触发BMS充电状态的切换,观测整车状态值的变化是否符合设定要求。图6和图7分别是离线模式和同步模式下的仿真Trace界面。

图6 Matlab/Simulink环境下离线模式仿真

图7 Matlab/Simulink环境下同步模式仿真

由仿真运行结果可知,相同的输入条件下离线模式和同步模式的仿真结果是相同的。需要注意的是,当CANoe选择Real Mode时,同步模式仿真只能在真实总线条件下运行。

5.2 CANoe环境下运行的硬件在环模式仿真

使用硬件在环模式进行整车上高压流程的仿真,当整车状态满足:钥匙开关key=3(Start挡)、挡位信号Shift=3(空挡)、充电状态Charge=0(未充电)条件时,则整车应进入预充电状态Vehicle_Status=4,如图8所示。

整车进入预充电状态后,检测电池状态BatStatus、电池电压BatVol、电机状态MotStatus、电机电压MotVol是否满足设定要求 (此过程由CAPL程序执行,并输出上电指令Vehicle_UpPower=1,表示整车上高压完成,已进入准备就绪状态),此时通过Panel面板控制挡位信号Shift=2(倒挡)或Shift=4(前进挡),则整车应进入正常运行状态Vehicle_Status=8。仿真结果如图9所示,与模型控制策略完全符合。

图8 整车上高压流程仿真界面1

6 结论

图9 整车上高压流程仿真界面2

CANoe/Matlab联合仿真结合了CANoe和Matlab各自的优势,既可以进行完全的虚拟仿真,也可以进行硬件在环仿真。从仿真结果可以看出,3种联合仿真模式对纯电动汽车上下电控制过程的验证是可行的,得出的仿真结果具有较好的一致性,CANoe与Matlab联合仿真能够满足控制单元开发过程中应用层协议和控制策略的测试与验证需求,能极大地提高开发周期和效率。

猜你喜欢
离线总线整车
基于滑门MPV的整车宽度优化
基于六自由度解耦分析的整车悬置设计
人机工程学在整车设计生产过程中的应用
基于启停控制系统的整车安全性策略
基于卷积神经网络的离线笔迹鉴别系统
关于CAN总线的地铁屏蔽门控制思路论述
新版Windows 10补丁离线安装更简单
好进难出 应对迅雷“口袋战”
Q&A热线
PCI9030及其PCI总线接口电路设计