电池SOC仿真系列-基于双卡尔曼滤波算法的电池SOC估算研究
基于双卡尔曼滤波算法的电池SOC估算
1、DEKF算法
由于SOC无法直接测量,只能通过观测信号来估计SOC的变化。常用的电池SOC估算方法有安时积分法、开路电压法和卡尔曼滤波算法。而卡尔曼滤波算法正是利用前一时刻的状态估计值和当前时刻的输出观测值来推出当前时刻的状态估计值。该算法能够有效降低测量过程中噪声的干扰,从而提高精确度。
安时积分法作为一种开环估计方法,在短时间内能够较好的跟踪电池SOC的变化,但由于没有校正反馈功能,误差会随着时间的累积越来越大且自身不能够获得电池SOC初始值,而SOC初始值对其估计结果影响很大。
扩展卡尔曼滤波算法作为一种滤波算法,能够在一定程度上降低系统误差与测量误差,能够较好的通过电池电压修正估计的SOC,但其估计精度十分依赖电池模型,当电池模型参数精度较高时,估计结果较为精确且很快就能够收敛,但是当模型参数精确度不高时,估计精度会变得很差。
针对上述问题,本文提出一种基于双卡尔曼滤波算法的电池SOC估算方法,进而获得更加稳定、准确的估计值。DEKF可用来同时估计系统的状态和参数,广泛应用于非线性系统中。非线性系统可以表示为:
其中,x是k时刻的状态向量,u是输入向量,θ是参数向量,y和d是测量向量。
为了方便描述,设:
2、DEKF算法流程
2.1、参数初始化
其中系统状态及其误差协方差的初始化如下:
系统参数及其误差协方差的初始化如下:
2.2、状态和参数的时间更新
状态的时间更新:
x1_hat_prev = Ad(1,1)*x1_hat(k-1) + Bd(1,1)*I(k-1);P_prev = A_ek*P(k-1)*A_ek'+ E_ek*Q*E_ek';
参数的时间更新如下:
theta_hat_prev = theta_hat(k-1);PT_prev = PT(k-1)+ E_ek*Wp*E_ek';
2.3、计算卡尔曼增益
状态和参数的卡尔曼增益计算:
L = P_prev*C_ek'*inv(C_ek*P_prev*C_ek'+ F_ek*R*F_ek');LT = PT_prev*CT_ek(k)'*inv(CT_ek(k)*PT_prev*CT_ek(k)'+ F_ek*R*F_ek');
2.4、状态和参数的测量更新
状态的测量更新如下:
x1_hat(k) = x1_hat_prev + L*(V(k)-V_hat(k));P(k) = P_prev - L*C_ek*P_prev;
参数的测量更新如下:
theta_hat(k) = theta_hat_prev + LT*(V(k)-V_hat(k));PT(k) = PT_prev - LT*CT_ek(k)*PT_prev;
3、基于DEKF算法的SOC估算
二阶RC模型的离散状态空间形式可表示为:
其中,
4、仿真结果
EKF算法误差 | DEKF算法误差 |
---|---|
0.0278 | 0.0114 |
实验结果表明:DEKF算法亦始终能够较好的跟踪SOC的变化,估计过程较为稳定,误差始终控制在2%以内且趋向收敛。需要相关资料可以关注微信公众号:xinnengyuanqiche666,学习更多电动汽车仿真的知识!
电池SOC仿真系列-基于双卡尔曼滤波算法的电池SOC估算研究相关推荐
- ## ***电池SOC仿真系列-基于扩展卡尔曼(EKF)算法的SOC估计(内含代码等资料)***
## ***电池SOC仿真系列-基于扩展卡尔曼(EKF)算法的SOC估计(内含代码等资料)*** ## 1 研究背景 电池的荷电状态(SOC)代表的是电池当前的剩余容量,数值定义是电池剩余电量与电池额 ...
- 电池SOC仿真系列-基于UKF算法的电池SOC估算研究
基于UKF算法的电池SOC估算 1.UKF算法 无迹卡尔曼滤波是将数据变化(UT变换)与卡尔曼滤波结合起来的一种算法,通过UT变换将一个状态点转换为多个状态点,依据一定的权重传递给后面观测值,再根 ...
- 电池SOC仿真系列-基于遗忘因子的最小二乘法电池参数辨识(二阶RC)
基于遗忘因子的最小二乘法电池参数辨识 最小二乘法是系统辨识中最常用的一种估算方法.为了克服最小二乘法存在"数据饱和"的问题,我们通常采用含有遗忘因子的递推最小二乘法(Forge ...
- 基于容积卡尔曼滤波算法(CKF)锂电池SOC估计
基于容积卡尔曼滤波算法(CKF)锂电池SOC估计 ID:87128657501011288张徳帅123
- python卡尔曼滤波室内定位_基于扩展卡尔曼滤波算法的室内定位跟踪系统
基于扩展卡尔曼滤波算法的室内定位跟踪系统 凌海波,周先存 [摘 要] 摘要:为了解决无线室内定位系统实时跟踪位置坐标误差较大问题, 提出一种基于扩展卡尔曼滤波 (EKF) 算法的室内定位方法.系统采用 ...
- 基于随机森林算法的贷款违约预测模型研究(Give me some credit)
本文实验代码github:https://github.com/dengsiying/give-me-some-credit/tree/master 参考链接:从决策树到随机森林 http://www ...
- 【滤波估计】基于双卡尔曼滤波实现soc和soh联合估计附matlab代码
1 内容介绍 对电动汽车电池管理系统进行电池状态估计非常重要准确充电,实现电池模型参数的在线更新.在本文中,开路电压的估计转换为开路电压拟合的估计参数,快速时变参数开路电压被转换成几个慢时变参数.提出 ...
- 电动SOC仿真系列-考虑电池老化影响的电池UKF-SOC估算研究
考虑电池老化影响的电池UKF-SOC估算研究(无迹卡尔曼滤波算法) 传统的电池模型往往将电池容量设定为定值.然后在实际情况中,电池的容量会随着电池循环充放电次数的增加而减少.因此有必要在建立电池模 ...
- 电机仿真系列-基于最小二乘法的永磁同步电机参数辨识
基于最小二乘法的永磁同步电机参数辨识 永磁同步电机具有体积小.转动惯量低.结构简单等优点,被广泛应用于控制系统中.然而在实际应用过程中,控制系统会受到高温.负载等外界因素的影响,永磁同步电机的电感 ...
- 电动汽车仿真系列-基于Simulink的并联混合动力汽车建模分析
基于Simulink的并联混合动力汽车建模分析 本期介绍一种基于Simulink的并联混合动力汽车的建模方法.并联混合动力汽车的工作模式可以分为六种.纯电动模式.纯发动机模式.混合驱动模式.充电模 ...
最新文章
- 【c语言】蓝桥杯算法训练 薪水计算
- android文件缓存,并SD卡创建目录未能解决和bitmap内存溢出解决
- 用力和应变片计算弹性模量_一种沿深度非均匀分布的残余应力测试计算方法与流程...
- MyEclipse+JavaEE+jsp+sqlsever实现产品售后服务系统
- android安装python opencv_Python、C++、Android OpenCV 开发环境的配置
- java 手写 jvm高性能缓存
- ADO.NET Entity Framework学习笔记(4)ObjectQuery对象
- python-可变循环
- android 8.1闪退,宁波市民卡app在Android 8.1闪退_宁波民生e点通
- c语言如何在坐标输出,tc 如何在指定坐标处 输出bmp图片??
- eclipse经常高占用_高可用系统的设计指南
- yii2 init初始化脚本分析
- 生成验证码易语言代码
- 微信小程序点击事件和长按事件
- 【2019年5月6日】指数估值排名
- “均线金叉和均线死叉”的经典战法
- 网络系统管理 - C模块 - Centos7.9 - Iptables
- Mysql中的七种常用查询连接详解
- 分享一款快速、免费抠图工具——凡科快图
- 求二维整数数组中最大子数组的和(结对作业)