本文介绍了扣式电池和软包电池的制备及测试流程,对电池应用、制备所需材料及具体操作流程进行说明,并提供了相关的制备步骤和注意事项。在流程图的支持下,展示了两种电池制备的详细流程,并强调了在实验过程中需要注意的关键细节。最后,通过性能测试及分析进行总结。本文旨在为读者提供清晰的操作指南和全面的实验数据分析,以支持电池研究和开发领域的进一步探索和应用。
关键词:扣式电池、软包电池、充放电性能、SOP
本文的网页版可在https://p.kdocs.cn/s/MFYCKKQ2ABADA或 SDIM 101 电池制作 SOP 查看。数据处理部分的源代码可见下方github:https://github.com/HaibinLai/Zn_Battery_SOC_Analysis.git。
名词 | 释义 |
比容量 | 电池单位重量或单位体积所输出的容量,通常以Ah/kg(安培小时每千克)和Ah/L(安培小时每升)表示。电池的比容量可以通过以下公式计算:比容量=(电池输出的电量/电池的质量或体积)其中,电池输出的电量以安培小时(Ah)为单位,电池的质量或体积则分别以千克或升为单位。 |
循环伏安曲线 | 循环伏安曲线是电化学反应过程中,电流随电压变化曲线。伏安循环曲线可用于研究电极/电解液界面上电化学反应行为、速度等,广泛应用于能源、化工、冶金、金属腐蚀与防护、环境科学、生命科学等领域。 |
线性差值 | 线性插值(Linear interpolation)是一种通过已知数据点之间的直线来估计介于这些点之间的值的方法。它在数学和计算领域广泛应用,特别是在数据分析、图形学和工程计算中常见。 具体来说,线性插值假设在两个相邻数据点之间的数据变化是线性的。假设我们有两个点 ( 这个公式基于以下假设: - ( x ) 在 ( - ( y ) 是我们希望估计的 ( x ) 对应的值。 这种方法基于线性函数的特性,即直线上的点之间的值按比例变化。虽然线性插值简单易用,但在某些情况下可能会产生较大的误差,特别是在数据点之间变化剧烈或者非线性的情况下。 |
💡
锌-锌纽扣电池为实验室内常见的半电池。本节将对其制作及测试进行介绍与说明。
实验室扣式电池是电池材料研发及检测阶段,对材料进行电化学性能测量的重要工具和方法。除了用于对现有材料的性能进行检测之外,扣式电池还用于对新材料、新工艺产品进行初步的电化学性能测试与评价,正确的组装扣式电池对该材料的开发与制备、全电池设计与应用有着重要意义。[2]
📌
具体各项制作材料见下表。
样品 | 购买厂家 | 样品规格 | 数量 | 配图 |
负极片(锌) | 自制 | 直径约14mm,厚度约100um薄片 | 1片 | |
正极片(锌) | 自制 | 直径约14mm,厚度约100um薄片 | 1片 | |
硫酸锌电解液 | 自制 | 1mol/L | 150uL | |
纽扣电池正极 | 友研 | CR2032 3V | 1个 | |
纽扣电池负极 | 友研 | CR2032 3V | 1个 | |
纽扣电池垫片 | 友研 | 直径15mm薄片 | 1片 | |
纽扣电池弹片 | 友研 | 直径15mm薄片 | 1片 | |
纽扣电池隔膜(玻璃纤维隔膜) | 自制 | 直径15mm薄片 | 1片 |
⏳流程图全过程如下图所示,包含材料准备、具体制作及测试。具体过程将在下文中逐步说明。
🚩下文主要讲解纽扣电池组装方法及注意事项。
👌
下文使用电池充放电实验系统进行测试,并进行基本的数据查看。
电池的充放电测试包含恒流-恒压充电、恒流放电模式,记录该过程中的测试时间、电压和电流等数据,通过分析该过程中数据的变化来表征电池或材料的容量、库仑效率、充放电平台以及电池内部参数变化等电化学性能参数。
将电极夹夹在制备好的电池的正负极两端,固定好电池,将其接入电池充放电测试系统。测试系统可采用新威neware CT/CTE-4000电芯测试设备,上位机控制软件采用BTS 8.0, 版本号为NEWARE_BTS_8.0.0_20221226_Ch,可在下载中心 - 新威NEWARE官网 在线下载
接入系统后,打开上位机软件,设置对应的测试格。充放电恒定电流值设置为5mA/cm-2 5mAh/cm-2,随后从充电开始,进行测试。
等待测试一定周期后,即可查看电池电压、电流、比容量等具体数据,检查电池是否正常。
在测试一定周期后,即可查看电池各项数据,检查电池数据是否正常。正常状态下,锌-锌半电池的电压-总时间曲线(红色曲线部分)应呈现梯形状,其充电及放电过程基本对称,充放电电压峰值绝对值基本一致,电池容量-时间曲线,能量-时间曲线基本为折线状,则此时电池数据基本正常。
如出现在开始测量后的几个循环内,充放电电压峰值绝对值相差过大,电压曲线紊乱,电池容量曲线紊乱等情况,可以认为电池出现故障。一般的故障原因有电池内发生副反应产生气体导致电池碰撞鼓包,电池锌片发生锌枝晶造成穿刺。
可能导致故障的原因有:
在数据查看中,可以主要关注电池电压,容量及能量。
电池电压可由软件直接查看,在给定的电流及容量下观察电池的峰值及平均输出电压。平均输出电压的计算公式为
电池容量是锂离子电池性能的重要性能指标之一,它表示在一定条件下锂离子电池储存的电量,通常以 A·h(安时)或 mA·h(毫安时)为单位(1 A·h=1000 mA·h),锂离子电池容量参数的获取主要采用的方法是在电池由 100% SOC 放电至 0% SOC时(即在测试电压范围内),电流对时间积分,即
电池能量密度(W),指的是单位质量的正极活性材料所能够存储和释放的能量,即放电平均电压与克容量的乘积,常用单位为 W·h/kg(常称为比能量),也包括体积能量密度 W·h/L。
🌐在进行对应测试后,如需进一步进行数据的详细分析,可使用进一步的数据处理操作对电池数据进行评估。
本文选用Python作为主要程序语言进行数据处理,使用Postgresql数据库进行数据仓储与持久化。所需要的程序及软件推荐版本如下表所示。(也可使用MATLAB作为处理语言,MySQL作为数据仓储)
软件/库 | 版本 | 使用说明 |
---|---|---|
Python | 3.12 | 编程语言,进行数据处理 |
PostgresSQL | 16.1 | 数据库,用于数据持久化 |
pandas | 2.2.2 | 数据分析库,用于数据标准化及处理 |
matplotlib | 3.8.4 | 绘图程序库,用于数据可视化 |
使用psql、pgAdmin4或datagrip、Pycharm等工具软件将电池数据保存至数据库中。以Pycharm为例,打开生成的csv文件,点击左上角上传到数据库图标,选择数据源Postgresql,选择对应数据库及页表,在这里以默认数据库postgres及output页表为例,进行上传。
如使用psql,以用户名postgres,端口为5432的本地数据库为例,则可使用如下命令登录进入数据库。(-U后为用户名,-d后为数据库,-h后为数据库地址,-p后为端口号)
psql -U postgres -d postgres -h localhost -p 5432
使用如下SQL插入数据至数据库,其中Path_to_csv替换为存储数据文件目录。
\copy ouput FROM 'Path_to_csv/output.csv' DELIMITER ',' CSV HEADER;
插入后,可以使用pycharm进行可视化查看,或在psql控制台内使用如下命令进行查看:
SELECT * FROM output;
在页表中,非全零部分数据标签依次为:
C1 | C2 | C3 | C4 | C5 |
---|---|---|---|---|
数据序号 | 工步类型 | 时间 | 总时间 | 电流(mA) |
C6 | C7 | C8 | C9 | C10 |
电压(V) | 容量(mAh) | 能量(Wh) | 绝对时间 | 功率(W) |
充放电曲线体现的是电池材料的充放电行为,对扣式电池充放电曲线进行分析对理解材料的性能及电化学行为有着重要意义,尤其对半电池充放电曲线的分析,能够针对性地分析某一种材料的特性行为。
选用读取数据进行查看,利用Python代码进行数据可视化:
import pandas as pd
import matplotlib.pyplot as plt
# 读取CSV文件
df = pd.read_csv('SDM-101-赖海斌csv.csv')
# 提取前5000行的第一列和第六列数据(注意Python中索引是从0开始的)
x = df.iloc[:5000, 0]
y = df.iloc[:5000, 5]
# 使用Matplotlib作图
plt.figure(figsize=(8, 6)) # 可选的,设置图的大小
plt.plot(x, y, marker='o', linestyle='-', color='b', label='Data points') # 绘制折线图
plt.scatter(x, y, color='r', label='Scatter points') # 绘制散点图,如果需要
plt.title('Plot of Data from Database') # 设置图的标题
plt.xlabel('3 Second / period') # 设置X轴标签
plt.ylabel('Voltage') # 设置Y轴标签
plt.legend() # 显示图例
plt.grid(True) # 添加网格线,可选
plt.show() # 显示图形
获得电池充放电周期图像(图为半电池数据图,作为数据演示):
如需查看电池单圈充放电图像,可修改程序内读取列数为
x = df.iloc[:2500, 0]
y = df.iloc[:2500, 5]
获得对应图像(图为半电池数据图,作为数据演示):
在图中,正负极材料内锌离子的脱嵌对应了充放电曲线上的平台或斜坡区域(以及循环伏安曲线和微分差容曲线中的氧化还原峰),根据每个平台区域的变化可分析研究材料的电化学反应行为。通常充电和放电的电位平台或斜坡的数量相同,若充电和放电的总容量相同,但对应的每个平台/斜坡的容量有差异,则说明材料的反应路径或动力学机理有一定差异。
平台的起始点,对应相变的开始,平台的终止点,对应相变的结束点,平台行为意味着主体材料的电化学势与离子在材料中的占有率无关。充放电曲线中的斜坡一般对应于固溶体反应或者电容行为,斜坡行为意味着主体材料的电化学势与离子在材料中的占有率直接关联。因此,通过充放电曲线可以初步判断材料在反应过程中有几次相变反应,是两相转变反应还是固溶体、吸脱附电容行为,辅助进一步的研究。[3]
💡
软包电池是由铝塑复合膜作为封装材料的软质电池,本节将对其制作及测试进行介绍与说明。
实验室中的软包电池在电池材料研发和测试阶段扮演着关键角色,用于测量和评估材料的电化学性能。除了用于现有材料的性能测试外,软包电池还广泛应用于新材料和新工艺产品的初步电化学性能评估。正确组装软包电池对于材料的开发、制备以及全电池设计和应用具有重要意义。这些电池不仅提供了实验数据,还支持电池技术的进一步研究和创新,促进了电池技术的发展和应用。
📌
下文为制作材料的准备过程,具体各项制作材料可见下方表格。
样品 | 购买厂家 | 样品规格 | 数量 | 配图 |
软包电池外壳(铝塑膜) | 自制 | 8cm*4.3cm | 1片 | |
负极锌片 | 自制 | 2cm*2cm | 1片 | |
正极碳片(吸附了碘化锌) | 自制 | 2cm*2cm | 1片 | |
软包电池隔膜(玻璃纤维膜) | 自制 | 3cm*3.3cm | 1片 | |
镍极耳电极条 | 科晶 | 3mm*0.1mm | 2条 | |
碘化锌溶液 | 自制 | 0.25mol/L | 20ml | |
涂布液 | 自制 | 活性炭:KB(科琴黑):pvdf=7:2:1,加入nmp搅拌至水泥状 | 0.5g | |
硫酸锌电解液 | 自制 | 1mol/L | 2ml |
⏳
流程图全过程如下图所示,包含材料准备、具体制作及测试。具体过程将在下文中逐步说明。
🚩
下文主要讲解软包电池组装方法及注意事项。
👌
下文使用电池充放电实验系统进行测试,并进行基本的数据查看。
电池的充放电测试涵盖恒流-恒压充电和恒流放电模式。在测试过程中,测试系统记录了电池的测试时间、电压和电流等关键数据。通过分析这些数据的变化,可以评估电池或材料的容量、库仑效率、充放电平台及电池内部参数的变化,从而表征其电化学性能。此外,对软包电池进行了比容量测试,可为电池性能评估提供了全面的数据支持。
将电极夹夹在制备好的电池的正负极两端,固定好电池,将其接入电池充放电测试系统。测试系统采用新威neware CT/CTE-4000电芯测试设备,上位机控制软件采用BTS 8.0, 版本号为NEWARE_BTS_8.0.0_20221226_Ch,可在下载中心 - 新威NEWARE官网 在线下载
接入系统后,打开上位机软件,设置对应的测试格。进行CV,确定充电截止电压为1.6,放电截止电压为0.6V。充放电恒定电流值设置为1 mA/cm-2,随后从充电开始,进行测试。
等待测试一定周期后,即可查看电池电压、电流、比容量等具体数据,检查电池是否正常。
在测试一定周期后,即可查看电池各项数据,检查电池数据是否正常。正常状态下,锌软包电池的电压-总时间曲线(红色曲线部分)在单独充/放电时,应呈现形似三次函数曲线的形态(如下图),其充电及放电过程基本对称,充放电电压峰值绝对值基本一致,电池容量-时间曲线,能量-时间曲线为折线状,则此时电池数据基本正常。
如出现在开始测量后的几个循环内,充放电电压峰值绝对值相差过大,电压曲线紊乱,电池容量曲线紊乱等情况,可以认为电池出现故障。一般的故障原因有电池内发生副反应产生气体导致电池碰撞鼓包,电池锌片发生锌枝晶造成穿刺。
可能导致故障的原因有:
在数据查看中,可以主要关注电池电压,容量及能量。
电池电压可由软件直接查看,在给定的电流及容量下观察电池的峰值及平均输出电压。平均输出电压的计算公式为
电池容量是锂离子电池性能的重要性能指标之一,它表示在一定条件下锂离子电池储存的电量,通常以 A·h(安时)或 mA·h(毫安时)为单位(1 A·h=1000 mA·h),锂离子电池容量参数的获取主要采用的方法是在电池由 100% SOC 放电至 0% SOC时(即在测试电压范围内),电流对时间积分,即
电池能量密度(W),指的是单位质量的正极活性材料所能够存储和释放的能量,即放电平均电压与克容量的乘积,常用单位为 W·h/kg(常称为比能量),也包括体积能量密度 W·h/L。查看软包电池数据也可以评价正极活性材料的能量密度(W),从而反应电池效能。通过在软件中查看电池能量,除以对应的质量参数,可以对电池的效能,效果进行评估。
对于测试的电池材料来说,容量分析还一般需要确定 3 个数据:首次充电容量、首次放电容量(正极材料)和可逆容量,其可均在软件中查看。
其中,首次充电容量即为锂离子电池首次充电结束时的充电容量,首次放电容量即为锂离子电池首次放电结束时的放电容量,可逆容量则为电池循环稳定后的容量值,一般选取第 3~5 周的放电容量,也可选取 10 周以后的放电容量。在实际应用中,对测试材料或极片的克容量、面容量及体积容量的分析更具有参考价值。[2]
🌐
在进行对应测试后,如需进一步进行数据的详细分析,可使用进一步的数据处理操作对电池数据进行评估。
本文选用Python作为主要程序语言进行数据处理,使用Postgresql数据库进行数据仓储与持久化。所需要的程序及软件推荐版本如下表所示。(也可使用MATLAB作为处理语言,MySQL作为数据仓储)
软件/库 | 版本 | 使用说明 |
Python | 3.12 | 编程语言,进行数据处理 |
PostgresSQL | 16.1 | 数据库,用于数据持久化 |
pandas | 2.2.2 | 数据分析库,用于数据标准化及处理 |
psycopg2 | 2.9.9 | 数据库连接及适配器,用于数据库交互 |
matplotlib | 3.8.4 | 绘图程序库,用于数据可视化 |
NewareNDA | 2024.07.01 | 用于对ndax文件进行数据处理 |
Numpy | 1.26.4 | 用于对数据进行线性差值、求微分等数值计算操作 |
将测试后的数据在BTS软件进行导出。点击软件页面右上角,另存测试数据为ndax文件,之后可用Python进行数据分析。
使用NewareNDA库进行数据读取,保存数据为output.csv文件。
import NewareNDA
df = NewareNDA.read('Data.ndax')
print(df)
# save df into csv:
import numpy as np
# Open the file in append mode
with open("output.csv", "a") as csv_file:
# Create a NumPy array with the new data
new_data = np.array(df)
# Append the data to the file
np.savetxt(csv_file, new_data, delimiter=",", fmt="%s")
将存储好的csv文件导入,后使用psql、pgAdmin4或datagrip、Pycharm等工具软件将电池数据保存至数据库中,之后可用Python进行数据分析。
以使用Pycharm为例,打开生成的csv文件,点击左上角上传到数据库图标,选择数据源Postgresql,选择对应数据库及页表,在这里以默认数据库postgres及output页表为例,进行上传。
上传后,使用SQL或在IDE内进行可视化查询:
\copy ouput FROM 'Path_to_csv/output.csv' DELIMITER ',' CSV HEADER;
在页表中,非全零部分数据标签依次为:
C1 | C2 | C3 | C4 | C5 |
数据序号 | 循环圈数 | 测试节点数 | 测试状态 | 电流(mA) |
C6 | C7 | C8 | C10 | C12 |
电压(V) | 容量(mAh) | 能量(Wh) | 功率(W) | 系统绝对时间 |
充放电曲线体现的是电池材料的充放电行为,对软包电池充放电曲线进行分析对理解材料的性能及电化学行为有着重要意义。
选用第3圈第一次充电时刻进行查看,此时电池测试状态应为充电,即CC_Chg。生成对应SQL语言即Python代码进行数据可视化:
import psycopg2
import pandas as pd
import matplotlib.pyplot as plt
# pg
conn = psycopg2.connect(database="postgres", user="postgres", password="123456", host="127.0.0.1", port="5432")
print("Open database successfully")
cur = conn.cursor()
# sql
cur.execute("select * from output where c4 = 'CC_Chg' and c3 = 6 and c1%2 = 1;")
rows = cur.fetchall()
data = pd.DataFrame(rows,
columns=['idx', 'loop', 'cycle', 'situation', 'time', 'voltage', '1', '2', '3', '4', '5', '6']
)
print(rows)
conn.close()
# Visualize
df = data
# 提取数据
x = df.iloc[:, 0]
y = df.iloc[:, 5]
# 使用Matplotlib作图
plt.figure(figsize=(8, 6)) # 可选的,设置图的大小
plt.plot(x, y, marker='o', linestyle='-', color='b', label='Data points') # 绘制折线图
plt.scatter(x, y, color='r', label='Scatter points') # 绘制散点图,如果需要
plt.title('Plot of Data from Database') # 设置图的标题
plt.xlabel('Second') # 设置X轴标签
plt.ylabel('Voltage') # 设置Y轴标签
plt.legend() # 显示图例
plt.grid(True) # 添加网格线,可选
plt.show() # 显示图形
print("Operation done successfully")
获得电池充电时刻图像(图为锌软包电池数据图,作为数据演示):
如需查看电池单圈充放电图像,可修改程序内SQL为
select * from output where (c3 = 6 or c3 = 7) and c1%2 = 1;
获得对应图像(图为锌软包电池数据图,作为数据演示):
在图中,正负极材料内锌离子的脱嵌对应了充放电曲线上的平台或斜坡区域(以及循环伏安曲线和微分差容曲线中的氧化还原峰),根据每个平台区域的变化可分析研究材料的电化学反应行为。通常充电和放电的电位平台或斜坡的数量相同,若充电和放电的总容量相同,但对应的每个平台/斜坡的容量有差异,则说明材料的反应路径或动力学机理有一定差异。
平台的起始点,对应相变的开始,平台的终止点,对应相变的结束点,平台行为意味着主体材料的电化学势与离子在材料中的占有率无关。充放电曲线中的斜坡一般对应于固溶体反应或者电容行为,斜坡行为意味着主体材料的电化学势与离子在材料中的占有率直接关联。因此,通过充放电曲线可以初步判断材料在反应过程中有几次相变反应,是两相转变反应还是固溶体、吸脱附电容行为,辅助进一步的研究。[3]
在对电池充放电曲线进行分析的过程中,为了方便充放电曲线的研究,将该曲线进行微分处理,将平台区域转换为峰曲线。通常使用的方法是微分差容曲线(incremental capacity,dQ/dV vs. V)和微分电压曲线(differential voltage,dV/dQ vs. Q)对充放电曲线进行分析。
我们将使用Python,针对第3次循环的充电过程,进行dQ-dV微分曲线的演示(微分差容曲线为dQ-dV曲线进一步对电压V做比求得,微分电压曲线为差容曲线倒数,操作方法类似),代码及对应过程解释如下:
import psycopg2
import pandas as pd
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
import numpy as np
def df_dx(x):
return np.gradient(f(x), x)
# pg
conn = psycopg2.connect(database="postgres", user="postgres", password="123456", host="127.0.0.1", port="5432")
print("Open database successfully")
cur = conn.cursor()
# sql
cur.execute("select * from output where c3 = 6 ")
rows = cur.fetchall()
data = pd.DataFrame(rows, columns=['idx', 'loop', 'cycle', 'situation', 'time', 'voltage','Q','2','3','4','5','6'])
print(rows)
conn.close()
df = data
x_data = df['Q'].values
y_data = df['voltage'].values
# 使用线性插值
f = interp1d(x_data, y_data, kind='linear', fill_value='extrapolate')
x_interp = np.linspace(min(x_data), max(x_data), 1000) # 生成1000个均匀分布的x值
y_interp = f(x_interp) # 使用插值函数计算对应的y值
plt.figure(figsize=(10, 6))
# 绘制原始数据点
# plt.scatter(x_data, y_data, color='blue', label='Data Points')
# 绘制插值曲线
plt.plot(x_interp, y_interp, color='green', label='Interpolated Curve')
# 计算微分方程的曲线
y_diff = df_dx(x_interp)
plt.plot(x_interp, y_diff, color='red', label='Differentiated Curve')
plt.xlabel('dQ')
plt.ylabel('dV')
plt.title('Differential Voltage Curve')
plt.legend()
plt.grid(True)
plt.show()
np.linspace
求得要进行微分的数值区域。这里我们选择线性插值,如果数据非常密集或者需要更高精度,可以选择其他插值方法,如二次插值(quadratic)或立方插值(cubic)。np.gradient
函数来计算插值函数的导数。plot
函数绘制插值曲线和微分曲线。在执行代码后(去除第41、44行注释),其可生成一个包含原始数据点、插值曲线和微分曲线的图形。原始数据点用蓝色散点表示,插值曲线用绿色线条表示,微分曲线用红色线条表示。
Q-dV数据曲线
dQ-dV数据曲线
dQ-dV数据差值曲线
查看Q-dv曲线,可以发现进一步观察充放电曲线上的平台或斜坡区域(以及循环伏安曲线和微分差容曲线中的氧化还原峰)的具体效果,判断电池在充电过程中的充电速度,从而更好地评估电池的充电情况。从图中可以看出,电池在Q在0-30mAh情况下电压变化显著,充电速度较快,而在Q在30-50mAh情况下发生骤降,在50-300mAh周期内保持稳定,在最后300-350mAh有所提升。
继续观察dQ-dV数据曲线,可以看到电池SOC(蓝色)曲线,由此我们可以看出软包电池的充电SOC曲线规律。其增长速度先快后慢再快,其内部的化学反应机理可能也有所不同,其中可以认为中间平台段为化学反应稳定阶段。
因此,我们有理由认为,在软包电池充电过程中,若想保证电压恒定提升,防止过度电荷冲入电池造成电池发生更多的副反应,产生可能的枝晶,由Q-dV数据曲线知应将电池的充电及放电区间控制在50-300mAh左右,此时由dQ-dV数据曲线知电池电荷量增量约在15mAh/V左右。
需要说明的是,微分电容和微分电压曲线的数据是否光滑、与充放电仪的电压测量精度、电流控制精度、测试时的温度稳定性、采样点的密度都有影响。
纽扣电池和软包电池作为电池材料研发和评测的重要工具,具有多重应用和功能。通过实验室制备和测试,两者能够有效评估现有电池材料的电化学性能,并为新材料及新工艺产品的初步评估提供基础数据支持,也对电池制备工艺及全电池设计的优化具有关键影响。本文为纽扣及软包电池提供了基本的制作介绍及分析处理,为读者在电池应用上的创新提供了良好的实验基础。
赖海斌:电池制作,实验数据分析及处理、文章框架搭建及撰写。
覃仁杰:纽扣电池制作和测试,该部分操作材料、流程文章撰写。
陈沛安:软包电池制作和测试,该部分操作材料、流程文章撰写。