APP下载

纯电动汽车驱动控制策略快速集成研究

2023-06-08周福亮毛建国闫志伟

关键词:应用层挡位踏板

沈 峘,周福亮,毛建国,陈 伟,闫志伟

(南京航空航天大学 能源与动力学院, 南京 210016)

0 引言

纯电动车控制器(VCU)作为纯电动汽车的核心,担任着兼顾全局、协调各方的统领角色:负责采集整车信息并解析驾驶员意图来实现汽车驱动,管理整车状态、整车部件、能量流向以及故障的诊断与处理[1]。随着当前汽车功能的不断丰富,汽车电控系统代码体积也愈发庞大,“软件定义汽车”已经成为未来汽车的发展趋势[2]。目前,以VCU为代表的汽车电控单元开发多基于V模型开发,这种开发模式借助相关工具链可以自动生成应用层代码,所以更多学者将研究重点放在复杂的算法上[3-5]。这种开发方式与传统的手动软件开发相比提高了开发效率,但对于底层代码开发仍然需要手动编写,且在与应用层代码集成时需要预留接口变量,过程繁琐,容易出错,仍然没有实现软件开发的最优化[6-8]。为了进一步提高嵌入式软件的开发效率,Math-Works公司和Ti、恩智浦以及ST等芯片公司联合开发了相关芯片底层驱动支持包[9-11]。借助此类底层驱动支持包,即便用户在不熟悉单片机外设和寄存器的条件下也可快速开发单片机。由于底层驱动模块不支持在Simulink中进行数据仿真,其在模型输入/输出信号较多的情况下会进一步加大模型的复杂程度且容易出错,故在一些复杂场景下底层驱动支持包未得到更广泛的应用。

基于上述问题和启示,对较为复杂的VCU软件的全自动化集成问题展开研究:在Simulink中搭建整车控制策略应用层模型之后,借助ST官方提供的STM32底层驱动支持包——MAT/Target和STM32Cubemx软件,研究外设驱动的配置、应用层模型的整合以及代码生成等问题,以STM32F407ZGTE单片机为控制器搭建半物理仿真平台验证所提出开发方法的可行性。

1 整车控制系统架构概述

设计纯电动汽车控制系统基本架构如图1所示,将其简单划分为两部分,即应用层软件和底层驱动软件。应用层软件负责解析包括钥匙、挡位、加速和制动在内的驾驶员操作指令,并结合行驶工况进行运算处理;底驱动层软件负责采集控制器的硬线输入信号,将相关输出信号发送给电池管理系统(BMS)、电机控制器(MCU)、电源变换装置(DC/DC)和其他附件。

图1 纯电动汽车控制系统基本架构框图

2 整车控制系统应用层软件

2.1 整车上下电

整车上下电作为纯电动汽车控制器的功能之一,是保证汽车正常启动和停机的必要流程,也是整车控制策略设计中的重要环节[12]。整车上下电主要根据驾驶员的钥匙信号、电池管理系统、电机控制器以及其他设备发送来的状态信号、故障信号等信息,按照一定的时序性控制相关继电器的通断,从而实现高低压系统的通断。为保证整车系统安全可靠地运行,必须充分考虑相关设备的工作特性和它们之间的相互作用关系。

整车上电策略遵循“先上低压,后上高压”的原则。当VCU接收到驾驶员的钥匙ON挡信号之后,发送指令唤醒BMS并让其自检,当VCU确认BMS未发送故障码后便可向BMS发送预充继电器和主继电器通断指令,并根据VCU端电压和电池端电压的差值判断是否完成预充电状态,当3 s之内VCU端电压和电池端电压的差值小于15 V时低压上电完成;当VCU接收到驾驶员的钥匙START挡信号后,按上述类似逻辑唤醒MCU并完成自检,确认自检通过后激活DC/DC工作,此时高压上电完成,可进入行车准备状态。整车上电简化流程如图2所示。

图2 整车上电简化流程框图

