How can I plot this code?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
clc
close all
clear all
%Lenght of the plate ----------------------------------------------
lx= input ('Enter the desire value for x length:');
ly= input ('Enter the desire value for y length:');
%alpha ------------------------------------------------------------
k=143; %Thermal coductivity (W/m.C)
p=2.8*10^3; %Density (kg/m^3)
c=795; %Specific heat (J/kg.C)
alpha= k/(p*c); %Thermal diffusivity (m^2/s)
%Grid Spacing
h= input('Enter the desire grid spacing:');
while rem (lx,h)~=0 || rem (ly,h)~=0
fprintf ('Incorrect solution \n Please enter a value which results in an integer number:')
h= input ('Reenter the desire grid spacing:');
end
%Grid Spacing along lx and ly -------------------------------------
nc= (lx/h)+1; %Number of columns
nr= (ly/h)+1; %Number of raws
%Time step --------------------------------------------------------
dt= input ('Enter the desire time step:');
while dt>= h^2/(4*alpha)
fprintf('solution is unstable. Please return to dt and choose a smaller value for: %g\n', h^2/(4*alpha))
dt= input ('Enter the desire time step:');
end
%Fourier Number (fo) ----------------------------------------------
fo= alpha*dt/(h^2);
%Creation of vectors ----------------------------------------------
T1= zeros (nr, nc);
%Boundary conditions ----------------------------------------------
T1(end,:)=0;
T1(1,:)=50;
for i= 1:nr
T1(i,1)= 50-50/(nr-1)*(i-1)
T1(i,end)= 50-50/(nr-1)*(i-1)
end
%For loops for temperatura: (Ts + Tn + Tw + Te - (4-1/fo)* Tp)) * fo
T2=T1;
for t=0:dt:inf
T1=T2
for j=2:nc-1
for i=2:nr-1
T2(i,j)= (T1(i-1,j)+ T1(i+1,j)+T1(i,j+1)+T1(i,j-1)-(4-1/fo)*T1(i,j))*fo;
end
end
%check convergence
if max(max(T2-T1))<0.001
break
end
end
disp(dt*t)
9 commentaires
Réponses (1)
Voir également
Catégories
En savoir plus sur Thermal Analysis dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!