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.

BQ78350-R1: Learned FCC isn't learning accurately, some cases of Learning Up when it should Learn Down

Part Number: BQ78350-R1

Hello,

I have a couple of instances on batteries where my learned capacity doesn't appear to be learning properly, in some cases it is learning up when I'd expect it to learn down. Examples such as:

  1. Learned FCC of 3903
  2. Fully charged the pack up, let it sit and self-discharge for a few days, RemCap was 3792 before I started discharge
  3. Discharged the pack, I got 3659mAh out of it, learned FCC went up to 4015. (I would have expected this to go down)
  4. Charged the apck back up, didn't let it sit, discharged it right away.
  5. I got 3873mAh out of the pack, FCC updated to 4130 (again, I would have expected this to go down).

I have another pack that I logged, FCC was 10254 at the beginning of the discharge cycle, I took out 10167mAh by my calculations, at the end FCC updated to 10513 which means it went up instead of down.  Log for this one:

HV240 log.zip

Likewise, here is another battery I logged, FCC was 4147, I calculated that I took out 3959Ah, and FCC was updated to 4215

HV98 log, FCC went UP.zip

Then I have some where we learned in the right direction, but not nearly enough and well under the register settings for learn up/learn down.  Here are 2 excel file logs where you can see the following:

  1. Started out, FCC 4206
  2. Discharged and took out 3954mAh
  3. FCC updated to 4204 (down, but only by 2mAh)
  4. Charged back up
  5. Discharged and took out 3908mAh
  6. FCC updated to 4148 (down, but still not down enough to what we actually get).

HV98 Learn Down Not Enough.zip

Please let me know what you see in the logs

