java电池soc算法实现,电池SOC高精度估算算法

SOC(state of

charge)算法一直是电池管理系统(BMS)开发应用的关键技术之一。因此讨论SOC算法的技术文章很常见,企业对SOC估算的高精度也往往是宣传的亮点。而关于SOC详尽的解释和定义却不常被考虑,从而导致了SOC算法结果的参考价值大打折扣。显而易见若SOC的概念都是模糊的,又何来精确的SOC呢?因此作者希望通过本文分析几种维度下的SOC值,以及这些SOC值的作用。

粗率的说,SOC=剩余容量/额定容量,而要准确表述SOC的意义就要对计算的分母——额定容量(TotalCapacity)和分子——剩余容量(ResidualCapacity)进行更为严谨的定义。以下是某些企业和组织关于SOC的定义:

SOC算法首要的难点便是针对不同的“功能需求”进行额定容量和剩余容量的定义,同时这两个参数一旦从不同的性质维度、温度维度、电池生命周期维度去观察,则可能计算出不同的SOC值。首先解释什么是“功能需求”。在计算出电池组系统的SOC值后,有多个功能模块将调用SOC值作为其的输入,同时不同的功能模块调用SOC值的需求也不尽相同。大致可以将“功能需求”分为三类:

1、用户参考需求:

第一类是最常见的需求,即用户需要对电池系统剩余的可用能量进行评估,从而决策对产品的使用方式。因此用户更为在意的是与运行距离或使用时间对应的SOC关系。

2、整车控制策略参考需求:

第二类是整车控制策略需要参考的SOC值,从而对行驶策略进行管理。尤其是混动汽车需要将SOC值始终控制在适合的区域内,从而实现节能减排(SOC不能太高,确保刹车能量能尽可能多的回收),提升性能(SOC不能太低,确保加速过程的大功率输出),提高能量效率(保持在低内阻SOC区间运行),延长电池寿命(保持长期运行浅充浅放)的作用。因此整车控制器更为在意的是功率特性和寿命衰减对应的SOC关系。

3、电池管理算法参考需求:

第三类是电池管理算法中需要参考的SOC值,由于电池组系统将随着使用和搁置从BOL状态向EOL状态过渡,而BMS则需要对电池系统全生命周期进行管理。因此电池管理算法更为在意的是在内部有一个基准,使算法在BOL和EOL之间的任一状态找到可以互相等价的SOC关系。类似于工程经济学中利用时间价值模型将不同阶段的资金通过折现率算法(discountrate)计算,从而进行转化或比较。

由此可见要满足不同“功能模块”对SOC值的参考需求,SOC值的含义需要更多元,对不同功能输出的SOC值要更精准。接下来我们就需要讨论该从哪几个维度去定义SOC值:

1、容量性质维度

进行容量积分运算的时候我们可以根据电荷守恒定律选择以安时(Ah)为单位,也可以根据能量守恒定律选择以瓦时(Wh)为单位。如下图所示,以容量C为X轴,以电压V为Y轴。不同温度下1C放电截止在X轴上的点为当前温度下电池的电量(mAh),而各个放电曲线与X、Y轴形成的面积为当前温度下电池的能量(wh)。从图中可以看出在低温环境下电池电压平台显著

你可能感兴趣的:(java电池soc算法实现)