# Can I use the Coulomb Counting Method to estimate the SOC of a battery being charged by PV panels?

I have seen a couple questions about Coulomb Counting, but I have not found anything defining an "outside source" providing the current to the battery, this questions might be close, How to estimate Li Ion Battery SOC?.

I am wondering if what I am doing is possible in order to produce a simple SoC estimation of a lithium ion battery being charged by PV panels. The lithium ion battery is basically an energy storage system, maybe something like a Tesla power wall.

I am using the Coulomb Counting equation (Section 3.2.1 of the paper, https://www.hindawi.com/journals/isrn/2013/953792/). I have implemented the equation in the following way:

soc = soc[-1] + ((irradiance * self.solar_panel_size)/(pv_volt))/(c*60)*dt


Units

• irradiance: W/m^2 (changes between 0 and 1000 depending on time of day)
• solar_panel_size: m^2
• pv_volt: Volts
• c: Amp-hours (60 is to convert Amp-hours into Amp-minutes)
• dt: Minutes

I believe the typical size for a solar panel is about 1.635m^2 (https://us.sunpower.com/how-many-solar-panels-do-you-need-panel-size-and-output-factors). I also believe the voltage coming from the solar panel changes with the irradiance, but I am hoping maybe 5 volts would be a good number to use for pv_volt (https://www.altestore.com/howto/solar-panels-pv-and-voltages-a98/).

Things I am assuming:

• Not taking into account cycling, inefficiencies, temperature, different charge rates depending on SoC
• Assuming a linear charging rate

I am trying to use the equation for a battery with a rating of 8kWh and power rating of 2kW. The battery can be fully charged/discharged in 4 hours (I know a battery would never be charged "100%", or discharged to "0%", but for the sake of simplicity, I want to assume this is the case). I would think that at 1000 W/m^2 irradiance, based on my equation, the SoC would increase by 25% in 1 hour.

I think my main issue is the "PV portion" of my equation, right now it basically depends on the size and voltage of the PV panel, I am not sure if I can do it this way, or if there is a more "optimal" way.

If I can use the Coulomb Counting equation as I am using it, then I guess my question is, what values can I realistically use for c and pv_volt to obtain a "realistic" SoC rate at every time interval?

• If you can measure charge (and discharge) current rather than involve voltage in any way you are liable to get a superior result. LiIon ENERGY charge efficiency at various states of charge is high but varies. Whereas CURRENT charge efficiency is extremely high - typically over 99% when new and INCREASES with use. So current based coulomb counting can be very effective. || I may be wrong BUT the paper seems to be an immense step backwards. Direct current measurement is easy and low cost with modern componentry (and was hardly less so in 2013 when the paper was published. ... – Russell McMahon Oct 15 '20 at 1:31
• ... PV panel efficiency, irradiance, panel area, assumed panel voltage, .... are far less certain measures than measure current. || If you are wanting a "how will my panel do" measure then something like (irradiance/1000) x Imp /Battery_Ah is a good measure of SOC change. I varies about linearly with irradiance for most of the charge range. See PV panel curves for typical results. || More can be said if wanted. – Russell McMahon Oct 15 '20 at 1:35
• It depends on the C charge discharge design intent. if C>>1 then charge dissipation in the battery ESR’s (more than 1 RC//R2C2) will reduce the energy stored in equivalent capacitance by E=I^2*ESR * t , which is why the V vs I battery slopes are non-linear. But it can be made to work with constraints – Tony Stewart EE75 Oct 15 '20 at 4:45
• Also your last link erroneously states the nominal voltage too low for each Voc. It should be between <70% to 82% of Voc for 100 to 1000W/m^2 input for MPT and you must use a MPPT controller incl. a battery charge manager. – Tony Stewart EE75 Oct 15 '20 at 4:51
• For a 1.6m^2 panel, 5V will be an inappropriate choice of PV voltage : look up the MPPT voltage for that panel. – user_1818839 Oct 15 '20 at 8:14

## 1 Answer

If you can measure charge (and discharge) current rather than involve voltage in any way you are liable to get a superior result.

LiIon ENERGY charge efficiency at various states of charge is high but varies and decreases at increasingly high levels of SOC.

Whereas, CURRENT charge efficiency is extremely high - typically over 99% when new and INCREASES with use. So current based coulomb counting can be very effective.

I may be wrong BUT the paper seems to be an immense step backwards. Direct current measurement is easy and low cost with modern componentry (and was hardly less so in 2013 when the paper was published.
1 ... PV panel efficiency, irradiance, panel area, assumed panel voltage, .... are far less certain measures than measure current. || If you are wanting a "how will my panel do" measure then something like (irradiance/1000) x Imp /Battery_Ah is a good measure of SOC change. I varies about linearly with irradiance for most of the charge range. See PV panel curves for typical results. More can be said if wanted. – Russell McMahon♦ 8 hours ago

For the equation you suggested, what would be some common values for Imp and Battery_Ah? Because if I assume 1000 for irradiance (sun is at its highest), Imp for one panel is 5A, and Battery_Ah is 200, for 1 hour of charging, SOC would only increase by 0.025%. I feel I may be using the equation wrong, or I may be missing something.

Sorry, I did not put a % in there - which is misleading. ie it will change by 0.025 (where 1 is full) or 2.5%.

Imp is whatever the manufacturer says it is at maximum power point.
eg at say Imp=5A and Vmp = 18V panel will give Wmp = 5 x 18 = 90 Watt.

If you use that to charge a 12V battery in 1000 W/m^2 insolation then it will give you slightly over 5A (as Vpanel will be clamped to 12V (rather than 18V) and Ipanel will be slightly above Imp as Isc is > Imp and at 12V the panel is moving towards Isc.

Note that Imp < Isc is not an error as V will be 0 at SC.
Similarly Voc > Vmp

A PWM controller regulates current (or stops it) by applying variable duty cycle PWM so Ibattery <= Ipanel_max. A "12V" panel usually has Vmp = 18V (as that allows a lead acid battery to be boost charged) so a PWM controller will "waste" the energy between Vpanel and Vbat.

A MPPT controller tries to operate the panel at optimum power point for the current insolation = Vmp_current and Imp_current giving Wmp_current (where current varies with current insolation, panel temperature, panel cleanliness, ... .
THEN it converts the energy to battery optimum ay typically 90%+ efficiency - usually using a buck converter.

What does "one sun" = 1000 W/m^2 mean and imply?

Crucially important: While 1000 W/m^2 insolation is termed "one sun" this is just a measurement unit and is NOT the amount of insolation expected at midday. It happens that in many locations midday insolation is ABOUT 1 sun, but this varies with location, atmospheric conditions, time of year, ... . Altitude also has an effect. Some locations on earth have up to about 1.3 sun = 1300 W/m^2 under optimum conditions.

So, using "1 sun" = 1000 W/m^2 as an assumption when determining panel output is often a useful approximation it is not a consistently reliable one.

• Agreed except “waste” is more like matching impedance to open circuit to match Z=Voc/Isc=Vmpt/Impt – Tony Stewart EE75 Oct 15 '20 at 12:30
• For Imp, can I assume there is more than on PV panel in series to increase the amps provided by the PV system? For example, if each panel provides 5A (or slightly over as you mentioned with your example), can I assume 8 panels in parallel and bump up my Ipanel to somewhere around 40A? – W. Churchill Oct 16 '20 at 5:12
• @W.Churchill No assumptions needed. For identical (or at least equal voltage) panels in parallel Imp (I max power) = sum of the Imp's for each panel. For (ideally) identical panels in series Imp is the Imp of one panel OR the Imp of the lowest Imp panel and Vmp (V max power) is the sum of the Vmps of all panels. – Russell McMahon Oct 16 '20 at 11:34