When starting to design a cooling system for your application, a common procedure is initiated. Firstly, the boundary conditions of the application are determined (which fan or pump drives the coolant, what are the environmental temperatures, etc.). Once these boundary conditions are established, the following three steps will help you to address the cooling for any product:
- A preliminary thermal analysis is performed to see if there is a need for cooling. If none of the components exceeds their maximum operating limit, it would be a waste of resources to work on something that is not necessary.
- If the thermal analysis shows that a cooling is required, you can continue to the next step, which is to check whether or not standard, off-the-shelf heatsinks already suffice in bringing down the temperatures to an acceptable level. This is a seemingly quick step, seeing as there is lots of information available about the standard designs that are available. Yet, given the diversity of components available on the market, without an effective approach this can actually be a time-consuming process.
- When standard heatsinks cannot sufficiently cool down the critical components, you will have to fall back upon designing and manufacturing custom heatsinks for the application. Custom designing a heatsink will allow you to reach the absolute limit of what is possible with the given boundary conditions.
The following image gives an excellent overview of the design workflow:
In this blog we will focus on the second design step, selecting a standard heatsink design to cool down a Raspberry Pi computer. The Raspberry Pi provides an excellent use case to showcase the benefits of pin/fin heatsinks to mediate any dangers of overheating while allowing for the maximum performance of the CPU.
The design process of the pin/fin heatsink selection can be tackled using two different methods, each with its up- and downsides. The first method is to construct a thermal network of the problem at hand based on the results of the thermal analysis. Using the thermal resistance values between the different nodes in the network, the optimal heatsink can be selected. This is a very low-cost approach of solving this issue, but not highly accurate.
The second, more accurate method would be to perform a CFD simulation for each of the iterations. Obviously, the accuracy increases, but the costs go up as well. This second approach was selected here with results to be presented using CFD simulations.
The main objective during the design is to minimize the temperatures of the heat producing components (CPU chip and two smaller chips). The temperature minimization objective can be formulated as the integral of temperature taken over the volume of the heat producing component:
The problem is constrained by the Raspberry Pi lying flat on a desk. The only heatsinks that can be used, contain pins or fins. The optimization will also be conducted for a single operating condition of a fan, so a fixed flow rate boundary condition that is imposed during the optimization process.
Finally, an acceptable design would be one, in which, all the components operate below their respective limits. From literature, it is known that the CPU of the Raspberry Pi will start throttling if the temperature exceeds 80°C. If no standard heatsink can be found that allows the CPU to remain below this temperature, a custom design will be required or a change of the operating point of the fan (1.39 l/s of air) needs to be considered.
The following video gives a complete overview of all the inputted parameters (geometry overview, materials used, heat input, fluid boundary conditions, … ).
The figure below plots the evolution of the multi-objective function (3 temperature minimization objectives with equal weights) throughout the design process. The value of the multi-objective function is plotted on the y-axis, while the x-axis shows the iteration number.
During the first iteration, a fin heatsink is placed above the CPU and 2 pin heatsinks are placed above the two smaller chips. The CFD results are shown in the image below. The CPU and heatsink geometries are colored according to their temperatures.
The tenth iteration is an all-pin-heatsink, where the pins are short and stubby. This design reduces the objective function by 2% compared to the first iteration.
The nineteenth iteration keeps the design philosophy for the smaller chips, but switches to a fin design for the heatsink above the CPU. This further reduces the objective function by 2.6% compared to the first iteration.
Looking at the objective function graph, it is clear that this design is the best one out of all attempts. The following image overlays the velocity streamlines to inspect the flow path.
This is of course not the main point of interest, as was stated earlier, the design is acceptable if the component temperatures are below 80°C. The performance values clearly state that the CPU will not start throttling under the specified conditions, meaning that the design process can be stopped.
Altering the weighting values of the three objective functions allows prioritizing some regions over others. This means that if the weighting value of the objective placed on the CPU is increased relative to the objectives placed on the other chips, a decrease of the CPU’s temperature is more optimal at the cost of an increased temperature of the other chips. This means that the optimized heatsink designs will also be different to the aforementioned optimal ones.
A generative design tool like Diabatix’s ColdStream simplifies the design process. Define an empty design region in which the cooling channels should exist, fill in the relevant boundary conditions and let the software do the rest. There is no need to invest in powerful computers, nor any requirements to install software, yet the optimized design will be returned to you much faster than any human can muster.
The video showing the setup of the problem demonstrates that this workflow reduces your time to only 5 minutes of work. Don’t waste your valuable time and get access to ColdStream now by following this link or contact the team to book a demo.