Microprocessor Heat Sink
Microprocessor Heat Sink
Microprocessor Heat Sink
C
0
11
22
33
44
Time, seconds
0 0.25 0.5 0.75 1
Figure 5: As time elapses, the maximum temperature seen in the
simulation damps out to 43.19C after approximately 0.25 seconds.
allowable in the simulations was set at 52.5C. This maximum
was determined by restricting the heat sink temperature to 30%
less than the maximum temperature allowed by the
microprocessor (20% to account for heat effects from other
surrounding components, 10% to account for error).
With the maximum operating temperature set at 52.5C, designs
employing a laminar type flow of the liquid coolant were
deemed inadequate for this application. In simulations with
laminar flows, the experimental convection heat transfer
coefficient was too low to adequately dissipate the heat
generated by the microprocessor. In order for a design
employing laminar flow of the liquid coolant to work, the
hydraulic diameter (Equation 1.2.2) would need to be
extremely small. This implies that the channel itself would be
characterized by a small cross-sectional area and large channel
perimeter. However, this design would call for several thin
channels to be machined into the heat sink material to
effectively transfer the heat to the liquid coolant. This a major
design flaw of particulate matter obstructing the channels
during operation. Should any particulate matter enter the
channels of the heat sink, the flow can be compromised entirely
since the channels are machined to such a tight tolerance. This
problem with obstruction can arise from impurities in the liquid
coolant used, material wear of the fins and heat sink, and
imprecise machining of the channels during the manufacturing
process.
By examining the trends in varying the fin height and width, it
can be concluded that the optimal design would employ thin
and tall fins to achieve an acceptable maximum operating
temperature. By doing so, heat dissipation in the form of both
conduction and convection allow the surface temperature seen
by the microprocessor to be significantly lower than the
threshold set at 52.5C. In addition, by reducing the fin width a
much larger channel for the liquid coolant can be created to
increase the surface area that interacts with the upper portion of
the heat sink. Furthermore, to improve the heat transfer from
the heat sink to the liquid coolant, the fins should be directly
machined out of the copper and not be attached separately, in an
effort to mitigate contact resistance at the base.
Although increasing the fin height tended to yield a lower
maximum operating temperature, it resulted in a greater
variation of temperature spread throughout the cross-sectional
area of the heat sink. Therefore, the fin height for the chosen
design is set at 3mm, as greater fin heights created a
temperature profile that varied significantly over the width of
the channel, as seen in Figure 6. Considering the upper
temperature of the heat sink is directly correlated to the
operating temperature of the microprocessor, it would be
beneficial if the temperature distribution across the width of
heat sink was constant. This would ensure uniform cooling of
the microprocessor and would eliminate the possibility of
heated areas. Closer examination of the temperature profile of
the chosen design in Figure 1 can illustrate how the isotherms
at the surface of the heat sink can be spread out to provide
uniform cooling across the microprocessor.
One major assumption made in the design analysis was that the
effects of radiation were negligible. This can be verified for the
chosen design by calculating the heat flux due to radiation at
the surface of the copper heat sink. By assuming a constant
surface temperature of approximately 43.19C, the emissivity
of the copper heat sink is approximately 0.03 and the assumed
surrounding temperature is 25C. Based on Equation 2.1, the
heat flux due to radiation is found to be approximately
5.15x10
-9
W/mm
2
. Thus, the heat flux due to radiation can
indeed be considered negligible in this case.
For the given microprocessor that dissipates 500W of heat, the
most effective heat sink design would utilize fins that are .1mm
x 3mm, for the width and height, respectively. This achieves an
acceptable operating temperature that effectively cools the
microprocessor and does not approach designated maximum
temperature. With this design, turbulent flow of the liquid
coolant allows the maximum operating temperature to be
quickly controlled and stabilized to approximately 43.19C. In
addition, large channels allow the liquid coolant to flow easily
without the concern of obstruction.
Copyright 2014 Davis Thermal Solutions Inc. 3
2
6
2
6
26 26 26
2
7
2
7
27 27 27
2
8
28 28 28
2
9
29 29 29
3
0
30 30 30
3
1
31 31 31
3
2
32 32 32
3
3
33 33 33 34 34 34
35 35 35
36 36 36
37 37 37
38 38 38
39 39 39
4
0
40 40 41 41
42 42
width (m)
h
e
i
g
h
t
(
m
)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
x 10
3
0
0.5
1
1.5
2
2.5
3
3.5
4
x 10
3
Figure 6: Designs employing an extremely tall fin height achieve a lower
maximum operating temperature (for the above configuration, 42.95C), but
have significant temperature variation across the width of the channel.
Though not easily seen, the temperature nearer to the microprocessor surface
ranges from approximately 35C to 42C, left to right.
APPENDIX A
1. EQUATIONS FOR THE CONVECTION HEAT TRANSFER COEFFICIENT
1.1. For Turbulent Flow (Re>2300): h = .023 Re
0.8
Pr
0.3
x (kf / Dh)
1.2. For Laminar Flow (Re<2300): h =3.61 x (kf / Dh)
1.2.1. Reynolds Number: Re = ("vDh) /
1.2.2. Hydraulic Diameter: Dh = (4Ac)/P
1.2.2.1. Ac = Channel Cross-sectional Area
1.2.2.2. P = Channel Perimeter
1.3. Fluid Properties:
1.3.1. Density: " = 1000 kg/m
3
1.3.2. Viscosity: = 118 x 10
-6
Ns/m
2
1.3.3.
Thermal Conductivity: kf = 0.642 W/mK
1.3.4.
Prandtl Number: Pr = 0.86
2. EQUATIONS FOR HEAT FLUX DUE TO RADIATION
2.1. Heat Flux Due To Radiation: qrad = # $ (Ts
4
- Tsur
4
)
2.1.1. Emissivity of Copper: # = 0.3
2.1.2. Stefan-Boltzmann Constant: $ = 5.67 x 10
-8
W/m
2
K
4
3. VARIATION OF FIN WIDTH DATA
4. VARIATION OF FIN HEIGHT DATA
Copyright 2014 Davis Thermal Solutions Inc. 4
1 2 3
Fin Width 0.001 0.0005 0.00025
Fin Height 0.002 0.002 0.002
Ac, 0.000002 0.000001 0.0000005
Ph 0.006 0.005 0.0045
Dh 0.00133333333333333 0.0008 0.000444444444444444
Re 33898.3050847458 20338.9830508475 11299.4350282486
H, turb 44546.7526042649 49338.483885492 55493.267978531
H, lam 1738.215 2897.025 5214.645
1 2 3
Fin Width 0.001 0.001 0.001
Fin Height 0.001 0.002 0.003
Ac 0.000001 0.000002 0.000003
Ph 0.004 0.006 0.008
Dh 0.001 0.00133333333333333 0.0015
Re 25423.7288135593 33898.3050847458 38135.593220339
H, turb 47184.9823997407 44546.7526042649 43509.645573927
H, lam 2317.62 1738.215 1545.08
5. TIME CONVERGENCE DATA
6. MATLAB CODING FOR TEMPERATURE PROFILE ANALYSIS
EDU>> %% Clear Workspace/Command/Figures
clear all; clc; close all;
%% Define Geometry
width=2e-3; %width of symmetry element (m)
height=4e-3; %height of symmetry element (m)
wf=.0001; %width of fin in symmetry element (m)
hf=.003; %height of fin in symmetry element=channel height (m)
wc=width-wf; %channel width (m)
hs=height-hf; %thickness of base (where there is no fin) (m)
dx=0.1e-3; %node size delta x (m)
dy=0.1e-3; %node size delta y (m)
Ncolumn=int16(width/dx)+1; %number of rows;
Nrow=int16(height/dy)+1; %number of columns;
fluid_yloc=int16(hs/dy)+1; %row number location of fluid y contact
fluid_xloc=int16(wf/dx)+1; %column number location of fluid x contact
%% Define temperatures, properties, constants
Tf=25; %fluid temperature (degC)
h=65530.8628; %convective heat transfer coeff. to the fluid (W/m^2.K)
k=400; %heat sink material conductive heat transfer coeff. (W/m.K)
rho=8900; %heat sink material density (kg/m^3)
c=385; %heat sink material specific heat (J/kg.K)
CPUWatts=500; %CPU heat dissipation (W)
CPUSize=0.02; %dimension of one side of CPU (m)
heatflux=CPUWatts/(CPUSize)^2; %heatflux from top surface (W/m^2)
%% Initial temperature of sink
Tnew=zeros(Nrow,Ncolumn)+Tf; % initially heat sink is at fluid temperature
incr=zeros(Nrow,Ncolumn); % "incr" matrix stores change in temperature at each timestep
%% Initialize indexing and other variables for Euler forward time stepping method
ti=0; % initialize time index to use for time stepping
err=1; % initial error start the while loop
%% Solve ODE using Euler forward time stepping method
% Initialize Euler forward time stepping method
% You can continue solving from the last solution by
% doing "Run Section" here, after changing tolerance and step limit.
dt=20e-6; % time step (s)
tol=1e-5; % Temperature tolerance to determine steady state
SetStepLimit=100000; % iteration limit
while err>tol % loop while error is larger than preset tolerance
ti=ti+1; % move time step by one
T=Tnew; % use new temperature array from the previous step to determine change in temperature
incr=zeros(Nrow,Ncolumn); % reset "incr" array, which tracks temperature change at this time step
%% Left Boundary (n=1, where m is row number and n is column number)
% Top left corner (heat flux and adiabatic)
n=1; %column number = 1
m=1; %row number = 1
incr(m,n)=4*dt/(rho*c*dx*dy)*( ...
heatflux*dx/2 + ... % heat flux from above
Copyright 2014 Davis Thermal Solutions Inc. 5
Time Max Temp
0.00004 25.2237
0.00148 26.46
0.01772 31.7052
0.1188 42.0384
0.18946 42.96
0.39 43.1841
0.59 43.1864
0.694 43.1864
0.7119 43.1864
0.99814 43.1864
k*dx/2*(T(m+1,n)-T(m,n))/dy + ... % conduction from below
k*dy/2*(T(m,n+1)-T(m,n))/dx ); % conduction from right
% Left wall (symmetry adiabatic)
for m=2:Nrow-1
incr(m,n)=2*dt/(rho*c*dx*dy)*( ...
k*dx/2*(T(m-1,n)-T(m,n))/dy + ... % conduction from above
k*dx/2*(T(m+1,n)-T(m,n))/dy + ... % conduction from below
k*dy*(T(m,n+1)-T(m,n))/dx ); % conduction from right
end
% Bottom left corner (adiabatic and adiabatic)
m=Nrow;
incr(m,n)=4*dt/(rho*c*dx*dy)*( ...
k*dx/2*(T(m-1,n)-T(m,n))/dy + ... % conduction from above
k*dy/2*(T(m,n+1)-T(m,n))/dx ); % conduction from right
%% "fin" area, where the heat sink extends to the bottom insulation
for n=2:fluid_xloc-1
% top boundary condition (heat flux)
m=1;
incr(m,n)=2*dt/(rho*c*dx*dy)*( ...
heatflux*dx + ... % heat flux from above
k*dy/2*(T(m,n-1)-T(m,n))/dx + ... % conduction from left
k*dx*(T(m+1,n)-T(m,n))/dy + ... % conduction from below
k*dy/2*(T(m,n+1)-T(m,n))/dx ); % conduction from right
% inside nodes (no boundary condition)
for m=2:Nrow-1
incr(m,n)=dt/(rho*c*dx*dy)*k*( ...
dx/dy*(T(m-1,n)-T(m,n)) + ... % conductions from four sides
dy/dx*(T(m,n-1)-T(m,n)) + ...
dx/dy*(T(m+1,n)-T(m,n)) + ...
dy/dx*(T(m,n+1)-T(m,n)));
end
% bottom boundary condition (adiabatic)
m=Nrow;
incr(m,n)=2*dt/(rho*c*dx*dy)*( ...
k*dy/2*(T(m,n-1)-T(m,n))/dx + ... % conductions from three sides
k*dy/2*(T(m,n+1)-T(m,n))/dx + ... % as bottom is adiabatic
k*dx*(T(m-1,n)-T(m,n))/dy );
end
%% Right boundary of "fin" area where fluid touches the fin
n=fluid_xloc;
% top boundary condition (heat flux)
m=1;
incr(m,n)=2*dt/(rho*c*dx*dy)*( ...
heatflux*dx + ...
k*dy/2*(T(m,n-1)-T(m,n))/dx + ...
k*dx*(T(m+1,n)-T(m,n))/dy + ...
k*dy/2*(T(m,n+1)-T(m,n))/dx );
% inside nodes (no boundary condition)
for m=2:fluid_yloc-1
incr(m,n)=dt/(rho*c*dx*dy)*k*( ...
dx/dy*(T(m-1,n)-T(m,n)) + ...
dy/dx*(T(m,n-1)-T(m,n)) + ...
dx/dy*(T(m+1,n)-T(m,n)) + ...
dy/dx*(T(m,n+1)-T(m,n)));
end
% internal corner (with convection)
m=fluid_yloc;
incr(m,n)=4/3*dt/(rho*c*dx*dy)*( ...
k*dx*(T(m-1,n)-T(m,n))/dy + ... % conduction from four sides (with varying areas)
k*dy*(T(m,n-1)-T(m,n))/dx + ...
k*dx/2*(T(m+1,n)-T(m,n))/dy + ...
k*dy/2*(T(m,n+1)-T(m,n))/dx + ...
h/2*(dx+dy)*(Tf-T(m,n)) ); % convection from lower right side
% fin right boundary (with convection)
for m=fluid_yloc+1:Nrow-1
incr(m,n)=2*dt/(rho*c*dx*dy)*( ...
k*dx/2*(T(m-1,n)-T(m,n))/dy + ... % conduction from three sides
k*dy*(T(m,n-1)-T(m,n))/dx + ...
k*dx/2*(T(m+1,n)-T(m,n))/dy + ...
h*dy*(Tf-T(m,n))); % convection from right side
end
% fin bottom right corner (convection and adiabatic)
m=Nrow;
incr(m,n)=4*dt/(rho*c*dx*dy)*( ...
k*dx/2*(T(m-1,n)-T(m,n))/dy + ...
k*(dy/2)*(T(m,n-1)-T(m,n))/dx ...
+ h*(dy/2)*(Tf-T(m,n)));
%% Base area where there is no fin (top "cover" of fluid channel)
for n=fluid_xloc+1:Ncolumn-1
% top boundary condition (heat flux)
m=1;
incr(m,n)=2*dt/(rho*c*dx*dy)*( ...
Copyright 2014 Davis Thermal Solutions Inc. 6
heatflux*dx + ...
k*dy/2*(T(m,n-1)-T(m,n))/dx + ...
k*dx*(T(m+1,n)-T(m,n))/dy + ...
k*dy/2*(T(m,n+1)-T(m,n))/dx );
% inside nodes (no boundary condition)
for m=2:fluid_yloc-1
incr(m,n)=dt/(rho*c*dx*dy)*k*( ...
dx/dy*(T(m-1,n)-T(m,n)) + ...
dy/dx*(T(m,n-1)-T(m,n)) + ...
dx/dy*(T(m+1,n)-T(m,n)) + ...
dy/dx*(T(m,n+1)-T(m,n)));
end
% bottom boundary condition (convection)
m=fluid_yloc;
incr(m,n)=2*dt/(rho*c*dx*dy)*( ...
k*dy/2*(T(m,n-1)-T(m,n))/dx + ...
k*dx*(T(m-1,n)-T(m,n))/dy + ...
k*dy/2*(T(m,n+1)-T(m,n))/dx + ...
h*dx*(Tf-T(m,n)));
end
%% Right Boundary (symmetry adiabatic)
%Top right corner (heat flux and adiabatic)
n=Ncolumn; %rightmost column
m=1; %row number = 1
incr(m,n)=4*dt/(rho*c*dx*dy)*( ...
heatflux*dx/2 + ...
k*dx/2*(T(m+1,n)-T(m,n))/dy + ...
k*dy/2*(T(m,n-1)-T(m,n))/dx );
% Right Boundary (symmetry adiabatic)
for m=2:fluid_yloc-1
incr(m,n)=2*dt/(rho*c*dx*dy)*( ...
k*dx/2*(T(m-1,n)-T(m,n))/dy + ...
k*dx/2*(T(m+1,n)-T(m,n))/dy + ...
k*dy*(T(m,n-1)-T(m,n))/dx );
end
% Bottom right corner of no fin area (adiatic and fluid)
m=fluid_yloc;
incr(m,n)=4*dt/(rho*c*dx*dy)*( ...
k*dy/2*(T(m,n-1)-T(m,n))/dx + ...
k*(dx/2)*(T(m-1,n)-T(m,n))/dy + ...
h*(dx/2)*(Tf-T(m,n)));
%% Update temperature array (at time step ti+1) with change in temperature calculated by temperature array at time step ti.
Tnew=T+incr;
err=abs(max(incr)); % Determine when to stop solution
if ti>SetStepLimit
disp('Tolerance not met within set iteration limit');
break;
end
end
% Plot and display the results
MaxSurfaceTemp=max(Tnew(1,:)); % Maximum surface temperature
MinSurfaceTemp=min(Tnew(1,:)); % Minimum surface temperature
TempDifference=MaxSurfaceTemp-MinSurfaceTemp; % Temperature difference on the top surface
TimePassed=ti*dt; % Time to satisfy tolerance
[X,Y]=meshgrid(0:dx:width, 0:dy:height); % meshgrid to display temperatures with correct geometrys
F1=figure(1);
set(F1,'units','inches','OuterPosition',[0 0 10*width/height 10]); %set plot size
MinChanTemp=min(min(Tnew(fluid_yloc,:)),min(Tnew(:,fluid_xloc))); %minimum surface temperature of channel
ContourSpacing=1; %contour line spacing (degC)
ContourRange=ceil(MinChanTemp:ContourSpacing:MaxSurfaceTemp);
contour(X,height-Y,Tnew,'ShowText','on','LevelList',ContourRange);
boundary1=line([wf wf],[0 hf],'linewidth',2); % draw boundary lines where fluid and heat sink meet
boundary2=line([wf width],[hf hf],'linewidth',2);
set(boundary1,'Color','k');
set(boundary2,'Color','k');
rectangle('Position',[wf,0,wc,hf],'FaceColor','b'); % "white out" channel area from plot
xlabel('width (m)'); %label axis
ylabel('height (m)');
disp(['Fin width: ',num2str(wf),' meters']);
disp(['Fin height: ',num2str(hf),' meters']);
disp(['Number of nodes: ',num2str(Nrow),'x',num2str(Ncolumn)]);
disp(['Time step: ',num2str(dt),' seconds']);
disp(['Tolerance (per time step): ',num2str(tol)]);
disp(['Convective heat transfer coeff: ',num2str(h),' W/m2 K']);
disp(['Maximum surface temperature is ',num2str(MaxSurfaceTemp),' degC.']);
disp(['Minimum surface temperature is ',num2str(MinSurfaceTemp),' degC.']);
disp(['Temperature difference is ',num2str(TempDifference),' degC.']);
if ti<SetStepLimit
disp(['Tolerance satisfied in ',num2str(TimePassed),' seconds',', after ',num2str(ti),' iterations.']);
end
Copyright 2014 Davis Thermal Solutions Inc. 7