动力电池SOC估算方法

news2024/10/23 11:18:35

1. SOC介绍

电池的荷电状态SOC反映电池的剩余容量状况,即在一定的放电倍率下,当前电池的剩余容量与总容量的比值。
为了充分发挥电池性能和提高安全性,需要准确估算电池SOC。动力电池在使用过程中表现的高度非线性提高了SOC估算的难度,所以SOC 算方法的选择十分重要。

2. 放电实验法

2.1. 原理

采用恒定电流进行连续放电,放电电流与时间的乘积即为剩余电量。

2.2. 优缺点

缺点:

  • 实现整个过程需要大量时间;
  • 电池进行的工作必须要中断,不适合行驶中的电动汽车,不能在线对 SOC 进行测量。

优点:

  • 适用于所有电池,一般作为实验室检验所选SOC 算法精确度的标准;
  • 用于研究电池的充放电特性和用于电池检修维护。

3. 安时积分法

3.1. 原理

安时积分法是一种最常用的电量累计方法,通过计算一段时间内电流和充放电时间的积分,计算变化电量的百分比,进而求出初始 SOC0 和变化的△ SOC之间的差,即为剩余容量 SOC,则当前 SOC 的计算公式为:
在这里插入图片描述

3.2. 特点

安时积分法没有从电池内部解决电量与电池状态的关系,只是从外部记录进出电池的能量, 电量的计量精度受电池温度、充放电倍率、电池老化等因素的影响。同时电流测量不准也将造成 SOC 估算误差,而且误差随时间积累越来越大。另外初始时刻的 SOC0 由于电池存在自放电现象也将影响 SOC 估算结果。所以要提高安时法的精度,就必须对这些因素有较好的处理方法。
在实际应用中,安时积分法适用于所有的电动汽车,一般作为 SOC 估算的基础,常与其它方法结合使用,从而提高SOC 的估算精度。

4. 开路电压法

4.1. 原理

由于电池在长时间静置的条件下,其端电压与 SOC 有相对固定的函数关系,所以可以根据开路电压估计 SOC。
在这里插入图片描述

4.2. 特点

开路电压法实施起来简单易行,在电池静置足够长的时间后测量精度比较高。但开路电压法有两个显著的缺点:

  • 第一,电池必须经过长时间静置,端电压才能达到稳定状态,但由于电动汽车频繁的启停,工作电流变化大,所以在短时间内端电压不能稳定,所以不能实时准确估算 SOC;
  • 第二,电池由于存在电压平台,比如磷酸铁锂电池,在 SOC 30% ~80%期间,端电压和 SOC 的曲线近似为直线,电压变化范围非常小,目前的硬件技术达不到相应的测量精度要求,在此期间估算的SOC 误差就很大。

开路电压一般用于和其他方法结合使用,可以很好地提高SOC 的估算精度。

5. 测量内阻法

5.1. 原理

内阻法是根据蓄电池的内阻与 SOC 之间的联系来预测SOC。电池内阻有交流内阻和直流内阻之分,它们都和 SOC有密切关系。

5.2. 特点

电池交流阻抗受温度影响大,交流阻抗测量是在电池处于静置后的开路状态, 还是在电池充放电过程中进行, 存在争议,所以很少用于实车上。
直流内阻的大小受计算时间段影响,若时间段短于10ms,只有欧姆内阻能够检测到;若时间段较长,内阻将变得复杂。同时电池的内阻还受多方面因素的影响,且电池不同工作阶段电池内阻变化范围也不一样, 放电后期, 相对比较稳定;放电初期,内阻则变化大。因此,用内阻法估算 SOC,难度比较大,可信度不高。
在实际应用中,测量内阻法适用于放电后期对电池 SOC的估算,一般与安时积分法结合使用。

6. 线性模型法

