一、什么是SOC?
电池的SOC(State-of-Charge)指的是电池剩余电量的状态,这里的“剩余电量”很好理解,就是电池中还剩多少电量;那么这个状态该如何表示呢???
一款全新的iPhone电池容量是3227mAh,假如使用了两个小时还剩2000mAh,那么2000mAh就是剩余电量的状态;
特斯拉Model3电池容量约为60kWh,假如充满电之后已经行驶了200km,还剩40kWh,那么40kWh就是电池的剩余电量的状态;
问题是,不管是采用Ah还是kWh做为单位,于没有专业知识的使用者来说都不够直观,而我们更习惯于通过百分比的形式来读取电池的剩余电量,所以为了表示方便,通常将电池的SOC表示如下:
式中,Qc 指的是某时刻电池的剩余可用电量,Qn 指的是电池的额定容量。所以要想得到SOC的值,只需要知道Qc和Qn两个参数即可。Qn会随着电池的老化而减小,但是其变化率较小,所以归根结底计算SOC就是计算Qc。
那么为什么要确定SOC的值呢?
一个很重要的原因就是让用户做到“心里有数”,以电动汽车为例,如果根据以往的经验用户知道在满电状态时续航里程大约为500km,而现在距离最近的充电桩还有50km,那么用户就知道当用到剩余电量还是10%~15%时,就得去充电了,或者保险起见在SOC为20%的时候就去充电。
但是,如果SOC只有这一个用途的话,为什么现在的研究还需要想尽各种办法来提升SOC的估算精度呢?就像我们平时玩手机,剩余电量到底是55%还是56%很重要吗?绝大多数情况下我们更关心的是电量低的时候能不能够及时进行充电吧。那么SOC的精度还有哪些影响呢?
二、为什么要提高SOC估算精度?
我发现,各车企在市面上选择动力电池时,并不会把SOC估算精度做为一项重要的指标,相比之下车企更关心的是电池的电压平台、电量、充放电能力等,那么尽兴SOC估算精度的研究是否有意义呢?
在回答这个问题之前,我们不妨想一想,如果电池SOC的估算误差大于20%会怎么样?大于10%会怎么样?大于5%会怎么样?
如果SOC估算误差大于20%,那么当汽车显示电量还剩20%时,就会随时可能停止工作在路边趴窝,一般来说当电动汽车电量低于30%时,驾驶员就会产生里程焦虑,担心电量不足以行驶至充电站,当电量介于20%~30%之间时就应该准备给车辆充电了,就像在开油车时很少有人会把车开到油表提示灯亮起再去加油一样。所以,如果SOC估算误差大于20%,意味着在车辆仪表盘显示SOC低于50%时,便会引起驾驶员的恐慌,直接影响驾驶体验。
如果SOC估算误差大于10%,那么意味着当车辆仪表盘显示SOC值为20%时,实际的SOC可能只有不到10%,那么此时如果继续行驶,就可能会导致电池过度放电,同样在充电过程中也可能出现过充,频繁的过充过放对电池的寿命和安全性都有很大的影响。
那么当SOC估算误差大于5%呢?可能从用户和电池使用工况角度来看,5%的误差都是勉强可以接受的,而且很多电池厂家在协议中都会提到其BMS的SOC估算精度<5%,那么是否意味着5%的误差已经足矣,不需要继续提升了呢?
答案是否定的。
搞BMS的都知道,电池管理基本上就是围绕电池的状态来进行的,或者说电池管理就是在做一件事:了解电池的状态,并想办法让电池工作在最优状态。
电池的状态除了SOC之外,还包括SOH(State-of-Health,健康状态)、SOP(State-of-Power,功率状态)、SOE(State-of-Energy,能量状态)等等,所以有时候会把电池状态统称为SOX,只不过在实际使用中我们更关心SOC和SOH,对别的状态关注较少。
那么SOH怎么算呢?SOH指的是电池的健康状态,一般可用于判断电池的寿命,SOH的定义方式不是统一的,其中一种计算方法为:
这种方法是以电池的当前实际容量与额定容量的比值来定义SOH的,比如当电池的实际容量降为额定容量的80%时,一般认为电池达到了使用寿命。
这种定义方法就需要知道当前容量的准确值,一般可以通过电池在某SOC值进行充电,根据电池充满时可以充入电量来计算电池的实际容量。所以,该方法得到的SOH精度是严格依赖SOC的精度的。
除此之外,电池管理系统的SOP状态计算、电量均衡等功能的实现,均需要以SOC的值为基础,可以说SOC的估算精度提高了,电池管理系统的整体性能就能得到优化提升,所以我们要想办法提高SOC估算精度。
三、如何进行SOC估算
为了提高SOC的估算精度,业界做了很多的努力,也提出了很多方法。这些方法根据不同的原理,大致可以分为以下三大类:
1、传统方法
这一类方法原理简单,可能是比较早被用于进行SOC估算的方法,所以通常被称为传统方法。
(1)开路电压法
开路电压法,就是根据电池的开路电压OCV来确定其SOC值。以锂离子单体电芯为例,一般在充满电时电压可达到4.2V左右,在完全放电时截止电压2.6V左右。在电池的充放电过程中,电池的电压是不断变化的。研究发现电池的开路电压跟电池的剩余电量是有一定关系的,什么关系呢?不知道!别笑,是真的不知道,到目前为止还没有人能够推导出SOC和OCV函数映射,所以通常采用最笨的方法——数据拟合。
简单来说,分别测量在不同的SOC值下的电池开路电压大小,然后通过数据拟合的方法得到关于SOC- OCV的函数。比如,我们假定SOC和OCV的关系是符合三次函数关系曲线的,那么就可以假设其关系为:
OCV = asoc^3 + bsoc^2 + c*soc + d
根据测量得到的(OCV,SOC)数据点进行拟合,求出参数a,b,c和d的最优解即可,听上去好像很复杂,但是只要有实验数据,通过Matlab写一个简单的小程序就能实现,不会写的可以来找我。
那么最关键的就是如何获得实验数据,也就是在不同的SOC值时电池的OCV值。这里不得不提一下锂离子电池的一个特点,那就是极化效应,关于极化效应的原理请大家自行百度,这里不做解释。极化效应带来的影响就是电池在停止充放电后的一段时间内,其电压并不是恒定的,而是在慢慢变化的,大约在静置1~2小时后得到的电压才是当前SOC下真正的开路电压。所以在测量电池SOC和OCV的关系时,往往是通过HPPC试验,也就是脉冲放电试验,答题过程就是放电10%,静置1小时,往复循环,直至完全放电。所以,HPPC试验是很麻烦的一个试验,需要实验数据的同学可以滴我。锂离子电池还有一个显著的特点,就是其特性特别容易受到环境温度的影响。他最喜欢的温度区间大约在-20°C~50°C(与人类能够适应的温度区间相似),而在不同的温度下,其放电能力、开路电压、内阻等参数均不一样,下图为某款电芯在不同的温度下的SOC和OCV关系。
那么,当我们花费这么多精力去测量出了电池的开路电压,是否就可以一劳永逸的解决SOC估算问题呢?
事情可没这么简单!
在进行HPPC试验时,电池的开路电压都是在静置1小时之后测量得到的。在实际使用中显然是不现实的,我们不可能停下电动车静置一段时间,只为了读取剩余的电量。所以,从这一个方面来说,通过开路电压来估算电池的SOC值并不可行。
但是不要灰心,该方法还是有可取之处的。如果电池超过1小时未进行充放电,比如电动汽车晚上停车,那么第二天早上再启动车辆时,就可以得到电池的SOC值,该值可用于对不准确的SOC估算值进行校准。
(2)安时积分法
安指的是安培,即电池的充放电电流。时指的是时间,安时积分就是把充入或流出电池的电流与时间进行积分,根据电池初始时刻的SOC值,就能得到在某时刻电池内的剩余电量。其原理用公式以大致表示为:
安时积分法操作简单易行,运算量小,所以成为最为常用的一种SOC估算方法。但是,该方法最的的问题在于,SOC估算精度严格依赖于电流传感器的精度。如果电流的测量值不准确,积分后过程中误差会进行累积,导致最终的SOC估算误差越来越大,严重偏离真实值。通过简单的数据进行验证就能得到该结论,这里就不再展开了。
那么这个问题是怎么解决的呢?
那就得提到前面说的开路电压法了。当电池SOC的累积误差过大时,我们可以利用电池不工作的间隙(如电动汽车夜间停车)做为静置时间,由于电池获得了足够长时间的静置,所以在下一次车辆启动时,通过开路电压法来校正电池的SOC值。
2、基于模型的方法
其实电池本身就是一个内部不断发生化学反应的,从而通过离子的流动来实现充电或放电的体系,只不过这个体系比较复杂,化学反应的强度和速度也受到很多因素的影响,比如温度、电池寿命等。所以,为了能够更好的了解电池,我们可以从其工作机理上来对其进行分析,最直观的方式就是建模。
第一类模型就是电化学模型,这类模型以多孔电极理论和浓溶液理论为基础,通过将锂离子电池内部电化学反应动力学、传质、传热等微观反应过程数值化,从电化学机理层面描述锂离子电池的充放电行为。常用的电化学模型有准二维模型、单粒子模型等。电化学模型的原理类似于机器学习中的白盒模型,虽然这了模型尝试着从工作机理上去分析问题,但是其最大的问题就是运算量太大,在线应用能力较差。
第二类模型是等效物理模型。这类模型其实挺有意思,我们在使用电池时往往关心的是其电压、充放电电流、内阻等参数,别的似乎不太关心,那干脆把电池当作一个物理元件来分析好了,既然电池能够对外提供电压,那就在物理模型中放置一个电压源;既然电池内部有阻性,那就放一个电阻;这就是内阻模型Rint的原理。
但是,如果这么简单就能够懂电池,那我们也没必要在此浪费口舌了。电池是一个让人很难琢磨的东西,比如他的极化特征在Rint模型中就无法形容。那就继续改进,在模型中加入并联的电容和电感,来模型电池的极化,这就是Thevenin模型,或者叫一阶RC等效电路模型。你要问我为什么可以这样做,我只能告诉你去查资料,因为我也讲不明白。
但是,有些人还嫌不够,觉得这样不足以将电池的外特性描述准确,那就继续加,二阶RC等效电路模型,够厉害了把。还不够?继续加!
加到最后傻眼了,这样下去什么时候是个尽头,况且电路分析起来计算量也不小,跟电化学模型比就没什么优势了。所以最后就定下来,就这么多吧,别再继续加太多了,那就二阶吧!
其实电池模型本身就是一个值得研究的问题,我的能力有限没法展开。这篇文章总结的挺全面,可以参考着去学习。
添加链接描述
电池模型一旦确定,下一步就是确定电池的模型参数。以Thevenin模型为例,需要参数辨识的方法来确定模型中电阻、电容、电感的值。参数辨识的方法也可以分为离线和在线两大类。
离线的参数辨识方法就是说在电池使用前通过电池充放电试验获得的电池数据,来确定电池的模型参数值,然后假设该值不变来进行SOC估算。但是电池的环境温度不同、使用循环次数不同,模型参数值肯定是变化的,所以离线的参数辨识方法虽然简单,但是会存在误差。
另外一类就是在线的方法,这里的在线指的是在电池的生命周期内不断校正电池的模型参数,从而提高模型的精度。但是缺点是太复杂,所以实际应用起来不方便。
至于离线参数辨识的方法,因为这篇文章不想写太深,所以不再展开。有需要的读者可以私信我,不管是辨识的方法学习、程序设计、还是实验数据我都可以提供。
那么模型有了,下一步就是真正进行SOC估算了。基于模型的SOC估算算法很多,用的比较多的如卡尔曼滤波及其改进(EKF、UKF等)、粒子滤波等。这些算法其实这要是在做一件事情,就是从充满误差的数据里,寻找电池的最优状态值。误差是无处不在的,我们没有办法完全消除误差,但是可以通过统计学的思想(如贝叶斯估计、最大似然估计等)从这些杂乱无章的数据中找出规律,获得最优解。
不要小瞧这些算法,其实真的很牛X。比如卡尔曼滤波,真正了解过的同学都会惊讶于他是如何通过5个基本公式,就能够像变魔术一样得到我们需要的结果。要知道卡尔曼滤波最早可是用于航空导弹系统的,有时间的同学真的推荐你们学一下。(附录内容获取方式:关注微信公众号【新能源汽车研究僧】,后台留言“资料”)
基于模型的SOC估算方法最大的特点就是可以尽量减小测量噪声带来的估算误差,而且从原理上很好理解。我也曾经在这方面做过很多研究工作,通过种种方法把误差降到很低(低于1%),但是说实话,这些方法的实用性仍然非常有限。
一方面,电池并不是我们想象中那么听话,在使用过程中影响电池状态的因素太多,模型很难完全表达出来;另一方面,现在车用的电池系统通常都包涵几十上百块电芯,BMS会采集到很多数据,这些数据的处理本身工作量比较大,所以很多优化算法受制于运算能力,完全无法发挥价值。
3、智能算法
即使基于模型的方法已经够复杂,有些人竟然把SOC估算和机器学习联系到了一块。通过建立神经网络模型,输入电池的关键信息,直接输出电池的SOC值。在这个人工智能已经被玩烂的时代,各行各业都在向机器学习、深度学习靠拢,SOC估算也不例外,从这方面来看似乎也不用觉得稀奇。但是,这些所谓的学者,到底是真的解决问题,还是在无聊的时候灌灌水,我也不得而知。
但是,目前行业内,恐怕没有哪家BMS厂商会想用机器学习来搞SOC估算。看看就行了,别当真!
四、总结
电池的SOC估算是一个值得研究的课题,国外发达国家在10年前就开始这方面的研究,国内大约在5年前开始受到广泛关注,近两年发表的关于SOC估算的科研论文则集中在东南亚、印度、巴西等发展中国家。
做电动汽车的产品研发的同学应该知道,各车企在电动汽车的释放过程中会遇见很多问题,电池的问题、充电的问题、安全性的问题、软件控制逻辑的问题等等,车企每天忙于解决燃眉之急的问题,很少有精力再去关心SOC的精度,毕竟误差只要不是太大是不影响车辆行驶的。况且大部分车企都是直接采购电池系统和BMS,不会自己开发,所以真正提高SOC估算精度的重担还是要转移到电池厂。
以上就是对电池SOC估算问题的一个简单介绍,有做这个课题的同学欢迎私信我一起学习讨论。
原文链接:https://blog.csdn.net/u010134355/article/details/129319695