Documentation
This advanced thermal management tutorial describes the setup and analysis of the cooling of a battery pack. The scenario consists of a battery pack with different components, being cooled by air as a working fluid.
The battery cooling system is one of the key processes to ensure that the battery is working well, as the operating temperature of the battery can be a problem if it is too hot or too cold. Temperature is very important for maintaining the life, performance, and safety of the batteries. Under high-temperature environments, batteries may produce thermal runaway, resulting in short circuits, combustion, explosion, and other safety problems. On the other hand, Low temperatures may lead to reduced battery capacity and weaker charge/discharge performance.
There are two crucial factors of good features of a thermal management system for batteries, the first is to avoid thermal runaway phenomena and the second is to reduce temperature peaks
Computer Aided Engineering (CAE) proves to be exceedingly efficient in simulating this type of equipment, from the initial development stage all the way through the evaluation of the current equipment. Computational fluid dynamics (CFD) has been shown to alleviate the cost, effort, and time implied with physical prototyping.
This tutorial teaches you how to:
We are following the SimScale workflow:
Import the tutorial project into your Workbench by clicking the button below:
Clicking this link leads to the following view:
The simulation project contains a series of geometries that represent the battery pack. There is one flow region that was previously created to represent the negative region where the air will be recirculating. It is important to say that for every internal fluid simulation, we need a volume in the CAD model representing the fluid domain.
For this simulation, use the ‘Battery_Pack_CAD’ geometry.
To continue with the simulation setup, select the ‘Battery Pack’ geometry. We have more than 100 parts for this simulation, so it is not practical to select each part to assign a material. For this simulation, we have already created a few Saved Selections to make the process more intuitive as it helps with faster assignment since parts can be grouped and only have to be selected once.
It is not necessary to create more saved selections, but if you want to create new zones, switch to the volume selection mode, expand the geometry parts list, and select the parts that should be inside the saved selection.
After selecting the parts click on the plus icon next to Saved Selections and name the selection.
Select the ‘Battery_Pack_CAD’ geometry and click on the ‘Create Simulation’ button as presented in the following picture:
Now the analysis selection widget will pop up:
Within the analysis type widget, all analysis types available in SimScale are listed. Selecting one of them shows a description of them. For this thermal management simulation, we will use the ‘Conjugate Heat Transfer v2.0’ option. Afterward, hit the ‘Create Simulation’ button to confirm the selection.
Did you know?
The analysis type you choose within the simulation library depends on the physics that need to be accounted for, the results that you are interested in, and what parameters you have.
Now you have successfully created a CHT v2.0 simulation. On the left-side panel, you should see a simulation tree named Conjugate heat transfer v2.0, as shown in the picture below:
Take this opportunity to access the global simulation settings and toggle on the Joule heating option. With Joule heating it is possible to model regions where heat is generated by Joule losses due to the passage of electric current, for example, the Busbar area.
When working with a conjugate heat transfer simulation, there will naturally be contacts between the different solids that will act as thermal interfaces. In SimScale, Contacts between parts are detected automatically as soon as a new CHT simulation is created. In the geometry used for this tutorial, you should see a total of 2295 standard interfaces and 1630 partial interfaces.
By default, all contacts will be Coupled, which means that heat can flow through the interfaces without any thermal resistance. Depending on the physics of your design, you might be interested in applying a certain resistance to contacts of interest. For this simulation, it is not necessary to create thermal resistance regions.
Under the Model tab, the user can define the gravity magnitude and direction. Please note that the gravity definition is based on the global coordinate system> the orientation cube, on the bottom-right corner of the viewer.
In this tutorial, gravity will be -9.81 \(m/s^2\) in the x-direction. The gravity definition is even more important when dealing with natural convection.
The next step in the setup is the material assignment for the various components of the battery pack. In the table below, you will find a summary of the material assignments.
In this tutorial, all materials will keep the default settings. However, it is possible to use custom materials in SimScale, as described in this article.
Material | Saved Selections |
Air | Flow Region |
Aluminium | Aluminium |
Steel | Steel |
Polyurethane | Foam |
Insulation | Insulation |
Nickel | Nickel 10S10P |
Reinforcement | Reinforcement |
Solid Air | Air |
Air
To define a new fluid, click on ‘+’ next to the Fluids item. Doing so makes the fluid library pop up:
Choose ‘Air’ and hit ‘Apply’ to confirm the selection. Next, the material properties pop up:
After assigning the flow region to the air domain, we will take care of the materials for the battery pack. For better visualization of the next steps, it’s recommended to hide the already assigned parts, therefore hide the Flow region by clicking on the eye icon in the list of saved selections.
Be careful when assigning solid materials
When creating and assigning materials beware of what parts of the geometry are highlighted, because this will be assigned to the new material automatically.
Also, note that every part in the CAD model needs to be assigned to one and only one material.
Aluminium
Next, we select the solid material for the battery housing. For this tutorial, we will use the aluminum material provided by SimScale. The following list will be visible after clicking on the ‘+’ button next to Solids:
From the list, select ‘Aluminium’ and hit ‘Apply’ to confirm.
When using Joule heating, it is necessary to set the Electric conductivity type in the material properties. In this case, we can set the material’s electrical conductivity to Dielectric, as this region of the housing is not expected to conduct current. Next, we have to select the part that we want to assign the Aluminium material. To do this select the ‘Aluminium’ group under Saved selections.
Electric Conductivity Type
When Joule heating is enabled in the global settings each material gets an Electric conductivity type. It defines if the material is Dielectric (an electric insulator not conducting any current) or if it is a conductor. Isotropic conductors have the same resistivity opposing the current in all coordinate directions while Orthotropic conductors allow for differing resistivity.
Remember that you can hide the Aluminium group after the assignment to make the next steps easier.
Steel
Next, following Table 1, we will assign Steel and the other materials. Therefore, repeat the steps for the Aluminum material assignment and select ‘Steel’ first from the material library.
Aluminium – Busbar
Select the Aluminium material again and assign the ‘Busbar’ saved selection now. Also, it is necessary to modify the electric resistivity to ‘7.24e-9’ \(\ohm m\) since this zone will conduct energy. You can rename the material to ‘Aluminium-Busbar’.
Nickel
Polyurethane
For this material and the next ones, you’ll need to create customized materials. A simple way to create customized materials is to copy any material and edit the properties of this material to the desired ones. In this sense, you can copy a material and add the properties described in the figures.
Insulation
Reinforcement Material
Air (Solid)
We are considering air as a solid material for this region, in order to simplify the simulation, and to account for heat exchange through conduction.
Custom Material
If you are looking for materials with different settings than the default values, you can always create custom materials:
Next, we have to assign the boundary conditions to the simulation. For this tutorial, there is a fan drawing air into the battery pack. We also need to set up the electrical potential in the busbar area.
The following picture shows an overview of the physical situation applied in this battery pack tutorial:
In this example, air is blown into the pack and passes through the housing, cooling the temperature of the battery cells and conductors. The insulating materials are responsible for isolating the temperature and heat loss to the environment so that the cooling fluid is the main means of forced thermal management.
a. Fan Inlet
SimScale provides a fan boundary condition where the user can define a fan curve of interest. A fan curve can be defined in outlet or inlet mode, depending on the direction of the flow. Please follow the steps below:
In the table input window, you will be prompted to define volumetric flow rates and the corresponding fan pressures. Please download the CSV file using the link below, and upload it in the table configuration window:
Once the CSV file is uploaded, press ‘Apply’ to save. Sometimes you need to adjust the table so that the data fits the corresponding variables; you can delete extra columns or rows.
Did you know?
This tutorial covers the fan boundary condition workflow, however, it is also possible to use a velocity inlet if you are interested in a specific value for the flow rate at the outlet.
b. Pressure Outlet
Define the outlet region of the flow with a pressure outlet boundary condition. This boundary condition allows the flow to go out of the domain. Therefore, create a new boundary condition and select the ‘Pressure outlet’ type. Assign it to the 6 outlet faces:
c. Joule Heating – Boundary Conditions
Next, create boundary conditions for the current flowing through the conductors and cells of the battery pack. Using the Joule heating, we can add electrical conditions on wall boundary conditions which define the flow in an electric circuit.
Create a new ‘Wall’ boundary condition naming it ‘Potential 0V GND’. This first region will represent the electric potential of ‘0.001’ \(V\) and the temperature type needs to be adiabatic. The setup can be seen in the figure below:
Now define the current outflow region of the electrical circuit. Create a new wall boundary condition and assign it to the opposite side of the conductor. In this case, the current outflow will be ’40’ \(A\). Rename this wall boundary condition to ‘Current outflow’.
The electric solution will be calculated by resolving the electric potential in all conducting materials of the domain.
Unassigned Surfaces
Surfaces that are not assigned to a boundary condition or a contact will be treated as an adiabatic wall. If the wall doesn’t have any known electric conditions the default option will be “None” which defines 0 current flow across the boundary. Therefore, such faces will be taken as a perfect thermal insulator, with no heat flux across the face.
In addition to the heat flow generated as a result of the Joule effect in the electrical circuit, the battery cells also have a constant internal heat generation, and in this simulation, this dissipated heat will be represented by a power source with a constant value of 1 \(W\).
Did you know?
You can assign as many different heat sources as you like. You also have the option to assign the power sources to a geometry primitive you define during the simulation setup, in case you do not have the electronic component generating heat represented in your model.
The default settings for Numerics are usually suitable. Experienced users can use manual settings for smoother or faster convergence.
The Simulation control settings define the general controls over the simulation. We will adjust the Maximum runtime to ‘30000’ seconds, to ensure that the simulation runs until the end of 1000 iterations.
As a default setting, velocity, pressure, density, temperature, and radiation variables will be saved for every cell in the fluid domain. The changes between the timesteps are displayed in the convergence plot.
You can use result control to observe the development of the values at any point or surface in your domain during the calculation. For this tutorial, we will create three result control items to analyze the airflow through the battery pack and the temperature in some strategic zones.
It is interesting to create a result control to evaluate the temperature in one of the cells throughout the simulation. In this way, we can hide some regions of the model, select the faces of just one cell, and create the result control. Follow the steps presented in the figure below:
Following a similar workflow, create a new surface data result control, and choose ‘Area average‘. Assign the outlet faces to the result control, as below:
As a rule of thumb, it is a good idea to use result controls to keep track of parameters of interest in the simulation domain. For example, flow rates, pressure drops, the temperature of certain surfaces, etc. are some commonly used options.
The last result control is ‘Area average’ assigned to the top face of the busbar. With this result control, we will keep track of the average temperatures experienced in this zone.
Default mesh settings usually create a good initial mesh. For this tutorial, as the geometry has small geometric details, we’re going to use the manual option and set the minimum and maximum size values between ‘8e-4’ \(m\) and ‘0.1’ \(m\), and it is a good practice to reduce the boundary layer growth rate to ‘1.3’. In addition, change the small feature suppression value to ‘1e-5’ \(m\), so that the software will disregard areas with a size smaller than this value, which means saving mesh elements.
Did you know?
The standard meshing tool offers many options for customization, including several mesh refinements and further fine-tuning. Interested users are encouraged to visit this page.
After all the settings are completed, click on the ‘+’ icon next to Simulation Runs, to start with the analysis. This way, the mesh will be generated and the simulation run will start automatically afterward. A yellow warning message may appear on the screen warning you about the partial contacts in the geometry, you can select the ‘Run anyway’ option as this shouldn’t be a problem for this simulation.
While the results are being calculated, you can already have a look at the intermediate results in the post-processor. They are being updated in real time!
When the simulation is complete, you can check the Convergence plot and the Solution fields from the simulation. You can access either of them in the simulation tree by clicking on them, as you can see below:
When the simulation is running and after its completion, we can observe the convergence behavior. For a steady-state analysis, the result should converge to a point where the flow field characteristics do not change anymore.
a. Convergence Plot
For each timestep, the solver calculates solutions for each cell in the mesh. The residuals are the differences between those results. Hence the lower the residuals, the more stable the solutions are. We also call that “convergence”. The following picture shows the convergence plot for the solution variables.
The residuals are presented dimensionless and you can convert them into a percentage. In the tutorial, all graphs are beneath 1e-2 and some even lower than 1e-3, which is a good sign of convergence.
b. Result Control – Area Averages
With the result control items created, we can analyze the results for special faces of interest. The outlet temperature is a good physical parameter to track and evaluate convergence and the performance of the design. The result for the temperature of each outlet face can be seen below.
Having a look at this plot, most of the temperatures approach a horizontal line, which means, that the result is approaching a steady-state result. The maximum temperature is around 309 \(K\) ( 36 \(°C\)). Averaging the temperature for all faces we get an average outlet temperature of 306.91 \(K\) (33.76 \(°C\)), which means we have an increase of around 14 \(K\) between the inlet and the outlet.
Let’s have a look at the different temperatures and the flow field visually. This can either be done by selecting ‘Solution Fields’ in the simulation tree or ‘Post-process results’ from the run panel.
5.2.1 Battery Pack Temperature
First, let’s have a look at the temperature of the battery pack. Therefore hide the cutting plane and choose ‘Temperature’ to display on the Parts Color Coloring. Change the units to \(°C\). To improve the quality of your visualization by making the color transition smoother, right-click on the legend bar at the bottom, and select the ‘Use continuous scale’ option for a smoother transition between different levels of temperatures as shown in step 3 below:
You can hide the outer parts and have a look at the cells and conductor temperature inside. For example, to visualize the internal parts, hide the aluminum, insulation, foam, and air parts on the geometry tree list. Alternatively, you can right-click on the part you want to hide and select Hide selection or, select the ‘Toggle transparency’ option to generate the figure below.
We can change the minimum and maximum temperature values to get a better view of the temperature gradient in the cells and busbar.
The temperature of the cells and the general area near the fan is lower. However, as the distance from the airflow inlet to the air outlet region increases, the temperature also increases. It can also be observed that the cells in the middle of the model’s other end have a higher temperature than the others. This suggests that the airflow may not be optimally distributed in this region.
To analyze the effects of Joule heating, it is also possible to analyze the electric potential variable and how it develops along the cells and conductors.
Next, we take a look at a section of the electronics box.
With this kind of visualization, we can get insights into the flow field. We observe a well-distributed flow at the beginning of the model. However, near the outlet, the lower part of the model receives less cooling by the fluid.
Finally, to view the streamlines, add a ‘Particle Trace’ filter. Keep in mind that you need to activate the visibility of the Flow region to use the openings as seed faces. You can also toggle off the cutting plane, as it won’t be needed for the particle traces filter.
After finishing the setup, and hiding the housing and flow region, the result should look similar as presented in the figure below.
For a general overview of SimScale’s online post-processing capabilities, this documentation can be used.
Congratulations! You finished the tutorial!
Note
If you have questions or suggestions, please reach out either via the forum or contact us directly.
Last updated: May 27th, 2024
We appreciate and value your feedback.
Sign up for SimScale
and start simulating now