Along with the increasing amount of battery storage systems within the last years, the need for cost reduction is increasing. To achieve the ladder, the usage of the battery needs to be optimized using state estimation algorithms. Many of those 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 and validation 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 to check the real-time capability of the algorithm on an embedded system 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 generated with a high precision battery model in this work. 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.