nPM1300 Fuel Gauge Update Rate Requirements for Accuracy (nrf_fuel_gauge_process)

Hello,

I'm working on an application where we're implementing the nPM1300 and utilizing the fuel gauge algorithm to estimate battery life. 

Interestingly, the results that are provided by the fuel gauge algorithm appear to vary significantly depending on the rate that I update nrf_fuel_gauge_process. For example, after a given test with a constant current draw, the estimated battery SoC at the end of the test is 33% if I update at 1 second intervals and the estimated battery SoC is 60% if I update at 30 second intervals. The 33% estimate is closer to being accurate given the test. 

While the API documentation for the fuel gauge does not list a minimal update rate and a prior post does not indicate a minimal update rate, either, it seems that this update rate may be significant while discharging. Interestingly, it appears that the update rate is not nearly as significant while charging.

For reference, this is a higher-current application, with ~500mA current draw on a 1000mAH Li-ion battery that has been appropriately modeled according to noted practices at bench temperatures (21C).

Is there a minimal update rate required for an accurate SoC estimate across different states (idle vs. high current draw vs. low current draw)?

Thanks in advance!
Ben

Parents
  • The fuel gauge algorithm’s accuracy is a function of a combination of update rate, current draw, and the particular characteristics of the battery being used.

    In high-current applications, such as yours with ~500mA draw, updating the fuel gauge more frequently will likely lead to more accurate State of Charge estimation. This is because large, rapid changes in current may not be captured as accurately with infrequent updates. Conversely, too frequent updates in such a high draw scenario do not typically lead to significant improvements in long-term accuracy and just add unnecessary processing overhead.

    For now, our general guidance, as you've seen, is to run the fuel gauge update once every second during active periods to balance accuracy with processing overhead. However, best practices may vary, and I can provide some general recommendations for different power states, though these should be validated with tests for your specific use case:

    • Sleep state (< 10μA): Update interval can be significantly decreased since the current draw and its variance are very minimal. An update rate of once every few minutes, or even less frequent, may suffice.

    • Low power state (10μA - 100μA): A moderate update frequency is usually appropriate; perhaps once every 10-30 seconds. This allows for the capture of small fluctuations without excessive processing.

    • Higher power state (100μA - 50mA): In this range, you might consider update intervals of once every 1-5 seconds. More power is being consumed, and capturing changes effectively can help maintain a better SoC estimate.

    • Very high power draw state (50mA - 1A): As in your case, it's generally best to update at once per second or more to ensure the effects of high current draw are accurately reflected in the SoC estimation.

    • While charging: The update rate during charging should be able to capture the transition from constant current to constant voltage charging modes. This might mean more frequent updates during the bulk charging phase (constant current) and more relaxed updates during the trickle charge or top off phases (constant voltage). The charging rate itself may influence the update rate. Fast charging would likely require more frequent updates compared to slower charge rates.

    Optimal settings usually require testing in various conditions. If you haven't already, you could consider implementing a dynamic update rate that adjusts the rate based on device state to optimize power consumption and accuracy.

Reply
  • The fuel gauge algorithm’s accuracy is a function of a combination of update rate, current draw, and the particular characteristics of the battery being used.

    In high-current applications, such as yours with ~500mA draw, updating the fuel gauge more frequently will likely lead to more accurate State of Charge estimation. This is because large, rapid changes in current may not be captured as accurately with infrequent updates. Conversely, too frequent updates in such a high draw scenario do not typically lead to significant improvements in long-term accuracy and just add unnecessary processing overhead.

    For now, our general guidance, as you've seen, is to run the fuel gauge update once every second during active periods to balance accuracy with processing overhead. However, best practices may vary, and I can provide some general recommendations for different power states, though these should be validated with tests for your specific use case:

    • Sleep state (< 10μA): Update interval can be significantly decreased since the current draw and its variance are very minimal. An update rate of once every few minutes, or even less frequent, may suffice.

    • Low power state (10μA - 100μA): A moderate update frequency is usually appropriate; perhaps once every 10-30 seconds. This allows for the capture of small fluctuations without excessive processing.

    • Higher power state (100μA - 50mA): In this range, you might consider update intervals of once every 1-5 seconds. More power is being consumed, and capturing changes effectively can help maintain a better SoC estimate.

    • Very high power draw state (50mA - 1A): As in your case, it's generally best to update at once per second or more to ensure the effects of high current draw are accurately reflected in the SoC estimation.

    • While charging: The update rate during charging should be able to capture the transition from constant current to constant voltage charging modes. This might mean more frequent updates during the bulk charging phase (constant current) and more relaxed updates during the trickle charge or top off phases (constant voltage). The charging rate itself may influence the update rate. Fast charging would likely require more frequent updates compared to slower charge rates.

    Optimal settings usually require testing in various conditions. If you haven't already, you could consider implementing a dynamic update rate that adjusts the rate based on device state to optimize power consumption and accuracy.

Children
No Data
Related