【状态估计】健康状态 SOH采用平均加权最小二乘法(AWTLS)进行估计,并对比了加权最小二乘 (WLS)、总最小二乘法(TLS)以及加权总最小二乘法(WTLS)算法(Matlab代码实现)

 欢迎来到本博客❤️❤️

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

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

本文目录如下:

目录

1 概述

2 运行结果

2.1 健康状态 SOH运行结果

2.2 充电状态SOC估计结果

3 参考文献

4 Matlab代码实现


1 概述

在健康状态(SOH)的估计中,采用平均加权最小二乘法(AWTLS)可以进行准确的估计,并且与加权最小二乘(WLS)、总最小二乘法(TLS)以及加权总最小二乘法(WTLS)算法进行了比较。

平均加权最小二乘法(AWTLS)是一种基于数据加权的状态估计方法,它将不同测量数据的权重考虑在内,通过最小化估计值与实际观测值之间的误差平方和来估计健康状态(SOH)。通过对于每个观测数据的权重进行平均化处理,AWTLS可以有效地消除异常值或噪声对估计结果的影响。

与之相比,加权最小二乘法(WLS)是一种将观测数据的权重直接应用于最小二乘问题的方法。而总最小二乘法(TLS)是不考虑权重的最小二乘方法,仅仅关注于最小化估计值与实际观测值之间的误差平方和。加权总最小二乘法(WTLS)则是将权重应用于总最小二乘法,以减小异常值或噪声对估计结果的影响。

通过对AWTLS、WLS、TLS和WTLS这些算法进行比较,我们可以评估它们在健康状态(SOH)估计中的性能和效果。AWTLS算法通过考虑观测数据的权重,能够更准确地估计健康状态,尤其对于异常值或噪声的处理更加鲁棒。而WLS算法相比于TLS和WTLS算法,会更倾向于依赖高权重观测数据,可能会对异常值或噪声敏感。TLS算法和WTLS算法则忽略了权重的影响,可能对异常值或噪声不够鲁棒。

综上所述,通过比较平均加权最小二乘法(AWTLS)、加权最小二乘法(WLS)、总最小二乘法(TLS)以及加权总最小二乘法(WTLS),可以选择最适合特定健康状态(SOH)估计问题的算法,以获得最准确和鲁棒的估计结果。

在充电状态 (SOC) 的估计中,采用扩展卡尔曼滤波 (Extended Kalman Filter, EKF) 算法可以进行准确的估计。

扩展卡尔曼滤波算法是一种用于非线性系统状态估计的滤波算法。对于充电状态估计问题,SOC的动态方程通常是非线性的,而且通常存在不确定性和测量误差。扩展卡尔曼滤波算法通过将非线性动态方程线性化,并使用卡尔曼滤波技术来估计系统状态。

在扩展卡尔曼滤波算法中,SOC的估计值被表示为一个状态向量,并通过不断地更新估计值,使其逼近真实的SOC值。算法通过使用测量数据和先验信息(包括电池模型和系统参数)来更新状态估计,并根据状态估计的误差协方差来调整估计结果的可靠性。

扩展卡尔曼滤波算法的优点在于可以在非线性的充电状态估计问题中提供较为精确的估计结果。它通过将非线性问题线性化处理,结合了测量数据和先验信息,并考虑了不确定性和测量误差,从而提高了SOC的估计精度。

因此,在充电状态 (SOC) 的估计中,采用扩展卡尔曼滤波算法是一种常用且有效的方法,可以提供准确的SOC估计结果,为电池管理系统的运行和控制提供重要的信息基础。

2 运行结果

2.1 健康状态 SOH运行结果

【状态估计】健康状态 SOH采用平均加权最小二乘法(AWTLS)进行估计,并对比了加权最小二乘 (WLS)、总最小二乘法(TLS)以及加权总最小二乘法(WTLS)算法(Matlab代码实现)_第1张图片

【状态估计】健康状态 SOH采用平均加权最小二乘法(AWTLS)进行估计,并对比了加权最小二乘 (WLS)、总最小二乘法(TLS)以及加权总最小二乘法(WTLS)算法(Matlab代码实现)_第2张图片

2.2 充电状态SOC估计结果

