Filter löschen
Filter löschen

how to calculate the capacity loss of a battery?

22 Ansichten (letzte 30 Tage)
sandeep
sandeep am 17 Sep. 2022
Kommentiert: William Rose am 18 Sep. 2022
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.

Akzeptierte Antwort

William Rose
William Rose am 18 Sep. 2022
Bearbeitet: William Rose am 18 Sep. 2022
@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 Kommentar
William Rose
William Rose am 18 Sep. 2022
@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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by