动力电池BMS算法开发流程.docx
《动力电池BMS算法开发流程.docx》由会员分享,可在线阅读,更多相关《动力电池BMS算法开发流程.docx(27页珍藏版)》请在冰豆网上搜索。
动力电池BMS算法开发流程
动力电池BMS算法开发流程
8.1.1算法开发的一般流程
算法由初期设计到实际使用需要经历规范的开发流程。
经典的BMS算法开发流程如图8-1所示:
设计人员首先需要根据目标控制器需求,提出具体的可量化性能指标;然后进行系统控制策略的设计和数值仿真;再分别进行控制器的软硬件设计和系统集成;最后完成BMS的台架实验以及实车验证。
经典BMS算法开发方法主要存在如下三个问题:
①人工编程效率低。
在软件设计阶段采用人工编程,代码的可靠性无法得到保证。
另外,人工编程和调试将会耗费大量时间,拖延项目进度。
②控制策略评价不及时。
在尚未确定控制策略的特性及效果的前提下,直接进行控制器软件程序编写与硬件电路设计。
在测试环节,若发现控制策略不满足需求,则开发人员需重新设计软硬件。
③软硬件问题难以区分。
控制器的软件部分与硬件部分均依赖于台架实验验证,对于某些设计缺陷,难以判断问题的根源,因此会降低开发效率。
图8-1经典的BMS算法开发流程
8.1.2基于模型的“V”开发流程
相较于经典开发流程,“V”开发流程有利于尽早地发现当前算法存在的错误与不足,缩短开发周期,节省成本。
图8-2所示为BMS核心算法基于模型的“V”开发流程。
该流程中引入了半实物仿真,其最大的特点就是在系统仿真回路之中直接引入部分物理实物,使得仿真结果更接近实际值。
半实物仿真常分为快速原型仿真与硬件在环仿真。
相比数值仿真,半实物仿真不仅能检验设计算法的实时性,而且能显著提高仿真过程的准确性和真实性。
在产品开发过程中,由于具有很高的置信度,半实物仿真实验能减少实车路试的次数,缩短开发时间,降低开发成本与风险。
目前,半实物仿真实验已经成为BMS、电机控制器、整车控制器三大新能源汽车核心技术开发流程中非常重要的一环。
“V”开发流程作为目前主流的汽车嵌入式系统开发方式,其主要分为如下几部分:
图8-2BMS核心算法基于模型的“V”开发流程
1.系统定义
系统定义具体实施步骤如图8-3所示,具体可分为三步:
问题定义、可行性分析和需求分析。
问题定义的意义在于发现所设计的管理系统需要解决的问题并制定相应的问题描述书;可行性研究则根据目前行业发展现状,分析问题描述书中的问题是否合理以及是否具有足够的价值,并制定可行性报告;基于上述两步工作以及国家标准、行业规范等相关信息,需求分析致力于确定系统所需实现的功能,同时明确各项功能的可量化性能指标,并制定需求说明书。
图8-3系统定义具体实施步骤
2.系统设计与仿真
根据管理系统定义,运用相关理论完成核心算法、控制策略的综合设计,并将整个系统在计算机软件环境下实现,即实现虚拟控制器、虚拟被控对象与虚拟控制环境的建模与仿真,对系统指标、误差等进行早期快速评估。
3.快速原型仿真测试
快速控制原型(RapidControlPrototype,RCP)采用虚拟控制器结合实际被控对象完成控制系统仿真测试。
通过将计算机软件环境下搭建的控制模型下载至标准的快速原型仿真平台,即可模拟实际控制器对实际被控对象的实时控制,以检验系统控制策略的各项功能。
快速原型仿真测试的优势在于无须进行硬件设计、底层代码编写等复杂、耗时的工作,使设计人员能专注于控制算法的优化设计。
4.代码自动生成
基于规范建立模型,完成标准模板的参数配置后,自动生成可应用于实际控制器的代码。
目前,代码自动生成技术已成为嵌入式系统快速开发的一项关键技术。
MATLAB中的MAAB控制算法建模规范是一种常用的建模规范。
5.软件仿真测试
软件在环(SoftwareintheLoop,SIL)仿真测试用于检验自动生成的代码与设计算法的一致性。
利用大量数据进行软件仿真测试,有利于尽早发现生成代码的漏洞。
软件仿真测试与“V”开发流程中第二步的仿真过程均需用户在计算机软件环境下完成虚拟控制器、虚拟被控对象以及虚拟系统环境的搭建,实现闭环仿真,完成控制系统的测试评价。
两者的区别在于后者的虚拟控制器是基于传统意义上的数学模型进行仿真,而前者是基于生成的高级语言代码进行仿真,更接近于实际使用。
6.硬件在环仿真测试
硬件在环(HardwareintheLoop,HIL)仿真测试是在仿真回路中引入真实控制器代替原有虚拟控制器,使系统仿真更贴近真实应用环境的实验手段。
传统意义上的硬件在环仿真测试的被控对象是虚拟的,但鉴于动力电池系统输入输出参数的易获取性,一般可以直接将实际的动力电池或动力电池组作为被控对象。
由于硬件在环仿真系统具有实时性强、错误易修正、开发周期短、效率高等优点,已经广泛应用于汽车及其零部件的开发。
7.参数标定和功能测试
在完成硬件在环测试后,将调试后的控制器连接至真实被控对象并置于真实环境中,进行系统台架实验。
此时应充分测试多种工况、多种环境温度、湿度以及多种震动模式下系统各功能的稳定性、可靠性、安全性等性能。
基于功能测试的最终结果,完成系统各个参数的标定和设计完善。
8.实车测试
实车测试即将包含核心算法的嵌入式系统集成至实车,基于系统定义中制定的需求说明书,测试控制系统的各项功能,判断各项功能的可量化性能指标是否达标,直至最终完成整个“V”设计流程。
8.2快速原型仿真测试
RCP技术的主要思想是在虚拟环境中进行产品设计,达到缩短产品开发周期、降低开发费用的目的。
在系统开发的初期阶段,快速建立控制器模型,并对整个系统进行多次离线和在线的测试来检验控制策略的可行性。
早期的RCP系统,绝大多数以DSP和PowerPC等微处理器为核心构建,是某些公司根据自己的应用需求开发的专用系统,技术先进但价格昂贵。
这类RCP系统中应用最广的为德国的dSPACE。
后来,MathWorks、NI等公司推出了基于PC的RCP系统。
目前,我国也开发了类似的系统,比如北京九州华海科技的RapidECU、郑州微纳科技的cSPACE,价格更为低廉。
算法快速原型仿真测试示例基于xPCTarget实时仿真系统进行。
相比于其他仿真系统,在相同仿真精度的条件下,xPCTarget具有价格低廉、计算效率高的优势,已成为广受汽车设计企业、高校研究机构认可的高性能快速原型仿真测试平台。
8.2.1系统构成
1.动力电池快速原型仿真系统的一般构成
动力电池快速原型仿真系统的一般构成如图8-4所示,主要由上位机、控制器原型和实际被控对象组成。
上位机和控制器原型之间基于TCP/IP协议进行通信。
上位机作为编程和监测的主体,可通过图形化编程软件,如MATLAB/Simulink、LabVIEW等开发控制策略、自定义显示参数,实现对前期程序的有效编写和调试。
图8-4动力电池快速原型仿真系统一般构成
控制器原型包含实时系统模块和通信模块。
其中,实时系统模块作为控制策略的载体,可运行复杂、实时性较高的控制程序。
结合通信模块传递的动力电池参数,实时系统模块可完成对动力电池隐含状态量的实时估算并发送控制命令,通过通信模块完成对执行器的间接控制,并将动力电池状态信息发送给上位机。
通信模块可连接不同的板卡,将传感器采集的动力电池系统电压、电流、温度等参数发送给实时系统,同时将实时系统模块的控制命令发送给执行器。
实际被控对象一般分为两类:
第一类是传感器,主要包括电压传感器、电流传感器、以及温度传感器等;另一类为执行器,动力电池系统中常见执行器包括保护电路、均衡电路等。
2.基于xPCTarget的快速原型仿真系统
该系统包含软、硬件两部分,如图8-5所示,其中硬件部分包括仿真计算机、高速数据采集设备、测试所需动力电池、电子负载仪以及相应的I/O接口,软件部分包括操作系统、仿真软件、仿真模型等。
依据xPCTarget“双机模式”的特点,采用宿主机完成Simulink模型开发以及C代码的编译,目标机则作为实际代码的执行器。
图8-5基于xPCTarget的快速原型仿真实验平台硬件系统的组成
电子负载仪类似Arbin等电池充放电设备,基于目标机发出的指令对所测试的动力电池进行充放电操作,以模拟指定的运行工况。
同时,电子负载仪能够实时测量动力电池的端电压、电流值,并将参数上传至目标机。
本章所用电子负载仪如图8-6所示,其主要性能参数见表8-1。
表8-1电子负载仪性能参数
图8-6电子负载仪
图8-7为基于xPCTarget的快速原型仿真系统结构示意图,其中宿主机提供仿真软件的开发环境,目标机运行由宿主机生成的代码,驱动电子负载仪对动力电池进行充放电。
图8-7基于xPCTarget的快速原型仿真系统结构示意图
基于快速原型仿真结构示意图的框架以及硬件设备I/O端口的定义搭建的锂离子动力电池状态估计快速原型仿真测试平台如图8-8所示。
图8-8锂离子动力电池状态估计快速原型仿真测试平台
8.2.2算法集成
基于xPCTarget算法的快速原型仿真测试与评价的核心步骤是在宿主机的开发环境下搭建算法的Simulink模型,主要分为动力电池系统核心算法仿真模型和CAN总线通信模型两部分。
CAN总线通信模型主要是为了实现目标机与电子负载仪间的信息交换,包括目标机对电子负载仪的控制命令和电子负载仪采集的电流电压等电池参数。
CAN总线通信模型示例如图8-9所示。
图8-9CAN总线通信模型示例
动力电池系统核心算法仿真模型即所需评价的算法,它基于电子负载仪实时反馈电流电压信息,实现动力电池模型在线参数辨识和实时状态估计。
通过对比估计值与参考值,完成算法的测试与评价。
当误差较大时,可直接在MATLAB/Simulink中对算法进行调整与优化。
MHIF估计方法部分仿真模型如图8-10所示。
动力电池系统核心算法仿真模型和CAN总线通信模型搭建完成后,需采用自动代码生成技术将Simulink模型转化为源代码。
与基于模型的“V”开发流程中的代码自动生成不同,该源代码基于虚拟控制器,一般通过系统目标文件xpctarget.tlc生成。
8.2.3算例分析
下面分别对动力电池静态最大可用容量已知与可用容量未知两种情况进行算例分析。
1.基于动力电池容量已知的SOC估计
基于上述锂离子动力电池状态估计快速原型仿真测试平台,完成基于MHIF的SOC估计算法的评价。
这里的MHIF应用于动力电池系统时,将动力电池可用容量视为已知静态量。
由于电子负载仪直流侧最小工作电压为5V,大于NMC电池单体的工作电压,须选取两节性能基本一致的NMC电池串联作为被控物理对象。
在串联动力电池组充满电(100%SOC,室温)的情况下,目标机通过电子负载仪给该动力电池组加载标准DST工况,同时目标机基于动力电池系统核心算法仿真模型完成动力电池状态与参数的在线估计,从而评价算法的精确性与鲁棒性。
图8-11所示为目标机显示界面,图8-12所示为端电压与SOC估计结果(串联动力电池组)。
结果表明动力电池端电压误差基本稳定在50mV以内,SOC估计结果也能逐渐收敛,误差稳定在3%以内,基本符合实际使用需求,证明了该算法实际应用的可行性。
2.动力电池SOC与动态容量的协同估计
基于上述动力电池快速原型仿真实验平台,对动力电池3-单体01、单体02动力电池在室温(22±3℃)条件下进行工况实验,对基于MHIF的动力电池SOC和可用容量在线估计算法进行评价。
这里的MHIF应用于动力电池系统时,将动力电池可用容量视为未知量。
两节动力电池室温下的静态可用容量分别为31.54A·h和31.40A·h。
动力电池SOC与可用容量估计快速原型仿真实验曲线如图8-13所示。
设置初始SOC为80%,初始容量为30A·h,进行300min工况实验。
SOC与可用容量估计结果如图8-14所示。
端电压测量值、估计值及其估计误差如图8-15所示。
图8-10MHIF估计方法部分仿真模型
图8-11目标机显示界面
图8-12端电压与SOC估计结果(串联动力电池组)
a)端电压预测值与测量值对比(局部)b)端电压预测误差c)SOC估计值与参考值对比(局部)d)SOC估计误差
图8-13动力电池SOC与可用容量估计快速原型仿真实验曲线
图8-14SOC与可用容量估计结果
a)SOC估计值和真实值对比b)可用容量估计值和真实值对比
如图8-14a所示,仿真实验SOC估计值可快速收敛至真实值,最大SOC估计误差为0.38%。
如图8-14b所示,可用容量估计值同样具有优异的收敛特性,整体估计误差在2%以内。
在9750s处出现最大估计误差,此时估计容量为30.87A·h,估计误差为1.78%。
如图8-15所示,端电压的估计误差在50mV以内。
综合上述实验结果,基于MHIF的估计方法是可行有效的,且该方法在初值不准确的条件下仍能快速收敛,证明该估计方法具有一定的鲁棒性。
可见,动力电池动态容量实时在线估计可以提高动力电池SOC估计精度,即动力电池SOC与SOH协同估计可以获得更好的应用效果。
图8-15端电压测量值、估计值及其估计误差
a)端电压测量值和估计值对比(局部)b)端电压估计误差
8.3硬件在环算法测试
硬件在环仿真结合了物理仿真与数值仿真,在仿真过程中将计算机与实际系统的一部分相连,在计算机中建立数学模型,对其中不便于实验或不存在的部分进行仿真。
这种仿真模式利用了计算机建模的优势,具有建模简单、成本低、参数修改方便、使用灵活等特点。
对于系统中难以建立数学模型的部分则将实际系统或物理模型接入,这样可以保证系统整体运行,实现对整个系统的仿真。
硬件在环仿真具有较高的真实性,所以一般用于评价控制系统方案的可行性与正确性,也可以对产品进行故障模式仿真、对控制系统进行闭环实验的动态仿真等。
硬件在环仿真条件与实际情况更加接近,在产品的调试与测试过程中,更能准确、客观地反映出产品的性能。
一般来说,真实的控制系统与真实的被控对象的联合测试(即台架实验、实车实验)能最有效地评价控制策略的性能。
但对于某些成本较高、存在一定危险的被控对象来说,在台架、实车实验之前采用虚拟的被控对象,能够实现降低开发成本、保证开发过程的安全性等目的。
8.3.1系统构成
硬件在环算法测试平台如图8-16所示。
该平台主要由ArbinBT2000充放电机、恒温箱、直流电源、上位机、BMS(BCU和BMC)以及被测对象构成。
由于动力电池参数易于获取,该平台可使用实际动力电池单体作为被测对象。
图8-16硬件在环算法测试平台(见彩插)
被测单体置于第2章所述的恒温箱内,ArbinBT2000设备通过动力总线对其进行充放电。
BMC采集动力电池单体的电压、温度和电流并通过CAN总线发送至BCU进行数据处理。
所需评价的算法下载至BCU,通过在线运算将算法结果由CAN总线发送给上位机并实时显示。
BMC和BCU由直流电源进行供电。
其中,BCU基于MPC5644A芯片进行开发,可实现算法的实时计算、系统通信、故障诊断等功能。
该芯片主要特性如下:
①数字信号处理功能增强的PowerArchitecture内核。
②运行频率高达150MHz。
③Flash内存高达4MB。
④8KB指令高速缓存提高内存性能。
⑤具有3个FlexCAN通信控制器模块,可根据CAN2.0B协议规范进行CAN通信,支持高达64位数据缓冲区。
⑥静态随机存取内存高达192KB。
基于LTC6804-1芯片开发的BMC如图8-17所示,主要特性如下:
①12路电压采集通道,室温下采集误差可控制在±2mV以内。
②12路温度采集通道,温度采集误差在±1℃以内。
③采样周期为100ms。
④具有一路CAN通信端口,两路SCI通信端口。
⑤4位编码器可实现对BMC硬件层面的ID编码。
⑥可选用外部电源或动力电池组供电。
⑦可实现被动均衡以及常见故障诊断功能。
图8-17基于LTC6804-1芯片开发的BMC
8.3.2算法集成
本节算法集成采用自动代码生成技术。
代码自动生成是通过开发软件将算法模型语言(控制策略模型)转换为高级语言(C语言等)代码的过程。
该过程只需事先进行代码转换配置,即可实现代码的自动转换。
实际上,快速原型仿真过程也对自动代码生成方法有所应用,但是其生成的代码仅适用于特定的虚拟控制器,而对于本节自动生成的代码,则能直接应用于实际控制器之中。
相比传统的人工编程,代码自动生成技术主要有以下三方面优势:
①将开发人员从繁琐的编程任务中解放出来,开发人员不需要熟练掌握高级语言代码编程技术,能专注于控制策略的制定,从而可降低对开发人员的要求。
②节省了以往人工编写代码的时间,极大地提高了开发效率,缩短了核心算法开发周期。
③人工编写代码的质量往往具有较大的不确定性,取决于开发人员水平甚至其编程时的个人状态,因而代码容易出现错误,会额外增加修正代码的时间。
而代码自动生成技术能大大地降低代码生成过程的错误率,保证代码质量的同时,提高开发效率。
然而,代码自动生成技术同样依赖于正确、合理的参数配置,不合理的参数配置往往会导致程序可读性差,执行效率低,甚至出现编译报错的情况。
采用RTW自动生成代码的一般流程如图8-18所示。
首先通过RTW编译命令将Simulink模型编译为rtw文件,然后通过目标语言编译器(TargetLanguageCompiler,TLC)将rtw文件转换为一系列的C文件、h文件等,生成模型的源代码。
生成的源代码有两种应用方式:
一种是使用Simulink提供的模板自动生成Makefile来编译链接生成的源代码从而得到目标文件;另一种则是将生成的源代码加入到目标芯片所使用的集成开发环境(IntegratedDevelopmentEnvironment,IDE)的工程项目之中,通过该IDE编译链接,同样能得到目标文件。
最后,将目标文件通过仿真器或调试器下载到目标硬件之中。
图8-18代码生成流程
在由Simulink模型自动生成代码时,至少需要进行如下基本设置:
①配置模型求解器。
因为RTW只能从固定步长的模型生成代码,所以需将求解器配置为固定步长。
针对目标芯片定制的代码生成过程中,步长应等于实际控制器的程序运行周期。
因为本节算法计算周期为1s,所以设置固定步长为1,如图8-19所示。
对于不同的算法和控制器,可相应地设置不同的求解器和步长。
②硬件实现设置。
配置代码对应的硬件厂商和型号,设置代码变量所占硬件的内存空间大小等如图8-20所示。
③系统目标文件设置。
如图8-21所示,在codegeneration选项卡下配置代码生成过程的系统目标文件。
ert.tlc文件是EmbeddedCoder提供的能够生成专门用于嵌入式系统C代码的系统目标文件。
图8-19模型求解器设置
图8-20硬件实现设置
图8-21系统目标文件设置
最终自动生成算法源代码,根据控制器底层程序框架进行适当地修改和嵌入,实现自动生成代码的运行。
8.3.3测试评价
1.动力电池模型与SOC/SOH估计评价
该示例测试对象为动力电池9-单体01、单体02和单体03,实验分为UDDS-NEDC-CTCDC混合工况动力电池单体算法实验和动力电池单体算法收敛能力测试实验。
UDDS-NEDC-CTCDC混合工况单体算法实验由UDDS、NEDC和CTCDC工况块组成,进行MHIF算法测试,这里将算法中的动力电池可用容量视为未知量。
将未进行老化循环的单体均置于25℃温箱中。
实验前对动力电池单体进行标准容量测试,最后阶段采用CCCV方式充满电并静置1h。
设置算法SOC初始误差为70%,容量初始误差为2%,开启基于上述混合工况的算法测试实验,以动力电池达到下截止电压作为实验终止条件。
实验结束后,统计算法输出的SOC估计结果、容量估计结果,并以对应状态下安时积分法的结果作为参考值计算相应的误差。
动力电池单体算法收敛能力测试用于评价算法在不确定SOC初值条件下的收敛能力。
将动力电池静置于25℃温箱中,分别在三种情况下进行评价:
①SOC参考初值为100%,算法初值为70%。
②SOC参考初值为80%,算法初值为50%。
③SOC参考初值为60%,算法初值为30%。
算法评价结果如图8-22所示。
由图8-22a和b可知,基于MHIF算法的SOC动态估计误差绝对值<1%,动力电池容量和端电压动态估计相对误差<0.5%。
MHIF收敛时间结果如图8-23所示。
可见,在动力电池SOC初值分别为100%、80%和60%且算法初值分别为70%、50%和30%时,基于MHIF算法的动力电池SOC估计收敛时间均小于60个采样周期。
2.动力电池剩余寿命预测算法评价
本示例基于实际BMS控制器,通过上位机实时发送真实的电池实验数据至控制器进行运算,实现对不同电流倍率和温度下的动力电池RUL预测算法的评价分析。
基于部分历史数据的经验预测法(采用线性模型)的动力电池RUL预测硬件在环评价结果如图8-24所示,其中拟合过程所用的历史数据长度为100。
图中同时展示了基于MATLAB仿真的计算结果。
评价结果显示,基于BMS实际控制器的结果与MATLAB仿真结果一致,两者动力电池RUL估计误差<2次循环,可以看出该算法能满足BMS控制器的实时性要求。
图8-22MHIF算法SOC、容量估计和电压预测结果与误差
a)SOC测量值和估计值对比(局部)b)SOC估计误差c)容量测量值和估计值对比(局部)d)容量估计误差e)电压预测值和测量值对比(局部)f)电压预测误差
图8-23MHIF算法不同SOC初值收敛结果
图8-24基于移动窗口法的RUL预测硬件在环评价结果(见彩插)
a)1C,25℃b)2C,40℃
8.4实车实验验证
实车实验是指将经过仿真平台评价后的BMS核心算法,应用于真实的新能源汽车,对该车所有可能的实际运行工况进行充分的测试,从而评价所设计的核心算法的稳定性和可靠性等,并根据测试结果进行相应的调试,最终使得BMS及其核心算法满足需求说明书中的所有要求。
实车实验为基于模型的“V”开发流程中的最后一步,也是汽车产品投入市场前的关键一步。
一般来说,实车实验又分为转鼓实验台测试和实际道路测试两个阶段。
8.4.1转鼓实验台测试
在BMS核心算法应用评价过程中,为了充分测试实车BMS中的核心算法在多种典型行驶工况中的估计效果,可以在转鼓实验台上进行一系列实验。
开发动力电池管理算法的测试现场如图8-25所示。
同时,转鼓测试过程可以在专门的环境仓中进行,通过将实验过程中的环境温度保持在一定的范围,使得开发测试人员能在不同环境温度下对BMS核心算法与相关控制策略进行应用评价。
图8-25动力电池管理算法的测试现场
8.4.2实际道路测试
车辆在实际道路运行时,行驶工况受到道路情况、交通状况、环境因素等多种因素的影响,随机性比实验室测试环境下大得多。
因此,有必要对实车路况下BMS核心算法的各项性能做进一步的实际道路评价。
在通过实际道路测试和调校后,算法完成了全部的评价流程,方可投入实际使用。