This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Impedance Track SOC, Remaining Capacity and other calculations

Other Parts Discussed in Thread: BQ20Z70, BQ20Z40, BQ20Z655-R1, BQ20Z65

Hi,

I'm trying to understand how Impedance Track works, and how it depends on the settings that are configurable for the bq20z70 chip. I've read the documentation, but as far as I know there is not clear explanation that states how the different battery state indicators are calculated in different battery states (relaxation, charging and discharging). So far my understanding is as follows:

RSOC = 100 x (RM / FCC)

FCC = Qstart + PassedCharge + RM, where Qstart is passed charge from fully charged state and PassedCharge is the integrated current.

RM = Remaining capacity gotten with voltage simulation from current voltage state and based on the current/load setting and internal resistance and temperature.

ASOC = 100 x (RM / Design Capacity),  this is just a guess I'm making.

The RM is the mystery figure here. It is used in every formula, but the explanation given only makes sense when discharging. In charging and relaxation, are the last known values used? Remaining capacity does increase during charge, but is it just the last known value of RM based on the last known discharge current, and accumulated charge is added to this? Is the RSOC ever updated by reading based on the the relaxed voltage, or does it always equal to the relation of RM and FCC? What happens to RM if FCC is updated in relaxation?

Also, do the Load Mode and Load Setting values affect all of the above calculations only through RM voltage simulation? Are the values for runtime to empty (RunTimeEmpty, AvgTimeEmpty, @TimeEmpty) also only affected by these settings through the RM calculation? And the AvgTimeEmpty is always using one minute averaged current for the calculation? I'm curious of this because I would want to find out a way of getting a stable value for remaining runtime estimation for a highly changing load. It seems to me now that the only way for that is to use the @Rate and @TimeEmpty.

Thank you if you can clear this up for me.

  • 1. Remaining Capacity (RM) changes whenever the battery is charged or discharged. Its a record of the amount of charge in the battery right now. When the battery is charging or discharging, RM is adjusted by the amount of integrated current registered in the coulomb counter. When the battery is deeply resting, RM is adjusted by taking a voltage reading and looking up the corresponding state of charge.

    2. RSOC has the formula as you mentioned, so it is updated along with RM.

    3. FCC is based on the formula you've written above, so RM is calculated first, then FCC is based on the three values.

    4. Load Mode affects the way the RM simulation works - either based on constant current, or constant power load.

    5. Load Select affects the way the RM simulation works by specifying what current is used in the simulation. The newer bq20z40/45/60/65 family has added Load Select 7, which is a compromise of settings 1 and 3 (See the app. notebook for details).

    6. Yes, the run time calculations are based on RM.

    7. Average Time to Empty is based on SBS.AverageCurr ( ), which has a 14 second time constant, so yes its about a 1 minute average.

    8. Time to empty for a highly changing load is tough to predict, unless you allow the value to be dynamic as the load changes. Consider the case of a cell phone out on the highway where the towers are spaced 5 miles apart. If the car was to park under a cell tower, the time to empty would be far greater than if the phone is struggling to transmit from the fringe area.

     

  • Hi,


    I read your last post and the document SLUA364B and I have a question.

    It's written at the page 6 that "Remaining capacity is calculated after each resistance grid-point update" but is it possible to increase the rate of resistance grid-point because my product goes from 1A to 20A quite frequently and then the Remaining capacity is wrong frequently too.


    Thanks.


    Alex

  • please also see the top of page 7 as here it says that RM is updated continuously based on integrated charge which I believe is more correct, fitting with what Doug indicated above. It is actually FCC that is being updated at the grid points and you can't do anything to change when it happens. All you can do is moderate the magnitude of the FCC changes if your load is changing widely by changing the load select value so that simulations are based on a more stable current, maybe use an average from the previous cycle rather than say an instantaneous or average value from present cycle . What value of load select and load mode do you have  set ? I should also ask what gauge as there are some differences in newer gauges that the older 20z. 

  • Thanks for your quick answer,

    Actually I'm using the bq20z65 but I will pass to the bq20z655-R1 soon.
    For the load select I have the default one which is an average computed over the last 14 seconds.

    What to do you recommend for the load select if I go from 1A to 20A repeatedly ?
    see SLUU493A p.25

    Thanks

  • So you are using the Load select 3 default which is a short term average. I have 12 seconds written in my notes , where did you see the figure of 14 out of interest ? I think I have seen 14 somewhere too but it is sometime hard to find these 'references' again.

    Load select 0 will use the average from the whole of the last cycle, while load select 1 uses the average from the whole of the present discharge cycle so far. With load select 1, then at the start of discharge since there is no average from the present cycle the gauge will use the last cycle average data to begin with and then swaps to current cycle data when it has some, I guess same is probably true with the short term average as well. Since FCC is updated at the grid points and after discharge starts the next one is at 11 % DOD so you sometimes see a readjustment there from last cycle to current cycle data. Sometimes i see where customer has an old and large average current last cycle recorded in their gg file which for whatever reason is not updating and that can cause FCC to get reported low.Generalluy you should see the average current last cycle value get updated when discharge stops and you start to relax.

    I would try Load select 1 which should be more stable than load select 3 and maybe if that is still not stable enough try load select 0 which is not dependent on current cycle at all. Load select 7 uses max  average figure from last cycle and so is the most conservative.

    Mike

     

  • Hi Mike,

    I saw the 14.5 sec on page 70 of SLUU493A.pdf.

    I'm interested in the 6 or 7. But how is the 7 exactly computed?

    Thanks


    Alex

  • Alex,

    regards 7, page 190 of sluu493a

    so the part is using the Maxium of the AverageCurrent Values , which I take to be the 14.5 second rolling averages described on page 70/71.

    Option 6 uses whatever value you specify in gg file for the User rate, ref page 184

    Don't confuse the User rate setting and the At rate setting which is used by option 5

    Mike