锂离子电池健康状态SOH介绍

通过阅读本文您可以了解电池健康状态的定义、健康状态的变化规律以及健康特征的相关知识。
锂离子电池除了最重要的荷电状态(SOC)外还有很多其他状态,例如健康状态(SOH)、功率状态(SOP)、安全状态(SOS)、剩余使用寿命(RUL)、剩余放电时间(RDT)等,其中SOH也是一个十分重要的参数。

锂离子电池健康状态的定义

健康状态的定义一般分为2种:
1.根据容量进行定义:电池满电状态下可放出最大可用容量 / 额定容量(电池出场容量)。
2.根据内阻定义:(电池当前内阻 - 电池额定内阻)/(电池某个SOH下的电阻 - 电池额定电阻),这种定义方式目前还是很随意的,可以简单认为SOH = f(R)
3.综合上述2种进行加权定义。
实际使用时往往会涉及到温度变化、充放电倍率变化的影响,因此这个SOH的定义往往有各家尝试自行判断,并不会直接呈现给用户。我在网上查到了一份汽车协会的标准,似乎不对非会员展示也并不是国标所以这里就不详细解释,如果后续遇到的话会进行文章更新。
在论文中常用第一种定义方式,本文也是依照第一种定义的方式进行展示。

健康状态的变化趋势

健康状态随着电池的使用不断下降,电池化成时会损失一部分容量,后续使用时由于存在可用锂离子损失、存储锂离子的活性物质损失等原因不断下降。
本文展示牛津大学公开数据集的Cell1电池SOH变化状态:
Cell1的SOH变化曲线
图中纵坐标为SOH值,横坐标为循环使用次数。需要注意的是,该电池每进行100次动态充放电数据后才进行一次标准充放电的测量,因此循环使用次数 = 1 代表了电池已经经过了100次循环。

健康特征

随着电池的老化,电池的外特性参数(V、I、T)也会呈现一定的变化规律,这也是能够利用外特性参数估计SOH的原理。
下图展示了电池不同老化周期下的恒流放电数据中电压的变化与SOH的关系。
Cell1电池不同SOH下的放电电压变化
从图中可以明显看出一些规律,比如放电时间随着SOH的减小而减小,电压下降速度随着SOH的减小而增大等等。对于一种特定的工况提取出有效的健康特征是很简单的,比如Cell1电池可以提取出20以上的有效特征,但通用的健康特征往往是困难的。
本文简单介绍了SOH的定义、变化趋势和健康特征。之后我会详细介绍一些健康特征以及提取方式,并且介绍如何利用健康特征来估计电池的SOH。
如果有什么问题交流可以留言或QQ:2267897749一起讨论,如果有您希望直接购买到可以直接使用的代码和数据,可以在闲鱼中搜索用户 BMS小旭 进行购买,价格十分便宜。
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
锂离子电池是目前最常用的电池类型之一,其健康状态SOH)预测对于电池的安全和性能具有重要意义。使用CNN-LSTM模型来预测锂离子电池SOH是一种有效的方法。 首先,我们需要采集大量的锂离子电池工作数据,包括电池的电压、电流、温度等参数。然后,我们使用Python编程语言结合TensorFlow或PyTorch等深度学习框架来构建CNN-LSTM模型。 CNN用于提取电池数据中的时空特征,LSTM用于捕捉数据序列中的长期依赖关系。在模型构建之后,我们需要将数据集分为训练集和测试集,并进行数据预处理、特征工程等操作。 接着,我们可以开始训练CNN-LSTM模型。通过迭代训练,模型将逐渐学习并优化锂离子电池SOH预测能力。在训练结束后,我们可以使用测试集来评估模型的性能,如准确率、召回率等指标。 最后,我们可以利用训练好的CNN-LSTM模型对新的锂离子电池数据进行SOH预测。这将有助于监测电池在使用过程中的健康状态,及时发现异常情况并采取相应措施,保障电池的安全和性能。 以下是一个简单的Python代码示例: ```python # 导入所需的库 import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense # 构建CNN-LSTM模型 model = Sequential() model.add(Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=(n_timesteps, n_features))) model.add(Conv1D(filters=64, kernel_size=3, activation='relu')) model.add(Dropout(0.5)) model.add(MaxPooling1D(pool_size=2)) model.add(LSTM(100)) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy') # 训练模型 model.fit(train_X, train_y, epochs=10, batch_size=32, validation_data=(test_X, test_y)) # 使用模型进行预测 predictions = model.predict(new_data) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值