What is SOC Drift and how to avoid it?

Modified on Mon, 12 Feb at 3:45 PM

One of the most common tech support questions to any lithium battery maker is why the State of Charge (SOC) estimation can be so inaccurate in some situations? This is especially true for Lithium Iron Phosphate (LiFePO4, or LFP) batteries. This paper will attempt to explain this issue and give advice on how to avoid it.

 

Lithium battery voltage is both a blessing and a curse. It remains almost unchanged for much of the time the battery is being used or charged, with rapid changes at both the low and high ends of the charge-discharge cycle. This is good news for the electrical equipment powered by the battery as stable voltage means stable power, less disturbance is good for electronics. It is bad news for trying to measure the SOC using voltage-based gauges. LFP battery voltage is especially flat, with SOC related changes so small that we can’t measure it effectively, as it’s drowned by much larger changes due to temperature and load rate variations. So, we know by measuring voltage when battery is full and when it’s near empty, but not in between. The SOC range between 30% and 95% is especially difficult to know by voltage. What is the solution to this problem? Coulomb counting, or Amp-hours (Ah) counting.

 

By measuring current (Amps) into and out of the battery over a time period we can sum up, or integrate, the amount of energy in Ah which is put into the battery during charging and taken out of the battery during discharging. This presents 2 new problems – even a small inaccuracy in measurement will accumulate over longer time periods and we don’t know the exact Ah capacity of the battery to calculate the relative percentile SOC value.

 

Imagine a bucket of liquid with opaque walls so you can’t directly observe how full the bucket is, until it’s completely full or nearly empty. You can measure the flow in and out of the bucket, but your measuring device is not extremely precise. If you repeatedly take some liquid out and then put some back in, after a few cycles you will lose track of how much liquid is in the bucket. This loss of measurement is called the SOC drift. 

 

Another important factor in the SOC drift is slow self-discharge during storage. Imagine your bucket has a tiny hole at the bottom and some liquid drips out without being measured at all. This happens even when you are not actively using the bucket, so when you come back to using it you don’t know how much liquid was lost due to this slow drip. To avoid these issues with SOC measurement you should regularly fill the bucket until it’s full, so you can know for sure that it’s at the 100% SOC before you continue to measure the flow out again.

 

But how can you know when your SOC is getting low? This requires knowing the size of the bucket, which keeps changing over its lifetime as some liquid turns into gunk and sticks to the inner walls, reducing the usable capacity of the bucket. Similar processes affect the usable Ah capacity of lithium batteries as they age, varying with temperature and usage patterns, impossible to measure directly.

 

When the new battery is assembled at the factory its SOC gauge is given an initial Ah capacity value based on the nominal capacity of its internal cells. Nominal value is not an actual value, as new cells often come with higher than nominal actual capacity. So, initially the actual Ah is slightly higher than nominal, but over the years it becomes lower and lower compared to nominal Ah value. Calendar capacity loss is not linear, it drops faster during the first year, approximately 5%, then slows down until gradually losing up to 20% over the lifetime. So, how can we know the actual Ah capacity to calculate SOC correctly and know when it’s getting low during discharge?

 

We need to occasionally perform a full charge-discharge calibration cycle so we can measure all of the Ah capacity the battery can hold and then update this value in the SOC gauge. Most people don’t discharge their batteries to empty on a regular basis, so this needs to be done with some planning and purpose, in a reasonably short time period to reduce measurement errors. Lithium batteries should not be left in the deeply discharge state, so a charge cycle is necessary right after this calibration discharge.

 

Lithionics Battery has recently released the BMS firmware update v9.0.04 for our Advanced External BMS V9 systems which makes this calibration cycle easy for customers to perform on their own. Rather than completely discharging the battery all the way to 0%, which can be difficult due to inverter cutting out before the battery is fully depleted, we trigger the Usable Ah calibration at the 10% NeverDie Reserve mark, which is a unique feature of the Lithionics Battery BMS. An updated Ah value is automatically saved in the BMS memory such that all future SOC measurements will be done against the updated Ah value, allowing for more accurate SOC percentile value. 

 

Older versions of Lithionics Batteries do not currently have the automated Usable Ah calibration feature but will receive similar firmware update in the future to enable it.

 

Calibration cycle can be done once a year or twice a year for heavily utilized batteries which might be aging faster due to heavy use. Please follow the steps below to perform the Ah calibration cycle.

 

How to perform the Usable Ah calibration cycle?

 

It is important to complete the entire process in a reasonably short time, with discharge portion being less than 12 hours, ideally less than 6 hours, to reduce measurement errors and to allow time for pre and post charging all within one session. Depending on the size of your battery you need to be able to apply a reasonably high continuous load so you can discharge the entire battery in such a short time period. If using AC loads such as microwave oven, induction cooktop or an air conditioner, make sure your inverter can handle this load continuously without overload or overheating. For pre and post charging it’s best to use AC grid power, which is plentiful and continuous as opposed to solar or alternator charging.

 

  1. Connect to your BMS with the Lithionics Battery Monitor app on your mobile device. It is best to keep your device near the battery and the app connected to the BMS the entire time, so there is a data log of the calibration session saved on your device, which can be later used for any technical troubleshooting if necessary.
  2. Check your BMS firmware version by swiping left on the main screen to access Battery Details screen. If your External V9 BMS firmware is less than v9.0.04, then proceed to update the firmware to at least v9.0.04 or higher, using this YouTube video as a guide https://youtu.be/jJslDYVr1_Y?si=PFfFUXI4lcEsFwSX 
  3. Charge your battery until the SOC value on the Lithionics Battery Monitor app shows 100%. It is critical to observe the 100% mark before moving to the next step, even if the battery sits at 99% for a long time due to previously accumulated SOC drift. If you are concerned about not reaching 100% make sure your charger is pushing the current into the battery, which is evident by the green color and the “+” sign of the Current value in the application screen. This can potentially take a long time if the battery was in storage and SOC drift has grown significantly. If unable to reach 100% check your charger for correct charge voltage settings, it should be at 14.4V for a 12V battery, or 57.6V for a 51V battery.
  4. Once you observe the 100% SOC at the app screen, turn off charging and start discharging your battery with steady and reasonably high loads, such that it can be fully depleted in less than 6 to 12 hours. You can confirm the load by red color of the Current and Power values in the Lithionics app screen. Power level should correspond with power consumption of your loads.
  5. As time goes on observe the SOC value going down until eventually the BMS will reach the NeverDie reserve mark and turns off the power. Turn off your loads and press the BMS On/Off/Reset button to wake up the BMS. Reconnect the mobile app again or wait until it reconnects on its own and you should see the SOC value 10%. This means calibration was successful.
  6. Turn on your charger again to re-charge the battery back to 100%.

 

 

Rough SOC corrections between full charge cycles

 

Even though we learned earlier that SOC measurement by voltage is extremely difficult it is possible to make rough corrections at a few selected marks when SOC drift becomes too large. In the same BMS firmware release which includes the Usable Ah calibration Lithionics also included a feature of rough SOC corrections at 70%, 40%, 20%, 10%, 5% marks when SOC drift becomes large enough to justify the rough correction. This happens automatically when certain voltage conditions are measured by the BMS. You may notice your SOC value suddenly jumps down to one of these 5 marks from a higher value. This feature only works during discharge, so it can only jump down. During charge the only SOC correction possible is when battery is full, and SOC jumps to 100%. In many cases SOC drift during charge causes the SOC to stick to 99% for longer time than expected. This is perfectly normal, and you should continue to charge until it finally reaches 100% at which point SOC drift is removed.



Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article