Borrar filtros
Borrar filtros

Finding the node near the middle of a 3D model for transient heat transfer anaysis

3 visualizaciones (últimos 30 días)
I am using partial differential equation toolbox for transient conduction heat transfer as shown in this example. https://www.mathworks.com/help/pde/examples/solving-a-heat-transfer-problem-with-temperature-dependent-properties.html. But now I am struggling to find out the node near the middle of a 3D model for transient heat transfer analysis to plot the temperature vs time. Since I import the 3D geometry, I do not know how matlab assigns xyz axis to my geometry.Here is my matlb code with using PDE toolbox in matlab
clear;clc
% Computing the transient temeperature in the middle of the silicon die % (chip)
% attached with the copper heat sink -
thermalmodelT = createpde('thermal','transient'); % create PDE for transient thermal anaysis
gd =importGeometry(thermalmodelT,'ThermomodelT_Assembly.stl'); % importing geometry .stl file - dimensions in mm
pdegplot(thermalmodelT,'FaceLabels','on','Celllabel','on'); % Viewing face and cell labels. So that boundary conditions can be implemented
xlim([-3,3])
ylim([-3,3])
thermalProperties(thermalmodelT,'ThermalConductivity',399,... % thermal - material properties of copper
'MassDensity',8940,...
'SpecificHeat',385,...
'Cell',1);
thermalProperties(thermalmodelT,'ThermalConductivity',120,... % thermal - material properties of silicon
'MassDensity',2330,...
'SpecificHeat',800,...
'Cell',2);
thermalBC(thermalmodelT,'Face',[1,2,3,4,6], ... % boundary conditions - covection coeff. - 20 W/(m^2•C) and T_amb = 25 degree Celcius
'ConvectionCoefficient',20,...
'AmbientTemperature',25)
%thermalBC(thermalmodelT,'Face',11,'HeatFlux',1728600)
internalHeatSource(thermalmodelT,968000,'Cell',2) % power dissipation/ area of the chip = power density (Here it is 0.968 W/ 1e-6 m^2 = 968000 W/m^2)
msh = generateMesh(thermalmodelT,'Hmax',0.2); % generate mesh size
figure % plotting mesh modelling to check the mesh size suitable for the model
pdeplot3D(thermalmodelT);
axis equal
title 'Thermal model with Finite Element Mesh'
tlist = 0:100e-6:1; % time setup - let us say from 0 to 1 s in steps of 100us
thermalIC(thermalmodelT,25); % initial condition - at 25 degree C
R = solve(thermalmodelT,tlist); % solving the problem for the model
T = R.Temperature;
getClosestNode = @(p,x,y) min((p(1,:) - x).^2 + (p(2,:) - y).^2); %finding nearest nodes
[~,nid] = getClosestNode( msh.Nodes, 0.025, 0.025); % locating the node near the middle point ???????? (in my case, the middle point is 0.025 m and 0.025 m)
%(I do not know how to find that in my problem because I import my 3D model -I NEED HELP HERE)
h = figure;
h.Position = [1 1 2 1].*h.Position;
subplot(1,2,1);
axis equal
pdeplot3D(thermalmodelT,'ColorMapData',T(:,end))
title 'Temperature, Final Time, Transient Solution'
subplot(1,2,2);
axis equal
plot(tlist, T(nid,:)); % transient temperature data at the middle point ???????? (I do not know how to find that in my problem. I NEED HELP HERE)
grid on
title 'Temperature at the centre as a Function of Time';
xlabel 'Time, seconds'
ylabel 'Temperature, degrees-Celsius'

Respuestas (1)

Ravi Kumar
Ravi Kumar el 19 de Mzo. de 2018
You can get the temperature at the geometric center, say (xc,yc,zc), using the interpolateTemperature function. For example,
Tcenter = interpolateTemperature(thermalresults,xc,yc,zc,1:numel(tlist))
You don't need to find the node nearest to the center, which will be an approximation anyway, I would suggest using interpolateTemperature instead.
You can also find the geometric center using the mesh data as:
CenterCoordinates = mean(thermalmodelT.Mesh.Nodes')
  1 comentario
Michael50
Michael50 el 21 de Mzo. de 2018
Editada: Michael50 el 21 de Mzo. de 2018
Hi Ravi, I have read how to use interpolateTemperature for getting the temperature. So you mean that I create mesh grid and then using that I get the temperature value at query points. But I do not know how to implement it in my 3D model. And also I have another problem in my model that the copper heat sink is not conducting the heat from the internal heat source. So I see that the temperature keep increasing in my model when I do the simulation for 50s and 100 s. I need to set another thermal boundary condition which I could not find out till now (for two days). Could you see any additional thermal BC added to my model ?

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by