基于模型的双电机驱动电动汽车控制系统开发
2020-01-09宋振斌李军伟孙宾宾王培金
宋振斌,李军伟,孙宾宾,王培金,陈 静
(1.山东理工大学 交通与车辆工程学院,山东 淄博 255049;2.淄博市公安局交通警察支队 车辆管理所,山东 淄博 255000)
双电机双轴驱动电动汽车与传统的单电机单轴驱动汽车相比,具有更好的经济性和动力性,该构型也是当今电动汽车研究的热点领域之一[1-3]。为充分挖掘该构型的潜力,提高车辆性能,本文针对双电机双轴驱动电动汽车的整车控制系统展开研究。为了提高控制系统的开发效率,采用基于模型的设计方法开发高压上电、加速踏板处理、挡位选择、需求转矩计算、驱动转矩分配、能量回收和故障诊断等模块控制策略,建立双电机双轴驱动电动汽车控制系统的模型,借助相关工具完成对模型的验证和测试。模型配置完成后,利用嵌入式代码自动生成工具(Real-Time Workshop Embedded Coder),将Simulink下的控制模型自动转换为嵌入式 ANSI C代码,进行应用层C代码的自动生成[4]。该方法不仅可避免手工编写代码时出现的各种错误,也能提高开发效率。这种基于图形化模型的设计可以在设计初期对模型进行仿真验证,发现设计缺陷并及时纠正,以避免后期出现问题而引起更大的损失。
1 整车控制系统模型
1.1 整车动力构型
本文所研究的双电机双轴驱动电动汽车采用前后轴电机驱动的形式,构型如图1所示。
图1 双电机双轴驱动电动汽车构型Fig.1 Configuration of dual motor dual-axis driving electric vehicle
该电动汽车整车包括:(1) 动力电池部分。整车装备总电压为144 V的动力锂电池,自带电池管理系统(BMS,Battery Management System),以并联方式给两路电机系统供电。(2) 电机驱动部分。整车前后轴分别匹配了相同大小的交流异步电机,每个电机使用独立的电机控制器(MCU,Motor Control Unit)。(3) 整车控制部分。整车控制器(VCU,Vehicle Control Unit)作为整车控制的重要部件,通过采集整车及各部件的运行状态,确定相应的策略控制整车运行。(4) 传动系统部分。车辆前后轴装备的主减速器传动比大小相同,并且由于电机特性更符合车辆行驶需求,取消了多挡变速器[5]。
1.2 整车控制模型
根据双电机双轴驱动电动汽车的构型特点,要实现车辆的有效控制,整车控制器需要具有高压上电、加速踏板信号处理、档位识别、驱动转矩分配、制动能量回收以及故障诊断等主要功能。
1.2.1 高压上电
本文所研究的上电策略为:当钥匙打开后, VCU和BMS接通低压电并进行上电自检,MCU接到VCU唤醒信号后也进行自检,同时闭合高压配电盒内预充回路的继电器,为MCU的充电做准备。BMS自检通过后向VCU反馈状态,同时闭合电池包内主负继电器,动力电池输出高压电;MCU自检通过后闭合自身内部的预充回路上的继电器,开始预充电,并不断向VCU反馈直流电压值,VCU自检通过后时刻判断MCU反馈的预充电压值,当电压值超过当前电池电压的90%后,VCU控制主正继电器闭合,随后,MCU断开预充回路内的继电器,整车高压上电成功。
高压上电的控制模型如图2所示。图2中两个子系统模块Precharge_Check和OverTime的主要作用是判断预充电是否完成。在Precharge_Check使能子系统中通过输入信号Input中的动力电池电压和MCU反馈的预充电压判断预充是否完成,若完成Precharge_Result结果为1,否则为0。在OverTime子系统中根据Precharge_Result的结果决定是否调用执行Precharge_Check使能子系统。如果Precharge_Result为0,表示预充电尚未完成,需要继续调用执行Precharge_Check使能子系统;如果Precharge_Result为1,表示预充电已经完成,不需要继续调用执行Precharge_Check使能子系统,此时ON_Out输出为1。“AND”模块通过综合判断自检结果、系统故障等级、SOC状态、前后电机预充允许标志和预充结果,最终实现整车高压上电。
图2 高压上电模型Fig.2 High-voltage power-on model
1.2.2 加速踏板双路信号处理
在车辆行驶时,驾驶员的意图是由加速踏板开度体现的,考虑到整车行驶的安全性和稳定性,防止由于踏板损坏导致重大事故的发生,加速踏板一般有两路信号,两路信号成一定比例,在行驶时起到“互相监视”的作用。为了更好地隔离两路信号、防止互相影响,加速踏板总成一般采用两路电源独立供电。在正常情况下,踏板信号1的二分之一与信号2的差值需要在0.07 V之内,如果不满足这个关系,则说明加速踏板出现故障需要立即处理,比如降功率输出或者关断总电源等。在计算踏板开度时设置空行程保护,防止因为物理卡滞或踏板故障引起的错误动作。加速踏板信号处理的Simulink模型如图3所示。从输入信号Input中选取两路踏板信号,减去踏板空行程,计算得出两路踏板开度APP1和APP2。在Accp_Select模块中根据两路踏板信号值是否在正常范围且是否满足固定比例关系,判断踏板是否出现故障,并根据两路信号的状态输出相应踏板开度值。当两路踏板信号值满足固定比例关系且均在正常范围内时,Out1=1,Out2=0,此时本模块输出踏板信号1的开度APP1,故障等级Fault=0;当两路踏板信号满足固定比例关系,踏板信号1不在正常范围内,踏板信号2在正常范围时,Out1=2,Out2=0,本模块输出踏板信号2的开度APP2,故障等级Fault=0;当两路踏板信号满足固定比例关系,踏板信号1在正常范围内,踏板信号2不在正常范围时,Out1=1,Out2=0,本模块输出踏板信号1的开度APP1,故障等级Fault=0;当两路踏板信号不满足固定比例关系,但两路踏板信号均在正常范围时,本模块将比较两路踏板信号值大小并输出两者中较小的踏板信号值,故障等级Fault=1;其他失效情况下,Out1=3,Out2=4,本模块将不输出踏板开度值,故障等级Fault=4。
图3 加速踏板处理模型Fig.3 Processing model of accelerator
1.2.3 驱动转矩控制及分配
整车控制器根据加速踏板、电机、电池及其它部件当前的工作状态确定整车需求转矩,通过合理的算法将转矩分别分配给前后两个驱动电机,驱动车辆行驶,该过程主要包括两部分:整车需求转矩计算和转矩分配。
VCU通过CAN总线接收到电池温度、电机温度、电池SOC、电机转速、电池故障等级、电机控制器温度、电机故障等级及整车故障等级等信号,结合有关信号求出当前双电机系统所能输出的最大转矩值。VCU采集加速踏板电压值,通过加速踏板处理模型得到当前踏板开度,并将踏板开度转化为当前整车电机负荷系数。将电机负荷系数与最大转矩值相乘得出当前状态下的整车需求转矩。
驱动转矩控制及分配模型如图4所示。通过Input信号中的电机故障等级判断前后电机工作状态,若电机故障等级大于1则进入跛行故障模式,在Cripple_Drive模块中判断前后电机故障等级,选择无故障电机进入单电机跛行模式,此模式下不考虑转矩分配,将需求转矩分配给无故障电机;若前后电机均出现故障,则前后电机均不使能,MCU_Fault输出为0;若前后电机故障等级均小于1,则前后电机均无故障,触发转矩分配模块Torque_Distribution进行前后两个驱动电机转矩的分配。
图4 驱动转矩控制及分配模型Fig.4 Drive torque control and distribution model
在电机某一转速点,考虑到双电机转矩之和等于总需求转矩的前提下,通过粒子群算法在电机外特性图中分别搜索两个电机转矩并结合电机的效率,以双电机能耗最小为判断依据进行搜索,在完成搜索后,满足双电机能耗最小的转矩就是最终需分配给双电机的转矩值[5]。
算法首先需要确定种群规模、粒子维数及每个粒子的初始位置和速度;设定学习因子、惯性权重的最大值和最小值及最大迭代次数。然后计算每个粒子的初始适应度值,并求出个体极值和全局极值。利用公式(1)求出每个粒子的适应度值f,确定个体极值,并经过比较确定全局极值。
(1)
式中:Tf、Tr分别为前、后电机需求转矩;ηf,ηr分别为前、后电机工作效率。
进入主循环进行迭代,每次迭代惯性权重计算公式为
(2)
式中:ω为当前惯性权重;ωmax为最大惯性权重;ωmin为最小惯性权重;k为当前迭代次数;kmax为最大迭代次数。
每个粒子的位置和速度更新公式为
(3)
式中:k为迭代次数;c1和c2称为学习因子,分别代表粒子向自身极值和全局极值推进的加速权值;r1,r2为分布在(0,1)之间的随机数;ω为惯性权重,控制着前一速度对当前速度的影响,用于平衡算法的探索和开发。粒子位置代表双电机转矩值,计算每个粒子的适应度值,并更新个体极值和全局极值。
迭代到最大次数后停止迭代,输出最优转矩值。迭代停止时,与最小适应度函数值相对应的粒子位置就是所搜寻的全局最优双电机转矩值。
根据算法搜寻结果,在Torque_Distribution中通过对MCU_Enable_F,MCU_Enable_B分别赋值实现对前后电机分别使能,并通过对Demand_Torque_F和Demand_Torque_B分别赋值实现相应转矩分配,最终实现以双电机能耗最小为目标的单双电机实时切换。
1.2.4 故障诊断与处理
故障诊断是所有整车控制器都必须配备的功能,是保证车辆安全行驶的前提。整车控制器需要处理的故障主要包括四部分:整车故障、前电机故障、后电机故障和电池故障。根据不同部件的故障严重程度和整车安全性需求,将故障信息分为一级故障、二级故障、三级故障和四级故障,分别对应关闭高压电输出、零转矩输出停车、跛行、报警不处理的控制策略。
故障判定如下:同一个故障如果在规定时间内连续出现至少1次,则对故障计数器进行累加,当故障计数器累加到一定数值,则判定该故障确实存在,会把对应的故障码置位。若在计数期间,同一故障相邻两次出现的时间超过规定时间,则对故障计数器进行清零,当再次出现故障时重新计数。按照高级别故障优先原则进行故障判断,如同时发生三级故障和四级故障,则按三级故障处理。
在需要行车下电时,整车控制器会检测钥匙信号,如果有故障发生时,会自动把置位后的故障码存入EEPROM中。
各模块控制策略模型开发完成后,进行整车控制策略模型的集成,将不同模块的同一信号连接,保证模型执行时序和数据流的准确性。将高压上电模型Power_ON、加速踏板信号处理模型ACCP、挡位识别模型Gear、驱动转矩分配模型Torque、能量回收模型、故障诊断模型System _Fault以及车速计算模型进行集成,集成后的整车控制模型如图5所示。
图5 整车控制模型Fig.5 Control model of the whole vehicle
2 整车控制系统软件开发
整车控制器软件包括整车应用层软件和硬件控制器底层驱动软件。
完成整车控制模型的搭建、集成和相关验证后,通过编译模型就可以实现整车应用层软件代码的自动生成,这种应用层软件的开发方法使得开发可以专注于控制逻辑和算法的实现,避免了手工编写控制代码过程中分心于编程语法带来的不便,提高了控制软件开发效率[6-7]。
根据整车控制器硬件的功能,对其相应模块配置及有关信号处理采用手工编程的方法实现整车控制器底层驱动软件的开发。底层代码包含如下内容:输入输出模块用于采集车上的高、低有效开关量,例如挡位信号、制动开关信号;AD转换模块用于采集车上模拟量传感器,例如加速踏板传感器;定时器模块主要用于提供固定时间的中断,为各任务的调度提供基准;主控芯片通过SPI通信实现对低端驱动开关芯片的控制;整车控制器与电机控制器、电池管理系统和仪表之间通过CAN通信实现数据交换。
整车控制模型生成的应用层代码和手工编写的底层代码集成在一起就实现了整车控制系统的软件设计。
根据双电机双轴驱动动力构型对整车控制器的要求,开发的整车控制器实物图如图6所示。
图6 整车控制器实物图Fig.6 Physical figure of VCU
在进行应用层和底层集成时,一般是通过接口函数的形式实现的。应用层与底层的接口函数如图7所示。
图7 应用层与底层的接口函数Fig.7 Interface function between application layer and bottom layer
3 整车控制器硬件在环测试
HIL测试是控制器开发过程中必不可少的环节,一般使用数学模型、部分传感器和执行器等模拟控制器的运行环境,通过运行测试用例完成控制器测试。在完成双电机双轴驱动电动汽车控制系统硬件和软件设计后,进行整车控制器硬件在环测试(Hardware-in-the-Loop)[8-9]。HIL测试的一般步骤为:首先利用MATLAB/Simulink/stateflow搭建好双电机电动汽车整车纵向动力学模型,将该模型编译成.dll文件通过Veristand下载到PXI处理器中;然后,按照制定的转矩分配策略搭建VCU应用层模型,将控制代码下载到被测VCU中;最后,将待测VCU与机柜通过标准接口连接,完成硬件平台的搭建(如图8所示),即可进行HIL测试。
图8 HIL测试硬件平台Fig.8 HIL test hardware platform
在本文中,HIL测试的主要目的是用来对双电机驱动电动汽车控制系统的可行性和实时性进行验证。采用NEDC工况作为本次测试的测试输入[10],HIL测试结果如图9和图10所示。
图9 NEDC工况需求转矩曲线Fig.9 Demand torque curve under NEDC
图10 NEDC工况转矩分配曲线Fig.10 Torque distribution curve under NEDC
从图9和图10可以看出:在城市循环工况内,整体需求转矩较小,整车大多时间运行在单电机模式下,只有在短暂的急加速时间内运行于双电机模式下。在市郊循环工况下,对车辆动力性的要求更高,整车运行在双电机模式下的比例较城市循环更高,说明控制系统能够根据整车需求实现单双电机实时切换。
4 结束语
采用基于模型的方法设计完成了双电机双轴驱动电动汽车控制系统高压上电、加速踏板处理、挡位选择、需求转矩计算、驱动转矩分配、能量回收和故障诊断等模块控制策略模型的开发,将各模块控制策略模型集成为整车控制模型,利用Simulink代码自动生成工具将整车控制系统模型转换为嵌入式 C代码,实现了整车控制系统应用层软件的快速开发。
根据双电机双轴驱动电动汽车整车控制器的功能需求,并结合整车的构型特点,设计完成了双电机双轴驱动电动汽车硬件控制器。依据整车控制器硬件功能需求, 进行了相应模块的配置和有关信号的处理,完成了整车控制器底层驱动软件设计,实现了系统应用层软件与底层驱动软件的集成。这种开发方法不依赖于具体的系统平台,移植性好。
将集成后的软件下载到双电机双轴驱动电动汽车控制系统硬件中,进行了NEDC工况下的硬件在环测试。试验结果表明,基于模型开发的应用层软件能够稳定运行于嵌入式系统中,在实现转矩分配的基础上具有较好的实时性,可以满足车辆行驶需要,符合设计预期。