From Electrode to Pack: Simulate and Tune Fast Charge Profiles
Dr. Lorenzo Nicoletti, Application Engineer, MathWorks
The charging time of battery electric vehicles (BEVs) is crucial for consumer appeal, reducing range anxiety, and enhancing usability. However, fast charging can lead to faster battery wear and reduce the battery lifetime.
To hinder cell wear while obtaining optimal charging rates, various factors at the microscopic cell level must be considered. Furthermore, system level considerations like charger limits, thermal management design, control strategies, and manufacturing differences must be taken into account. All these requirements can be considered by calculating the fast charging profile, which ensures optimal charging time while reducing the risk of cell wear.
In this presentation, learn how to use Simscape Battery™ to set up an electrochemical model of a lithium-ion cell. Subsequently, you will discover how to extend this model to a parallel assembly and then a module while considering the thermal, electrical, and chemical behavior of the cells. The models will be employed to derive safe fast charge profiles for different charging scenarios.
Published: 3 Jun 2024
Today, I will talk about electrochemical modeling of lithium ion cells. So maybe we start with why am I talking about this? I have a practical example. We were driving here with an electric car, ME my colleague Jan, and yeah, we had to hope that there would be a free charging spot because otherwise we wouldn't have been able to drive back to Munich.
That has been solved now. Otherwise, we're going to stay here in Stuttgart. But as we can see here, this is a problem that's typical of electric vehicles and we're not very used to see it for combustion vehicles. And the reason is that when you are actually refueling your vehicle, if it's a combustion vehicle, at least you have something like half a liter of fuel going in per second. And if you consider the energy contained in that liter of fuel, you're actually controlling power flow of something like 60 megawatt.
We do not have this for electric vehicle because when we're talking about fast charging, the real fast charging that we can perform right now, we are in areas of 350 kilowatt. So we do see that there is a pretty big difference here, so a factor of 46. And so the question might be why is that?
Why do we have this big difference when it comes to fast charging? Why can can't we really fast charge in a combustion vehicle? So the biggest problem is that being able to fast charge or mastering fast charging requires you to have a deep knowledge of the cell behavior. And if you don't do it right, you end up risking damaging the cell and then you can throw your battery away, and then you can throw the vehicle away, basically.
So if you can master, let's say, fast charging, you can prevent aging or prevent to damage your cell by a correct temperature and current control. But apart from having the right skill and the right knowledge on cell technology, you also need, of course, simulation model to succeed in this multidisciplinary field. And therefore today, I want to show a simple workflow how you could start building the first model to perform this kind of simulation.
So we will start presenting the model that we have for simulation with the matrix products. And then, I will proceed to show how you can take the current model we have and how to extend them so that they are more proper to simulate scenario like fast charging. Then, I will show how you can take this extended model to characterize your cell and its suitability for fast charging.
And then, we will build a parallel assembly and perform a charging procedure on this parallel assembly. And finally, in conclusion, we have a very brief outlook, how you could continue with your modeling or you could proceed in the next step. OK. So that said, let's start with the first step of our journey, like, which model can we use for ourselves?
Until the Matlab release 23B, you could model the cell using a so-called equivalent circuits model or also empirical model. These are called empirical model because you basically describe the cell using components like resistors and capacitors, and they have the advantage that they're relatively simple to implement and understand, but they have a limited accuracy. And these model, they do not describe the actual chemical processes going into the battery when it's being charged at discharge.
So starting from 24A in Simscape and Simscape battery, we introduce a new model, which is the first electrochemical model containing our product for cell simulation, and this is a so-called single particle model or short, SPM. And this model has the advantage that it does a first step to actually describe the real processes, the chemical electrochemical processes that are going on in your cell when it's being charged or discharged. So I don't have the time to explain how this model works, but I just want to give an overview so that you kind of understand the differences if you're not familiar with the concept.
So an electrochemical model, and precisely the one that we offer since 24B, the SPM, can be used-- for example, if I apply a certain current profile on my cell, this model can tell me or I can use this model to predict how the voltage of the cell will change. In this case, I'm charging my cell, so the voltage we see is increasing. And we can also use it for having an estimation of the state of charge of the cell.
So these three first graph, I could also tame them with an empirical model. The big difference in an electrochemical model and the one that we implement is that it does a bit more than just giving me current voltage and state of charge. Because it does at first breakdown, and it tries to model the electrochemical processes going into each part of the cell.
So for example, this cell, at the beginning, is completely discharged, and this can be described electrochemically speaking in a very low concentration of lithium ion on the anode side. And the anode is therefore one of the component that is considered by this model. And there is a very low concentration because they are all on the cathode side.
So on the cathode side, when the cell is discharged alive, on the other hand, a very high concentration. And now, when I charge my battery, this yon can basically move from one side to the other. And they do this moving through the electrolyte, which is the one that you see now in the bottom middle. And it's also the last component model in, in the single particle model.
So you can see if I play the tape now, the red line shows the time that goes by in charging my battery, and you see how the concentration of yon goes down on the cathode side and goes up on anode side. So basically, what I want you to keep from this presentation is that now we have an electrochemical model and that this electrochemical model is also capable of estimating concentration gradients and how the lithium ion moves within the cell.
And we will need this information for the next step. And the next step would be proceeding to build a model of a cell that we could, for example, use for a fast charging procedure. So now the first problem that we have right now, the single particle model that I just showed, it assumes that our cell is lumped. So this means that I can use it to model a cylindrical cell, like this one. But it kind of assumes that my cell is represented by a single thermal mass.
So this means if I have this cell, I'm charging it and I'm cooling it with the cooling plate, as you see here. I can simulate it, but the model will be able to give me only one temperature value, which is this orange line, because it simplifies the cell, the entire cell, as one single thermal mass. Now the problem that we have here is mostly when I perform fast charging, temperature is very important factor.
And here we have a big limitation that I'm not capable of knowing what's the lowest and highest temperature of cooling in my cell. I just have one value that's kind of the average, but not really the average. So in order to proceed here, I need to extend my model. I would need maybe something like that, like a discretized cell, more elements and maybe I have a temperature for each element so I have an idea how the temperature changes over all my cell.
And I want to show you how you can build this model starting from the blocks that we offer. So let's suppose we take four parts and now we define our cell and we divide in four parts that have the exact same volume, and each part has one fourth of the capacity. So now I can use a single particle model block for each part.
It will just have one fourth of the capacity. And if I connect them all in parallel, I get back the entire capacity of the cell. So now, I've done the first step to discretize my cell.
What I need now is that I need to take into account that these different segments or these different elements, however you want to call them, they can exchange heat, for example, through conduction in the vertical direction, as we can see here. If I use Simscape, I can just build so-called conductive elements that will account for the thermal heat being exchanged between the element in the vertical direction.
Now I have a second problem, my cell also can exchange heat in the radial direction, and then to the ambient through convection. I can also take this into account by adding an additional thermal path that consider the fact that I have heat being exchanges in the zed direction and in the radial direction. And finally, I actually have an asymmetrical problem because if I have a cooling plate placed here below, these and only these elements will be able to exchange heat also through the cooling plate.
But it's no problem because I can account it with an additional thermal path. And so I can just build this exact system manually by just putting blocks together in Simscape. And then there is a function that you can use. It's called subsystem . Call this function and it creates for you a block. It generates code, impacts everything in a block, and now this new block represents your new thermally discretized battery model.
And now you can take this model and you can go back to where you were before. And as we saw before, I just had one temperature value with the original implementation with one single particle model block. But now that I've stacked four of them together and connected them thermally or electrically speaking, I can perform the same simulation and now I have four temperature values.
So now I have one temperature per block so I have an idea of what's the temperature gradient within my cell. I would go on here with four elements, but of course I could use more or less, however you want. So now that I've created my terminal discretized cell, I can proceed to the next step and try to characterize my cell behavior and if it's possible, for example, to fast charge it and which currents.
So what we will do, we will perform actually parameter sweep using our cell model. So we will assume the cell, the thermal discretized cell that we created starts with a certain state of charge and a certain temperature-- so for example, 10% and 35 degrees. And we will try to charge this cell with a very high current at first. But we couple ourselves with some controllers and we degrade the current if it's required.
So how do we degrade the current? We degrade the current by ensuring that certain variables don't go below or above certain bounds. So for example, we want to ensure that the cell voltage, it's smaller than 4.2 volts. We want to ensure that our cell doesn't get too hot.
And then, another value that we check over time is the anode of a potential. But if you don't know, it's often connected to lithium plating. When this value reaches a certain critical value, like of zero millivolt, it's often connected to lithium ion plating. So we can define here a window, a safety window of 20 millivolts, where we say if it's above this 20 millivolt, I should be safe and I should avoid aging the cell.
And since I'm fast charging, I still can put a cooling plate below my cell because anyway, I'll have a thermally discretized model that is capable of accounting also for the effect of the cooling plate. So now I have created basically the condition for my parameter sweep. And what I will do, I can start with one point, let's say for simulation, 0% SOC, or state of charge, 35 degrees at the starting temperature. Cell is completely discharged.
So I first try to charge it really fast, so I go up with the current. And then, I just simulate one minute. If I hit one of the limit, the current will be derated to ensure that I don't go below the limit. In this case, the limit was the anode of a potential.
So we are hitting the critical anode of a potential, so I derate the current. And please note I can do this kind of simulation because I have an electrochemical model that can estimate how the anode of a potential changes over time. So now we after one minute, this last value of current that I have, it's still a safe value.
So I can charge the cell with this current-- it won't get damaged. So I can take this value and I can put it in this 3D graph. So now I can do a second simulation with a different point, so a different state of charge and a different temperature. I perform the same simulation again and I will get another point. And I do it again and again and again, and I will get many more points.
So we see, for example, here how the maximum allowable current changes based on the state of charge. The higher the state of charge, the less current I can use. And you can see also there is a dependency on the temperature. The coldest my battery tendentially, the lowest current I can use.
So now I've, let's say synthetically through my parameters, I've defined a lookup table that tells me basically how I can charge my batteries so that it's as fast as possible for this specific parameterization and the battery still stays safe. So we don't have actually much time left. So I already jumped to the next step, which would be let's create an entire parallel assembly from this model.
So thankfully, this is quite quickly. We have an app that can do this called Battery Builder App, and you can just tell to the app, you know what? I've created a new model. I want to use this new model to create an entire battery.
And you just click through, build your power assembly, and now you have a parallel assembly where every single cell is actually especially thermally discretized cell. So now let's take this para assembly and let's connect it to a cooling plate in Simscape. Let's allow it to exchange it with the environment.
And let's put here a charger. Then we charge this power assembly with a certain control system. And the control system that I'm using here is nothing else as the lookup table that I've defined before. So I basically define a lookup table through simulation that I could, for example, implement in my parallel assembly to charge it without having to estimate all these values.
So what I do over time, I will keep monitoring the state of charge of every element of every cell of my assembly. And I will also monitor the temperature. And at every time step I will pick from my lookup table the current that is safe to be used in order to charge the assembly.
So this is just one quick simulation. If you like, to get your hands a bit dirty with Matlab, you can also create dynamical plots, like the one on the left or the one on the right, where you can see how the assembly gets charged over time and how the temperature gradients of the single cells change over time. You might notice there are differences between cell temperature.
This is because I can insert in my parallel assembly some differences, for example, in the thermal resistance or in the internal resistance, electrical resistance of the cell, I can also include some differences to account for these effect. With that, I'm actually already done with my presentation. I would just conclude with summary and outlook.
We have to be fair. We have to say that we cannot build entire battery packs with 3,000 cells with this model. They are pretty big model with a lot of variables. So if your pack becomes bigger, you might want to go back to empirical model so that is still simulates in a good amount of time, let's say. But for that, we also have products that can help you to reduce your electrochemical model back to an empirical model.
So one of those is Simulink Design optimization. So if you have questions in this regard, come to me. And to summarize the topics we discussed, we discussed about the new electrochemical model that we offer starting from 24A. We show how you can extend this model, but this could be done with any block in Simscape, actually, and for any application. It's just the limit is zero fantasy in the end.
And we also saw how to build a power assembly out of this model. So key takeaway, Simscape Battery now provides electrochemical model. I hope it's clear that you can easily modify and extend them and that you can integrate your custom model in the battery build up and create a battery, parallel assembly or module assembly, whatever. So thank you.
[APPLAUSE]