Unexpected Result for 3-D Thermal Transient Analysis of Heat sink using PDE Solver Toolbox

7 ビュー (過去 30 日間)
I have completed analysis for a heat sink using ANSYS and I'm attempting to validate the results on MATLAB but the transient temperature matrix seems to not change from the intial temperature condition of 60 degrees celcius even though the results are transient. I believe the ANSYS result shows the correct change after 10seconds. The meshing quality is also much better on ANSYS
ANSYS RESULT:
MATLAB MODEL:
MATLAB RESULT:
%% Model Setup for Heat Sink
thermalmodel = createpde('thermal','transient');
importGeometry(thermalmodel,'heatsink.stl');
pdegplot(thermalmodel,'FaceLabel','on','FaceAlpha',0.5);
axis equal
%% mesh
generateMesh(thermalmodel,'Hmax',0.4);
figure;
pdeplot3D(thermalmodel);
%% Boundary Condition, Aluminium Alloy Properties and Initial Conditions
TCval = @(location,state)139.3 + 0.204*state.u; %sets thermal conductivity (W/m/°C) as a function of temperature only approximate equation based on linear trend for table data from ansys engineering alumnium alloy data
MDval = 2770; %density kg/m^3
SHval = 875; %specific heat (J/kg/°C)
ATval = 25; %ambient temperature
CCval = 30; %convective film coefficient W/m^2
REval = 0.77; %radiation emissivity
thermalmodel.StefanBoltzmannConstant = 5.670373E-8;
faces = [1,3:30];
thermalProperties(thermalmodel,'ThermalConductivity',TCval,'MassDensity',MDval,'SpecificHeat',SHval);
thermalBC(thermalmodel,'Face',faces,'ConvectionCoefficient',@(region,state)CCval,'AmbientTemperature',ATval);
thermalBC(thermalmodel,'Face',faces,'Emissivity',@(region,state)REval,'AmbientTemperature',ATval);
thermalBC(thermalmodel,'Face',2,'ConvectionCoefficient',5,'AmbientTemperature',ATval);
thermalBC(thermalmodel,'Face',2,'Emissivity',0.1,'AmbientTemperature',ATval);
thermalIC(thermalmodel,60); %sets initial temperature °C problem with this as temp doesnt go down very fast?
%% solve
tlist= [0:10]; %time from 0 to 10seconds
thermalTransientResults = solve(thermalmodel,tlist);
pdeplot3D(thermalmodel,'ColorMapData',thermalTransientResults.Temperature(:,10))
%for n = 1:numel(thermalTransientResults.SolutionTimes)
% figure
% pdeplot3D(thermalmodel,'ColorMapData',thermalTransientResults.Temperature(:,n))
% title(['Temperature at Time = ' num2str(tlist(n))])
%end

採用された回答

Ravi Kumar
Ravi Kumar 2019 年 11 月 19 日
Here is the correct results using the new STL after fixing two more inconsitencies:
  1. Radiation problem should include temperature in K.
  2. All BCs on a particular set of faces need to be applied at once, otherwise the following assignment would overwrite the preceeding one if they are applied on the same set of faces.
CorrectRestulsPDETbx.png
code:
%% Model Setup for Heat Sink
thermalmodel = createpde('thermal','transient');
gm = importGeometry(thermalmodel,'heatsinkv2.stl');
pdegplot(thermalmodel,'FaceLabel','on','FaceAlpha',0.5);
axis equal
%% mesh
generateMesh(thermalmodel);
figure;
pdeplot3D(thermalmodel);
%% Boundary Condition, Aluminium Alloy Properties and Initial Conditions
TCval = @(location,state)139.3 + 0.204*(state.u-273.15); %sets thermal conductivity (W/m/°C) as a function of temperature only approximate equation based on linear trend for table data from ansys engineering alumnium alloy data
MDval = 2770; %density kg/m^3
SHval = 875; %specific heat (J/kg/°C)
ATval = 25+273.15; %ambient temperature
CCval = 30; %convective film coefficient W/m^2
REval = 0.77; %radiation emissivity
thermalmodel.StefanBoltzmannConstant = 5.670373E-8;
faces = [1,3:30];
thermalProperties(thermalmodel,'ThermalConductivity',TCval,'MassDensity',MDval,'SpecificHeat',SHval);
thermalBC(thermalmodel,'Face',faces,'ConvectionCoefficient',@(region,state)CCval,'Emissivity',@(region,state)REval,'AmbientTemperature',ATval);
thermalBC(thermalmodel,'Face',2,'ConvectionCoefficient',5,'Emissivity',0.1,'AmbientTemperature',ATval);
thermalIC(thermalmodel,60+273.15); %sets initial temperature °C problem with this as temp doesnt go down very fast?
%% solve
tlist= [0:10]; %time from 0 to 10seconds
thermalTransientResults = solve(thermalmodel,tlist);
pdeplot3D(thermalmodel,'ColorMapData',thermalTransientResults.Temperature(:,10)-273.15)
Regards,
Ravi

その他の回答 (1 件)

Ravi Kumar
Ravi Kumar 2019 年 11 月 18 日
Hello Jake,
You seem to have unit mismatch in the MATLAB model. PDE Toolbox doesn't have any units. When you exported the geometry it looks it is in mm whereas your material properties are in terms of m.
Regards,
Ravi
  1 件のコメント
Jake Edwards
Jake Edwards 2019 年 11 月 19 日
編集済み: Jake Edwards 2019 年 11 月 19 日
Hi thanks for the reply I thought I had edited my question as I realised this issue but im still having problems with my results.The temperature isn't reducing by much. I haven't really changed the code much (i remove the hmax value) only the model as the .STL file was exported wrong and is unitless.
New Model:
New Result at 10s:
Thanks
Link to New Model:
https://1drv.ms/u/s!AujKksRUPEcroBjp09CQ7kVDC53B?e=dV48w6

サインインしてコメントする。

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by