EKF在LiFePO4电池SOC估算中不好用?一问带你破解EKF应用难题

news2024/11/27 10:29:24

磷酸铁锂电池因为平台区的存在,导致使用戴维南模型+EKF的方法时,无法准确进行SOC准确预估。所以最近搜索了大量关于磷酸铁锂电池SOC预估的论文、期刊,但我被海量忽略客观事实、仅为了毕业的硕士论文给震惊到了。很多论文为了掩饰平台区的存在,人为伪造平台区的压差数据进行建模,有些SOC上下跳变3-8%以上(想像你开电动车时,发现剩余电量在5%上下跳变,就问你怕不怕 ) ,有些预估的OCV差异20mV以上也敢自称精度良好,而且大部分论文都不敢展示初始SOC有差异时的收敛效果。

好在最终发现一个比较靠谱的论文,总结一下供大家参考。

原文链接:

https://www.sciencedirect.com/science/article/abs/pii/S0306261923009455

原文标题:

State-of-charge estimation for onboard LiFePO4 batteries with adaptive state update in specific open-circuit-voltage ranges

注:本文除了插图为手动加入外,90%内容由国产gpt-kimi生成,只作为一般性介绍,不用作任何商业用途。转载时请也遵循此原则。

图片

       在电动汽车(EV)的快速发展中,电池管理系统(BMS)的核心功能之一是准确估算电池的剩余电量,即电池的荷电状态(State of Charge, SOC)。SOC的准确估算对于提高电池使用效率、延长电池寿命、保障行车安全至关重要。然而,现有的SOC估算方法在面对具有平坦电压-SOC关系的锂铁磷(LiFePO4)电池时,常常无法提供准确的估算结果。本文将深入解析一种新型的SOC估算方法,该方法专为解决LiFePO4电池的SOC估算难题而设计,并补充不同P, Q, R值下的测试结果。

1. 引言

LiFePO4电池因其高安全性、长寿命和低成本等优点,在电动汽车领域得到了广泛应用。但是,由于其电压-SOC曲线相对平坦,传统的基于模型的SOC估算方法难以准确反映电池的荷电状态。为了克服这一难题,研究者们提出了一种结合自适应递推平方根算法(Adaptive Recursive Square Root, ARSR)和扩展卡尔曼滤波器(Extended Kalman Filter, EKF)的新型SOC估算方法。

2. 新型SOC估算方法概述

该方法的核心在于两个主要的创新点:

  1. 自适应状态更新:根据不同的开路电压(Open Circuit Voltage, OCV)范围,采用不同的状态更新策略,以适应LiFePO4电池在不同SOC区间的特性变化。

  2. 参数在线识别:使用ARSR算法在线识别OCV和其他电池模型参数,然后根据识别结果自适应地更新EKF算法的参数。

3. 电池模型与参数识别

3.1 电池模型选择

本文选用了广泛认可的Thevenin等效电路模型来描述电池的电压特性。该模型包括一个电压源UOCV、一个欧姆内阻R、一个极化电阻Rp和一个极化电容Cp。

3.2 参数在线识别

由于电池管理系统(BMS)的计算精度限制,传统的递推最小二乘法(Recursive Least Squares, RLS)在参数识别时容易出现问题。为此,本文采用了ARSR算法,该算法通过分解协方差矩阵P来避免非正半定矩阵的问题,提高了参数识别的稳定性。

图片

4. SOC更新策略

4.1 EKF算法在SOC更新中的应用

EKF算法利用模型预测电压和实测电压之间的差异来更新SOC。该过程包括先验估计和后验估计两个部分,其中涉及到状态矩阵和协方差矩阵的更新。

4.2 自适应算法参数更新

自适应算法参数更新是本方法的核心创新之一。在不同的OCV范围内,电池的电压响应特性存在显著差异,因此需要对EKF算法的参数进行自适应调整以优化SOC更新过程。

4.2.1 OCV范围的划分与识别

首先,根据OCV曲线的斜率,将整个OCV范围划分为不同的区域,包括陡峭斜率区、平台区和缓斜率区。通过在线识别当前的OCV值,可以确定当前所处的OCV范围。

图片

4.2.2 EKF参数的自适应调整

在陡峭斜率区和平台区,由于OCV对SOC变化的响应较小,若继续进行SOC更新可能导致算法发散。因此,在此两个区域内,通过设置EKF参数Q和R的值,使得Kalman增益G趋于零,从而禁止后验估计中的SOC更新。

相反,在缓斜率区,电池的电压响应特性与SOC变化的关联性更强,适合进行SOC更新。此时,通过增大Q值并减小R值,可以提高Kalman增益G,从而加快SOC的更新速度。

图片

4.3 不同P, Q, R值下的测试结果

