Meaning of the thermal outputs and implementation #2186
-
Hi all, I would like to compute the heat generation and SOC from models in PyBaMM (probably SPM and DFN) to compare to ECM outputs. Just for some context, I have a working ECM model implemented in Python based on this paper "Battery Performance Modeling on Maxwell X-57" from Chin et al. (http://openmdao.org/pubs/chin_battery_performance_x57_2019.pdf). This model outputs the SOC as well as the overall heat generation. The idea is to use a physics-based model such as the one implemented in PyBaMM instead of the ECM. In that case, for comparison, we would like to get the same outputs as in the ECM from the models in PyBaMM, i.e., overall heat generation and SOC. The cell temperature would also be great. The code I am using at the moment is below:
As I am not very much experienced with battery modeling I am not too sure of how to interpret the "Negative electrode SOC" and "Positive electrode SOC". In addition, for the "Total heating" and "Cell temperature" is it a spatial distribution? How do I compute the overall heat generation of the cell at a given time-step? Should I sum the different entries and multiply by the volume? Any explanation, help or comment regarding the code or the understanding of the model is more than welcome. I am very new to the topic so I am sorry if some questions seem basic. Thank you a lot in advance for your help! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 6 replies
-
Hi @alexgUCSD so your question isn't basic and thanks for asking. The SoC of a battery is a little bit subjective because typically it will be defined between some voltage limits for safety and performance reasons. PyBaMM simulates the battery as a combination of the two electrodes and the voltage is determined by the combination of the states of each of them. In your code above you are pulling out variables defined for each electrode which are actually the average amount of lithium in the particles of each electrode divided by the absolute maximum that those particles could take so this is independent of the overall cell voltage limits you set. Separately the experiment class allows you to set the cell SoC and this does take into account voltage limits and will adjust the initial concentrations in each electrode based on the physical parameters of each electrode. Behind the scenes the simulation class is actually running a little experiment to do the cell balancing to work out what the concs should be and you can do this yourself to get a better idea of what's going on. There is a notebook related to simulating long experiments and examining state of health which includes the code you need to run explicitly here. Notice that the cell SoC rarely maps to the electrode SoC 1:1 as this would involve completely removing and filling up the lithium in the particles and would result in very low and high voltages. On the thermal question the code you have already looks good to me. Total heating should include the ohmic component. You can do model.variables.search('heating') to see all the components |
Beta Was this translation helpful? Give feedback.
-
Hi @TomTranter, |
Beta Was this translation helpful? Give feedback.
Hi @alexgUCSD so your question isn't basic and thanks for asking. The SoC of a battery is a little bit subjective because typically it will be defined between some voltage limits for safety and performance reasons. PyBaMM simulates the battery as a combination of the two electrodes and the voltage is determined by the combination of the states of each of them. In your code above you are pulling out variables defined for each electrode which are actually the average amount of lithium in the particles of each electrode divided by the absolute maximum that those particles could take so this is independent of the overall cell voltage limits you set. Separately the experiment class allows you …