【状态估计】基于FOMIAUKF、分数阶模块、模型估计、多新息系数的电池SOC估计研究(Matlab代码实现)

 欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

本文目录如下:

目录

1 概述

2 运行结果

3 参考文献

4 Matlab代码、数据、讲解


1 概述

准确估计电池的荷电状态(SOC)是电池管理系统(BMS)的基础。本文提出了一种考虑分数阶微积分的锂电池充电状态估计方法。首先,基于分数阶微积分理论建立了改进的二阶RC模型来模拟锂电池的特性。然后进行脉冲特性测试,获得电池端电压和电流,其中基于最小二乘法完成参数辨识。此外,将基于分数阶无气味卡尔曼滤波(分数阶无气味卡尔曼滤波)算法的方法应用于电池静态和动态放电实验中电池状态充电值的估计。

实验结果表明,该方法具有较高的电荷状态估计精度和效率,分数阶演算有助于电池的电荷状态估计。

基于FOMIAUKF(Fractional Order Multiple-Information Adaptive Unscented Kalman Filter)、分数阶模型、模型估计和多新息系数的SOC(State of Charge)估计是一种用于电池状态估计的研究方法。该方法结合了多种技术和算法,旨在提高对电池SOC的准确估计。

下面是基于FOMIAUKF、分数阶模型、模型估计和多新息系数的SOC估计的一般步骤:

1. 分数阶模型建立:将电池系统建模为分数阶动力学模型。分数阶微积分引入了非整数阶导数和积分的概念,可以更准确地描述电池的动态特性。

2. 模型参数估计:通过实验数据对电池模型的参数进行估计。这可以通过最小二乘法、最大似然估计或其它参数估计方法来实现。模型参数的准确估计对SOC估计的精度和稳定性非常重要。

3. FOMIAUKF算法设计:基于FOMIAUKF算法进行SOC估计。FOMIAUKF是一种基于非整数阶微积分和自适应无迹卡尔曼滤波的算法,可以克服传统卡尔曼滤波器中对系统非线性和不确定性的限制。

4. 多新息系数设计:为了提高SOC估计的精度和稳定性,采用多新息系数的策略。新息系数决定了滤波器更新和预测中历史信息的权重分配,合理选择和更新新息系数可以改善估计的性能。

5. 测量数据融合:将实际的电池测量数据与FOMIAUKF算法的估计结果进行融合。这可以包括电流、电压、温度等测量数据的采集和处理,以提高SOC估计的准确性。

6. 评估和优化:对SOC估计结果进行评估和优化。这可以包括与实际SOC值的比较、误差分析、误差补偿等,以及对估计算法和参数的调整和改进。

详细讲解见第4部分。

2 运行结果

【状态估计】基于FOMIAUKF、分数阶模块、模型估计、多新息系数的电池SOC估计研究(Matlab代码实现)_第1张图片

 【状态估计】基于FOMIAUKF、分数阶模块、模型估计、多新息系数的电池SOC估计研究(Matlab代码实现)_第2张图片

 【状态估计】基于FOMIAUKF、分数阶模块、模型估计、多新息系数的电池SOC估计研究(Matlab代码实现)_第3张图片

 【状态估计】基于FOMIAUKF、分数阶模块、模型估计、多新息系数的电池SOC估计研究(Matlab代码实现)_第4张图片

 部分代码:

%% OCV-SOC
x=OCV_SOC(2,:);
y=OCV_SOC(1,:);
p=polyfit(x,y,8);
%% 分数阶模块中间变量
w_m=1; %因子
w_n=1; %因子
w=cell(1,T+1); %因子
w{1}=[1 0 0;0 1 0;0 0 0];
for j=2:T+1 %因子,参考说明文档及其参考文献
    w_m=(1-(m+1)/(j-1))*w_m;
    w_n=(1-(n+1)/(j-1))*w_n;
    w{j}=[w_m 0 0;0 w_n 0;0 0 0];
end

%% 模型估计得到的电压值
Xekf=[0;0;0.8];%[U1,U2,SOC]初始值
L=length(Xekf);
Uoc(1)=p(1)*Xekf(3)^8+p(2)*Xekf(3)^7+p(3)*Xekf(3)^6+p(4)*Xekf(3)^5+p(5)*Xekf(3)^4+p(6)*Xekf(3)^3+p(7)*Xekf(3)^2+p(8)*Xekf(3)+p(9);%OCV
Vekf(1)=Uoc(1)+C*Xekf-Cur(1)*R0;%估计得到的端电压值

3 参考文献

部分理论来源于网络,如有侵权请联系删除。

【状态估计】基于FOMIAUKF、分数阶模块、模型估计、多新息系数的电池SOC估计研究(Matlab代码实现)_第5张图片

4 Matlab代码、数据、讲解

你可能感兴趣的:(matlab,开发语言)