在实验验证中,研究者们测试了不同的P, Q, R参数设置对SOC估算准确性和稳定性的影响。实验结果表明,适当的P值有助于算法在初始阶段快速收敛,而合理的Q和R值对于维持算法在不同OCV范围内的稳定性至关重要。实验数据显示,当P设置过大时,如diag(1e2, 1e5),在OCV平台区可能会导致算法发散,而较小的P值,如diag(1e-4, 1e-4),有助于保持算法的稳定性。此外,通过调整Q和R的值,可以在不同的OCV范围内实现对SOC更新的精细控制,从而优化整个SOC估算过程。

图片

5. SOC平滑处理

为了进一步提高SOC估算的稳定性,本方法引入了Ah滤波器对EKF输出的SOC进行平滑处理。

5.1 Ah滤波器的原理

Ah滤波器基于库仑计量法,通过电池的充放电电流和时间来计算累积的电荷量,从而得到一个平滑的SOC估计值。其核心思想是利用电池的安时容量特性,通过电流积分来抵消EKF算法可能产生的SOC估计波动。

5.2 Ah滤波器的实现

具体实现中,Ah滤波器的输出SOC_Ah与EKF算法的输出SOC_EKF相结合,通过一个平滑系数k_out进行加权平均,得到最终的SOC估计结果SOC+_Ah。平滑系数k_out是一个小的正数,用于控制滤波器的响应速度。

图片

6. 实验验证

研究者们在不同温度下,通过不同的驾驶模式对所提出的SOC估算方法进行了大规模实验验证。实验结果表明,与传统方法相比,新方法在确保高精度的同时,展现出了良好的稳定性,最大绝对误差控制在2%以内。

图片

7. 方法的实用性验证

通过分析从2,909辆电动汽车收集的实车运行数据,验证了所提方法的实用性。统计分析表明,所提方法的收敛SOC范围在实际应用中具有较高的覆盖率,能够满足实际应用需求。

8. 讨论与展望

尽管本文提出的算法在新电池上进行了验证,但电池老化后OCV范围的电压会发生变化,因此需要根据电池健康状态(SOH)更新OCV曲线。未来的研究将考虑联合估计SOH和SOC,以确保算法在整个电池生命周期内的准确性和可靠性。

9. 结论

本文提出的基于Thevenin模型的SOC估算方法,通过ARSR算法在线识别电池模型参数,结合EKF算法实时估算电池SOC,并在线识别特定OCV范围以自适应更新EKF参数,有效避免了算法在OCV平坦区域的发散问题。通过不同温度和驾驶模式的实验验证,以及实车数据的应用分析,证明了该方法的高精度和高稳定性,为电动汽车中LiFePO4电池的可靠管理奠定了基础。

10. 附录:数学表达式

以下是文章中提到的一些关键数学表达式,供有兴趣深入了解的读者参考:

图片

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

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

相关文章

C++ OpenCV 图像分类魔法:探索神奇的模型与代码

⭐️我叫忆_恒心,一名喜欢书写博客的研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支…

基于SSM的旅游民宿预定系统【源码】【运行教程】

基于SSM的旅游民宿预定系统 一、项目介绍1. 游客功能2. 管理员功能3. 高级功能 二、项目技术栈三、项目运行四、项目演示总结 大家好,这里是程序猿代码之路!随着旅游业的快速发展,民宿作为一种独特的住宿方式越来越受到游客的喜爱。为了提升用…

【Linux操作系统】Linux中进程的五种状态:R、S、D、T、X以及僵尸进程、孤儿进程

操作系统中有许多同时执行的进程,这些进程都可能处于不同的状态代表着不同的含义。 R运行状态(running) 概念:并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。 我们运行可执行程序myproc利用指令 ps ajx可以看到进程…

git凭证

默认是manager # 将凭证缓存到内存中,默认缓存15分钟 git config --global credential.helper cache# 将凭证存储到磁盘上的纯文本文件中 git config --global credential.helper store# 使用 Git 凭证管理器 git config --global credential.helper manager-core查…

微服务开发与实战Day03

一、导入黑马商城项目 资料文档:Docs 1. 安装MySQL ①删除root目录下的mysql rm -rf mysql/ ②把课前资料里的mysql目录上传到root目录下 ③创建一个通用网络 docker network create hm-net ④使用下面的命令安装MySQL docker run -d \--name mysql \-p 330…

CMakeLists如何多行注释

在使用Visual Studio编写CMakeLists的时候你可能会遇到需要多行注释的情况,可又不知道快捷键是什么。。。 其实你只需要敲个 #[[ 就行了,另外一般方括号VS会自动帮你补全,之后将需要注释的内容放在第二个方括号与第三个方括号之间就完成注释…

今天是放假带娃的一天

端午节放假第一天 早上5点半宝宝就咔咔乱叫了,几乎每天都这个点醒,准时的很,估计他是个勤奋的娃吧,要早起锻炼婴语,哈哈 醒来后做饭、洗锅、洗宝宝的衣服、给他吃D3,喂200ml奶粉、给他洗澡、哄睡&#xff0…

