Skip to main content
Firmware Stable

BEST - Battery SOC estimator

Description

The BEST (Battery ESTimator) module implements a battery state estimation algorithm. It estimates the SOC (State Of Charge) and SOH (State Of Health) of a configured battery pack based on current and voltage readings.

The estimation combines two approaches:

  • Coulomb counting — integrating the current flowing through the controller
  • Voltage estimation — estimating SOC from the battery voltage using an OCV (Open Circuit Voltage) model

These two methods work together to compute the SOC.

There are two variants of the OCV model, depending on the product:

  • 4-point OCV — used in ESC controllers. The cell OCV curve is approximated by 4 voltage breakpoints at 0%, 10%, 85%, and 100% SOC, with a single scalar cell resistance.
  • OCV table — used in BMS. The cell OCV curve is defined by a multi-point lookup table with temperature-dependent interpolation and per-temperature cell resistance values.
tip
  • For controllers, the BEST parameters are located at /best.
  • For BMS, the BEST parameters are located at /driver/best.

Voltage estimation

By increasing soc_gain or reset_gain, the BEST module will rely more on voltage estimation for SOC correction.

Coulomb counting

There is no explicit setting for coulomb counting strength. It can be disabled by setting P to 0.

When to disable coulomb counting?

If the siliXcon controller is not the only power device connected to the battery, coulomb counting should be disabled since the controller cannot measure the total battery current.

Parameters

Common parameters

These parameters are present in both OCV model variants.

ParameterUnitDescription
S-Number of cells in series
P-Number of cells in parallel. Set to 0 to disable coulomb counting
soc_gainSOC voltage correction weight. Set to 0 to disable voltage correction during run (voltage correction will still work during BEST reset)
reset_timemsSOC reset time at device startup. Negative value for manual-only reset via breset command or from the app. Set to 0 to disable the reset feature
reset_gainSOC reset correction weight. Same role as soc_gain, but applied during the BEST reset period
RsOhmPack wiring resistance (not present in single-cell mode)
CcmAhCell nominal capacity

OCV model parameters

The 4-point model approximates the cell OCV curve using four voltage breakpoints. A single scalar resistance value is used for the cell.

ParameterUnitDescription
RcOhmCell nominal resistance
U100VOCV for cell when SOC = 100%
U85VOCV for cell when SOC = 85%
U10VOCV for cell when SOC = 10%
U0VOCV for cell when SOC = 0%
OCV

OCV = Open Circuit Voltage — the voltage on a single battery cell without load.

States

StateUnitDescription
SOC0-1Battery state of charge
OCVVExtrapolated cell open circuit voltage

Permanents

tip

Located at folder /permanents.

PermanentUnitDescription
CmaxmAhMaximum battery capacity (at 100% charge)
CactmAhActual battery capacity

Shell commands

CommandDescription
bresetReset BEST module SOC and SOH. During reset_time, SOC is corrected using reset_gain