技术文章—电路笔记:电池的电化学阻抗谱(EIS)
liebian365 2024-11-14 18:04 31 浏览 0 评论
电路评估板
电池测量板(EVAL-AD5941BATZ)
Arduino尺寸超低功耗Arm? Cortex-M3开发平台(EVAL-ADICUP3029)
设计和集成文件
原理图、布局文件、物料清单、软件
电路功能与优势
图1所示的电路是电化学阻抗谱(EIS)测量系统,用于表征锂离子(Li-Ion)和其他类型的电池。EIS是一种用于检测电化学系统内部发生的过程的安全扰动技术。该系统测量电池在一定频率范围内的阻抗。这些数据可以确定电池的运行状态(SOH)和充电状态(SOC)。该系统采用超低功耗模拟前端(AFE),旨在激励和测量电池的电流、电压或阻抗响应。
老化会导致电池性能下降和电池化学成分发生不可逆变化。阻抗随容量的下降而呈线性增加。使用EIS监视电池阻抗的增加可以确定SOH以及电池是否需要更换,从而减少系统停机时间和维护成本。
电池需要激励电流,而不是电压,而且阻抗值在毫欧姆范围内很小。该系统包括向电池注入电流的必要电路,并允许校准和检测电池中的小阻抗。
图1.简化电路功能框图
电路描述
电池EIS理论
电池是非线性系统;因此,检测电池I-V曲线的一个小样本,使系统呈现伪线性行为。在伪线性系统中,正弦输入产生的正弦输出频率完全相同,但相位和振幅发生了偏移。在EIS中,向电池应用交流激励信号以获得数据。
EIS中的信息常用奈奎斯特图表示,但也可以使用波特图显示(本电路笔记侧重常见格式)。在奈奎斯特图中,使用阻抗的负虚分量(y轴)与阻抗的实分量(x轴)作图。奈奎斯特图的不同区域对应于电池中发生的各种化学和物理过程(见图2)。
图2:电池的奈奎斯特图显示与电化学过程相对应的不同区域
这些过程使用电阻、电容和一种称为Warburg电阻的元件来建模,Warburg电阻用字母W表示(在等效电路模型(ECM)部分有更详细的描述)。没有简单的电子元件来表示Warburg扩散电阻。
等效电路模型(ECM)
等效电路模型(ECM)使用简单的电子电路(电阻和电容)来模拟电化学过程。该模型用一个简单的电路来表示一个复杂的过程,以帮助分析和简化计算。这些模型基于从测试电池中收集的数据。对电池的奈奎斯特图进行表征后,可以开发一种ECM。大多数商业EIS软件都包含一个选项,用于创建一个特定的、独特的等效电路模型,以更接近由任何特定电池生成的奈奎斯特图的形状。在创建电池模型时,有四个常见参数表示电池的化学性质。
电解(欧姆)电阻—RS
RS的特性如下:
对应于电池中电解质的电阻
在进行测试时受电极和所用导线长度的影响
随电池的老化而增加
当频率>1 kHz时占主导
双层电容—CDL
CDL的特性如下:
发生在电极和电解质之间
由围绕电极的两层平行的相反电荷组成
在1 Hz至1 kHz频率范围内占主导
电荷转移电阻—RCT
电阻是在电子从一种状态转移到另一种状态,即从固体(电极)转移到液体(电解质)的过程中发生的
随电池的温度和充电状态而改变
在1 Hz至1 kHz频率范围内占主导
Warburg(扩散)电阻—W
表示对质量转移即扩散控制的阻力
典型地表现45°相移
当频率<1 Hz时占主导
表1提供了每个ECM组件的符号和表达式。
表1.ECM组件
构建电池ECM
建立等效电路模型(ECM)的过程通常以经验为基础,需要使用各种等效电路模型进行实验,直到模型与测量的奈奎斯特图匹配。
下面几节将介绍如何创建一个典型的电池模型。
Randel电路模型欧姆和电荷转移效应
Randel电路是最常见的ECM。Randel电路包括电解质电阻(RS)、双层电容(CDL)和电荷转移电阻(RCT)。双层电容与电荷转移电阻平行,形成半圆模拟形状。
简化的Randel电路不仅是一个有用的基本模型,而且是其他更复杂模型的起点。
图3.Randel电路
图4.产生奈奎斯特图的简化Randel电路图
简化Randel电路的奈奎斯特图始终是一个半圆。电解质电阻(RS)是通过读取电池特性的高频截点处的实轴值来确定的,即线穿过图左侧的x轴处就是高频区。在图4中,电解质电阻(RS)是接近奈奎斯特图起源的截点,为30Ω。另一(低频)截点的实轴值是电荷转移电阻(RCT)和电解质电阻(本例为270 Ω)的和。因此,半圆的直径等于电荷转移电阻(RCT)。
Warburg电路模型—扩散效应
对Warburg电阻建模时,将组件W与RCT串联添加(见图5)。Warburg电阻的增加产生了45°线,在图的低频区很明显。
图5.Warburg电路模型—扩散效应
图6.具有扩散效应的ECM
组合Randel和Warburg电路模型
有些电池描绘两个半圆形。第一个半圆对应固体电解质界面(SEI)。SEI的生长是由电解质的不可逆电化学分解引起的。如果是锂离子电池,SEI则随着电池的老化在负极处形成。这种分解的产物在电极表面形成一层固体。
形成初始SEI层后,电解质分子无法通过SEI到达活性材料表面,与锂离子和电子发生反应,从而抑制了SEI的进一步生长。
将两个Randel电路组合起来,为这种奈奎斯特图建模。电阻(RSEI)针对SEI的电阻建模。
图7.两个Randel电路
图8.修改的Randel电路模型;奈奎斯特图是一个具有明显SEI的锂离子电池
使用AD5941的电池阻抗解决方案
AD5941阻抗和电化学前端是EIS测量系统的核心。AD5941由一个低带宽环路、一个高带宽环路、一个高精度模数转换器(ADC)和一个可编程开关矩阵组成。
低带宽环路由低功耗、双输出数模转换器(DAC)和低功率跨阻抗放大器(TIA)组成,前者可产生VZERO和VBIAS,,后者可将输入电流转换为电压。
低带宽环路用于低带宽信号,其中激励信号的频率低于200 Hz,例如电池阻抗测量。
高带宽环路用于EIS测量。高带宽环路包括一个高速DAC,用于在进行阻抗测量时产生交流激励信号。高带宽环路有一个高速TIA,用于将高达200 kHz的高带宽电流信号转换为可由ADC测量的电压。
开关矩阵是一系列可编程开关,允许将外部引脚连接到高速DAC激励放大器和高速TIA反相输入端。开关矩阵提供了一个接口,用于将外部校准电阻连接到测量系统。开关矩阵还提供电极连接的灵活性。
电池的阻抗通常在毫欧姆范围内,需要一个类似值的校准电阻RCAL。此电路中的50 m? RCAL太小,AD5941无法直接测量。由于RCAL较小,外部增益级使用AD8694来放大接收信号。AD8694具有超低噪声性能以及低偏置和漏电流参数,这对EIS应用至关重要。此外,在RCAL和实际电池上共用一个放大器有助于补偿电缆、交流耦合电容和放大器产生的误差。
激励信号
AD5941使用其波形发生器、高速DAC(HSDAC)和激励放大器来产生正弦波激励信号。频率可编程,范围为0.015 mHz至200 kHz。信号通过CE0引脚和外部达林顿对晶体管配置应用于电池,如图9所示。需要电流放大器,因为激励缓冲器所能产生的电流上限为3 mA。典型电池需要高达50 mA。
图9.达林顿晶体管对
测量电压
有两个电压测量阶段。首先,测量RCAL上的压降。其次,测量电池电压。每个组件上的压降在微伏的范围内很小(μV)。因此,测得的电压通过一个外部增益级发送。增益放大器AD8694的输出通过引脚AIN2和引脚AIN3直接发送到至AD5941芯片上的ADC。通过利用离散傅里叶变换(DFT)硬件加速度计,对ADC数据执行DFT,其中实数和虚数计算并存储在数据FIFO中,用于RCAL电压测量和电池电压测量。ADG636对电池和RCAL进行多路复用,输出至AD8694增益级。
需要ADG636开关的超低电荷注入和小漏电流来消除AD5941输入引脚上的寄生电容。由于AIN2和AIN3引脚均用于RCAL测量和电池测量,阻抗测量的信号路径是成比例的。
计算未知阻抗(ZUNKNOWN)
EIS采用比例式测量法。为了测量未知阻抗(ZUNKNOWN),在已知电阻RCAL上施加交流电流信号,并测量响应电压VRCAL。然后在未知阻抗ZUNKNOWN上施加相同的信号,并测量响应电压VZUNKNOWN。对响应电压执行离散傅里叶变换,确定每次测量的实值和虚值。可使用下式计算未知阻抗:
图10.EIS测量图
电路评估与测试
下节概述CN-0510电路设计的测试程序和结果的收集。有关硬件和软件设置的完整详细信息,请参阅CN-0510用户指南。
设备要求
带USB端口和Windows? 7或更高版本的PC。
EVAL-AD5941BATZ电路板。
EVAL-ADICUP3029开发板。
CN-0510参考软件
USB A型转micro USB电缆
连接抓取器/鳄鱼夹的Bayonet Neill–Concelman (BNC)连接器
电池(待测器件,DUT)
图11.参考设计板
开始使用
通过Arduino接头将EVAL-AD5941BATZ连接到EVAL-ADICUP3029。
插入BNC,连接F+、F、S+、S上的电缆。
通过将micro USB电缆连接到EVAL-ADICUP3029上的P10为开发板供电,并将USB电缆的另一端插入您的电脑。
在连接电池之前,确保开发板通电,以避免短路。
从GitHub下载示例固件。
analog.com wiki网站上提供了下载说明。
将嵌入式软件配置为应用所需的参数。
使用AD5940BATStructInit(void)函数。(示例如下。)
图12.固件配置
使用建议的交互式开发环境(IDE)构建代码并将代码下载到EVAL-ADICUP3029目标板。有关安装详细信息,请参阅AD5940用户指南。
按照图13所示连接电池。将F+和S+引线连接到电池的正极,将S-和F-连接到电池的负极。
按EVAL-ADICUP3029上的3029-RESET按钮。
图13.完整EIS电池系统
电池测试和结果
使用程序(如RealTerm)打开串行终端。
将波特率配置为230,400。
选择EVAL-ADICUP3029连接到的COM端口。
测量结果通过UART流式传输,并可以保存到文件中进行分析。
请注意,在程序开始时执行一次校准功能。如果激励频率较低,则至少需要4个周期才能捕获波形。要测量0.1 Hz,需要40秒以上才能完成。
请注意,硬件针对1 Hz以上的频率进行优化。低于此值的测量值由于外部放大器的1/f噪声而更加嘈杂。
图14.显示在终端程序中的结果
图15显示使用EVAL-AD5941BATZ测量示例锂离子电池的奈奎斯特图。
图15.奈奎斯特图(扫描1.11 Hz至50 kHz)
相关推荐
- go语言也可以做gui,go-fltk让你做出c++级别的桌面应用
-
大家都知道go语言生态并没有什么好的gui开发框架,“能用”的一个手就能数的清,好用的就更是少之又少。今天为大家推荐一个go的gui库go-fltk。它是通过cgo调用了c++的fltk库,性能非常高...
- 旧电脑的首选系统:TinyCore!体积小+精简+速度极快,你敢安装吗
-
这几天老毛桃整理了几个微型Linux发行版,准备分享给大家。要知道可供我们日常使用的Linux发行版有很多,但其中的一些发行版经常会被大家忽视。其实这些微型Linux发行版是一种非常强大的创新:在一台...
- codeblocks和VS2019下的fltk使用中文
-
在fltk中用中文有点问题。英文是这样。中文就成这个样子了。我查了查资料,说用UTF-8编码就行了。edit->Fileencoding->UTF-8然后保存文件。看下下边的编码指示确...
- FLTK(Fast Light Toolkit)一个轻量级的跨平台Python GUI库
-
FLTK(FastLightToolkit)是一个轻量级的跨平台GUI库,特别适用于开发需要快速、高效且简单界面的应用程序。本文将介绍Python中的FLTK库,包括其特性、应用场景以及如何通过代...
- 中科院开源 RISC-V 处理器“香山”流片,已成功运行 Linux
-
IT之家1月29日消息,去年6月份,中科院大学教授、中科院计算所研究员包云岗,发布了开源高性能RISC-V处理器核心——香山。近日,包云岗在社交平台晒出图片,香山芯片已流片,回片后...
- Linux 5.13内核有望合并对苹果M1处理器支持的初步代码
-
预计Linux5.13将初步支持苹果SiliconM1处理器,不过完整的支持工作可能还需要几年时间才能完全完成。虽然Linux已经可以在苹果SiliconM1上运行,但这需要通过一系列的补丁才能...
- Ubuntu系统下COM口测试教程(ubuntu port)
-
1、在待测试的板上下载minicom,下载minicom有两种方法:方法一:在Ubuntu软件中心里面搜索下载方法二:按“Ctrl+Alt+T”打开终端,打开终端后输入“sudosu”回车;在下...
- 湖北嵌入式软件工程师培训怎么选,让自己脱颖而出
-
很多年轻人毕业即失业、面试总是不如意、薪酬不满意、在家躺平。“就业难”该如何应对,参加培训是否能改变自己的职业走向,在湖北,有哪些嵌入式软件工程师培训怎么选值得推荐?粤嵌科技在嵌入式培训领域有十几年经...
- 新阁上位机开发---10年工程师的Modbus总结
-
前言我算了一下,今年是我跟Modbus相识的第10年,从最开始的简单应用到协议了解,从协议开发到协议讲解,这个陪伴了10年的协议,它一直没变,变的只是我对它的理解和认识。我一直认为Modbus协议的存...
- 创建你的第一个可运行的嵌入式Linux系统-5
-
@ZHangZMo在MicrochipBuildroot中配置QT5选择Graphic配置文件增加QT5的配置修改根文件系统支持QT5修改output/target/etc/profile配置文件...
- 如何在Linux下给zigbee CC2530实现上位机
-
0、前言网友提问如下:粉丝提问项目框架汇总下这个网友的问题,其实就是实现一个网关程序,内容分为几块:下位机,通过串口与上位机相连;下位机要能够接收上位机下发的命令,并解析这些命令;下位机能够根据这些命...
- Python实现串口助手 - 03串口功能实现
-
串口调试助手是最核心的当然是串口数据收发与显示的功能,pzh-py-com借助的是pySerial库实现串口收发功能,今天痞子衡为大家介绍pySerial是如何在pzh-py-com发挥功能的。一、...
- 为什么选择UART(串口)作为调试接口,而不是I2C、SPI等其他接口
-
UART(通用异步收发传输器)通常被选作调试接口有以下几个原因:简单性:协议简单:UART的协议非常简单,只需设置波特率、数据位、停止位和校验位就可以进行通信。相比之下,I2C和SPI需要处理更多的通...
- 同一个类,不同代码,Qt 串口类QSerialPort 与各种外设通讯处理
-
串口通讯在各种外设通讯中是常见接口,因为各种嵌入式CPU中串口标配,工业控制中如果不够还通过各种串口芯片进行扩展。比如spi接口的W25Q128FV.对于软件而言,因为驱动接口固定,软件也相对好写,因...
- 嵌入式linux为什么可以通过PC上的串口去执行命令?
-
1、uboot(负责初始化基本硬bai件,如串口,网卡,usb口等,然du后引导系统zhi运行)2、linux系统(真正的操作系统)3、你的应用程序(基于操作系统的软件应用)当你开发板上电时,u...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- go语言也可以做gui,go-fltk让你做出c++级别的桌面应用
- 旧电脑的首选系统:TinyCore!体积小+精简+速度极快,你敢安装吗
- codeblocks和VS2019下的fltk使用中文
- FLTK(Fast Light Toolkit)一个轻量级的跨平台Python GUI库
- 中科院开源 RISC-V 处理器“香山”流片,已成功运行 Linux
- Linux 5.13内核有望合并对苹果M1处理器支持的初步代码
- Ubuntu系统下COM口测试教程(ubuntu port)
- 湖北嵌入式软件工程师培训怎么选,让自己脱颖而出
- 新阁上位机开发---10年工程师的Modbus总结
- 创建你的第一个可运行的嵌入式Linux系统-5
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)