## ***电池SOC仿真系列-基于扩展卡尔曼(EKF)算法的SOC估计(内含代码等资料)***
## ***电池SOC仿真系列-基于扩展卡尔曼(EKF)算法的SOC估计(内含代码等资料)***
## 1 研究背景
电池的荷电状态(SOC)代表的是电池当前的剩余容量,数值定义是电池剩余电量与电池额定容量之比 。SOC 估计在国内外被广泛应用,由于控制策略本质上依赖于 SOC 估计,电池管理系统(BMS)的最关键问题之一是对 SOC 的准确估计。SOC 能表示电池在充电前的持续时间,合理估计电池的电能,可以有效地预测和控制电动汽车的行驶距离,从而延长电池的使用寿命。然而,SOC 不能直接测量,必须通过电池模型参数来估计,如充电电压、电流和时间。国内外已有很多关于 SOC 估计的方法研究:安时积分法[2]是应用最广泛的 SOC估计方法,虽然这种方法较易实现,但它需要高精度的电流传感器和准确的初始荷电状态。此外,累积的测量误差和不确定的干扰都会影响估计过程,从而导致 SOC 估计不准确。(2)开路电压法 [3] 常被用来通过 OCV 和 SOC 的线性关系来估计初始SOC。然而,该方法仍存在几个问题:其一,电池需要休息很长时间,直到终端电压接近 OCV,这限制了实现的可行性;其二,由于 OCV 曲线在 SOC 中间部分相对较为平坦,稍有误差就会导致所预测的 SOC 出现较大偏差。 神经网络法 [4] 训练过程可能很耗时,且估计精度很大程度上取决于训练数据的数量和质量。(4)线性模型法 ,该模型适用于 SOC 电流小、变化缓慢的情况,对测量误差和错误的初始条件具有较强的稳定性。相较于其他估计算法,基于模型的 SOC 估计方法可有效地避免噪声和累积误差带来的问题。为了得到可靠准确的 SOC 估计结果,首先建立了一个基于等效电路模型的单体模型,引入遗传算法 (GA) 辨识方法并用于参数辨识。基于扩展卡尔曼滤波 (EKF) 建立了一种线性的 SOC 估计方法,通过仿真结果表明,误差小于 1.8% 的扩展卡尔曼滤波方法具有较高的精度。
1 电池模型
1.1 SOC 的定义:SOC 的定义是当前可用容量与最大容量之间的比率,通过库仑计数来计算,式(1)的方程
来表示 [6]:
## 2 电池 SOC 估计
卡尔曼滤波算法在每一时刻所获得的后验概率都符合高斯型分布,因此其全部参数为协方差和均值 [10]。假定扩展卡尔曼滤波离散系统的状态空间如式(10)所示
利用非线性函数的泰勒展开式,将非线性离散函数展开,得到线性化公式。然后,扩展卡尔曼滤波算法可以应用如下:
## 3 实验和验证
为了进一步验证该方法的可靠性和鲁棒性,在磷酸铁锂单体电池上进行了动态电流条件下的电池测试。使用电池HPPC 测试数据估算电池SOC,初始值设为 0.6,将基于 EKF 的 SOC 估计结果与 SOC 真实值进行对比。如图 4 所示,基于 EKF 的 SOC 估计最大误差为 1.8%,具有较高的精确度。![请添加图片描述](https://img-blog.csdnimg.cn/a834a59a84ad4309aa5a8149a820b0fe.jpg?
`........`EKF估计出的电压值与真实值的比较
`........`EKF估计出的SOC值与真实值的比较
## 4 结论
为对锂离子电池 SOC 进行可靠准确的估计,提出了一种集成 EKF 的电池估计方法,基于等效电路模型建立了精确的单元模型,通过仿真与实际值对比,结果表明,基于扩展卡尔曼滤波算法的 SOC 估计最大误差为 1.8%,精确度较高。
## 5程序代码(部分代码)
for k = 2:1:length(t)
x1(k) = Ad(1,1)*x1(k-1) + Bd(1,1)*I(k-1); % soc
x2(k) = Ad(2,2)*x2(k-1) + Bd(2,1)*I(k-1); % Vc1
x3(k) = Ad(3,3)*x3(k-1) + Bd(3,1)*I(k-1); % Vc2
% Model Prediction:
x1_hat_prev = Ad(1,1)*x1_hat(k-1) + Bd(1,1)*I(k-1);
if(x1_hat_prev >1)
x1_hat_prev = 1;
end
%
C_ek = interp1(soc_intpts_OCV_slope', OCV_slope_intpts, x1_hat_prev);
P_prev = A_ek*P(k-1)*A_ek'+ E_ek*Q*E_ek';
% Measurement Update:
V_hat(k) = interp1(soc_intpts_OCV',OCV_intpts,x1_hat_prev) - I(k)*R0 - x2(k) - x3(k);
L = P_prev*C_ek'*inv(C_ek*P_prev*C_ek'+ F_ek*R*F_ek');
x1_hat(k) = x1_hat_prev + L*(V(k)-V_hat(k));
P(k) = P_prev - L*C_ek*P_prev;
end
```
***
**
## 7代码、仿真获取
*私信**
## ***电池SOC仿真系列-基于扩展卡尔曼(EKF)算法的SOC估计(内含代码等资料)***相关推荐
- 电池SOC仿真系列-基于UKF算法的电池SOC估算研究
基于UKF算法的电池SOC估算 1.UKF算法 无迹卡尔曼滤波是将数据变化(UT变换)与卡尔曼滤波结合起来的一种算法,通过UT变换将一个状态点转换为多个状态点,依据一定的权重传递给后面观测值,再根 ...
- 电池SOC仿真系列-基于遗忘因子的最小二乘法电池参数辨识(二阶RC)
基于遗忘因子的最小二乘法电池参数辨识 最小二乘法是系统辨识中最常用的一种估算方法.为了克服最小二乘法存在"数据饱和"的问题,我们通常采用含有遗忘因子的递推最小二乘法(Forge ...
- 卡尔曼转矩观测_基于扩展卡尔曼滤波器的永磁同步电机 转速和磁链观测器
基于扩展卡尔曼滤波器的永磁同步电机转速和磁链观测器 第六图书馆 为了取消永磁同步电机控制中的机械传感器,获得直接转矩控制中需要的电机磁链信息,设计了一种基于扩展卡尔曼滤波 器的永磁同步电机转速和磁链估 ...
- 卡尔曼转矩观测_基于扩展卡尔曼滤波器的表贴式永磁同步电机负载转矩观测方法与流程...
本发明涉及永磁同步电机技术领域,具体涉及基于扩展卡尔曼滤波器的表贴式永磁同步电机负载转矩观测方法. 背景技术: 永磁同步电机(pmsm:permanentmagnetsynchronousmotor) ...
- 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发
基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB(工程项目线上支持 ...
- 【信号处理】基于扩展卡尔曼滤波器和无迹卡尔曼滤波器的窄带信号时变频率估计(Matlab代码实现)
目录 1 概述 2 数学模型 3 运行结果 4 结论 5 参考文献 6 Matlab代码实现 1 概述 本文讲解和比较了基于卡尔曼滤波器的频率跟踪方法的能力,例如扩展卡尔曼滤波器 (EKF) 和无味卡 ...
- 基于扩展卡尔曼滤波(EKF)的机器人状态估计
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 EKF的目的是使卡尔曼滤波器能够应用于机器人等非线性运动系统,EK ...
- 基于OpenCV的 SVM算法实现数字识别(四)---代码实现
三.基于SVM算法实现手写数字识别 作为一个工科生,而非数学专业的学生,我们研究一个算法,是要将它用于实际领域的.下面给出基于OpenCV3.0的SVM算法手写数字识别程序源码(参考http://bl ...
- 电动SOC仿真系列-考虑电池老化影响的电池UKF-SOC估算研究
考虑电池老化影响的电池UKF-SOC估算研究(无迹卡尔曼滤波算法) 传统的电池模型往往将电池容量设定为定值.然后在实际情况中,电池的容量会随着电池循环充放电次数的增加而减少.因此有必要在建立电池模 ...
最新文章
- C#使用CDO发送邮件
- C# 编码规范和编程好习惯
- 【LINUX/UNIX网络编程】之使用消息队列,信号量和命名管道实现的多进程服务器(多人群聊系统)...
- 面向对象(OOP)基本概念
- 三星显示、LG已开始为苹果iPhone 13生产OLED屏幕
- Fiddler(Web/HTTP调试利器)
- java .class 反编译工具推荐
- 调用链根因定位论文《Ranking causal anomalies by modeling local propagations on networked systems》
- mysql 月初 月末_sqlserver 取取月初月末和月份间隔
- halcon深度图,平面拟合后,高度矫正
- 移动应用中的第三方SDK隐私合规检测
- 下载网页所有图片的最简单的方法
- 链路聚合-LACP模式
- DDR,DDR2,DDR3,DDR4,LPDDR区别讲解
- 数学 HDU 1290 献给杭电五十周年校庆的礼物
- PCB——关于PCB设计倒角需要了解的一切(干货)
- 暑假N天乐【比赛篇】 —— 2019牛客暑期多校训练营(第三场)
- 3.2 daydayup举一反三:三天打鱼两天晒网式学习
- qt 设置标题栏图标、任务栏图标和启动图标
- 书评:Mastering KVM virtualization;Humble
热门文章
- 图像分割“Instance-aware Semantic Segmentation via Multi-task Network Cascades”
- 音视频同步 ffmpeg 推流
- 使用openssl_encrypt方法替代mcrypt_encrypt做AES加密
- CPU和GPU频率波动幅度
- python程序设计从基础到开发课后题答案夏敏捷_[转载] python程序设计应用教程夏敏捷答案第八章_Python程序设计:从基础到开发...
- 惠普计算机开机半花屏,惠普笔记本闪屏_惠普笔记本闪屏黑屏花屏现象,如何解决...
- 【你好,windows】Windows 8.1 x86X64专业纯净版2020.2.5
- 【CPA | 会计】【课程笔记】07 长期股权投资与合营安排(一)
- python绘制彩色地震剖面断层解释_python绘制地震散点图
- linux文件病毒怎么杀,Linux病毒清除实操有图有真相