整车下电流程遵循“先下高压,后下低压”的原则。当VCU检测到钥匙OFF挡信号,且车速小于设定安全阈值便会发送DC/DC禁止信号,然后向BMS发送主继电器断开指令,等待BMS反馈主继电器断开状态。主继电器断开后,高压下电完成,但电机控制器直流侧端电容存储的电荷仍需泄放,延迟数秒后,低压下电自动完成。整车下电简化流程如图3所示。

图3 整车下电简化流程框图

2.2 钥匙信号解析

设计纯电动汽车钥匙信号有3种状态,即ON、OFF和START。由于3种状态之间存在互斥关系,所以采用真值表判断钥匙信号,如图4所示。当钥匙处在ON状态,即ON为高电平(ON==1)时,定义钥匙状态Key_State=1,当START为高电平(START==1)时,定义钥匙状态Key_State=2,当OFF为高电平(OFF==1)时,定义钥匙状态Key_State=0。

图4 钥匙信号真值表截图

2.3 挡位管理

纯电动汽车挡位一般设有P、N、D、R 共4种基本挡位。在挡位管理控制策略中未考虑P挡,只研究D、N、R这 3个挡位信号的处理和它们之间的状态切换。由于挡位信号之间存在互斥关系,同样采用前述类似的真值表对挡位信号进行判断。考虑到驾驶过程中存在挡位的频繁切换,为保证安全性,必须满足相应的条件才允许跳挡。跳挡策略默认上电之后为N挡,然后根据挡位硬线传来的信号和车速信号判断此时是否符合跳挡条件。由于电动汽车的电机具有反拖制动的功能,在不影响驾驶感受的前提下,设计在车速绝对值小于8 km/h的低速情况下,跳挡策略允许进行D挡和R挡之间的切换,具体实现逻辑如图5所示。

图5 换挡逻辑示意图

2.4 扭矩解析

整车控制器根据整车上电状态、挡位信号、加速踏板信号、制动踏板信号等通过扭矩需求计算模块,将已知信息转换成对应的驾驶员需求扭矩并将其作为整车控制器下发给电机控制器扭矩请求的基准值。目前,主流的纯电动汽车控制器扭矩解析开发方案是根据转矩MAP查表得到电机目标转矩[13-14]。

根据电机转矩输出方程,电机转速和输出转矩存在如下关系:

(1)

式中:L为电机扭矩系数;Tmax为电机峰值扭矩,N·m;Pmax为电机峰值功率,kW;n为电机转速,r/min;nb为电机基速,r/min。

根据电机转矩特性,可定义加速踏板与电机扭矩系数之间的函数关系为线性关系或非线性。本文中加速踏板开度与电机驱动转矩系数之间的关系定义为线性直线,即:

L=Acc

(2):

式中:Acc代表加速踏板开度。

根据式(1)和式(2),可以得到加速踏板扭矩解析策略,即只需将二维 MAP 固化到控制器中,车辆运行时根据加速踏板开度和电机转速2个参数,通过二维查表的形式得到电机需求转矩。基于上述描述,基础扭矩MAP如图6所示。

图6 基础扭矩MAP

2.5 扭矩仲裁

为保证行车安全,在加速踏板信号和制动信号均大于0时,必须将制动信号置于最高优先级。当检测到制动信号后将期望扭矩指令清零,当驾驶员未踩下制动踏板时则根据挡位状态和加速踏板信号输出期望扭矩令。

3 整车控制系统底层驱动软件

STM32单片机配套的STM32-MAT/Target工具包提供了STM32系列主控芯片的全部外设驱动库,并将它们封装成了Simulink模块。用户在使用这些驱动库前需要在STM32Cubemx中配置好单片机时钟、外设驱动的类型和引脚等信息。底层驱动库和STM32Cubemx配置如图7所示。

根据表1列出的VCU输入信号,对于加速踏板和制动踏板这类模拟量选取ADC_Read作为底层驱动,对于开关量选用GPIO_Read作为底层驱动,而对于一些反馈量例如车速和电机转速则建立汽车和电机动力学模型进行反馈。为简化后续实验过程,对于个别信号直接在VCU模型中定义为常量。对需监控的信号以UART方式统一发送到上位机并进行实时解析。

