With the increasing amount of battery storage systems, the demand for monitoring the status of these systems is increasing to ensure safe and better usage of the batteries. Many algorithms can be found in the literature varying in their accuracy and complexity to determine the State of Charge (SoC) or the State of Health (SoH). However, mostly the evaluation of these algorithms only takes place for a single cell in a simulation environment such as Matlab Simulink, not considering any hardware influences like the measurement accuracy or the computational power of the embedded system.
To encounter these problems, a toolchain is developed to easily port algorithms, created in Simulink, onto the open-source Battery Management Systems (BMS) platform foxBMS from the Frauenhofer IISB. This enables us to check the real-time capability of the algorithm on an embedded system that is comparable with BMS hardware used in current electric vehicles. Furthermore, the resource consumption of the algorithm is evaluated in terms of RAM, CPU, Stack Size, and Flash usage, providing a tool to identify critical parts in the implementation and optimize the algorithm in this area.
To ensure the functionality of the toolchain, a SoC algorithm based on a Dual-Kalman-Filter (DUKF) approach is ported to the BMS and tested with different current/voltage profiles. Reproducibility is guaranteed by performing these tests on a Hardware-in-the-Loop (HiL) testbench capable of simulating a battery with up to 128 single cells. This setup is comparable to an actual battery, including all measurement inaccuracies, and can ideally be used for benchmarking the algorithm. The results from the HiL tests are compared to the results of the Simulink implementation using the same profiles identifying all discrepancies between the two simulation environments.
As the last step, several parameters of the DUKF (e.g., the number of cells, cycle time) are varied to identify the limits of the embedded system for this algorithm.