Thanks, Mike

  • Hi Mike,

    I cannot remember whether you've told me this already, but can you tell me what the initial settings for DOD at EDV2 for these packs? Is it set to the default value?

    Thanks,

    Matt

  • Matt,

    It is 15237, which I believe is close to the default, not sure why we changed from the default.

    Thanks, Mike

  • Matt,

    Going to add a piece of test data.

    Earlier today I sent a folder called "HV98 Learn Down Not Enough.zip", in that folder are 2 logs, number _2 and _3, I ran those in order so that you can see how the Learned FCC progressed.  Within the _3 (the last one run), I have a tab showing the graph showing:

    • RSOC - this is from the Bq78350-R1
    • MM RSOC - this is calculated as the discharge capacity as a percentage of the total discharge capacity removed from the pack
    • MM RSOC/FCC - this is calculated as the discharge capacity as a percentage of the Learned FCC at the start of the cycle. 

    Basically, If I had the RSOC that looks like it does, I'd expect it to adjust down or up so that the next cycle my expected has the same slope as the actual.  That being said, here is the graph that was in spreadsheet:

    When this cycle was done, as I mentioned previously, the Learned FCC had learned to 4148 even though I calculated 3908.56mAh.  I then manually changed the Learned FCC using BQ Studio to 3910 (nice round number near 3908.56).  I then charged the pack up, and discharged it under log.  

    As you can see, I am calculating much closer to what the Bq is reporting.  We have the RSOC "hanging" there at 8% which tells me I should probably adjust my EDV voltages a little, right?

    The reason I care about this accuracy, if you look at the data for both tests, subtract 30 minutes from the last reading (EOD).  When there is truely 30 minutes remaining, on the test with a FCC of 4204, the reported remaining runtime was 47 minutes.  In contrast, on the test where I manually set the FCC to 3910, when I actually had 30 minutes remaining the Bq part reported that I had 27 minutes remaining, which is much closer.

    To add, at the end of this cycle, I actually took 3959 out of the pack where the FCC was 3910, the learned FCC updated to 4206.  Why did that go up so high?  That would put the next cycle exactly back where it was, which was innaccurate.

    Here is the data for that last test.

    HV98_Forced Learned FCC.zip

    Thanks,

    Mike

  • Hi Mike,

    Thanks for sharing these additional results. I am still going through the data looking for clues. Hopefully I can provide some better insight tomorrow after I've had a chance to review some more.

    Matt

  • Hi Mike,

    So I went through the log files today, 

    For HV240_EDV_1a, I agree it is a little strange that the FCC learned up. I don't know if I have the .gg.csv file for this pack though. 

    For HV98_11258_EDV_Log3, the log shows that the RSOC reached 7% before the EDV2 voltage was reached - so the gauge holds the Remaining Capacity and the RSOC at 7% until the EDV2 voltage is reached. Internally it is counting the additional discharge that occurred so it uses this to calculate the FCC higher so that on the next discharge the RSOC should reach 7% around the same time EDV2 is reached.

    For HV98_11311_EDV_2.log and EDV_3.log, it looks to me like the FCC is being updated correctly at the end of the log. On these 2, if I take the starting FCC minus the Remaining Capacity when EDV2 is reached, then divide by 0.93 (because it has discharged 93% down to 7%) I get the new FCC values.

    Regarding the device reaching 7% at the time that EDV2 occurs, this is where using compensation will help. The cell voltages are affected by temperature and current load, so compensation will calculate a more accurate EDV2 voltage if you were to run under different conditions.

    Matt

  • Matt,

    I came to the same conclusions on why the FCC is calculating the way that it is.  It appears to be working correctly, I think my problem is my EDV voltages are set too low for this particular cell.  Here is the data I captured from the same logs you've looked at, let me know what your thoughts are:

    1. HV98
      1. EDV2 is currently set to 3000mV and 7%, my calculated 7% actually occurs when EDV2 is about 3400 (this cell has a steep drop off)
      2. EDV1 is currently set to 2900 for 3%, my calcuations say this should be around 3215mV.  
    2. HV240
      1. EDV2 is currently set to 3000mV for 7%, my calculated 7% actually occurs when EDV2 is about 3150
      2. EDV1 is currently set to 2900mV for 3%, my calculated about 2975mV would be good.

    My plan is to change to new values, and cycle multiple batteries tracking the RSOC vs my calculated RSOC to see how well they track together, and see how well Learned FCC updates.  As long as I keep the EDV2 at 7%, I don't need to change the Dod value right?  Or should I be reducing my "Battery Low%"?  Is there a certain spot in the discharge curve that I should be setting EDV2 to?

    Thanks, Mike

  • Hi Mike,

    This seems reasonable. It matches the "Better Calculation" approach for Fixed EDVs in the Using the BQ78350-R1 document.

    You should not need to change the Dod at EDV2 value - it would be good to set it to the default value which corresponds to 7%. (15232)

    The knee of the discharge curve is ideal because you want the slope to become steeper when detecting EDV2. This is usually around the 7% point for most Li-Ion battery cells.

    Best regards,

    Matt

  • Matt,

    I apologize for the delay, was out on vacation.  I ran a bunch of tests and it looks like I'll further tune my EDV2 voltage, based on the "Better Calculation" you sent, I should capture these EDV voltages at a load I can expect to see in the field.  What I'm finding is that when I discharge at 1A, my FCC and RSOC are pretty accuracte since it is the discharge rate that ran when I determined the EDV voltages.  However, if I discharge at 5A, then I hit EDV2 sooner than I'd expect to, so the fuel gauge thinks its at 7% sooner than it actually is, so it adjusts the FCC down.  I can play around with these discharge curves to determine what is best.

    I do have 1 cycle I'd like some help with, I've seen it once before and I can't determine it.  If you look at the attached excel file, the last discharge performed was 10A.  The FCC didn't update, as Pending EDV didn't change, it was still looking for 3400mV even after I passed 3400mV.  The VDQ bit was set up until RSOC reported 7%, which indicated I was in a qualified discharge, so I'm not sure what is going on.  Can you make sense of it?

    1682.HV98.zip

    Added, I have a larger pack that did the same thing on the last discharge cycle @ 10A.  Pending EDV never changes, so we don't update FCC.

    HV240_11004_Rev4_EDVtest.log.zip

    Thanks, 

    Mike

  • Hi Mike,

    What is your Overload Current parameter set to?

    Matt

  • Matt,

    6000 for the HV98, 7000 for the HV240.  So this is why this is doing this based on the Qualified Discharge.  I didn't look at what that parameter was as I just assumed it was the same as the "Overload in Discharge" protection setting.  So what is "Overload Current", is it simply "I don't want to learn on a high current discharge, so I set this to what I'd consider a high current discharge?"

    Thanks, Mike

  • Hi Mike,

    Yes, this tells the gauge to ignore the EDV2 threshold crossing at a higher current (for a pulsed load). This way if there was a temporary pulse, the SOC would not immediately jump to 7% and update the FCC. So I think you need to set this to a higher value for your application.

    Matt

  • Matt,

    Thanks for all of your help, I believe I'm all set on this issue.  In parallel to finalizing the numbers, I'm performing the procedure for the Compensated EDV so that I can have a better fuel gauge across loads and temperatures.

    Mike