表1 VCU输入信号

4 代码集成与测试验证

4.1 代码生成、编译

将所需的底层驱动模块和应用层模型搭建在一起,配置好相关环境后利用Simulink的RTW功能可一键生成所有代码[15-16]。在代码生成过程中,Matlab通过ActiveX技术和相应的COM接口调用STM32Cubemx软件,自动生成Keil工程文件,进一步提高了整个开发过程的自动化程度。生成的代码通过Keil5调试编译无误后即可下载至单片机开发板进行实时性验证。代码生成模型如图8所示。

图8 代码生成模型示意图

4.2 测试验证

为模拟驾驶工况,搭建图9所示的半物理仿真平台,对于加速踏板这类信号采用旋钮电位器模拟,对于挡位、钥匙则采用按键模拟。将所需的信号以串口方式发送到Labview上位机并进行实时解析。

图9 半物理仿真平台实物

1) 车上电信号测试:如图10(a)和图10(b)所示,在1.3 s钥匙状态Key_State从0跳变成1,即钥匙打到On,整车开始低压上电。由于前文程序设计中已将所有故障代码均设置成0,所以检测到无故障后,VCU_Enable和BMS_Enable均置1,表明VCU和BMS被唤醒,同时PreRelay置1表明预充继电器闭合。此时,手动调节电位器来模拟控制器端电压Controller_Vol的变化情况,当其值达到85 V,即与电池端电压Battery_Vol差值为15 V时,表明此刻预充电完成,如第2 s所示,PreRelay置0表示预充继电器关闭,MainRelay置1表示主继电器开启;第3.9 s当钥匙Start信号到来,整车开始高压上电,MCU_Enable置1表明MCU开始工作,无任何故障后DC/DC被激活,整车高压上电完成,车辆进入Ready行车状态。

图10 整车上电测试信号曲线

2) 车行驶测试:如图11(a)和图11(b)所示,在1.2 s挡位状态Gear_state从0跳变为1,即挡位从N挂到D挡;1.4 s加速踏板开度从0开始增大到30%,同时扭矩逐渐增大,汽车开始起步;第2.3 s直接从D挡跳到R挡,由于此时车速只有5 km/h,满足前文设计的换挡条件,所以扭矩变成负值车速逐渐降低为0并进行倒车行驶;第5 s踩下制动踏板,扭矩立刻清0,车速逐渐降低为0;在第11.6 s挡位重新挂到D挡,之后加速踏板不断变化,扭矩呈现同一变化趋势且车速快速提高;第18.2 s又踩下制动踏板,扭矩立刻清0,随即车速下降,在此期间,无论加速踏板如何变化,扭矩始终为0,符合前文设计的“制动优先级最高”原则。

图11 汽车行驶测试信号曲线

5 结论

基于Matlab/Simulink设计VCU的应用层软件,并利用ST的相关工具链配置VCU的底层驱动软件,实现了Matlab/Simulink环境下与应用层软件在同一界面下建模。利用Simulink实现了由模型向代码的一键转化,调试编译后下载到目标单片机并模拟几种典型驾驶工况进行数据监测。研究结果表明,生成的代码可以按照设计的逻辑运行,相比于手动集成代码,该方法可实现自动化集成,不仅能避免人工输入的bug,而且模型复用率更高。本文研究的开发方式可为复杂控制算法的嵌入式实现提供参考,具有较强的工程价值。

本研究主要是对生成代码进行宏观上的逻辑验证,后续可将半物理仿真数据与Matlab离线仿真数据进行对比分析,进一步验证生成代码的实时性和有效性。

猜你喜欢

应用层挡位踏板
北京现代名图为何行驶中偶尔没有挡位显示
单踏板不可取
浅谈延音踏板在钢琴演奏中的用法
浅谈汽车制动踏板的型面设计
现代名图偶尔无挡位显示
基于分级保护的OA系统应用层访问控制研究
浅谈钢琴踏板的运用
新一代双向互动电力线通信技术的应用层协议研究
物联网技术在信息机房制冷系统中的应用
从挡位发展历程分析自动变速器动力流