Queries regarding time axis
Ältere Kommentare anzeigen
Hii All, I have some problems with the Aging code I prepared. The time axis for trace voltage (vTrace) vs time and Relative capacity vs time are not appropriate as the unit there is NOT days because no battery will age to 65% its original capacity during 8*10^-3 days.. Please provide me the solution for my mistakes.Thanks in advance!
clear;
%% loading the OCV-SOC curve
load ocvSoc
f = polyfit(soc,ocv,20);
socTest = linspace(0, 100, 100);
ocvTest = polyval(f, socTest);
subplot(2,2,1)
plot(soc,ocv, socTest, ocvTest);
title('OCV-SOC curve');
xlabel('SOC (%)')
ylabel('OCV (V)')
legend('Simulink model', 'Curve-fitted');
Ah = 3.5; % Ah
%% input time-soc profile
Crate = 0.3;
DOD = 0.6;
SOCavg = 0.5;
cycles = 4000;
time = (0:1:(2*cycles-1)).*(3600*DOD/Crate);
SOC = repmat([SOCavg+DOD/2 SOCavg-DOD/2], [1 cycles]);
T = 36.94+273;
subplot(2,2,2)
plot(time, SOC)
title('SOC profile')
xlabel('time (s)')
ylabel('SOC (0 to 1)')
%% pre-process inputs to the aging model
vTrace = polyval(f, SOC*100);
V = mean(vTrace); % is it OCV or CCV?
quadVavg = sqrt(mean(vTrace.^2));
t = time(end)/3600/24; % time in days
Q = DOD*cycles*Ah; % do I have to multiply by 2 for charge?
subplot(2,2,3)
plot(time/3600/24,vTrace);
title('Aging');
xlabel('time(days)')
ylabel('vTrace (1 to 2.5)')
%% aging model evaluation
% is it additive? NO
% Calendar aging coefficients
% V: voltage at the mean SOC
% T: cycle test temperature (Let's just take the average temperature)
alpha_cap = (7.534 * V - 23.75)*10^6*exp(1)^(-6976/T);
alpha_res = (5.270 * V - 16.32)*10^5*exp(1)^(-5986/T);
% Cycle aging coefficients
% quadVavg: quadratic average voltage (RMS voltage)
% DoD: depth of discharge (0 to 1)
beta_cap = 7.348*10^-3*(quadVavg - 3.667)^2 + 7.600*10^-4 + 4.081*10^-3*DOD;
beta_res = 2.153*10^-4*(quadVavg - 3.725)^2 - 1.521*10^-5 + 2.798*10^-4*DOD;
% Resulting function, Crel and Rrel are relative capacity and resistance
% respectively
% t: time in days
% Q: charge throughput in ampere hours (how much charge has been moved in
% and out)
%CcycleRel = beta_cap * sqrt(Q);
%RcycleRel = beta_res * Q;
Crel = 1 - alpha_cap * t.^0.75 - beta_cap .* sqrt(Q);
Rrel = 1 + alpha_res * t.^0.75 + beta_res .* Q;
disp(['Crel: ' num2str(Crel)])
disp(['Rrel: ' num2str(Rrel)])
%% This cell is to plot aging pattern over time
t = (0:1:cycles).*(3600*DOD/Crate*2/3600/24);
Q = (0:1:cycles).*DOD*Ah;
%CcycleRel = beta_cap * sqrt(Q);
%RcycleRel = beta_res * Q;
Crel = 1 - alpha_cap * t.^0.75 - beta_cap * sqrt(Q);
Rrel = 1 + alpha_res * t.^0.75 + beta_res * Q;
subplot(2,2,4)
plot(t/3600/24, Crel)
title('Relative Cap')
xlabel('time (days)')


Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Data Import and Analysis finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!