%% 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-installedcloseallclearclcif(license('test','pde_toolbox'))model=createpde('thermal');elsemsgbox('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ăfigurepdegplot(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);figurepdemesh(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ținethermalProperties(model,...'Cell',1,...'ThermalConductivity',40);% inel exterior nu conduce termicthermalProperties(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 thermalBCthermalBC(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 CelsiusthermalBC(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ăfigurepdeplot3D(model,...'ColorMapData',result.Temperature)set(gcf,'Position',pos2+[pos2(1),0,0,0]);