Units of entropic coefficients with reversible heating model of battery equivalent circuit model

7 visualizzazioni (ultimi 30 giorni)
Hello,
I am currently modelling a cylindrical lithium ion battery cell using the battery equivalent circuit model block of Simscape. I have pulsed current characterization data of the cell available on which I have estimated the parameters of the circuit and they give correct results.
I am now however trying to model the reversible heat and I am confused about the standard unit of mV/K. The model ask for the entropic coefficient in the units mV/K which is all well and good but when doing this I get really high reversible heat terms. The coefficients I have are in line with what I found in literature (on average about 0.2e-3 V/K but changing with SoC) and are determined experimentally. I did dive into the source code of the reversible heating model and again the entropic coefficients are inputted in mV/K but I can not find a division of 1000 anywhere in order to get back to the proper SI units of V/K and output the produced heat in Watts instead of Kilowats. It looks like the model is asking for mV/K as input but using this input as V/K. Am I correct in this or is there something I am missing? The line of code for the reversible heat equation is below with the entropic coefficient parameter as inputted above it.
EntropicCoefficient = {[0 0 0 0 0 0 0],'mV/K'}; % Entropic coefficient
reversibleHeatInternal = batteryCurrent * batteryTemperature * tablelookup(SOCBreakpoints,EntropicCoefficient,...
stateOfCharge,interpolation=linear,extrapolation=ExtrapolationMethod); % Reversible heat generation
Thank you for your response.

Risposte (1)

akshatsood
akshatsood il 18 Mar 2024
Modificato: akshatsood il 18 Mar 2024
Based on the information you have provided, it seems like there might be a misunderstanding or a potential oversight in the implementation of the reversible heat calculation in the Simscape model you are working with. When dealing with units in physical modeling, it is crucial that all quantities are correctly scaled to ensure the equations reflect the actual physical phenomena in an accurate manner.
Given that the entropic coefficient is inputted in millivolts per kelvin (mV/K) but you suspect it is being used as if it were in volts per kelvin (V/K), your observation about the resulting reversible heat terms being unexpectedly high makes sense. The entropic coefficient represents the change in cell voltage with temperature (dV/dT), and its correct application is essential for accurately calculating the reversible heat generated in the battery.
The reversible heat generated in a battery due to entropy changes can be calculated through where is the reversible heat, I is the battery current, is the change in voltage due to temperature change, which is given by , is the entropic coefficient, is the change in temperature.
If the entropic coefficient is indeed being inputted as mV/K but used directly without converting to V/K (i.e., dividing by 1000), then the calculated reversible heat would indeed be a thousand times larger than it should be.
EntropicCoefficient = {[0 0 0 0 0 0 0],'mV/K'}; % entropic coefficient
reversibleHeatInternal = batteryCurrent * batteryTemperature * tablelookup(SOCBreakpoints, ...
EntropicCoefficient,stateOfCharge,interpolation=linear, ...
extrapolation=ExtrapolationMethod); % reversible heat generation
It does not explicitly show the conversion from mV/K to V/K, which would involve dividing the entropic coefficient by 1000 before using it in the calculation for reversible heat. If such a conversion is indeed missing, and there is no division by 1000 anywhere in the calculation, then your assessment seems correct. To address this, you would need to ensure that the entropic coefficient is correctly scaled to V/K before it is used in the reversible heat equation. If modifying the source code directly is an option, you could adjust the entropic coefficient by dividing by 1000 at the point of its use in the calculation:
reversibleHeatInternal = batteryCurrent * batteryTemperature *
(tablelookup(SOCBreakpoints,EntropicCoefficient,... % corrected reversible heat generation
stateOfCharge,interpolation=linear,extrapolation=ExtrapolationMethod) / 1000);
I hope this helps.
  2 Commenti
Tristan Bakker
Tristan Bakker il 18 Mar 2024
Thank you for your input!
With your insight I do think the implementation in Simscape is not entirely correct. I have already adjusted my own coefficients to account for the 1000 factor and that works just fine. Do I need to report this somewhere so it might be fixed in a future release?
akshatsood
akshatsood il 19 Mar 2024
Hi @Tristan Bakker, regarding reporting the issue for a potential fix in a future release, it would be a good idea to submit a detailed bug report or feedback to the developers by using the following link. Please detail down all the information you can polish.

Accedi per commentare.

Categorie

Scopri di più su Propulsion and Power Systems in Help Center e File Exchange

Prodotti


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by