线性模型法的原理是基于SOC的变化量、电流、电压和上一个时间点的SOC值建立的线性模型,具体表达式为:
在这里插入图片描述
在这里插入图片描述
式 中: SOC(i) 为 当 前 时 刻 的 SOC 值;Δ SOC(i) 为SOC 的变化量; U 和 I 为当前时刻的电压与电流;β 0、β1、β2、β 3 为系数。

上述用于估算 SOC 的模型建立在实验基础上,适用于低电流、SOC 缓变的情况,对测量误差和错误的初始条件有很高的鲁棒性。线性模型理论上可应用于各种类型和在不同老化阶段的电池,但目前只在铅酸电池上有实际应用,由于变化的SOC 与电流、电压的关系式不具有通用性,所以在其他电池上的适用性及变电流情况的估算效果要进一步研究。

7. 卡尔曼滤波法

卡尔曼滤波器是一个最优化自回归数据处理算法,其核心思想是对动力系统的状态做出最小方差意义上的最优估计。
Gregory L. Plett 将卡尔曼滤波的思想用于估算 SOC 值,就是将电池看成动力系统, SOC 是系统的一个内部状态。系统的输入向量为 Uk,通常包含电池电流、温度、剩余容量和内阻等变量,系统的输出 Yk 通常为电池的工作电压,电池SOC 包含在系统的状态量 Xk 中。
在这里插入图片描述
卡尔曼滤波法的优点主要表现在两方面:首先它很好地克服了安时积分法随时间的推移出现的误差累积效应;其次它对电池初始 SOC 值的精确度要求不高,可以在初始误差很大的情况下,很快将 SOC 值收敛到真实值附近。
卡尔曼滤波法结果的准确性和精确性在很大程度上依靠电池等效模型的建立,其估算误差主要来源于三方面:首先是模型的时变特性, 即电池在使用过程中其特性受很多因素的影响,会发生比较大的变化;其次是模型的非线性,即电池模型的某些物理特性是非线性的,要准确建立它的模型是比较难的;最后是噪声的近似处理以及管理系统物理量的测量精度等,这是由于卡尔曼滤波算法对模型噪声和测量噪声的统计特性作了假设,而实际情况中这些假设条件可能难以成立。
卡尔曼滤波法适用于各种电池,尤其适合于电流波动比较剧烈的混合动力汽车电池 SOC 的估算。它不仅给出了 SOC 的估算值,还给出了它的估算误差。

8. 神经网络

BP网络主要是利用输入、输出样本集进行相应训练,使网络达到给定的输入输出映射函数关系,常分为两个阶段:第一阶段为正向计算过程,由样本选取信息从输入层经隐含层直到输出层逐层计算各单元的输出值;第二阶段是误差反向传播过程,由输出层计算误差并逐层向前算出隐含层各单元的误差,并以此修正前一层权值。
在这里插入图片描述
神经网络法能快速、方便、高精度地估算 SOC,但其估算误差受训练数据、训练方法的影响很大;同时神经网络存在局部最优、训练周期长等缺点。在实际中,由于算法的复杂度使得计算量比较大,从而对硬件条件要求比较高,所以要想在实际中应用有待于更深入的研究。

9. 总结

目前基本上采用在安时积分法的基础上加入一些影响因子的校正来估算 SOC,其缺点是 SOC 的估算结果存在很大的误差,目前应用于电池管理系统的 SOC 估算技术还不是很成熟,上述用于电池 SOC 估算的方法都存在一定的缺陷,难以满足SOC 实时在线、高精度估算的要求。
未来 SOC 估算方法的研究将主要着眼于四点:首先通过大量实验,建立丰富的数据库,使得 SOC 估算有据可依,有据可查;其次,依靠检测技术的进步,提高电流、电压等的检测精度,保证用于 SOC 估算的基本数据的准确性;第三,引入准确的仿真模型, 更真实地表征电池在使用过程中的动态特性 ;最后综合各种算法,扬长补短,对 SOC 不同阶段引入不同的校正方法,最大程度地减少不同状态下的误差,提高其估算精度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2211583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【linux】信号(下)

