As far as I know, when you discharge your battery by variable load, it means you have different discharge current ratios. In this case, you should consider 2 different issues for calculation of your SOC.
1) How much is teh discharge current
2) How the voltage of the battery changes
Assuming you are using Lead-acid battery, your battery should have a cut-off voltage indicated in battery datasheet.
If your battery reaches to this voltages, your regulator should disconnect the battery from the circuit to prevent battery damage. High load demand (high discharge current) leads to fast voltage drop. So your battery might be able to discharge but it leads to damage. In this cases, discharge can be controlled by charge regulator and different discharge strategies.
Your SOC by considering the voltage of the battery can be calculated as:
SOC(t)=SOC(t-1)+(1/C*)(int [ I(t) ] dt) from 0 to t
There are many methods to estimate (not calculate) SOC, if you want a first and easy estimation, coulomb counting, which is more or less what previous answers say, is the fastest and easiest way.
Youn know the capacity of the battery, so you have only to count how many capacity (Ah) did you took from the battery in a period of time (it does not matter if it is variable or not).
This method has an error that increases at every cycle, but is a common method.
As Lluc mentioned before the common way is to use coulomb counting, i.e. by measuring the battery current and integrating it in time. However, since all measurements include errors, this method suffers from long-term drift and lack of a reference point. Thus, the SOC must be re-calibrated on a regular basis. Alternatively, using an equivalent circuit model of the battery, you can estimate the Open Circuit Voltage and then by using look-up tables (usually available from the manufacturer) you can extract the SOC. Also, AI methods can be used (such as neural networks or fuzzy logic), you can find a lot in literature. Finally, model-based methods that use both the measured current and voltage can be used together with online parameter identification, e.g. as Kalman filters.
You can use the coulomb counting(CC), only if you know the SoC at the beginning, if you do not know, you can use open circuit voltage(OCV), and then use the CC. So, what you need is to mix both methods. Use the unscented kalman filter. It is a very accurate method.
So In calculating the SOC under load take a look at what happens at the electrode and the cell level. At load you have polarization so surface concentration of lithium ions are going to be vastly different from rest of the electrode. Coulombic assumes that you are cycling the cell very slowly such that you don't have such vast concentration differences present in the cell
as a part of schiffer model I'm searching for the relation between SoC and current but I couldn't find the one that you mentioned in your comment in "modelling photovoltaic systems using PSpice" book ... if it's possible please inform me of the page number.
T´he Topic of SoC estimation while the battery is under load were often discussed in the literature. In this regard, you may read my publications refering to the topic of battery state estimation. Best regards
soc can be determined by using wired wound coils attached to the plastic case of the battery adjacent to the -ve end plate. The coil is energized using ad current at 15kHz. As the battery is cycled, the inductance of the coil is monitored and the voltage drop across the coil is measured.
I am working on a electric bike project and what is the electronic part used for CC and OCV that can be used for our project and where could i learn about the code?
Generally speaking, two approaches are developed for SOC estimation, which is categorized as a direct estimation approach and model-based approach. For the direct estimation approach, based on the direct measurements of battery current and voltage, SOC is mainly calculated by two different ways named Amperehour
(Ah) or coulomb counting method and open-circuit voltage (OCV) based method.
coulomb counting method is inaccurate and it needs to calculate the initial value. but by ANN you can get online data by cycler test and then you can use simulink ANN blocks to estimate the SOC