色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

電池SOC估算中的安時積分與卡爾曼濾波的數值計算方法

冬至子 ? 來源:日篤小站 ? 作者:日篤小站 ? 2023-06-25 17:06 ? 次閱讀

接下來的Matlab數值計算,將以電池建模的foster型等效電路為基礎,在連續時間內對電池進行系統同定。

圖片

foster等效電路

首先,我們利用輸入輸出的數據來推測電池模型的參數。推測的參數為:

θ = [ R0 Rd Cd FCC SOC0 ] T

圖片

輸入輸出數據與SOC

電池的建模(Matlab)

數值實驗用輸入出數據的生成:

[ex_batt.m]1

%%假想實驗數據的作成

Te = 2*3600; %實驗結束時刻[sec]

Ts = 1; %采樣周期[sec]

t = ( 0: Ts: Te );

N = length(t);

%輸入(電流)的設定

u = 40sawtooth( tsqrt(2)) + 10*sin(t) - 18;

%輸出(電壓)的生成

SOC0 = 95; %初期SOC[%]

FCC = 40*3600; %滿充電容量[C]

R0 = 0.450e-3; %電池內阻[ohm]

Rd = 0.500e-3; %擴散電阻[ohm]

Cd = 82000; %擴散電容[F]

th0 = [ R0, Rd, Cd, FCC ];

Nd = 3; %foster等效電路的近似級數

[ f, h, A, C, ymodel ] = batterymodel_foster(Nd);

%Simulation

[ y0, x ] = ymodel( u, t, th0, [SOC0; zeros(Nd, 1)] );

SOC = x(1, :);

%含有誤差的采樣值的模擬

um = u + randn(1, N) * 0.1; %電流傳感器的誤差

ym = y0 + randn(1, N) * 0.01; %電壓傳感器的誤差

%波形

figure(3), hold on

subplot(3,1,1); plot(t/60, u)

ylabel('Current [A]'), xlim([0 Te/60]), ylim([-100 50)]

subplot(3,1,2); plot(t/60, y0)

ylabel('Voltage [V]'), xlim([0 Te/60]), ylim([3.2 4.2)]

subplot(3,1,3); plot(t/60, SOC)

ylabel('SOC [%]'), xlim([0 Te/60]), ylim([0 100)]

