0% encontró este documento útil (0 votos)
18 vistas7 páginas

Tubos de Calor

Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Descargar como pdf o txt
0% encontró este documento útil (0 votos)
18 vistas7 páginas

Tubos de Calor

Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 7

% Función para resolver la EDO y graficar

function [x_output, w_output] = solve_and_plot(a, b, ALPHA, BETA, N, TOL, M, k, ...


emisividad, h, T_amb, T_surr, color)
sig = 5.67 * 1e-8; % Constante de Stefan-Boltzmann

% Paso 1
A = zeros(1,N);
B = zeros(1,N);
C = zeros(1,N);
D = zeros(1,N);
W = zeros(1,N);
V = zeros(1,N);
Z = zeros(1,N);
U = zeros(1,N);
L = zeros(1,N);
N1 = N-1;
H = (b-a)/(N+1);

% Definicion de parámetros
beta = sig*emisividad/k;
alpha = h/k;
gamma = (h*T_amb + sig*emisividad*T_surr^4)/k;
F = @(x,T,Tp) beta*T^4 + alpha*T - gamma;
FT = @(x,T,Tp) 4*beta*T^3 + alpha;
FTP = @(x,T,Tp) 0;

% Paso 2
for I = 1 : N
W(I) = ALPHA+I*H*(BETA-ALPHA)/(b-a);
end

% Paso 3
K = 1;

% Paso 4
while K <= M
% Paso 5
X = a+H;
T = (W(2)-ALPHA)/(2*H);
A(1) = 2+H*H*FT(X,W(1),T);
B(1) = -1+H*FTP(X,W(1),T)/2;
D(1) = -(2*W(1)-W(2)-ALPHA+H*H*F(X,W(1),T));

% Paso 6
for I = 2 : N1
X = a+I*H;
T = (W(I+1)-W(I-1))/(2*H);
A(I) = 2+H*H*FT(X,W(I),T);
B(I) = -1+H*FTP(X,W(I),T)/2;
C(I) = -1-H*FTP(X,W(I),T)/2;

1
D(I) = -(2*W(I)-W(I+1)-W(I-1)+H*H*F(X,W(I),T));
end

% Paso 7
X = b - H;
T = (BETA-W(N-1))/(2*H);
A(N) = 2+H*H*FT(X,W(N),T);
C(N) = -1-H*FTP(X,W(N),T)/2;
D(N) = -(2*W(N)-W(N-1)-BETA+H*H*F(X,W(N),T));

% PASO 8
% PASO 8 hasta 12 resuelve un sistema lineal tridiagonal usando
% Reducción de Crout
L(1) = A(1);
U(1) = B(1)/A(1);
Z(1) = D(1)/L(1);

% PASO 9
for I = 2 : N1
L(I) = A(I)-C(I)*U(I-1);
U(I) = B(I)/L(I);
Z(I) = (D(I)-C(I)*Z(I-1))/L(I);
end

% PASO 10
L(N) = A(N)-C(N)*U(N-1);
Z(N) = (D(N)-C(N)*Z(N-1))/L(N);

% PASO 11 Actualización de W
V(N) = Z(N);
W(N) = W(N)+V(N);

% PASO 12
for J = 1 : N1
I = N-J;
V(I) = Z(I)-U(I)*V(I+1);
W(I) = W(I)+V(I);
end

% Paso 13
% Prueba de precisión
VMAX = max(abs(V));
if VMAX <= TOL
break;
end

%Paso 14
% Incremento de iteración
K = K + 1;
end

2
fprintf(['Número de iteraciones requeridas para k = %0.2f, emisividad = %0.2f:'
...
' %d\n'], k, emisividad, K);

% Paso 9
x_output = [a, a + (1:N) * H, b]';
w_output = [ALPHA, W, BETA]';

% Mostrar resultados en una tabla


fprintf('Resultados:\n');
fprintf('----------------------\n');
fprintf(' x(m) T(K)\n');
fprintf('----------------------\n');
for i = 1:length(x_output)
fprintf('%0.6f %0.6f\n', x_output(i), w_output(i));
end
fprintf('----------------------\n');

end

% Condiciones iniciales y de frontera


a = 0; % x = 0 mm
b = 0.2; % x = L = 200 mm
ALPHA = 367; % T(0)
BETA = 318; % T(L)
N = 19; % Numero de puntos internos
TOL = 1e-5; %Tolerancia
M = 25; % Numero maximo de iteraciones
T_amb = 288; %Temperatura ambiente en Kelvin
T_surr = 288; %Temperatura del entorno en Kelvin

% Mostramos los resultados obtenidos:


% Cobre
k_cobre = 385; %conductividad térmica en W/(m·K).
emisividad_cobre = 0.68; % emisividad (adimensional)
h_cobre = 400;%coeficiente de de transferencia de calor por conveccion (W/(m²·K)).
[x_output_cobre, w_output_cobre] = solve_and_plot(a, b, ALPHA, BETA, N, TOL, M, ...
k_cobre, emisividad_cobre, h_cobre, T_amb, T_surr, 'r');

Número de iteraciones requeridas para k = 385.00, emisividad = 0.68: 2


Resultados:
----------------------
x(m) T(K)
----------------------
0.000000 367.000000
0.010000 364.488380
0.020000 361.984815
0.030000 359.489040
0.040000 357.000790
0.050000 354.519803
0.060000 352.045817
0.070000 349.578570

