SLAAEF5B March   2024  – June 2025 MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3506 , MSPM0G3507 , MSPM0H3216 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2Algorithm Introduction
    1. 2.1 Battery Basic Knowledge Introduction
    2. 2.2 Different SOCs and Used Technologies
      1. 2.2.1 NomAbsSoc Calculation
        1. 2.2.1.1 Coulometer With OCV Calibration
        2. 2.2.1.2 Data Fusion
        3. 2.2.1.3 Battery Model Filter
      2. 2.2.2 CusRltSoc Calculation
        1. 2.2.2.1 EmptySoc and FullSoc
        2. 2.2.2.2 Core Temperature Evaluation
      3. 2.2.3 SmoothRltSoc Calculation
    3. 2.3 Algorithm Overview
      1. 2.3.1 Voltage Gauge Introduction
      2. 2.3.2 Current Gauge Introduction
      3. 2.3.3 Capacity Learn Introduction
      4. 2.3.4 Mixing Introduction
  6. 3Gauge GUI Introduction
    1. 3.1 MCU COM Tool
    2. 3.2 SM COM Tool
    3. 3.3 Data Analysis Tool
  7. 4MSPM0 Gauge Evaluation Steps
    1. 4.1 Step 1: Hardware Preparation
    2. 4.2 Step 2: Get a Battery Model
      1. 4.2.1 Battery Test Pattern
      2. 4.2.2 Battery Model Generation
    3. 4.3 Step 3: Input Customized Configuration
    4. 4.4 Step 4: Evaluation
      1. 4.4.1 Detection Data Input Mode
      2. 4.4.2 Communication Data Input Mode
    5. 4.5 Step 5: Gauge Performance Check
      1. 4.5.1 Learning Cycles
      2. 4.5.2 SOC and SOH Accuracy Evaluation
  8. 5MSPM0 Gauge Solutions
    1. 5.1 MSPM0L1306 and 1 LiCO2 Battery
      1. 5.1.1 Hardware Setup Introduction
      2. 5.1.2 Software and Evaluation Introduction
      3. 5.1.3 Battery Test Cases
        1. 5.1.3.1 Performance Test
        2. 5.1.3.2 Current Consumption Test
    2. 5.2 MSPM0G3507, BQ76952 and 4 LiFePO4 Batteries
      1. 5.2.1 Hardware Setup Introduction
      2. 5.2.2 Software and Evaluation Introduction
      3. 5.2.3 Battery Test Cases
        1. 5.2.3.1 Performance Test 1 (Pulse Discharge)
        2. 5.2.3.2 Performance Test 2 (Load Change)
    3. 5.3 MSPM0L1306 and BQ76905
  9. 6Summary
  10. 7References
  11. 8Revision History

Learning Cycles

Before evaluating the gauge performance, users need to have a concept about the learning cycles of this algorithm. This algorithm has three parameters that are learned in the code running. The first is the NomFullCap and MaxNomFullCap. The second is the FullSoc and the third is the EmptySoc. All of these affect the SmoothSoc output performance and accuracy. In the following part, a battery test case is shown to show the learning capacity of this algorithm in Figure 4-11.

 Battery Discharge and Charge for 3 TimesFigure 4-15 Battery Discharge and Charge for 3 Times

When the iGaugeDominationFlg is set, the MaxNomFullCap changes from 0 to a value. At this time, this means the gauge algorithm calculates the NomFullCap error and NomFullSoc error reduce to an acceptable range. Normally, this takes one full discharge or charge.

The FullSoc and EmptySoc and are related to the CusSoc and SmoothSoc. These adjust when the battery turns to full or empty. However, the learning result is not saved at the beginning, as the NomFullSoc error is large. In Figure 4-15, the FullSoc adjusts to 94.9% at about 4000s and readjusts again at 30000s. The EmptySoc adjusts at 16000s and readjusts again at 43000s. At 60000s, as the load is same, the EmptySoc loads the saved value from the EmptySocMatrix.

SmoothSoc can have large jumps when EmptySoc and FullSoc is learning, especially when MaxNomFullCap is not learned and NomAbsSoc has large errors in the learning cycles. The battery is doing a constant discharge from 100% to 0%. An example is shown in Figure 4-16. This can be common on LiFePO4 batteries. To reduce the SmoothSoc error, users can use PackRecordLoad function to give the algorithm a start NomAbsSoc value and set the EmptyOcvMatrix and FullOcvMatrix in the battParamsCfg. If users just want to avoid the large jump of the SmoothSoc, then an IIR filter with an excellent cut of frequency is suggested to be added on the SmoothSoc output.

 SmoothSoc
                                        Jump Figure 4-16 SmoothSoc Jump