5.5. SOX

This section describes where and how to implement state estimation algorithms (e.g., SOC, SOH, SOF). The basic SOC calculation is done by a simple Coulomb counter. Its implementation is shown here. Current derating depending on cell voltages, temperatures and SOC is performed to compute the SOF.

5.5.1. Module Files

Driver:
  • embedded-software\mcu-primary\src\application\sox\sox.h (sox.c)

  • embedded-software\mcu-primary\src\application\sox\sox.c (sox.h)

Driver Configuration:
  • embedded-software\mcu-primary\src\application\config\sox_cfg.h (sox_cfg.c)

  • embedded-software\mcu-primary\src\application\config\sox_cfg.c (sox_cfg.h)

5.5.2. Detailed Description

The sox module gets the relevant measurement minimum and maximum values from the database and stores the current derating values in the database.

5.5.2.1. SOC - State of Charge

The state of charge estimation (SOC) is implemented in the form of a simple Coulomb counter. The SOC initialization is done after startup by reading the value from the non-volatile memory. Not implemented right now is a initialization of the SOC by VOLTAGE-SOC relation (lookup table), but configuration placeholders are already in SOX Configuration. These placeholders define the constraints at which the initialization with lookup table is valid.

5.5.2.2. SOF - State of Function

The state of function estimation (SOF) consists of current derating values. These charge and discharge derating values are calculated according to battery cell specific constraints. For this, three parameters are taken into account:

  • temperature

  • voltage

  • state-of-charge

Four different curves are calculated:

  • recommended operating limit (ROL) (this is the recommended operating current transmitted on the CAN bus)

  • maximum operating limit (MOL) (if the floating current exceeds this threshold, the overcurrent warning flag is set)

  • recommended safety limit (RSL) (if the floating current exceeds this threshold, the overcurrent alarm flag is set)

  • (absolut) maximum safety limit (MSL) (if the floating current exceeds this threshold, the overcurrent error flag is set and the contactors are opened)

Specific points in the following derating curves have to be defined by configurable defines:

../../../_images/sof_t_3alarms.png

Fig. 5.20 Temperature dependent current derating with three alarm levels (warning, alarm, error)

../../../_images/sof_v_3alarms.png

Fig. 5.21 Voltage dependent current derating with three alarm levels (warning, alarm, error)

../../../_images/sof_soc_3alarms.png

Fig. 5.22 SOC dependent current derating with three alarm levels (warning, alarm, error)

These specific points are the values where derating starts and where it is at full extent. They are described in Configuration Variables and battery specific values for the maximum allowed current can be seen for example in Configuration Example for Lithium-Ion NMC/LTO Chemistry and Configuration Example for Lithium-Ion NCA/Graphite or NMC/Graphite Chemistries.

5.5.3. SOX Configuration

5.5.3.1. Configuration Variables

For the Coulomb counting method the cell capacity (in case of parallel cell configuration, it is the sum of the parallel connected cells) has to be given here:

NAME

LEVEL

TYPE

UNIT

DESCRIPTION

DEFAULT

SOX_CELL_CAPACITY

devel

float

mAh

cell capacity in SOC formula coulomb counter

20000.0

Currently there is only placeholder for the initialization by a Voltage-SOC relation. The following configuration can be used after implementation:

NAME

TYPE

UNIT

DESCRIPTION

DEFAULT

SOX_SOC_INIT_CURRENT_LIMIT

int

mA

at initialization the current must be below

100

SOX_DELTA_MIN_LIMIT

int

mV

see source code

10

SOX_DELTA_MAX_LIMIT

int

mV

see source code

10

These are the configuration variables of the ROL, MOL, RSL and MSL:

NAME

LEVEL

TYPE

UNIT

DESCRIPTION

VALIDATOR

SOX_CURRENT_MAX_CONTINUOUS_CHARGE

devel

float

A

maximum current continuous charge

1<x<240

SOX_CURRENT_MAX_CONTINUOUS_DISCHARGE

devel

float

A

maximum current continuous discharge

1<x<240

SOX_CURRENT_LIMP_HOME

devel

float

A

discharge current in limp home emergency mode

1<x<40

SOX_TEMP_LOW_CUTOFF_DISCHARGE

devel

float

°C

low temperature discharge derating start

-40.0<x<80.0

SOX_TEMP_LOW_LIMIT_DISCHARGE