【上篇】从 YOLOv1 到 YOLOv8 的 YOLO 物体检测模型历史

YOLO 型号之所以闻名遐迩,主要有两个原因:其速度和准确性令人印象深刻,而且能够快速、可靠地检测图像中的物体。 在本文中,我将与大家分享我在阅读一篇长达 30 页的综合性论文时获得的见解,该论文深入探讨了 YOLO 模型的进步。 这篇评论全面概述了 YOLO 框架的演变过程,…

Python教程:Python操作MySQL基础使用

8、Python操作MySQL基础使用 8.1 安装pymysql pip install pymysql8.2 测试连接 测试代码 from pymysql import Connection# 获取到MySQL数据库的链接对象 conn Connection(# 主机名hostlocalhost,# 端口号,默认3306port3306,# 账户名userroot,# 密码password3535 )# 打印…

实现Ingress-Nginx Controller高可用方案

文章目录 前提准备1.修改Ingress-Controller 运行模式为hostNetwork并生效2.给部署ingress-controller的节点打标签3.查看ingress-controller的部署情况 方式一:LVSKeepalivedNginxIngress一、部署ipvsadm和keepalived二、配置keepalived1.配置lvs01(keepalived mas…

3.haproxy负载均衡

haproxy负载均衡 一、haproxy介绍1、负载均衡类型 二、haproxy配置文件1、backend2、frontend 三、haproxy实现MySQL负载均衡 —— 4层1、后端两台MySQL配置双主复制2、安装配置haproxy2.1 安装软件2.2 编辑配置2.3 启动haproxy2.4 测试通过haproxy正常连接MySQL 四、haproxy实…

机器学习----奥卡姆剃刀定律

奥卡姆剃刀定律(Occam’s Razor)是一条哲学原则,通常表述为“如无必要,勿增实体”(Entities should not be multiplied beyond necessity)或“在其他条件相同的情况下,最简单的解释往往是最好的…

容器化部署fastdfs文件存储

目录 一、软件信息 二、构建fastdfs镜像 三、docker 启动fdfs服务 四、k8s部署fdfs服务 1、fdfs部署文件 五、外部服务访问 一、软件信息 fastdfs版本:fastdfs:V5.11 libfastcommon版本: V1.0.36 fastdfs-nginx-module版本:V1.20 nginx版本&am…

【python】OpenCV—Blob Detection(11)

学习来自OpenCV基础(10)使用OpenCV进行Blob检测 文章目录 1、cv2.SimpleBlobDetector_create 中文文档2、默认 parameters3、配置 parameters附录——cv2.drawKeypoints 1、cv2.SimpleBlobDetector_create 中文文档 cv2.SimpleBlobDetector_create 是 O…

LeetCode72编辑距离

题目描述 解析 一般这种给出两个字符串的动态规划问题都是维护一个二维数组,尺寸和这两个字符串的长度相等,用二维做完了后可以尝试优化空间。这一题其实挺类似1143这题的,只不过相比1143的一种方式,变成了三种方式,就…

Linux基础2-基本指令4(cp,mv,cat,tac)

上篇文章我们说到了rmdir,rm,man,echo.重定向等知识。 Linux基础1-基本指令3-CSDN博客 本文继续梳理其他基础指令 1.本章重点 1.使用cp命令拷贝文件 2.使用mv命令移动文件 3.使用cat,tac查看小文本文件 2.cp命令 在linux中使用cp命令来拷贝粘贴文件 cp src(原文…

信息学奥赛初赛天天练-23-CSP-J2023基础题-指针、链表、哈夫曼树与哈夫曼编码的实战应用与技巧大揭秘

PDF文档公众号回复关键字:20240608 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 4 假设有一个链表的节点定义如下: struct Node {int data; Node* next; };现在有一个指向链表头部…

【深度学习】CICIDS 2019,入侵检测,SVM支持向量机,随机森林,DNN训练,混淆矩阵

文章目录 数据集介绍Python环境随机森林训练结果SVM支持向量机训练结果DNN训练结果所有代码下载 数据集介绍 下载:https://www.kaggle.com/datasets/tarundhamor/cicids-2019-dataset 数据个数: # 删除label中是WebDDoS的数据df df[df[Label] ! WebDD…

Java Web学习笔记26——Element常用组件

常见组件: 就是一个复制和粘贴的过程。 Table表格:用于展示多条结构类的数据,可对数据进行排序、筛选、对比或其他自定义操作。 常见组件-分页主键: Pagination:分页:当数据量比较多时,使用分…

第七届全国颗粒材料计算力学会议召开,DEMms多尺度离散模拟软件受关注

近日,第七届全国颗粒材料计算力学会议暨第四届计算颗粒技术国际研讨会在南京召开。会议聚焦颗粒材料的力学理论及模型、计算分析与软件开发、工程应用和相关前沿方向中的关键科学问题和难点技术问题,开展广泛的学术交流和讨论。 会议期间,积鼎…