I'm part of a formula student team. When we go testing we are logging the CAN bus data the car produces to further understand what the car is doing.
We log all the battery cell temperatures/voltages and the current going trough the cells. With this data I want to calculate the resistance as a function of the temperature. In the laboratory this task is easy since you have a constant current going through the cells. With the voltage drop over the cell you can easily calculate the resistance. Unfortunately this is not possible with the logs since the current is always changing.
Things I've tried:
- Get all the voltages when no current is flowing. Connect this data. Then try to guess a resistance of the cells so the actual voltage and voltage with no current is lining up. This approach while giving decent results neglects the dynamic nature of the cells.
The "ideal" approach:
Creating a bode plot of the current as input and the voltage as output. Then fitting a model of a cell onto that plot. This model has a resistance parameter. Also other parameters like capacitance could be measured this way. Being a frequency analysis, this would show all the dynamic behavior of a cell. Doing this in 30s parts to the whole signal and assigning the parameters to the mean temperature of that period would get the temperature dependence.
- MATLAB R2018a
- Any free program/language
Also any suggestions or insights would be great!
Here is the data in pickle format (Python): https://classic.hidrive.com/lnk/rZHA1ahy
Here is the data in MATLAB format: https://classic.hidrive.com/lnk/tdng1sOb (just rename it .mat)