Configure a Battery Module with a Cooling Plate | Simscape Battery Essentials, Part 3 - MATLAB & Simulink
Video Player is loading.
Current Time 0:00
Duration 14:17
Loaded: 1.16%
Stream Type LIVE
Remaining Time 14:17
 
1x
  • Chapters
  • descriptions off, selected
  • en (Main), selected
    Video length is 14:17

    Configure a Battery Module with a Cooling Plate | Simscape Battery Essentials, Part 3

    From the series: Simscape Battery Essentials

    Simscape Battery™, a new product in R2022b, has been developed to provide a technology development framework that is assembled specifically to create a bridge between battery cell and battery system. The bridge directly supports upskilling as well as design exploration and design rigor, meaning you can navigate the battery system technology development cycle rapidly and with confidence. You will learn how to:

    1. Define the components and geometry of a battery module that includes a connection for a cooling plate.
    2. Connect and parameterize a cooling plate with a battery module.
    3. Simulate two battery modules that use different cooling plate configurations and compare the responses.
    4. Visualize the temperature spread in the modules and cooling plates using heatmap objects in MATLAB.

    Published: 20 Sep 2022

    Hello, everyone. My name is Graham Dudgeon, and welcome to part 3 of a series of videos where we'll provide insights and work examples on the use of Simscape battery, a new product in the Simscape portfolio. Simscape battery has been developed to provide a technology development framework that is assembled specifically to create a bridge between cell and system.

    This bridge directly supports upscaling, as well as design exploration and design rigor, meaning you can navigate the technology development cycle rapidly and with confidence. Today, I'll show you how to configure a battery module with a cooling plate.

    We'll start by working from this example Build Model of Battery Module with Thermal Effects. This is a MATLAB Live script, which provides a full workflow to define and then build a Simscape model of a battery module that includes thermal effects. In parts 1 and 2 of the series, I described in more detail how you move from a cell, through parallel assembly, module, module assembly, and pack so I'm not going to go through each stage today. But what I will do is show you the specific settings we need to make in order to include thermal effects in our module.

    So let me just scroll down the MATLAB Live script. I'll stop at the appropriate points. So here's step one. In the battery cell definition, we set the object properties, thermal_port and T_dependence. Thermal_port we set to model and T-T_dependence, temperature dependence we set to yes. We then create the parallel assembly objects, set the model resolution to detailed in this case, with three battery cells per parallel assembly. We then define the detailed battery module, which comprises 14 parallel assemblies connected in series.

    So let's take a look at visualization of this battery module using the battery chart function. OK, here's the visualization of our battery module. You see we're using the pouch geometry in this particular case. We have three cells per parallel assembly, and then we have 14 parallel assemblies connected in series. You can see here that they're just stacked along the y-axis. This is the y-axis, and this is the x-axis.

    If I highlight the simulation strategy, we can see that each cell has its own simulation strategy boundary, indicating that when we build this module, each cell will be represented as an individual cell block. Let's carry on then in Live Script.

    Next step is the detailed battery module. We have to define thermal paths. There are two thermal paths in this module. There is an AmbientThermalPath and a CoolingThermalPath. So first the AmbientThermalPath. We set that to CellBasedThermalResistance. What this does, it connects one thermal resistor block to every thermal port in a cell model, and then connects these thermal resistances into a single ambient thermal port.

    Next, we define our CoolantThermalPath. So CoolantThermalPath is defined as CellBasedThermalResistance. Like the AmbientThermalPath, this connects one thermal resistor block to each thermal port on the CoolantThermalPath. As you can see, the AmbientThermalPath is connecting each thermal resistor to a single cooling thermal port, but as we're connecting our coolant plate, we need to make one more change.

    We set CoolingPlateProperty at the bottom, which means we're going to expose a coolant plate terminal at the bottom of the battery module. And what also happens is, we create an array of thermal nodes. So we don't have a single connection anymore. In this case, we have 42 cells. We will have 42 connection points for the coolant plate. Let me show you the detailed battery module objects.

    Click on All Properties, and I want to show you thermal nodes specifically. So what you can see here, is defined number of nodes is 42, but also notice it has defined locations and dimensions. These properties are important for when we connect our coolant plate, more of that in just a moment.

    Finally, we build Simscape model of the battery module object using the buildBattery function. I've already done that. Let me just restore the current folder, and open up the battery module library. So here you can see we have our module with positive and negative electrical terminals, ambient thermal port each, and also coolant plate port, CPB. Next step is to show you a test model where I connect coolant plates and run simulations.

    So what I've done is I've connected the battery module to a resistor. In this case, I've just set the resistor to 1 ohm. We have an electrical reference and also solver configuration. Solver configuration is set to use local solver. And we're going to be simulating a one-second time step, which is appropriate for a simulation where we're focused on thermal effects.

    Now, I could also have deselected use local solver. I've chosen a available step solver for this case. But what I'm doing, in just a moment, I'm going to show an alternative way of visualizing the pack and coolant temperatures as a function of geometry and time. And so I wanted our fixed time step to be able to do that, more of that in just a second.

    We have a probe block associated to the battery module, in which I'm measuring state of charge, temperature of the cells, and voltage of the cells. Please refer to part one in this video series for more information on how to associate a probe block with a battery module. I've got the same electrical layout on the right-hand side, as well, but the difference between these two models is, I'm using two different types of coolant plate.

    On the left, I'm using u-shaped channel cooling, and on the right, I'm using parallel channel cooling. So let me just show you where these coolant plates are in the Simscape battery library. So we go to Simscape, Simscape battery, and then under the Thermal sub library, you will see our cooling plates. We have edge cooling, parallel channels, and u-shaped channels available.

    Before I show you the coolant parameterization in more detail, in terms of what I'm going to be doing with these coolant systems, I'm using a controlled mass-flow rate source. So I can specify the mass-flow rate of the liquid that is going through the coolant plate. I also have the same setup on the right-hand side.

    Here's a scenario I'm going to be doing. For the first 500 seconds, I'm putting just a small flow rate at 0.001 kilograms per second, but between 500 and 550 seconds, I will ramp that flow rate up to 0.1 kilograms per second. And then just maintain it at 0.1 for the remainder of the simulation. I do the same on both sides.

    Let's look at the cooling plate parameterization. So double click. So I've set battery connectivity to single site. That exposes a single port surf 1, surface 1, which I connect to CPB. If I set that to double sided, it would expose a second port surf 2 on the bottom, but today we're just looking at single-sided connection.

    What we then need to do, is specify some properties from our detailed battery module object. So you see the number of battery thermal nodes, dimensions, and coordinates. So I set those directly from the detailed battery module object. Num nodes, dimensions, and locations.

    I can also set the number of partitions in the x and y dimension for the cooling plate. This is similar to model resolution for the battery module in terms of how the cells are modeled. If I was to set this to 1,1 it would be a locked representation. Because I have 42 cells in the y dimension, I am setting that y dimension to 42. And for the x dimension, I'm just setting it to 3, just to show that we have that flexibility in defining the resolution of the coolant plate. On design, the channels are oriented along the y-axis.

    Similar setup for the parallel channel cooling. I've used a detailed battery module object to parameterize a number of thermal nodes, dimensions, and coordinates. I'm using the same number of x and y partitions and also orienting the channels along the y-axis. OK, let's look at some simulation results.

    Let's look at some cell 2 temperatures. So I select that, and I say, convert the channel, so I expose these 42 measurements as individual channels. Let's just look at first measurement and second measurement. Let's look at the temperature of cell 2. Do the same, convert to individual channels, and we'll look at signals 1 and 2.

    So you can see here, the difference already in temperature. So we have a very small flow rate initially up to 500 seconds then we ramped up from 500 to 550 seconds up to 0.1 kilograms per second mass-flow rate. And so you can see here, the lower responses here are the parallel channels. So you can see the parallel channel is doing a more effective job of bringing the temperature down than the u-shaped channel.

    Let's also take a look at the plate temperatures. Tp1, I've got 126 measurements, 3 by 42. Convert those to individual channels and let's just look at signals 1 and 2. And finally, we'll look at Tp2. Convert the channels and look at signals 1 and 2. OK, so obviously we're getting insights looking at the time series information.

    But what I'd like to do is show you an alternative way of visualizing. I'd like to visualize as a function of the geometry, as well as time. And I can do that by using heatmap objects in MATLAB. So first thing we do is, we need to export the signals of interest. So I'm going to be exporting Tp2, the temperatures of the parallel plate. Tp1, temperatures of the u-shaped plate. And I'll also export the temperatures from module 1 and module 2.

    Now, the way we export from the simulation data inspector. Select the signal, right click, and see Export. And then you would select Tp1 to the base workspace, click Export, it's telling me I'm overwriting a variable. I've already done this, so I'm just going to overwrite it. And we do this with these four signals.

    Next step is to write a MATLAB script which will do the visualization. I'm not going to dwell on this MATLAB script. I just want to show some of the key points. So we read the data in. You can see it's three dimensional data. The third dimension is time. So I just bring the first values in initially. I reshape the cooling plate dimensions to 3, 42. You remember it was 126 signals, so I'm reshaping those into a matrix.

    I then use heatmap objects and I set heatmap object properties appropriately. I can then loop through the other time values, and just step through time and update those properties as I go. So let's run this, so you can see what it looks like in practice. Before I set this off, we're at time 0 right now.

    So at the top, we've got top left module 1, top right module 2, bottom left u-shaped coolant plate, and bottom right parallel coolant plate. And you can see the coolant plates are 3 by 42, whereas the modules are just 1 by 42 for the 42 individual cells. What I'm going to do now, is just let this run and sit back for a few seconds and watch this go through up to 1,000 seconds.

    So you can see here, based on our heatmap, which goes from dark blue at 298 Kelvin to dark red at 319 Kelvin, the parallel channels have done a better job of keeping the temperature down. Module 2 is at a lower temperature than module 1. So we're able to supplement our understanding of temperature changes as a function of geometry and time by using the heatmap object within MATLAB.

    So to recap what we have looked at in this session. We've built a battery module with both an ambient thermal path and a coolant-plate thermal path. We saw that the coolant-plate thermal path has, in this case, 42 individual nodes exposed. And we can connect those to coolant plates, so we showed the u-shaped channel and the parallel channel.

    We parameterized the coolant plates with the number of nodes, the geometry, and the dimensions that we got from the battery module object. And then I set up this simple test harness, where I could push coolant fluid through the plates and show a comparison between the two different cooling plate architectures. I hope you find this information useful. Thank you for listening.