devel

float

°C

low temperature discharge derating full

-40.0<x<80.0

SOX_TEMP_LOW_CUTOFF_CHARGE

devel

float

°C

low temperature charge derating start

-40.0<x<80.0

SOX_TEMP_LOW_LIMIT_CHARGE

devel

float

°C

low temperature charge derating full

-40.0<x<80.0

SOX_TEMP_HIGH_CUTOFF_DISCHARGE

devel

float

°C

low temperature discharge derating start

-40.0<x<80.0

SOX_TEMP_HIGH_LIMIT_DISCHARGE

devel

float

°C

low temperature discharge derating full

-40.0<x<80.0

SOX_TEMP_HIGH_CUTOFF_CHARGE

devel

float

°C

low temperature charge derating start

-40.0<x<80.0

SOX_TEMP_HIGH_LIMIT_CHARGE

devel

float

°C

low temperature charge derating full

-40.0<x<80.0

SOX_SOC_CUTOFF_CHARGE

devel

int

0.01%

high SOC derating starts

0<=x<=10000

SOX_SOC_LIMIT_CHARGE

devel

int

0.01%

high SOC derating full extent

0<=x<=10000

SOX_SOC_CUTOFF_DISCHARGE

devel

int

0.01%

low SOC derating starts

0<=x<=10000

SOX_SOC_LIMIT_DISCHARGE

devel

int

0.01%

low SOC derating full extent

0<=x<=10000

SOX_VOLT_CUTOFF_CHARGE

devel

int

mV

high voltage derating starts

0<=x<=5000

SOX_VOLT_LIMIT_CHARGE

devel

int

mV

high voltage derating full extent

0<=x<=5000

SOX_VOLT_CUTOFF_DISCHARGE

devel

int

mV

low voltage derating starts

0<=x<=5000

SOX_VOLT_LIMIT_DISCHARGE

devel

int

mV

low voltage derating full extent

0<=x<=5000

These configuration values are building the main safety feature and are therefore considered highly safety-relevant.

5.5.3.2. Configuration Example for Lithium-Ion LFP/Graphite Chemistry

This configuration is very conservative and the limits are defensive. It is the default standard configuration. These values must be adapted to the specific battery cells used.

NAME

UNIT

VALUE

DESCRIPTION

SOX_CURRENT_MAX_CONTINUOUS_CHARGE

A

10.00

maximum current continuous charge

SOX_CURRENT_MAX_CONTINUOUS_DISCHARGE

A

10.00

maximum current continuous discharge

SOX_CURRENT_LIMP_HOME

A

3.00

discharge current in limp home emergency mode

SOX_TEMP_LOW_CUTOFF_DISCHARGE

°C

5.0

low temperature discharge derating start

SOX_TEMP_LOW_LIMIT_DISCHARGE

°C

-5.0

low temperature discharge derating full

SOX_TEMP_LOW_CUTOFF_CHARGE

°C

10.0

low temperature charge derating start

SOX_TEMP_LOW_LIMIT_CHARGE

°C

0.0

low temperature charge derating full

SOX_TEMP_HIGH_CUTOFF_DISCHARGE

°C

45.0

low temperature discharge derating start

SOX_TEMP_HIGH_LIMIT_DISCHARGE

°C

55.0

low temperature discharge derating full

SOX_TEMP_HIGH_CUTOFF_CHARGE

°C

30.0

low temperature charge derating start

SOX_TEMP_HIGH_LIMIT_CHARGE

°C

37.0

low temperature charge derating full

SOX_SOC_CUTOFF_CHARGE

0.01%

8500

high SOC derating starts

SOX_SOC_LIMIT_CHARGE

0.01%

9500

high SOC derating full extent

SOX_SOC_CUTOFF_DISCHARGE

0.01%

1500

low SOC derating starts

SOX_SOC_LIMIT_DISCHARGE

0.01%

500

low SOC derating full extent

SOX_VOLT_CUTOFF_CHARGE

mV

3300

high voltage derating starts

SOX_VOLT_LIMIT_CHARGE

mV

3550

high voltage derating full extent

SOX_VOLT_CUTOFF_DISCHARGE

mV

2700

low voltage derating starts

SOX_VOLT_LIMIT_DISCHARGE

mV

2300

low voltage derating full extent

