how to determine the SOC of battery pack

Nikhil Mahajan

New member
Joined
Oct 2, 2017
Messages
13
hello,

I have my 6s10p battery pack. how we can determine the SOC of battery. i read we can do it using current, voltage and temperature, but i dontknow how?.please help me .

thank you in advance
 
State of charge has to be calculated by measuring the current in & out over time.
A good battery monitor like a Victron BMV unit or full system like Batrium with a shunt will let you track SoC properly.

Edit: ebay has some cheaper ones if budget is tight, search for "battery monitor soc shunt state of charge"
 
In the middle its hard to determine SOC but you can do it based on voltage to some parts but generally you start the SOC measurement in the top voltage or bottom.
 
daromer said:
In the middle its hard to determine SOC but you can do it based on voltage to some parts but generally you start the SOC measurement in the top voltage or bottom.

how do we get to know how much capacity that battery has while we are draining power from it?
 
To determine the capacity that is left, you need to calculate the SoC over time as you measure the current going in and coming out. By knowing the difference, you can get a pretty good guess as to how much is left. But, it's not 100% accurate. Probably closer to 95% - 97% if the cells are in good shape. If you have problem cells, then the accuracy could drop to as much as 50% or lower.
So, you can figure it out, but it's something that is observed over time
 
The SoC calculation is more impacted by the charge and discharge current as the cell inefficiencies increase at higher currents for different pack arrangements. This is where the majority of the tracking error occurs.

The middle part of the SoC charge is a near liear relation of Volts at zero amps to Wh stored energy. When you start to pull or push Amps the inefficiencies in the cells, internal reistances and wiring all make the job a lot more difficult. Pull 10A and your pack voltage may drop 200mV, turn the power off again and the pack may return back up 196mV with a net drop of 4mV caused by power removed from the cells (correlate 1mV to x Wh).

Note that if you pull 10Wh out of your pack the cells may discharge by 10.5Wh due to the internal cell efficiency at your given current draw.

At the top and bottom of the SoC the relationship is non-linear and a lot more sensitive to the Amps flowing in/out.

You would need to perform a number (4 or more) of charge/discharge cycles at various steady state amps to create a number of correlations of Volts to Wh state of charge for a given Amps throughput.
 
Given that the voltage of lithium batteries does not change a lot - 1v from completely full to completely empty. 80% of their charge is delivered between 3.5v and 4.2v, it is absolutely impossible to tell from current and voltage alone. A battery without a load will give inflated numbers, and a battery under load will give deflated numbers.

Getting to know your battery will help. Knowing roughly how many volts under acertain load will help.

The most accurate and effective is to know how much charge has been used or accumulated.
 
If you know the battery chemistry type, eg LiFePo4 or Li-ion (most 18650 cells) you can find the curves online.
To find full SoC you charge to the full voltage for that type (eg 4.1 or maybe 4.2V) & then hold that voltage until current drops away.
Look up how the Opus chargers work.
At the bottom of the curve when flat, the voltage starts to drop faster - you have found the "knee".
For regular use, it seems best to not drop off the knee for longest cell cycle life.
 
Korishan said:
To determine the capacity that is left, you need to calculate the SoC over time as you measure the current going in and coming out. By knowing the difference, you can get a pretty good guess as to how much is left. But, it's not 100% accurate. Probably closer to 95% - 97% if the cells are in good shape. If you have problem cells, then the accuracy could drop to as much as 50% or lower.
So, you can figure it out, but it's something that is observed over time
in this methoddo we have to monitor the voltage of the battery? if yes then which voltage we should consider Open circuit voltage or load voltage?
 
Always resting voltage.
 
daromer said:
Always resting voltage.

someone suggested that we should measure how much current is going in and out.for measuring power we need voltage also.

if we want to measure SOC when the load is connected? for this how should i measure the voltage and which voltage?
 
NikhilMahajan said:
someone suggested that we should measure how much current is going in and out.for measuring power we need voltage also.

if we want to measure SOC when the load is connected? for this how should i measure the voltage and which voltage?

You would measure voltageat the shunt resistor, although I'm not sure whether the battery side orload/charge side provides the bestaccuracy.
Try googling "Battery Gas Gauge" or "coulomb counting" for further reading.
 
Since a shunt normally has very little voltage across it, it doesn't matter** which side you measure the voltage on! :)
The voltage should be measured best directly across the battery terminals (either side of the shunt is fine too if the cables are thick).
** This assumes the cables between the shunt & the battery terminals is short & very low resistance.

The shunt should be connected to only the battery on one side & everything else on the other.

It should not matter if the load is connected or not because the SoC meter tracks the current in/out of the battery over time.
 
For proper SOC the only way is colloumn aka counting the energy going in and out.. The cheap way is resting voltage that somewhat can be said to be equal to SOC but it can easily differ 30-50% off in middle SoC... LiFe easy up to 70% off :) A proper shunt with counter can be as close as 1%
 
Hi there,

this question actually got me to sign up with this forum because it's a topic that very much interests me.

In short: there are two ways to determine a cell's SOC:
1. get your hands on its SOC / OCV curve and use it as a lookup table. Then use the RESTING voltage against that curve to look up your SOC. Resting is somewhat undefined but waiting for at least 1 hour with 0.0mA should yield good results.
Caveats:
- You can only determine your SOC after letting the cell rest.
- You have to fully trust the SOC / OCV curve source. (Best: measure cell yourself and do your own!)
- the OCV can vary depending on cell temperature. At least that's what a good friend of mine (PhD at Porsche for LiIon batteries) says. I still need to confirm myself.

2. Fully carge your cell and then integrate over drawn current using a current sensor.
Caveats:
- offsets in current sensor and noise add up and lead to SOC walking away from true value
- you'll have to know the capacity


The best way is acutally to combine the two by using an (unscented) kalman filter.
This works by applying the following steps:
0. Get Matlab or similar for prototyping the software.
1. create a mathematical description of the cell's behaviour (google: li ion cell model)
(note: add as many RC low pass elements as you think are necessary. 1 is the mininmum, more are more exact but harder to get parameters estimated)
Make sure that your model yield's the expected voltage for the next timestep t+1.
2. measure your cell's OCV curves and store them as lookup table for your dependant voltage source (see model)
3. apply UKF and feed it your cell current as model input directly from your current shunt and the cell voltage + temperature as sensor inputs.

After some tuning of the parameters, the UKF yields not only the SOC, but also the cell's internal resistances (as shown in the applied cell model) and its capacity. You get the full picture and can then make up a definition for your SOH (RI_dc > xx mR or capacity < xx%, ...)


The most important thing to measure about a cell is its OCV curve. The rest can be determined online. I'd therefore suggest building a powerwall with only one type of cells so you can actually trust your OCV curve.

Hope his helps!
Can't wait to build my own powerwall :)
 
+1 to learn your cells curve & then charge with bulk charge to a known constant voltage (CV) point, then monitor current until it has has dropped to approx 5%. This is "fully charged".
The CV voltage is where the cells voltage starts to rise faster indicating end of "plateau" (more of a slope with Li-ion, flatter with LiFePo4).
Wisdom out there says taking the voltage higher than this CV point is detrimental to the cells.

My Batrium & Victron BMV units "recalibrate" to 100% SoC when they see the above occur & this seems to keep the SoC reading close to reality.
 
Yeah a proper SOC counter always calibrate on close to 0% soc or 100% soc to stay tuned in and its pretty darn accurate. It can also calibrate capacity during its lifetime if properly coded so nothing need to be done.
 
Back
Top