[Solved] Lithium Battery Cell - 1RC ECM model mistake? Why is SOC lower than 0.5 despite the inital charge being more than half (15/27) of the Battery capacity?

9 views (last 30 days)
[EDIT: Solved]
So I was looking at the model "Lithium Battery Cell - One RC-Branch Equivalent Circuit" see https://de.mathworks.com/help/simscape/ug/lithium-battery-cell-one-rc-branch-equivalent-circuit.html
and used a matlab block for determining the SOC via coulomb counting.
There I noticed a difference between the SOCs.
Looking back into the initlization flie it uses the following lines
% Battery capacity
Capacity_LUT = [
28.0081 27.6250 27.6392]; %Ampere*hours
% Charge deficit
Qe_init = 15.6845; %Ampere*hours
but when running the modell it starts roughly at 0.45 SOC.
The SOC calculating block is a Simscape function block called "Em_table" using lines like:
outputs
SOC = {1,'1'} %SOC:right
C = {31,'A*hr'} %C_age:right
variables(Access=private)
Qe = {value=Qinit, priority=priority.high}; % Charge deficit
equations
% Charge deficit calculation, preventing SOC>1
if Qe<0 && i>0
Qe.der == 0;
else
Qe.der == -i;
end
% Perform the capacity table lookup
C == tablelookup(Temp_Table,C_Table,T,...
interpolation=linear,extrapolation=nearest)
SOC == 1 - Qe/C
Can someone perhaps point out what I am failing to see or could there indeed be an issue with the example model?
one suspicion I have is related to the "C = {31,'A*hr'}" , but changing that to around 27 A*hr didnt seem to change the SOC results.

Accepted Answer

Christian
Christian on 20 Feb 2025
Moved: Torsten on 20 Feb 2025
Nevermind I missed the
Qe.der == -i;
that makes sense then with
SOC == 1 - Qe/C
SOC == 1 - (-Qinit)/C

More Answers (0)

Categories

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

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!