5.5.3.3. Configuration Example for Lithium-Ion NMC/LTO Chemistry

NAME

UNIT

VALUE

DESCRIPTION

SOX_CURRENT_MAX_CONTINUOUS_CHARGE

A

120.00

maximum current continuous charge

SOX_CURRENT_MAX_CONTINUOUS_DISCHARGE

A

120.00

maximum current continuous discharge

SOX_CURRENT_LIMP_HOME

A

20.00

discharge current in limp home emergency mode

SOX_TEMP_LOW_CUTOFF_DISCHARGE

°C

0.0

low temperature discharge derating start

SOX_TEMP_LOW_LIMIT_DISCHARGE

°C

-10.0

low temperature discharge derating full

SOX_TEMP_LOW_CUTOFF_CHARGE

°C

0.0

low temperature charge derating start

SOX_TEMP_LOW_LIMIT_CHARGE

°C

-10.0

low temperature charge derating full

SOX_TEMP_HIGH_CUTOFF_DISCHARGE

°C

45.0

low temperature discharge derating start

SOX_TEMP_HIGH_LIMIT_DISCHARGE

°C

55.0

low temperature discharge derating full

SOX_TEMP_HIGH_CUTOFF_CHARGE

°C

45.0

low temperature charge derating start

SOX_TEMP_HIGH_LIMIT_CHARGE

°C

55.0

low temperature charge derating full

SOX_SOC_CUTOFF_CHARGE

0.01%

8500

high SOC derating starts

SOX_SOC_LIMIT_CHARGE

0.01%

9500

high SOC derating full extent

SOX_SOC_CUTOFF_DISCHARGE

0.01%

1500

low SOC derating starts

SOX_SOC_LIMIT_DISCHARGE

0.01%

500

low SOC derating full extent

SOX_VOLT_CUTOFF_CHARGE

mV

2400

high voltage derating starts

SOX_VOLT_LIMIT_CHARGE

mV

2550

high voltage derating full extent

SOX_VOLT_CUTOFF_DISCHARGE

mV

2000

low voltage derating starts

SOX_VOLT_LIMIT_DISCHARGE

mV

1750

low voltage derating full extent

5.5.3.4. Configuration Example for Lithium-Ion NCA/Graphite or NMC/Graphite Chemistries

NAME

UNIT

VALUE

DESCRIPTION

SOX_CURRENT_MAX_CONTINUOUS_CHARGE

A

80.00

maximum current continuous charge

SOX_CURRENT_MAX_CONTINUOUS_DISCHARGE

A

200.00

maximum current continuous discharge

SOX_CURRENT_LIMP_HOME

A

40.00

discharge current in limp home emergency mode

SOX_TEMP_LOW_CUTOFF_DISCHARGE

°C

25.0

low temperature discharge derating start

SOX_TEMP_LOW_LIMIT_DISCHARGE

°C

-10.0

low temperature discharge derating full

SOX_TEMP_LOW_CUTOFF_CHARGE

°C

20.0

low temperature charge derating start

SOX_TEMP_LOW_LIMIT_CHARGE

°C

10.0

low temperature charge derating full

SOX_TEMP_HIGH_CUTOFF_DISCHARGE

°C

45.0

low temperature discharge derating start

SOX_TEMP_HIGH_LIMIT_DISCHARGE

°C

55.0

low temperature discharge derating full

SOX_TEMP_HIGH_CUTOFF_CHARGE

°C

35.0

low temperature charge derating start

SOX_TEMP_HIGH_LIMIT_CHARGE

°C

45.0

low temperature charge derating full

SOX_SOC_CUTOFF_CHARGE

0.01%

8500

high SOC derating starts

SOX_SOC_LIMIT_CHARGE

0.01%

9500

high SOC derating full extent

SOX_SOC_CUTOFF_DISCHARGE

0.01%

1500

low SOC derating starts

SOX_SOC_LIMIT_DISCHARGE

0.01%

500

low SOC derating full extent

SOX_VOLT_CUTOFF_CHARGE

mV

4000

high voltage derating starts

SOX_VOLT_LIMIT_CHARGE

mV

4100

high voltage derating full extent

SOX_VOLT_CUTOFF_DISCHARGE

mV

3100

low voltage derating starts

SOX_VOLT_LIMIT_DISCHARGE

mV

2750

low voltage derating full extent