3
0.080000 347.117801
0.090000 344.663251
0.100000 342.214660
0.110000 339.771770
0.120000 337.334324
0.130000 334.902064
0.140000 332.474734
0.150000 330.052079
0.160000 327.633842
0.170000 325.219770
0.180000 322.809608
0.190000 320.403102
0.200000 318.000000
----------------------

% Aluminio
k_aluminio = 237;%conductividad térmica en W/(m·K).
emisividad_aluminio = 0.05;% emisividad (adimensional)
h_aluminio = 10;%coeficiente de de transferencia de calor por conveccion (W/(m²·K)).
[x_output_aluminio, w_output_aluminio] = solve_and_plot(a, b, ALPHA, BETA, N, ...
TOL, M, k_aluminio, emisividad_aluminio, h_aluminio, T_amb, T_surr, 'g');

Número de iteraciones requeridas para k = 237.00, emisividad = 0.05: 2


Resultados:
----------------------
x(m) T(K)
----------------------
0.000000 367.000000
0.010000 364.547428
0.020000 362.095192
0.030000 359.643281
0.040000 357.191684
0.050000 354.740390
0.060000 352.289388
0.070000 349.838668
0.080000 347.388219
0.090000 344.938029
0.100000 342.488089
0.110000 340.038386
0.120000 337.588911
0.130000 335.139652
0.140000 332.690599
0.150000 330.241741
0.160000 327.793067
0.170000 325.344567
0.180000 322.896230
0.190000 320.448044
0.200000 318.000000
----------------------

% Cobre Pulido
k_cobre_pulido = 405; %conductividad térmica en W/(m·K).
emisividad_cobre_pulido = 0.02;% emisividad (adimensional)
h_cobre_pulido = 300;%coeficiente de de transferencia de calor
% por conveccion (W/(m²·K)).
[x_output_cobre_pulido, w_output_cobre_pulido] = solve_and_plot(a, b, ALPHA, ...
BETA, N, TOL, M, k_cobre_pulido, emisividad_cobre_pulido, h_cobre_pulido, ...
T_amb, T_surr, 'b');

4
Número de iteraciones requeridas para k = 405.00, emisividad = 0.02: 2
Resultados:
----------------------
x(m) T(K)
----------------------
0.000000 367.000000
0.010000 364.506556
0.020000 362.018783
0.030000 359.536495
0.040000 357.059509
0.050000 354.587641
0.060000 352.120708
0.070000 349.658527
0.080000 347.200916
0.090000 344.747692
0.100000 342.298674
0.110000 339.853680
0.120000 337.412528
0.130000 334.975038
0.140000 332.541030
0.150000 330.110323
0.160000 327.682736
0.170000 325.258090
0.180000 322.836205
0.190000 320.416901
0.200000 318.000000
----------------------

%Mostramos las tres gráficas en una sola ventana por separadas


figure;
% Gráfico para Cobre
subplot(3, 1, 1); % Subplot de 3 filas, 1 columna, primer posición
plot(x_output_cobre, w_output_cobre, 'ro-', 'LineWidth', 2);
title('Distribución de Temperatura en 1D para Cobre');
xlabel('Posición x');
ylabel('Temperatura T');
grid on;
% Gráfico para Aluminio
subplot(3, 1, 2); % Subplot de 3 filas, 1 columna, segunda posición
plot(x_output_aluminio, w_output_aluminio, 'g-s', 'LineWidth', 2);
title('Distribución de Temperatura en 1D para Aluminio');
xlabel('Posición x');
ylabel('Temperatura T');
grid on;
% Gráfico para Cobre Pulido
subplot(3, 1, 3); % Subplot de 3 filas, 1 columna, tercera posición
plot(x_output_cobre_pulido, w_output_cobre_pulido, 'b', 'LineWidth', 2);
title('Distribución de Temperatura en 1D para Cobre Pulido');
xlabel('Posición x');
ylabel('Temperatura T');
grid on;
% Ajustar espaciado entre subplots
spacing = 0.05; % Espacio entre subplots (ajustar según sea necesario)
set(gcf, 'Position', get(0,'Screensize')); % Maximizar la ventana de la figura
set(gcf, 'DefaultAxesLooseInset', [0.1, spacing, 0.1, spacing]); % Ajustar márgenes
% Ajustar tamaño de la fuente para mejor visualización

5
set(findall(gcf,'-property','FontSize'),'FontSize',12);

%Mostramos las tres gráficas superpuestas en una sola imagen


figure;
plot(x_output_cobre, w_output_cobre, 'ro', 'LineWidth', 2); hold on;
plot(x_output_aluminio, w_output_aluminio, 'g-s', 'LineWidth', 2);
plot(x_output_cobre_pulido, w_output_cobre_pulido, 'b', 'LineWidth', 2);
% Configuración de la barra de colores
colorbar;
caxis([min([w_output_cobre; w_output_aluminio; w_output_cobre_pulido]) ...
max([w_output_cobre; w_output_aluminio; w_output_cobre_pulido])]);
% Etiquetas y título
xlabel('Posición x (metros)');
ylabel('Temperatura T (Kelvin)');
title('Distribución de Temperatura en 1D para Cobre, Aluminio y Cobre Pulido');
% Leyenda
legend('Cobre', 'Aluminio', 'Cobre Pulido');
% Cuadrícula
grid on;
hold off;

6
7

También podría gustarte