【状态估计】健康状态 SOH采用平均加权最小二乘法(AWTLS)进行估计,并对比了加权最小二乘 (WLS)、总最小二乘法(TLS)以及加权总最小二乘法(WTLS)算法(Matlab代码实现)_第3张图片

【状态估计】健康状态 SOH采用平均加权最小二乘法(AWTLS)进行估计,并对比了加权最小二乘 (WLS)、总最小二乘法(TLS)以及加权总最小二乘法(WTLS)算法(Matlab代码实现)_第4张图片

部分代码:

% Execute the algorithms for BEV case 2
[QhatBEV3,SigmaQBEV3] = xLSalgos(x,y,sx.^2,sy.^2,gamma,Qnom,sy(1)^2);

% Plot estimates of capacity for BEV case 2
hold on; Qhat = QhatBEV3; SigmaQ = SigmaQBEV3;
plot(Qhat(:,1),'b','linewidth',2);       % WLS
plot(Qhat(:,2),'m','linewidth',2);       % WTLS
plot(Qhat(:,3),'r','linewidth',2);       % TLS
plot(Qhat(:,4),'c','linewidth',2);       % AWTLS
plot(1:length(x),Q,'k--','linewidth',1);   % Plot true capacity

ylim([88 103]);
xlabel('Algorithm update index');
ylabel('Capacity estimate (Ah)');
title(sprintf('%s: Capacity estimates',plotTitle));
legend('WLS','WTLS','TLS','AWTLS','location','northeast');

% Compute RMS estimation error for all methods
errWLS   = Q - QhatBEV3(:,1); rmsErrWLS = sqrt(mean(errWLS.^2))
errWTLS  = Q - QhatBEV3(:,2); rmsErrWTLS = sqrt(mean(errWTLS.^2))
errTLS   = Q - QhatBEV3(:,3); rmsErrTLS = sqrt(mean(errTLS.^2))
errAWTLS = Q - QhatBEV3(:,4); rmsErrAWTLS = sqrt(mean(errAWTLS.^2))

% Execute the algorithms for BEV case 2
[QhatBEV3,SigmaQBEV3] = xLSalgos(x,y,sx.^2,sy.^2,gamma,Qnom,sy(1)^2);

% Plot estimates of capacity for BEV case 2
hold on; Qhat = QhatBEV3; SigmaQ = SigmaQBEV3;
plot(Qhat(:,1),'b','linewidth',2);       % WLS
plot(Qhat(:,2),'m','linewidth',2);       % WTLS
plot(Qhat(:,3),'r','linewidth',2);       % TLS
plot(Qhat(:,4),'c','linewidth',2);       % AWTLS
plot(1:length(x),Q,'k--','linewidth',1);   % Plot true capacity

ylim([88 103]);
xlabel('Algorithm update index');
ylabel('Capacity estimate (Ah)');
title(sprintf('%s: Capacity estimates',plotTitle));
legend('WLS','WTLS','TLS','AWTLS','location','northeast');

% Compute RMS estimation error for all methods
errWLS   = Q - QhatBEV3(:,1); rmsErrWLS = sqrt(mean(errWLS.^2))
errWTLS  = Q - QhatBEV3(:,2); rmsErrWTLS = sqrt(mean(errWTLS.^2))
errTLS   = Q - QhatBEV3(:,3); rmsErrTLS = sqrt(mean(errTLS.^2))
errAWTLS = Q - QhatBEV3(:,4); rmsErrAWTLS = sqrt(mean(errAWTLS.^2))

3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]王萍,张吉昂,程泽.基于最小二乘支持向量机误差补偿模型的锂离子电池健康状态估计方法[J].电网技术, 2022(002):046.

[2]曹磊,赵庆生,王旭平,等.基于改进泰勒加权最小二乘法的相量测量算法[J].电力系统保护与控制, 2018, 46(7):7.DOI:10.7667/PSPC170449.

[3]姜睿,罗贵明.基于加权最小二乘法的最优适应控制器[J].自动化学报, 2006, 32(1):8.DOI:JournalArticle/5ae30ffcc095d70bd80f712c.

4 Matlab代码实现

你可能感兴趣的:(算法,最小二乘法,matlab)