Você está na página 1de 3

%Conducao Transiente Bidimencional function [x,y,T]= Transcali echo off; L = input('Comprimento da placa [m]:'); Tin = input('Temperatura inicial da placa

[K]:'); Ti = input('Temperatura inferior da placa [K]:'); Ts = input('Temperatura superior da placa [K]:'); Td = input('Temperatura na superficie direita da placa [K]:'); Te = input('Temperatura na superficie esquerda da placa [K]:'); n = input('Numero de ns em x:'); m = input('Numero de ns em y:'); Dt = input('Incremento de tempo [dt]:'); Fo = 1; dx = L/n; % incremento em x k = input('Condutividade trmica do material [k]:'); cp = input('Calor especifico [Cp]:'); rho = input('Densidade do material:'); Fo = ((k/(cp*rho))*Dt)/(dx)^2; % Nmero de Fourier tn = 1; % calculo de um novo tempo while tn==1 % calculo de um novo tempo tet=input('Tempo passado aps a condio inicial [s]:'); x = 0:dx:L; % vetor x dy = dx;% incremento em y W = dy*m; % Comprimento em y y = 0:dy:W; % vetor y T = ones(n+1,m+1); % Temperatura na placa no tempo p P = ones(n+1,m+1); % Temperatura na placa no tempo p+1 t = 0; % tempo inicial Sim = 1; Nao = 0; A = zeros((n*m-2*n-2*(m-2)),m); G = [A]; V = ones(1,n); B = [diag(V),zeros(m,m*n-m)]; F = [zeros(m,m*n-m),diag(V)]; for i = 1:8 if i == 1 C = [zeros(1,m*i),[1],zeros(1,n*m-(m*i+1))]; else C = [C;zeros(1,m*i),[1],zeros(1,n*m-(m*i+1))]; end end for i = 1:8 if i == 1 E = [zeros(1,(2*m-1)+m*i,[1],zeros(1,n*m-(2*m+m*i)))]; else E = [E;zeros(1,(2*m-1))+m*i,[1],zeros(1,n*m-(2*m+m*i))]; end; end; for i = 1:((m-2)*(n-2)) if i == 1

F = [zeros(1,i),[-Fo],zeros(1,m-2),[1+4*Fo],[-Fo],zeros(1,m-2),[Fo],zeros(1,m*n-i-1-(m-2)-1-1-(m-2)-1)]; else F = [F;[zeros(1,i),[-Fo],zeros(1,m-2),[(1+4*Fo)],[-Fo],zeros(1,m2),[-Fo],zeros(1,m*n-i-1-(m-2)-1-1-(m-2)-1)]]; end; end; M = [[A],[F],[G]]; M = [[M];[B];[C];[E];[F]]; D = inv(M); for i = 1:n % Condio inicial em toda placa for j = 1:m T(i,j)= Tin; end; end; for j = 1:m % Condio de contorno no lado esguerdo T(1,j)= Te; end; for j = 1:m % Condio de contorno do lado direito T(n,j)= Td; end; for i = 2:n -1 % Condio de contorno em baixo T(i,1)= Ti; end; for i = 2:n-1 % Condio de contorno em cima T(i,m) = Ts; end; for i = 1:n for j = 1:m if i == 1 if j == 1 Z = [T(i,j)]; end else Z = [[Z];[T(i,j)]]; end end end T = Z*D; tempo = (t)*Dt; % Grfico [X,Y] = meshgrid(x,y); figure(1);surfc(X,Y,T');xlabel('x');ylabel('y');zlabel('T(x,y)'); title('Conduo Bidimensional Transiente - Distribuio de Temperatura'); figure(2);contour(X,Y,T');xlabel('x');ylabel('y'); title('Conduo Bidimensional Transiente - Distribuio de Temperatura');

sim = Sim; % calculo de um novo tempo nao = Nao; % calculo de um novo tempo tn=input('Deseja calcular em um tempo novo? [Sim/Nao]:'); end

Você também pode gostar