xlabel('Time [min]),

上述 “m file” 里面使用的函數 “batterymodel_foster" , 用以下方式記述。

[batterymodel_foster.m]

function [ f, h, A, C, ymodel ] = batterymodel_foster(Nd)

n = 1:Nd;

%參數矢量與物理常數的關系定義

R0 = @(th) th(1);

Rd = @(th) th(2);

Cd = @(th) th(3);

FCC = @(th) th(4);



A = @th blkdiag(0, -pi^2/4 * diag((2*n-1).^2)/Rd(th)/Cd(th();

B = @th [100/FCC(th); 2*ones(Nd,1)/Cd(th)];



f = @(x, u, th) A(th)*x + B(th)*u;

h = @(x, u, th) SOC2OCV(x(1,:)) + [0, ones(1, Nd)]*x+R0(th)*u;



%利用數值微分來計算SOC的雅可比數列

C = @(x) [numdiff(@SOC2OCV, x(1)), ones(1, Nd)];

%yhat:預測輸出的函數

function [y, x] = proto_ymode(u, t, th, x0)

    x = lsim(ss(A(th), B(th), eye(Nd+1), 0), u, t, x0, 'zoh')';

    y = h(x, u, th);

end

ymodel = @proto_ymodel;

end

上述的雅可比數列A,C為狀態推算時使用。

我們再來看看偏微分的數值計算。

[numdif.m]

function [dfdx] = numdiff(f, x)

n = length(x);

h = eye(n)*1e-5;

dfdx = arrayfun(@(k) (f(x+h(:, k)) - f(x-h(:,k)))/(2*h(k, k)), 1:n);

end

另外,SOC-OCV特性的簡易模型我們可以用以下m file來記述。

[SOC2OCV.m]

function ocv=SOC2OCV(SOC)

%系數設定

E0 = 4.14;    

K1 = 0.237;

K2 = -0.0516;

K3 = 1.05e-3;

K4 = 0.183;



mode = @(soc) E0 + K1.*log(soc/100) + K2.*log(1-soc/100) - K3./soc*100 - K4.*soc/100;

ocv = model(SOC);



ocv(SOC >98) = numdiff(model, 98)*(SOC(SOC >98)-98) + model(98);

ocv(SOC 2) = numdiff(model, 2)*(SOC(SOC< 2)-2) + model(2);

end

下面繼續[ex_batt.m]來進行連續時間里的電池系統同定,轉而來推算模型的參數。

[ex_batt.m]2

%%連續時間系統同定

yhat = @(th) ymodel(um, t, th(1:4), [th(5); zeros(Nd, 1)]);

%初期推算值

thhat0 = [1e-3, 1e-3, 1e5, 30*3600, 80];

%輸出誤差最小化的參數推算

thhat = Isqnonlin(...

@(th) ym-yhat(th.*thhat0), thhat0./thhat0, [ ], [ ],...

            optimoptions(@Isqnonlin, 'Display', 'iter',...

            'Algorithm', 'levenberg-marquardt')) .*thhat0

綜如上述所訴,在連續時間內利用系統同定的方法,從實驗得到的輸入輸出數據,可以定義內含物理現象的電池模型的參數。

電池狀態的推定

眾所周知,電池的狀態主要包括SOC(剩余電量)和SOH(剩余壽命)。

SOC的推定方法可以總結為:

  1. 依據放電試驗的SOC測定
  2. 基于電池端子電壓的SOC推定
  3. 基于OCV測試的SOC推定
  4. 依據安時積分法的SOC推定
  5. 基于模型的SOC推定

圖片

SOH的推定方法可以總結為:

  1. 利用完全充放電測試容量的SOH推定
  2. 依據內部電阻查表的SOH推定
  3. Bookkeeping的SOH推定
  4. 基于模型的SOH推定

圖片

內部電阻的推定方法可以總結為:

  1. 依據I-V特性(電流電壓特性)的線性回歸的內部電阻推定
  2. 從step跳躍應答的內部電阻推定
  3. 依據電阻測試的內部電阻推定
  4. 基于模型的內部電阻推定

圖片

雖然有各種推算方法,但是我們需要根據:要求精度,使用環境,硬件條件,在線連續推定的必要性等等來具體判斷用什么方法。

下面我們就給出比較復雜的利用卡爾曼濾波以及安時積分推算SOC的Matlab建模方法。

[ex_batt.m]3

%%利用EKF的狀態推定

%離散時間的狀態空間建模

f_ct = @(x, u) f(x, u, th0); %模型參數的固定

f_dt = c2d_euler(f_ct, Ts); %euler法的離散化

%fd的雅可比數列

Ad = expm(A(th0)*Ts); %f的雅可比解析計算

Q = diag([0.1Ts)^2, 1e-6ones(1, Nd)]); %系統外亂

R = 0.01^2; %觀測外亂

xhat = zeros(Nd+1, N); %狀態推算值

P = zeros(Nd+1, Nd+1, N); %推定分散

%初期推算值

SOChat0 = OCV2SOC(ym(1));

xhat(:,1) = [SOChat0; zeros(Nd,1)];

P(:,:,1) = diag([1e2, 1e-4*ones(1, Nd)]);

%更新時間

for k=2:N

[xhat(:,k),P(:,:,k)] =...

ekf(@(x) f_dt(x, um(k-1)), @x h(x, um(k), th0),...

@(x) Ad, C, Q, R, ym(k), xhat(:,k-1), P(:,:,k-1));

end

%表示結果

figure, plot_SOC(t, xhat(1,:), squeeze(P(1,1,:))',SOC);

EKF_RMSE = sqrt(mean((xhat(1,:) - SOC).^2,2));

%%安時積分法

SOC_cc = zeros(1, N);

SOC_cc(1) =SOChat(0);

for k=1:N-1

SOC_cc(k+1) = SOC_cc(k) + um(k)*Ts/FCC*100;

end

%表示結果

figure, plot_SOC(t, SOC_cc, [ ], SOC);

CC_RMSE = sqrt(mean((SOC_cc - SOC).^2,2));

上述euler的離散時間的狀態方程式變化方法為:

[c2d_euler.m]

function fd = c2d_euler(fc, h)

fuction x_new = fproto(x, u)

    x_new = x + h*fc(x, u);

end

fd = @fproto;

end

SOC推算結果的表示

[plot_SOC.m]

function [ ] = plot_SOC(t, SOChat, P, SOC)

subplot(2,1,1), hold on

plot(t/60, SOC, 'r', 'LineWidth', 2)

plot(t/60, SOChat, 'b', 'LineWidth', 0.5)

xlim([0 t(end)/60]), ylim([0 100]);

xlabel('Time [min]'), ylabel('SOC [%]')

legend('True', 'Estimated', 'Location', 'Best')

box on



subplot(2,1,2), hold on

if ~isempty(P)

    hold on

    patch([t, fliplr(t)]/60,...

        [(SOChat-SOC-2*sqrt(P)), fliplr(SOChat-SOC+2*sqrt(P))],...

        ' ','FaceColor', [0.5, 0.5, 1], 'FaceAlpha', 0.5,...

        'EdgeAlpha', 0)

end

plot(t/60, SOChat-SOC, 'b')

plot([0 t(end)/60], [0 0], 'r', 'LineWidth', 2)

xlabel('Time [min]'), ylabel('Error [SOC%]')

xlim([0 t(end)/60]), ylim([-5 3]);

box on

end

上述為線性卡爾曼濾波的推算方法,非線性卡爾曼濾波的matlab建模方式基本相同,這里就不做介紹了。另外,本文是以EV為對象所建模,以HEV為對象時,由于電流波形的差異,推定的結果會有變故。HEV的剎車回生充電,內燃機回生充電,SOC都是在50%附近控制,所以對于輸入的電流波形,不會有低頻率的成分。

對于實際使用電池的系統來說,有著電池組內的誤差,生產誤差,環境溫度誤差等各項影響因素,所以未來我們使用模型推算電池狀態時,不僅要考慮到這些誤差因素的影響,更要考慮到鋰電池材料進化的影響。未必復雜的算法適用于每個產品,我們需要根據實際的條件以及性價比等各種綜合因素來挑選推算的方法,希望讀者朋友們互相切磋,共同進步。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SoC芯片
    +關注

    關注

    1

    文章

    610

    瀏覽量

    34905
  • MATLAB仿真
    +關注

    關注

    4

    文章

    176

    瀏覽量

    19922
  • 卡爾曼濾波
    +關注

    關注

    3

    文章

    165

    瀏覽量

    24648
  • 電池系統
    +關注

    關注

    9

    文章

    390

    瀏覽量

    29919
收藏 人收藏

    評論

    相關推薦

    卡爾濾波的原理說明

    機器人導航,控制,傳感器數據融合甚至在軍事方面的雷達系統以及導彈追蹤等等。近年來更被應用于計算機圖像處理,例如頭臉識別,圖像分割,圖像邊緣檢測等等。2.卡爾濾波器的介紹(Introd
    發表于 09-21 11:41

    電池SOC

    電池SOC對于電池組目前電量計實現方法主要有TI的阻抗跟蹤、電流積分的庫倫計、卡
    發表于 08-26 10:59

    soc計算方法

    soc計算方法,BMSSOC計算其實可以分為三大部分:1、電芯層級的SOC
    發表于 07-27 06:13

    電池SOC的自適應平方根無極卡爾濾波計算

    電池SOC的自適應平方根無極卡爾濾波計算法,下來看看
    發表于 01-13 13:26 ?20次下載

    基于卡爾濾波的動力電池SOC精確估計

    基于卡爾濾波的動力電池SOC精確估計
    發表于 01-13 13:28 ?33次下載

    卡爾濾波算法在鋰電池SOC估算的應用

    卡爾濾波算法在鋰電池SOC估算的應用
    發表于 01-13 13:50 ?18次下載

    基于自適應卡爾濾波的礦用救生艙動力電池SOC估計_于微波

    基于自適應卡爾濾波的礦用救生艙動力電池SOC估計_于微波
    發表于 12-31 14:44 ?7次下載

    電池SOC的自適應平方根無極卡爾濾波計算

    電池SOC的自適應平方根無極卡爾濾波計算法_胡志坤
    發表于 01-07 17:16 ?3次下載

    球面單形—徑向容積求積分卡爾濾波算法

    為了進一步提高非線性卡爾濾波算法的估計精度,提出一種高階球面單形一徑向容積求積分卡爾
    發表于 01-15 16:58 ?1次下載

    如何在單片機上實現卡爾濾波詳細計算方法和程序概述

    本文檔的主要內容詳細介紹的是如何在單片機上實現卡爾濾波詳細計算方法和程序概述。
    的頭像 發表于 08-11 11:23 ?1.3w次閱讀
    如何在單片機上實現<b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>詳細<b class='flag-5'>計算方法</b>和程序概述

    電池SOC 估算方法卡爾濾波器法

    本期主要介紹的是電池SOC 估算方法的第三種方法的剩余部分
    的頭像 發表于 09-21 15:51 ?1.3w次閱讀
    <b class='flag-5'>電池</b><b class='flag-5'>SOC</b> <b class='flag-5'>估算</b><b class='flag-5'>方法</b><b class='flag-5'>中</b><b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>器法

    基于擴展卡爾濾波SOC估算仿真

    基于擴展卡爾濾波SOC估算Simulink仿真,內容完整,模型可仿真,代碼可實現
    發表于 08-25 15:22 ?14次下載

    淺析卡爾濾波

    在 飛行器姿態計算 ,卡爾濾波是最常用的姿態計算方法之一。今天就以目前的理解講以下
    的頭像 發表于 06-14 10:44 ?2047次閱讀

    基于自適應卡爾濾波算法的電池SOC估算研究

    本文采用自適應卡爾濾波算法,基于Thevenin/RC電池模型,鋰離子電池SOC進行
    的頭像 發表于 06-28 11:45 ?3420次閱讀
    基于自適應<b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>算法的<b class='flag-5'>電池</b><b class='flag-5'>SOC</b><b class='flag-5'>估算</b>研究

    卡爾濾波的數學基礎

    卡爾濾波是一種用于估算線性動態系統狀態的優化算法,其基礎數學理論為貝葉斯定理,將傳感器測量值和系統模型的預測值進行融合,得到對系統狀態的估計。貝葉斯定理是基于條件概率的公式,用于
    的頭像 發表于 08-30 10:18 ?879次閱讀
    <b class='flag-5'>卡爾</b><b class='flag-5'>曼</b><b class='flag-5'>濾波</b>的數學基礎
    主站蜘蛛池模板: 双性被疯狂灌满精NP| 国产AV无码一二三区视频| 久久人妻少妇嫩草AV蜜桃35I | 最新在线黄色网址| 精品国产国产综合精品| 小黄文纯肉短篇| 国产成人精品免费视频大全可播放的| 欧美亚洲色帝国| G国产精品无马| 欧美成人一区二免费视频| 777午夜精品久久AV蜜臀| 久久有码中文字幕| 在线观看国产区| 久久人妻熟女中文字幕AV蜜芽| 亚洲午夜精品A片久久WWW解说| 国语92电影网午夜福利| 亚州天堂在线视频av| 国产日韩久久久精品影院首页| 午夜伦理在线观看| 国产色婷婷精品人妻蜜桃成熟时| 手机在线免费| 国产精品私人玩物在线观看| 无码人妻精品一区二区蜜桃色| 国产36d在线观看| 午夜精品久久久久久久爽牛战| 国产精品久久欧美一区| 午夜国产福利| 国产在线亚洲v天堂a| 亚洲精品中文字幕制| 精品熟女少妇AV久久免费A片| 一区二区三区国产亚洲网站| 久久国语露脸精品国产| 曰批国产精品视频免费观看| 久久中文电影| 99免费在线观看视频| 琪琪色在线播放| 儿子日母亲B好爽| 午夜视频在线瓜伦| 精品国产99久久久久久麻豆| 伊人久久精品99热超碰| 老子午夜伦不卡电影院|