Queries regarding time axis
Afficher commentaires plus anciens
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)')


Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Data Import and Analysis dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!