how to calculate the capacity loss of a battery?

조회 수: 17(최근 30일)
sandeep 2022년 9월 17일
댓글: William Rose 2022년 9월 18일
I have a dataset of cyclic ageing of li-ion battery. In that i have the discharge capacity(Q discharge/mA.h) for every cycle.
Now i want to fit an equation in curve fitter using this data. please look at the data file attached for better idea.
my equation is Q_loss=B*exp⁡(-E_a/RT)*(A_h )^Z. Qloss is the percentage of capacity loss.Now my questions are
In this i have calculated Qloss in percentage as (nominal capacity-discharge capacity)/nominal capacity*100, is it right?
In this equation Ah is ampherehourthroughput which means the amount of charge delivered by the battery during cycling.
for the ah-throughput i am taking the accumulating ah-throughput values, is it correct?
any thoughts and help is much appreciated.

채택된 답변

William Rose
William Rose 2022년 9월 18일
편집: William Rose 2022년 9월 18일
@sandeep, [edit: correct speklling mistake] Your model formulation looks good. You write
Qloss(%)=(nominal capacity-discharge capacity)/nominal capacity*100
The equaiton is reasonable, and your spreadsheet does that calculation.
Your model is
Q_loss=B*exp(-E_a/RT)*(A_h )^Z
where A_h is the cumulative discharge across all cycles thus far. I assume B and (E_a/RT) are constants, where Ea=energy per mole, related to the battery, and RT is temperature times ideal gas constant. I assume B and Z are parameters to be fitted.
If we do not know Ea/RT, we can combine B*exp(-Ea/RT) into a combined constant, C:
Q_loss=C*(A_h )^Z
You don't need Matlab, you can do it in Excel. A bit of experimenting in Excel shows a good looking fit with C=1e-2, Z=0.52 (see Excel plot below). No doubt you can improve on that using fmincon() in Matlab (read the help for it and look at the good examples) or using the Goal Seek feature of Excel.
  댓글 수: 1
William Rose
William Rose 2022년 9월 18일
@sandeep, I forgot to add that I had to add an initial Loss parameter to the model, because the model you proposed will always start at 0 loss, or very close to it, but the data shows a 5% loss to start. Thus the model I fitted has 3 adjustable parameters:
Loss(%) = C*(A_h )^Z + L0
where L0=inital loss. I set L0=5 for the fit shown above. And C=0.01, Z=0.52, as noted earlier. These values are just eyeball-fitted to give a good initial guess.

댓글을 달려면 로그인하십시오.

추가 답변(0개)


Find more on Propulsion and Power Systems in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by