您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 基于模型设计的电池管理系统开发--刘晓康
基于模型设计的电池管理系统开发刘晓康(1),朱禹(2),常云萍(3),彭红涛(4)(东风电动车辆有限公司研发部,湖北,武汉,430056)[摘要]本文介绍了基于模型设计,从需求分析和建立控制模型直到系统的测试和标定的电池管理系统开发全过程,着重突出了dSPACE,Matlab/Simulink/RTW,OSEKturbo,CANape等工具与“V”模式结合的开发流程.由实车试验结果反映出基于此类方法开发的管理系统具有很高的稳定性,性能达到设计要求,同时提高了系统的可移植性和易维护性.关键词:电池管理系统,代码自动生成,dSPACE,实时操作系统,CANape,硬件在环仿真Model-BasedDesignforDevelopmentofBatteryManagementSystemLiuXiao-kang(1),ZhuYu(2),ChangYun-ping(3),PengHong-tao(4)DongFengElectricVehicleco.,LTD,Wuhan,China.430056Abstract:Thispaperintroducesthedevelopmentprocessofthebatterymanagementsystemfromrequirementanalysisandbuildingcontrolmodeltosystemtestingandcalibration.Thedevelopmentprocessisbasedonthemodeldesign.Thedevelopmenttools,suchasdSPACE,Simulink/RTW,OSEKturbo,CANape,andthedevelopmentprocessintegrateswiththe“V”modeareemphasizedinthepaper.Thevehicletestingresultsrevealthatthebatterymanagementsystemacquiredbythiskindofmethodhaswellstabilityandtheperformanceachievesthedesigndemand.Atthesametime,theportabilityandthemaintainabilityofsystemareimproved.Keywords:Batterymanagementsystem,Automaticcodegeneration,dSPACE,Realtimeoperatingsystem,CANape,Hardwareinloop前言:“V”型开发模式(图1)对于开发汽车电子系统的先进性已被行业内的工程技术人员所广泛接受,这种方法的特点是边开发边验证,将可能出现在系统中的错误消除在设计之初,从而有效地减少系统的开发时间和费用,提高电控产品的品质[1]。这种模式的完全实现是需要一些先进的开发工具作为支撑,本文结合电池管理系统(BMS,BatteryManagementSystem)的项目开发,介绍项目需求分析,基于dSPACE的快速原型仿真,基于Simulink/RTW代码自动生成,OSEKturbo实时操作系统,应用CANape对模型数据进行标定和监测以及测试的相关内容。图1“V”型开发模式一电池管理系统的需求分析需求是对控制系统特征、系统需要完成的任务和实现的功能进行描述,也就是要清楚理解所要解决的问题,了解整车对子系统的要求,以及控制器所处环境对控制器的适应需求,并最终形成文字形式的需求规格说明书,这是整个开发计划的大纲,也是最后测试验收的依据。BMS开发过程中所作的需求分析大纲如下:功能需求:(1)对电池的电流电压、温度及模块电压进行测量;(2)对各种异常状况分级报警;(3)对电池组进行热管理;(4)与整车通过CAN进行总线通信;……性能需求:(1)精确的计算电池的荷电状态,误差不超过10%(SOC,StateofCharge);(2)总电压的检测范围是250-440V,测量精度不低于±2V;……非功能需求:(1)电压电流单体电压采样周期为10ms,温度采样周期1ms;(2)电池状态信息每隔100ms发送一次;(3)电池状态信息发送满足DFEV_CAN_02标准(企标);……领域需求:(1)要有很强的抗干扰能力,系统要有一定的自检、自诊断、自修复功能;(2)要在很宽的电压范围内(24—14伏)工作;(3)能在-20℃—85℃下正常工作;(4)具有防尘、防潮等功能;……这仅是需求分析中比较粗的主线,在此基础上还要逐步细化,找出元素之间的联系,接口特性,设计上的限制,进行详细逻辑模型分析。最后要对需求分析进行评审,将验收的方案确定下来。需求分析是非常重要的阶段,在此阶段工作做得越细,越准确,对以后的开发工作越有利。二快速原型的开发通过需求分析和形成的软硬件规格说明书,将BMS的功能按软件实现和硬件实现分开,进行并行设计。硬件设计在文献[2]中有详细阐述,这里不再赘述。软件设计利用Simulink/Stateflow丰富的函数库和dSPACE强大的计算能力建立快速原型,在控制算法与控制对象之间搭建一座桥梁,验证控制算法是否满足需求所设定的目标。快速原型的开发使得系统工程师在没有硬件支持的情况下,能独立的、快速的进行算法的研究和设计。这里控制算法是指电池的状态信号通过采样转换成数字信号以后的算法研究,这里验证的可以只是其中最为核心的算法部分。图2中显示了BMS具体算法模型。MaximalCurrentInitiationSOCAHMeasureVoltageMappedSOCAlarmCorrectSOCSOC_cor_flag8SOC_cor7Mdis6Mcha5ini_soc4signal_alarmcv3signal_alarmtemp2signal_alarm1voltempcurrentSOC_res1signalzerovoltempcurrentMaxcurrent_chaMaxcurrent_disresis_charesis_disvoltempinte_ahSOC_zeroSOC_AHSOC_cor_ahSOC_cor_flagcell_voltempresis_cresis_dvolcurrentSOCsignal_OCVsignal_alarm_fsignal_alarm_ssignal_alarm_tCurrenttempsoc_AHcellvol5temp4current3ave_temp2vol1图2BMS控制算法模型模型中包括安时积分模块,初始SOC计算模块,利用端电压的SOC修正模块,报警模块和最大充放电电流计算模块。初始SOC计算模块通过初上电时电池的端电压,以及在BMS的Eeprom中存储的前次SOC值,综合计算电池初始的SOC。安时积分模块在一定的时间间隔中,考虑电池的充电效率和放电效率,计算电池SOC的变化量。最大充电放电电流模块是依据电池的瞬时直流内阻,及电池最高充电电压限制和最低放电电压限制,计算电池在tcd内的最大充电和放电电流,其中tcd是最大的充电和放电电流脉冲宽度。利用端电压修正SOC模块是整个算法中最为核心的部分,它包括对端电压信号的分类,对各种干扰信号的修正,通过模糊控制模块来计算SOC输出。报警模块是通过对设定值与电池状态值的比较,按照企业标准将报警信号组合起来,通过CAN发送给多能源管理系统。另外一些自诊断的功能也放在这一个模块中,比如电流传感器反接报警等。将这一个模型反复进行离线仿真,以完全实现需求描述的相应功能。在确信模型没有功能错误以后,将电压、电流和温度传感器输出信号通过信号调整板,送到dSPACE的A/D输入口,进行实时仿真,这时dSPACE系统相当于一个高配置的BMS系统。图3给出了实时仿真的一些主要结果。0200400600800100012001400160018002900300031003200330034003500time,sSOC,*0.01%初始SOC安时积分法根据端电压修正SOC值020040060080010001200140016001800020406080100120140160180200time,sMaxCurrent,A图3BMS计算的SOC值和最大充电、放电电流由图a可以看出,BMS通过历史纪录和当前电压确定电池的初始SOC,然后由安时积分法计算电池的SOC,只有捕捉到合适的电流电压信号,才由端电压映射SOC模块进行计算,得到差值和权重系数,对电池的当前SOC修正。由图b可以看出,电池的最大充放电电流仅和电池前一段使用状况和最大充放电持续时间有关,当SOC变化较少时,最大充放电电流相对比较平稳。三代码自动生成代码自动生成技术经过了近几年的迅猛发展,已经达到了实用阶段。不论是在代码量,内存占用量和运行速度来看,都可以和熟练软件工程师手工编写的代码媲美,而代码生成技术可以借助于半实物仿真的模型,几分钟内就可以生成可用的代码,生成的代码支持大多数的MISRAC标准,几十倍的提高编程速度无疑是代码自动生成工具最具优势的方面。同时基于模型的代码自动生成技术可以很直观的对所编写的代码进行白盒和黑盒测试,保证了代码的品质[3,4]。在BMS开发过程中,半实物仿真中建立的是一个在PowerPC上运行的浮点模型,而实际的控制器是一个16位定点单片机组成的系统,因此需要将浮点模型定点化。利用Matlab中的Fixed-pointAdvisor和Fixed-pointtool两个工具比较容易的将模型转化为定点模型,在转换之后还可以对任何关注的信号进行监控和分析,计算中间环节定点化以后与原浮点模型的计算误差。即使最终输出有些误差,调整模型中的一小部分参数数据类型,可以得到一个和浮点模型性能几乎相同的定点模型。接下来在需要对模型的configurationparameters进行配置,指定硬件类型(Hardwarelmplementation),应用ert.tlc模板生成可嵌入式代码,这样生成了一个最大放电电流最大充电电流abmodel_ert_rtw的文件夹,其中的model.c,model.h,model_data.c,model_private.h,model_types.h和rtwtypes.h需要拷贝和加载到工程中,并在需要的地方调用其中的入口函数,共同编译以后,代码自动生成的工作就初步完成了。在最新的版本中还提供了很多定制化功能,可以根据企业要求定义数据类型,数据存储方式,注释等,有很高的灵活性。四实时操作系统代码自动生成只是产生了控制算法代码,何时以何种方式来调用这些算法就是系统工程师应用实时操作系统或调度程序必须完成的工作。对嵌入式实时操作系统的研究现在有很多成果[5,6],相比起时间片的后台调度方式最大的优势就是任务之间具有强占性,使单片机资源得到更充分合理的使用,提高了系统稳定性。但是实时操作系统本身也占用一些系统资源,因此如果所开发的项目软件实现的任务多,各个任务之间重要性不同,实时性也不同,使用实时操作系统有比较好的效果,反之使用后台调度程序就可以了。由以上分析,BMS更适合使用实时操作系统。在实际开发过程中,先建立一个带OSEKturbo的工程,然后根据任务的实时性和重要性要求,静态的配置任务的优先取以及触发形式[7]。例如看门狗程序无疑是最重要的周期任务,优先级也应最高。在代码自动生成时每一个子模块可以认为是一个功能函数,有自己独立的入口函数,在任务中调用入口函数即可,而低层驱动程序也可以看成是若干任务而被调用,这样就在OSEKturbo的框架下,将底层驱动软件与控制算法有机的结合在一起。图4基于OSEK实时操作系统的BMS各个任务逻辑框图另外实时操作系统还提供了很多API函数,能对实时操作系统的运行状况实时监测,可以让工程师更清楚的了解运行每一个任务占用的时间,堆栈数量,以及何时进入任务,何时退出来。出错时可以由错误钩子函数处理,从而在最大程度上保证了系统平稳
本文标题:基于模型设计的电池管理系统开发--刘晓康
链接地址:https://www.777doc.com/doc-3547780 .html