Analiza modelului de transfer termic al unui ansamblu de cilindri
(Redirecționat de la Analiza modelului de transfer termic al unui inel)
Sari la navigare
Sari la căutare
Acesta este un exemplu simplificat de analiză a transferului termic pe două structuri cilindrice din materiale de conductivitate termică diferită.
%% Analiza transferului termic al unui ansamblu de cilindri
% =======================================
% verifică dacă există suport pentru PDE
% https://www.mathworks.com/matlabcentral/answers/222647-test-if-toolbox-is-installed
close all
clear
clc
if (license('test', 'pde_toolbox'))
model = createpde('thermal');
else
msgbox('pde toolbox nu e instalată !','Eroare de licență');
return;
end
% doi cilindri
% https://www.mathworks.com/help/pde/ug/multicylinder.html
% multicylinder(radii, height, options, coordinates)
geo = multicylinder([20,25,35],20, ...
'Void',[1,0,0]);
model.Geometry = geo;
% vezi cilindrul, cu tot cu etichete pentru fețe
% FIGURA 1 - TODO- poziționare automată
figure
pdegplot(model, ...
'FaceLabels', 'on', ...
'FaceAlpha', 0.5)
title('Multicilindru cu două componente');
pos1 = get(gcf,'Position'); % get position of Figure(1)
set(gcf,'Position', pos1 - [pos1(1),0,0,0]) % Shift position of Figure(1)
% generează un mesh și vizualizează
% FIGURA 2 - TODO - poziționare automată
generateMesh(model);
figure
pdemesh(model)
title('Mesh generat cu generateMesh (funcție din pde)');
set(gcf, 'Position', pos1 + [0,0,0,0]);
pos2 = get(gcf, 'Position');
%% Proprietățile materialului
% inelul interior (cell 1) are conductibilitate termică de 40
% folosește which <nume funcție> pentru a afla de care toolbox aparține
thermalProperties(model, ...
'Cell', 1, ...
'ThermalConductivity', 40);
% inel exterior nu conduce termic
thermalProperties(model, ...
'Cell', 2, ...
'ThermalConductivity', 0.15);
%% Boundary conditions - condițiile la limite
% fața 3 este supusă unei temperaturi de 80 de grade celsius
% vezi și opțiunile suplimentare oferite the thermalBC
thermalBC(model, ...
'Face', 3, ...
'Temperature', 85);
disp('Set BC interior... temperatura feței interioare setată la 85 grade celsius');
% temperatura feței exterioare este de 4 grade Celsius
thermalBC(model, ...
'Face', 7, ...
'Temperature', 4);
disp('Set BC exterior... temperatura feței exterioare setată la 4 grade celsius');
%% Rulare analiză
result = solve(model);
% FIGURA 3 - TODO- poziționare automată
figure
pdeplot3D(model, ...
'ColorMapData', result.Temperature)
set(gcf,'Position', pos2 + [pos2(1),0,0,0]);