8. 阻塞信号 (一)信号其他相关常见概念 实际执行信号的处理动作称为信号递达(Delivery)信号从产生到递达之间的状态,称为信号未决(Pending)进程可以选择阻塞 (Block )某个信号被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作(即被阻塞的信…

class 034 链表高频题目和必备技巧

这篇文章是看了“左程云”老师在b站上的讲解之后写的, 自己感觉已经能理解了, 所以就将整个过程写下来了。 这个是“左程云”老师个人空间的b站的链接, 数据结构与算法讲的很好很好, 希望大家可以多多支持左程云老师, 真心推荐. 左程云的个人空间-左程云个人主页-哔哩哔哩视频…

Redis 典型应用之缓存

目录 1. 缓存的基本概念 2. 使用 Redis 作为缓存 3. 缓存的更新策略 3.1 定期生成 3.2 实时生成 3.2.1 内存淘汰策略 1. FIFO (First In First Out) 先进先出 2. LRU (Least Recently Used) 淘汰最久未使使用的 3. LFU (Least Frequently Used) 淘汰访问次数最少的 4…

用C++编写信息管理系统(歌单信息管理)

C语言是面向过程的编程语言,而C是面向对象的编程语言,在书写代码时风格有所不同(也存在很多共性)。 程序说明 本次系统程序使用的是C语言进行编写,主要考虑怎么实现面向对象的问题。 因为本次程序属于小型系统程序&…

【C++学习】核心编程之类和对象(上)黑马学习笔记—超详细

目录 (一)封装 1.1 封装的意义: 意义一:在设计类的时候,属性和行为写在一起,表现事物 意义二:类在设计时,可以把属性和行为放在不同的权限下,加以控制 1.2 struct和…

【vue】组件及组件化+组件⽣命周期

代码获取 04-组件及组件化组件⽣命周期 ⼀、组件及组件化 1. 为什么需要组件&#xff1f; 1.1 思考 以可折叠⾯板为例, 现要展⽰3个, 如何操作? 可折叠⾯板案例的代码 &#xff1a; <script setup> import { ref } from vue const visible ref(false) </scri…

Day14

std::string的底层实现 三种方式&#xff1a; 深拷贝 写时复制 短字符串优化 深拷贝 无论什么情况&#xff0c;都是采用拷贝字符串内容的方式解决。不需要改变字符串内容时&#xff0c;对字符串进行频繁复制。 用一个string对象初始化另一个string对象时&#xff0c;源对…

MySQL SELECT 查询(三):查询常用函数大全

MySQL SELECT 查询&#xff08;三&#xff09;&#xff1a;查询常用函数大全 1. 单行函数 单行函数是 SQL 中一类重要的函数&#xff0c;它们可以对单行数据进行处理&#xff0c;并返回单个结果。单行函数可以嵌套使用&#xff0c;并提供灵活的数据处理能力。 1.1 定义 只对单…

微知-Mellanox网卡如何导出firmware中的config文件以及文件中有些什么?(ini配置文件,8个区)

背景 Mellanox网卡早期版本以及Engineer simple的DPU支持导出配置文件&#xff0c;该配置文件就是用来告诉firmware的行为。但不是mlxconfig真正设置的文件(mlxconfig -d xxx -e -q应该就是把这个文件读取出来&#xff0c;并且有3个文件&#xff0c;包括默认的&#xff0c;当前…

攻防世界2

forgot 发现是32位文件 fgets(s, 32, stdin)限制读入32位字符&#xff0c;无法利用 __isoc99_scanf("%s", v2) 典型的栈溢出 发现cat flag 覆盖v2-v3&#xff0c;覆盖为cat flag的函数地址 exp&#xff1a; from pwn import * context(oslinux,archamd64,log_lev…

芋道快速开发平台学习笔记

1.接口文档配置 基础知识:SpringDoc注解的使用,它是基于OpenAPI 3和Swagger 3的现代化解决方案,相较于旧版的Swagger2即SpringFox,SpringDoc提供了更简洁、更直观的注解方式。 详见springboot集成springdoc-openapi(模拟前端请求)_springdoc-openapi-ui-CSDN博客 doc文档配置…

c++面向对象三大特性——多态详解与虚函数,虚函数底层

目录 前言&#xff1a; 1. 多态的概念 1.1 概念 2. 多态的定义及实现 2.1多态的构成条件 2.2 虚函数 2.3虚函数的重写 2.4 C11 override 和 final 2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 抽象类 3.1 概念 3.2 接口继承和实现继承 4.多态的原理 4.1虚函数表 …

7.1-I2C的中断

I2C的中断与DMA 回顾 HAL_I2C_MASTER_Transmit(&hi2c1,ADRESS,PDate,Size,Time);HAL_I2C_MASTER_Receive(&hi2c1,ADRESS,PDate,Size,Time);通信具体过程如下&#xff1a; 在I2C的轮询模式中 发送时&#xff1a;CPU将以主机0x70 发送 从机 ACK 回复 主机0xAC发送 A…

⽂件的操作

1. 为什么使⽤⽂件&#xff1f; 如果没有⽂件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失了&#xff0c;等再次运⾏程序&#xff0c;是看不到上次程序的数据的&#xff0c;如果要将数据进⾏持久化…

深圳大学-Java程序设计-必实验2 类的高级应用

实验目的与要求&#xff1a; 实验目的&#xff1a;熟悉面向对象编程中类的编写。 实验要求&#xff1a; (1).请自行选择2023年成都大运会或2023杭州亚运会。大型运动会通常包括众多比赛项目。请通过分析&#xff0c;抽象它们所共有的性质&#xff0c;定义一个关于比赛项目的抽…

点评项目-6-缓存更新策略、缓存穿透、雪崩

缓存更新策略 使用 redis 缓存记录的信息&#xff0c;有可能在数据库被信息被修改导致信息不一致&#xff0c;使用缓存更新来解决这个问题 缓存更新策略主要有三种&#xff1a; 1.内存淘汰(redis默认开启) 2.超时剔除(给key添加TTL时间) 3.主动更新(编写业务逻辑) 主动更新策…

网络通信与并发编程(一)网络通信、osi五层模型、tcp协议的三次握手与四次挥手

网络通信、osi五层模型、tcp协议的三次握手与四次挥手 文章目录 网络通信、osi五层模型、tcp协议的三次握手与四次挥手一、网络通信二、osi五层模型1.物理层2.数据链路层3.网络层4.传输层5.应用层 三、tcp协议的三次握手与四次挥手 一、网络通信 网络通信是指在网络中的两个或…

Java ==> 数组(入门)

文章目录 前言一、一维数组1.入门操作2.何为null&#xff1f;3.数组可以作为函数的参数4.数组可以作为函数的返回值 二、二维数组1.基础操作2.不规则的二维数组 总结 前言 在Java语言当中&#xff0c;数组是一种基本的数据结构&#xff0c;它存储了固定大小的同类型元素的集合…

告别卡顿!五款Windows录屏工具,让每一帧都清晰流畅

小伙伴们&#xff0c;是不是在寻找一款好用、实用的Windows录屏工具呢&#xff1f;别担心&#xff0c;这次我给大家带来了一款热门录屏工具的详细评测和使用感受&#xff0c;包括福昕录屏、转转录屏、爱拍录屏、OBS录屏和EV录屏。快来看看哪款最适合你吧&#xff01; 一、福昕录…

反射的学习

1、什么是反射 反射允许对封装类的字段&#xff0c;方法和构造函数的信息进行编程访问。 也就是&#xff1a; 反射允许对成员变量&#xff0c;成员方法和构造方法的信息进行编程访问。 2、获取class对象 获取一个类的字节码文件对象&#xff1a; 方式1&#xff1a;Class.…