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

磷酸铁锂电池因为平台区的存在,导致使用戴维南模型+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.mzph.cn/news/850073.shtml

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

相关文章

Spark的开发环境配置

1. 介绍 这里主要记录一下&#xff0c;我们常用的maven配置&#xff0c;方便后期开发配置环境&#xff0c;避免每次都从零开始配置工程。 2. 工程目录 3. pom的配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven…

12c rac dg开启日志应用报错 ora-00313 ora-00312 ora-17503 ora-15012处理

错误 当备库开启日志应用后看到告警日志报大量ora-00313\ora-00312\ora-17503等错误 处理方法 SQL> alter database clear unarchived logfile group 1; alter database clear unarchived logfile group 1 * ERROR at line 1: ORA-01156: recovery or flashback in pro…

存在d盘里的数据突然没有了?别担心,恢复方案在此

在数字化时代&#xff0c;数据存储的重要性不言而喻。然而&#xff0c;有时候我们会遭遇一些意想不到的困扰&#xff0c;比如存储在D盘的数据突然消失。这不仅可能导致重要文件的丢失&#xff0c;还可能影响我们的工作和生活。本文将探讨D盘数据消失的可能原因&#xff0c;提供…

9行超强代码用Python工具快速获取放假日期

9行超强代码用Python工具快速获取放假日期 在很多场景下,我们需要获知国内具体的节假日安排情况,而国内每一年具体的放假安排以及调休情况,都依赖于国务院发布的具体公告,如果不想自己手动整理相关数据的话,我们可以用Python来快速获取最新的放假日期. 可以通过调用公开的 API…

Kubernetes 基础架构最佳实践:从架构设计到平台自动化

本文探讨了如何将DigitalOcean Kubernetes (DOKS)应用于生产环境&#xff0c;并提供实现生产准备&#xff08;production readiness&#xff09;的指导。 规划您的基础架构 Kubernetes 基础架构的规划至关重要&#xff0c;因为它为稳定且可扩展的应用部署平台奠定了基础。通过适…

c++编译器在什么情况下会提供类的默认构造函数等,与析构函数

我们都知道&#xff0c;在 c 里&#xff0c;编写的简单类&#xff0c;若没有自己编写构造析构函数与 copy 构造函数 与 赋值运算符函数&#xff0c;那么编译器会提供这些函数&#xff0c;并实现简单的语义&#xff0c;比如成员赋值。看 源码时&#xff0c;出现了下图类似的情形…

Elasticsearch 认证模拟题 - 14

一、题目 在集群中输入以下指令&#xff1a; PUT phones/_doc/1 {"brand":"Samsumg","model":"Galaxy S9","features":[{"type":"os", "value":"Android"},{"type":&q…

2024年6月8日 每周新增游戏

中医百科中药: 中医百科中药是一款非常强大的中药知识科普软件&#xff0c;该应用提供500多味中草药的文献资料&#xff0c;强大的搜索功能可根据功效、特点和关键词来快速查找中药&#xff0c;而且每味中药的图片、功效、主治、炮制方法等百科知识&#xff0c;可以很好的帮助你…

关于科技的总结与思考

文章目录 互联网时代有趣的数字数据驱动大数据的两个特性数据保护互联网免费模式的再探讨平台互联网的意义人工智能伦理的思考语言理性人梅特卡夫定律冲浪的神奇之处AR的恐怖之处叙词表、受控词表和大众分类法六度/十九度的解读知识图谱是真正的仿生智能幂次法则和优先连接现代…

选择排序(直接选择排序与堆排序)----数据结构-排序②

1、选择排序 1.1 基本思想 每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;放在序列的起始位置&#xff0c;直到全部待排序的数据元素排完就停止 。 1.2 直接选择排序 排序思想&#xff1a; ①在元素集合array[i]--array[n-1]中选择…

C++三大特性之多态

1.多态 1.1多态的概念 在面向对象方法中一般是这样表述多态性的:向不同的对象发送同一个消息&#xff0c;不同的对象在接收时会产生不同的行为(即方法)也就是说&#xff0c;每个对象可以用自己的方式去响应共同的消息。所谓消息&#xff0c;就是调用函数&#xff0c;不同的行…

【JavaSE】面向对象---多态

前言 本篇以Java初学者视角写下&#xff0c;难免有不足&#xff0c;或者术语不严谨之处。如有错误&#xff0c;欢迎评论区指正。本篇说明多态相关的知识。若本文无法解决您的问题&#xff0c;可以去最下方的参考文献出&#xff0c;找出想要的答案。 多态概念 多态&#xff08…

【小白专用】C# Task 类异步操作-浅谈

注解 Task类表示不返回值并且通常以异步方式执行的单个操作。 Task 对象是在 .NET Framework 4 中首次引入的 基于任务的异步模式 的中心组件之一。 由于对象执行的工作 Task 通常在线程池线程上异步执行&#xff0c;而不是在主应用程序线程上同步执行&#xff0c;因此可以使用…

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

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

Python001

Python 是一种高级编程语言。它具有以下显著特点&#xff1a;1. 简单易学&#xff1a;语法相对简洁明了&#xff0c;对初学者很友好。2. 丰富的库&#xff1a;拥有大量强大的内置库和第三方库&#xff0c;可用于各种领域&#xff0c;如数据分析、机器学习、Web 开发等。3. 可读…

【无标题】 Notepad++ plugin JSONViewer 下载地址32位

JSONViewer download | SourceForge.net 1、下载插件压缩包并解压出dll&#xff1a;Jsonviewer2.dll&#xff08;64位&#xff09;或NPPJSONViewer.dll&#xff08;32位&#xff09;; 2.、拷贝对应dll到Notepad安装目录下的plugins目录。 3、重启Notepad程序&#xff0c;在插…

LeetCode刷题之HOT100之颜色分类

下午好呀&#xff0c;大家&#xff01;昨天估计是喝了假酒&#xff0c;现在没有胃口&#xff0c;喝酒真的没有任何好处。以后尽量避免此活动。今天几乎没睡觉&#xff0c;准备做完这题回宿舍&#xff0c;把电脑也带回去。 1、题目描述 2、逻辑分析 对颜色排序&#xff0c;要求…

读书笔记:左耳听风

程序员如何用技术变现 我完全没有必要通过打工听人安排而活着&#xff0c;而是反过来通过在公司工作提高自己的技能&#xff0c;让自己可以更为独立和自由地生活。 因而&#xff0c;在工作当中&#xff0c;对于那些没什么技术含量的工作&#xff0c;我基本上就像是在学生时代那…

NRF24L01(2.4G)模块的使用——SPI时序(软件)篇

一、SPI的简介&#xff1a; SPI 是英语Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。 SPI&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且在芯片的管脚…

安装ps提示vcruntime140.dll丢失的解决方法,总结5种解决方法

在电脑使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到vcruntime140.dll”。这个问题可能会导致程序无法正常启动或运行&#xff0c;因此了解其原因和解决方法是非常必要的。小编将从多个方面对“找不到vcruntime140.dll”这一问题进行详细…