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. 附录:数学表达式

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

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Live800:深度解析,客户服务如何塑造品牌形象

在当今竞争激烈的市场环境中,品牌形象对于企业的成功至关重要。而客户服务作为品牌与消费者之间最直接的互动方式,不仅影响着消费者的购买决策,更在塑造品牌形象方面发挥着不可替代的作用。本文将深度解析客户服务如何塑造品牌形象&#xff0…

python文件:py,ipynb, pyi, pyc, pyd, pyo都是什么文件?

1、Python文件类型介绍 📁 1.1 .py 文件:源代码基础 .py 文件是 Python 最基本的源代码文件格式,用于存储纯文本形式的 Python 代码。它是开发者编写程序的主要场所,包含函数、类、变量定义以及执行逻辑。Python 解释器直接读取…

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

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

React hooks动态配置侧边栏

React hooks根据不同需求 还有不同的角色 动态的去配置侧边栏 需求: 点击某个按钮是一套侧边栏 ,不同角色(比如管理员之类的权限高一点)比普通用户多个侧边栏 然后点击另一个按钮是另一套侧边栏 此时,就需要动态的去…

解决微信小程序分享按钮不可用

问题描述 在微信小程序中点击胶囊按钮上的三个点,在弹出的对话框中的【分享给好友】【分享到朋友圈】按钮都属于不可用的状态,显示未设置。 问题截图 解决方案 在每个需要此功能的页面都需要添加此代码,否则就不能进行使用。 // vue3时&l…

基础乐理入门

基础概念 乐音:音高(频率)固定,振动规则的音。钢琴等乐器发出的是乐音,听起来悦耳、柔和。噪音:振动不规则,音高也不明显的音。风声、雨声、机器轰鸣声是噪音,大多数打击乐器&#…

在UI界面中实现3d人物展示

简要原理(设置双摄像机): 为需要展示的3D人物单独设置一个摄像机(只设置为渲染人物层级),主要摄像机的方向与人物方向一致,但摄像机需要需要旋转180,设置的角度自行进行微调创建一个Render Texture类型的组件用于存储摄像机渲染的内容UI上设置需要展示的图片区域,图片…

台湾合泰原装BS66F360 封装LQFP-44 电容触摸按键 AD+LED增强型触控

BS66F360是一款由Holtek Semiconductor Inc.生产的微控制器(microcontroller),具有触摸检测和LED驱动功能。其应用领域广泛,包括但不限于以下几个方面: 1. 触摸按键应用:BS66F360内置了触摸按键检测功能&am…

【MySQL】聊聊MySQL常见的SQL语句阻塞场景

在平时的业务中,可能一个简单的SQL语句也执行很慢,这种情况其实大多数都是要么没有使用索引,要么出现锁竞争造成执行阻塞。本篇主要来介绍具体的场景 CREATE TABLE t ( id int(11) NOT NULL, c int(11) DEFAULT NULL, PRIMARY KEY (id) ) ENG…

17.调用游戏本身的hp减伤害函数实现秒杀游戏角色

上一个内容:16.在目标进程构建CALL执行代码 16.在目标进程构建CALL执行代码在它的代码上进行的更改,它的callData变量中的代码不完善一个完整的函数是有return的,处理器执行到return会返回如果执行不到会继续往下走,直到执行不下…

像素着色技术在AI绘画中的革新作用

摘要:随着人工智能技术的不断进步,AI绘画已成为艺术和技术领域中的一个热门话题。本文将探讨像素着色技术在AI绘画中的应用及其对创作过程的影响,揭示这一技术如何推动艺术创作的革新。 引言: 传统的绘画方法要求艺术家具备高超的…

Nextjs学习教程

一.手动创建项目 建议看这个中文网站文档,这个里面的案例配置都是手动的,也可以往下看我这个博客一步步操作 1.在目录下执行下面命令,初始化package.json文件 npm init -y2.安装react相关包以及next包 yarn add next react react-dom // 或者 npm install --save next react…

kafka的leader和follower

leader和follower kafka的leader和follower是相对于分区有意义的,不是相对于broker。 因为每个分区都有leader和follower, leader负责读写数据。 follower负责复制leader的数据保存到自己的日志数据中,并在leader挂掉后重新选举出leader。 kafka会再…

【Unity】 HTFramework框架(五十一)代码片段执行器

更新日期:2024年6月8日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 Code Snippet Executer 代码片段执行器使用 Code Snippet Executer打开 Code Snippet Executer动态执行(代码片段)静态执行&#x…

从 Android 恢复已删除的备份录

本文介绍了几种在 Android 上恢复丢失和删除的短信的方法。这些方法都不能保证一定成功,但您可能能够恢复一些短信或其中存储的文件。 首先要尝试什么 首先,尝试保留数据。如果你刚刚删除了信息,请立即将手机置于飞行模式,方法是…

CSAPP Lab02——Bomb Lab完成思路详解

看见的看不见的 瞬间的永恒的 青草长啊大雪飘扬 ——月亮之上 完整代码见:CSAPP/bomb at main SnowLegend-star/CSAPP (github.com) 01 字符串比较 简单的把输入的字符串和地址“0x402400”内早已存储的字符串相比较。如果两个字符串相等则函数返回,否…

比亚迪正式签约国际皮划艇联合会和中国皮划艇协会,助推龙舟入奥新阶段

6月5日,比亚迪与国际皮划艇联合会、中国皮划艇协会在深圳共同签署合作协议,国际皮划艇联合会主席托马斯科涅茨科,国际皮划艇联合会秘书长理查德派蒂特,中国皮划艇协会秘书长张茵,比亚迪品牌及公关处总经理李云飞&#…

【计算视觉】学习计算机视觉你不得不膜拜的CVPR大神:何凯明

目录 第一章:CVPR——计算机视觉的终极擂台 第二章:何凯明——计算机视觉领域的耀眼星辰 第三章:高引用论文——计算机视觉研究的璀璨星辰 第四章:何凯明的CVPR论文——深度学习的探索之旅 第五章:结语——向何凯…

多样本上下文学习:开拓大模型的新领域

大模型(LLMs)在少量样本上下文学习(ICL)中展现出了卓越的能力,即通过在推理过程中提供少量输入输出示例来学习,而无需更新权重。随着上下文窗口的扩展,我们现在可以探索包含数百甚至数千个示例的…

线性表和链表

一,线性结构 1.Array Array文档:可以自行阅读相关文档来了解Array class array.array(typecode[, initializer]) array.append(x):添加元素到数组末尾 array.count(x):计算元素出现次数 array.extend(iterable):将迭代…